brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.1 KiB · 94aa3ad Raw
192 lines · yaml
1# REQUIRES: aarch64-registered-target2 3## Check that AMD64 image file with CHPE data is recognized as ARM64EC.4# RUN: yaml2obj --docnum=1 %s -o %t1 -DMACHINE=IMAGE_FILE_MACHINE_AMD645# RUN: llvm-readobj --coff-load-config %t1 | FileCheck --check-prefix=CODEMAP %s6# RUN: %if x86-registered-target %{                                                           \7# RUN:   llvm-objdump -d %t1 | FileCheck --check-prefixes=DISASM,ARM64EC %s                   \8# RUN: %} %else %{                                                                            \9# RUN:   llvm-objdump -d %t1 2>&1 | FileCheck --check-prefixes=DISASM-NO-X64,ARM64EC,WARN1 %s \10# RUN: %}11 12## Check that ARM64 image file with CHPE data is recognized as ARM64X.13# RUN: yaml2obj --docnum=1 %s -o %t2 -DMACHINE=IMAGE_FILE_MACHINE_ARM6414# RUN: llvm-readobj --coff-load-config %t2 | FileCheck --check-prefix=CODEMAP %s15# RUN: %if x86-registered-target %{                                                          \16# RUN:   llvm-objdump -d %t2 | FileCheck --check-prefixes=DISASM,ARM64X %s                   \17# RUN: %} %else %{                                                                           \18# RUN:   llvm-objdump -d %t2 2>&1 | FileCheck --check-prefixes=DISASM-NO-X64,ARM64X,WARN1 %s \19# RUN: %}20 21## Check handling of an explicit, non-default triple.22# RUN: %if !x86-registered-target %{                                              \23# RUN:   llvm-objdump --triple arm64ec-w64-windows-gnu -d %t1 2>&1                \24# RUN:                | FileCheck --check-prefixes=DISASM-NO-X64,ARM64EC,WARN2 %s \25# RUN: %}26 27# ARM64EC: file format coff-arm64ec28# ARM64X:  file format coff-arm64x29 30# WARN1: warning: '{{.*}}': unable to get target for 'x86_64--', see --version and --triple.31# WARN2: warning: '{{.*}}': unable to get target for 'x86_64-w64-windows-gnu', see --version and --triple.32 33# DISASM:      Disassembly of section .text:34# DISASM-EMPTY:35# DISASM-NEXT: 0000000180001000 <.text>:36# DISASM-NEXT: 180001000: 52800040     mov     w0, #0x237# DISASM-NEXT: 180001004: d65f03c0     ret38# DISASM-NEXT: ...39# DISASM-NEXT: 180001020: b8 03 00 00 00     movl    $0x3, %eax40# DISASM-NEXT: 180001025: c3                 retq41# DISASM-EMPTY:42# DISASM-NEXT: Disassembly of section .test:43# DISASM-EMPTY:44# DISASM-NEXT: 0000000180002000 <.test>:45# DISASM-NEXT: 180002000: b8 06 00 00 00     movl    $0x6, %eax46# DISASM-NEXT: 180002005: c3                 retq47# DISASM-NEXT: 180002006: cc                 int348# DISASM-NEXT: ...49# DISASM-NEXT: 180002020: 528000a0     mov     w0, #0x550# DISASM-NEXT: 180002024: d65f03c0     ret51 52# DISASM-NO-X64:      Disassembly of section .text:53# DISASM-NO-X64-EMPTY:54# DISASM-NO-X64-NEXT: 0000000180001000 <.text>:55# DISASM-NO-X64-NEXT: 180001000: 52800040     mov     w0, #0x256# DISASM-NO-X64-NEXT: 180001004: d65f03c0     ret57# DISASM-NO-X64-NEXT: ...58# DISASM-NO-X64-NEXT: 180001020: 000003b8     udf     #0x3b859# DISASM-NO-X64-NEXT: 180001024: 00 c3        <unknown>60# DISASM-NO-X64-EMPTY:61# DISASM-NO-X64-NEXT: Disassembly of section .test:62# DISASM-NO-X64-EMPTY:63# DISASM-NO-X64-NEXT: 0000000180002000 <.test>:64# DISASM-NO-X64-NEXT: 180002000: 000006b8     udf     #0x6b865# DISASM-NO-X64-NEXT: 180002004: 00ccc300     <unknown>66# DISASM-NO-X64-NEXT: ...67# DISASM-NO-X64-NEXT: 180002020: 528000a0     mov     w0, #0x568# DISASM-NO-X64-NEXT: 180002024: d65f03c0     ret69 70# CODEMAP:      CodeMap [71# CODEMAP-NEXT:   0x1000 - 0x1008  ARM64EC72# CODEMAP-NEXT:   0x1020 - 0x2007  X6473# CODEMAP-NEXT:   0x2020 - 0x2028  ARM64EC74# CODEMAP-NEXT: ]75 76--- !COFF77OptionalHeader:78  ImageBase:        0x18000000079  SectionAlignment: 409680  FileAlignment:    51281  DLLCharacteristics: [ ]82  LoadConfigTable:83    RelativeVirtualAddress: 0x300084    Size:                   32085header:86  Machine:         [[MACHINE]]87  Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE, IMAGE_FILE_DLL ]88sections:89  - Name:            .text90    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]91    VirtualAddress:  0x100092    VirtualSize:     3893    SectionData:     40008052C0035FD6000000000000000000000000000000000000000000000000B803000000C394  - Name:            .test95    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]96    VirtualAddress:  0x200097    VirtualSize:     4098    SectionData:     B806000000C3CC00000000000000000000000000000000000000000000000000A0008052C0035FD699  - Name:            .rdata100    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]101    VirtualAddress:  0x3000102    VirtualSize:     328103    StructuredData:104      - LoadConfig:105          CHPEMetadataPointer: 0x180004000106  - Name:            .data107    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]108    VirtualAddress:  0x4000109    VirtualSize:     112110    StructuredData:111      - UInt32: 1       # Version112      - UInt32: 0x4050  # CodeMap113      - UInt32: 3       # CodeMapCount114      - UInt32: 0       # CodeRangesToEntryPoints115      - UInt32: 0       # RedirectionMetadata116      - UInt32: 0117      - UInt32: 0118      - UInt32: 0119      - UInt32: 0120      - UInt32: 0121      - UInt32: 0122      - UInt32: 0123      - UInt32: 0       # CodeRangesToEntryPointsCount124      - UInt32: 0       # RedirectionMetadataCount125      - UInt32: 0126      - UInt32: 0127      - UInt32: 0128      - UInt32: 0129      - UInt32: 0130      - UInt32: 0131      - UInt32: 0x1001  # CodeMap[0]132      - UInt32: 0x8133      - UInt32: 0x1022  # CodeMap[1]134      - UInt32: 0x0fe7135      - UInt32: 0x2021  # CodeMap[2]136      - UInt32: 0x8137symbols:         []138...139 140## Check error handling of invalid code map RVA.141# RUN: yaml2obj --docnum=2 %s -o %t-invalid142# RUN: not llvm-objdump -d %t-invalid 2>&1 | FileCheck --check-prefixes=ERR %s -DFILE=%t-invalid143# ERR: error: '[[FILE]]': RVA 0x6000 for CHPE code map not found144 145--- !COFF146OptionalHeader:147  ImageBase:        0x180000000148  SectionAlignment: 4096149  FileAlignment:    512150  DLLCharacteristics: [ ]151  LoadConfigTable:152    RelativeVirtualAddress: 0x3000153    Size:                   320154header:155  Machine:         IMAGE_FILE_MACHINE_AMD64156  Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE, IMAGE_FILE_DLL ]157sections:158  - Name:            .rdata159    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]160    VirtualAddress:  0x3000161    VirtualSize:     328162    StructuredData:163      - LoadConfig:164          CHPEMetadataPointer: 0x180004000165  - Name:            .data166    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]167    VirtualAddress:  0x4000168    VirtualSize:     112169    StructuredData:170      - UInt32: 1       # Version171      - UInt32: 0x6000  # CodeMap172      - UInt32: 3       # CodeMapCount173      - UInt32: 0       # CodeRangesToEntryPoints174      - UInt32: 0       # RedirectionMetadata175      - UInt32: 0176      - UInt32: 0177      - UInt32: 0178      - UInt32: 0179      - UInt32: 0180      - UInt32: 0181      - UInt32: 0182      - UInt32: 0       # CodeRangesToEntryPointsCount183      - UInt32: 0       # RedirectionMetadataCount184      - UInt32: 0185      - UInt32: 0186      - UInt32: 0187      - UInt32: 0188      - UInt32: 0189      - UInt32: 0190symbols:         []191...192