brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.8 KiB · 3836d24 Raw
270 lines · plain
1REQUIRES: aarch64, x862RUN: split-file %s %t.dir && cd %t.dir3 4RUN: llvm-mc -filetype=obj -triple=arm64ec-windows test-arm64ec.s -o test-arm64ec.obj5RUN: llvm-mc -filetype=obj -triple=x86_64-windows test-x86_64.s -o test-x86_64.obj6RUN: llvm-mc -filetype=obj -triple=arm64ec-windows %S/Inputs/loadconfig-arm64ec.s -o loadconfig-arm64ec.obj7RUN: llvm-lib -out:test.lib -def:test.def -machine:arm64ec8 9RUN: lld-link -out:out.dll -debug -machine:arm64ec -dll -noentry test-arm64ec.obj test-x86_64.obj loadconfig-arm64ec.obj test.lib10RUN: llvm-pdbutil dump out.pdb -all | FileCheck %s11 12CHECK:                             Streams13CHECK-NEXT: ============================================================14CHECK:        Stream 10 ( 104 bytes): [Module "Import:test.dll"]15CHECK-NEXT:              Blocks: [9]16CHECK-NEXT:   Stream 11 ({{[ 0-9]+}} bytes): [Module "* Linker *"]17CHECK-NEXT:              Blocks: [10]18 19CHECK:                             Module Stats20CHECK-NEXT: ============================================================21CHECK-NEXT: Mod 0000 | `{{.*}}test-arm64ec.obj`:22CHECK-NEXT:   Mod 0 (debug info not present): [{{.*}}test-arm64ec.obj]23CHECK-NEXT: Mod 0001 | `{{.*}}test-x86_64.obj`:24CHECK-NEXT:   Mod 1 (debug info not present): [{{.*}}test-x86_64.obj]25CHECK-NEXT: Mod 0002 | `{{.*}}loadconfig-arm64ec.obj`:26CHECK-NEXT:   Mod 2 (debug info not present): [{{.*}}loadconfig-arm64ec.obj]27CHECK-NEXT: Mod 0003 | `test.dll`:28CHECK-NEXT:   Mod 3 (debug info not present): [test.dll]29CHECK-NEXT: Mod 0004 | `Import:test.dll`:30CHECK-NEXT:   Stream 10, 104 bytes31 32CHECK:                                Modules33CHECK-NEXT: ============================================================34CHECK-NEXT:   Mod 0000 | `{{.*}}test-arm64ec.obj`:35CHECK-NEXT:   SC[.text]  | mod = 0, 0001:0000, size = 8, data crc = 2063330902, reloc crc = 036CHECK-NEXT:           IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_EXECUTE |37CHECK-NEXT:           IMAGE_SCN_MEM_READ38CHECK-NEXT:   Obj: `{{.*}}test-arm64ec.obj`:39CHECK-NEXT:   debug stream: 65535, # files: 0, has ec info: false40CHECK-NEXT:   pdb file ni: 0 ``, src file ni: 0 ``41CHECK-NEXT: Mod 0001 | `{{.*}}test-x86_64.obj`:42CHECK-NEXT: SC[.text]  | mod = 1, 0001:4096, size = 0, data crc = 0, reloc crc = 043CHECK-NEXT:         IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_EXECUTE |44CHECK-NEXT:         IMAGE_SCN_MEM_READ45CHECK-NEXT: Obj: `{{.*}}test-x86_64.obj`:46CHECK-NEXT: debug stream: 65535, # files: 0, has ec info: false47CHECK-NEXT: pdb file ni: 0 ``, src file ni: 0 ``48CHECK-NEXT: Mod 0002 | `{{.*}}loadconfig-arm64ec.obj`:49CHECK-NEXT: SC[.text]  | mod = 2, 0001:0008, size = 0, data crc = 0, reloc crc = 050CHECK-NEXT:         IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_EXECUTE |51CHECK-NEXT:         IMAGE_SCN_MEM_READ52CHECK-NEXT: Obj: `{{.*}}loadconfig-arm64ec.obj`:53CHECK-NEXT: debug stream: 65535, # files: 0, has ec info: false54CHECK-NEXT: pdb file ni: 0 ``, src file ni: 0 ``55CHECK-NEXT: Mod 0003 | `test.dll`:56CHECK-NEXT: SC[???]  | mod = 65535, 65535:0000, size = -1, data crc = 0, reloc crc = 057CHECK-NEXT:         none58CHECK-NEXT: Obj: `{{.*}}test.lib`:59CHECK-NEXT: debug stream: 65535, # files: 0, has ec info: false60CHECK-NEXT: pdb file ni: 0 ``, src file ni: 0 ``61CHECK-NEXT: Mod 0004 | `Import:test.dll`:62CHECK-NEXT: SC[.text]  | mod = 4, 0001:4096, size = 6, data crc = 0, reloc crc = 063CHECK-NEXT:         IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ64CHECK-NEXT: Obj: `{{.*}}test.lib`:65CHECK-NEXT: debug stream: 10, # files: 0, has ec info: false66CHECK-NEXT: pdb file ni: 0 ``, src file ni: 0 ``67CHECK-NEXT: Mod 0005 | `* Linker *`:68CHECK-NEXT: SC[???]  | mod = 65535, 65535:0000, size = -1, data crc = 0, reloc crc = 069CHECK-NEXT:         none70CHECK-NEXT: Obj: ``:71CHECK-NEXT: debug stream: 11, # files: 0, has ec info: false72CHECK-NEXT: pdb file ni: 1 `{{.*}}out.pdb`, src file ni: 0 ``73 74CHECK:                             Public Symbols75CHECK-NEXT: ============================================================76CHECK-NEXT:   Records77CHECK-NEXT:      584 | S_PUB32 [size = 28] `x86_64_sym`78CHECK-NEXT:            flags = none, addr = 0005:000879CHECK-NEXT:      536 | S_PUB32 [size = 28] `arm64ec_sym`80CHECK-NEXT:            flags = none, addr = 0005:000081CHECK-NEXT:      168 | S_PUB32 [size = 44] `__hybrid_auxiliary_iat_copy`82CHECK-NEXT:            flags = none, addr = 0002:83CHECK-NEXT:       96 | S_PUB32 [size = 32] `__chpe_metadata`84CHECK-NEXT:            flags = none, addr = 0003:000085CHECK-NEXT:      456 | S_PUB32 [size = 48] `__x64_code_ranges_to_entry_points`86CHECK-NEXT:            flags = none, addr = 0002:87CHECK-NEXT:        0 | S_PUB32 [size = 20] `#func`88CHECK-NEXT:            flags = function, addr = 0001:000889CHECK-NEXT:      244 | S_PUB32 [size = 40] `__icall_helper_arm64ec`90CHECK-NEXT:            flags = none, addr = 0001:000091CHECK-NEXT:       64 | S_PUB32 [size = 32] `__auximpcopy_func`92CHECK-NEXT:            flags = none, addr = 0002:93CHECK-NEXT:      504 | S_PUB32 [size = 32] `_load_config_used`94CHECK-NEXT:            flags = none, addr = 0002:95CHECK-NEXT:      564 | S_PUB32 [size = 20] `func`96CHECK-NEXT:            flags = function, addr = 0001:409697CHECK-NEXT:      128 | S_PUB32 [size = 40] `__hybrid_auxiliary_iat`98CHECK-NEXT:            flags = none, addr = 0002:819299CHECK-NEXT:      284 | S_PUB32 [size = 32] `__imp_aux_func`100CHECK-NEXT:            flags = none, addr = 0002:0000101CHECK-NEXT:      344 | S_PUB32 [size = 28] `__impchk_func`102CHECK-NEXT:            flags = function, addr = 0001:0020103CHECK-NEXT:      372 | S_PUB32 [size = 44] `__os_arm64x_dispatch_icall`104CHECK-NEXT:            flags = none, addr = 0002:105CHECK-NEXT:      212 | S_PUB32 [size = 32] `__hybrid_code_map`106CHECK-NEXT:            flags = none, addr = 0002:107CHECK-NEXT:       20 | S_PUB32 [size = 44] `__arm64x_redirection_metadata`108CHECK-NEXT:            flags = none, addr = 0004:0000109CHECK-NEXT:      416 | S_PUB32 [size = 40] `__os_arm64x_dispatch_ret`110CHECK-NEXT:            flags = none, addr = 0002:111CHECK-NEXT:      316 | S_PUB32 [size = 28] `__imp_func`112CHECK-NEXT:            flags = none, addr = 0002:8192113 114CHECK:                                Symbols115CHECK-NEXT: ============================================================116CHECK-NEXT:   Mod 0000 | `{{.*}}test-arm64ec.obj`:117CHECK-NEXT:   Error loading module stream 0.  The specified stream could not be loaded. Module stream not present118CHECK-NEXT: Mod 0001 | `{{.*}}test-x86_64.obj`:119CHECK-NEXT: Error loading module stream 1.  The specified stream could not be loaded. Module stream not present120CHECK-NEXT: Mod 0002 | `{{.*}}loadconfig-arm64ec.obj`:121CHECK-NEXT: Error loading module stream 2.  The specified stream could not be loaded. Module stream not present122CHECK-NEXT: Mod 0003 | `test.dll`:123CHECK-NEXT: Error loading module stream 3.  The specified stream could not be loaded. Module stream not present124CHECK-NEXT: Mod 0004 | `Import:test.dll`:125CHECK-NEXT:      4 | S_OBJNAME [size = 20] sig=0, `test.dll`126CHECK-NEXT:     24 | S_COMPILE3 [size = 40]127CHECK-NEXT:          machine = arm64ec, Ver = LLVM Linker, language = link128CHECK-NEXT:          frontend = 0.0.0.0, backend = 14.10.25019.0129CHECK-NEXT:          flags = none130CHECK-NEXT:     64 | S_THUNK32 [size = 32] `func`131CHECK-NEXT:          parent = 0, end = 96, next = 0132CHECK-NEXT:          kind = thunk, size = 6, addr = 0001:4096133CHECK-NEXT:     96 | S_END [size = 4]134CHECK-NEXT: Mod 0005 | `* Linker *`:135CHECK-NEXT:      4 | S_OBJNAME [size = 20] sig=0, `* Linker *`136CHECK-NEXT:     24 | S_COMPILE3 [size = 40]137CHECK-NEXT:          machine = arm64x, Ver = LLVM Linker, language = link138CHECK-NEXT:          frontend = 0.0.0.0, backend = 14.10.25019.0139CHECK-NEXT:          flags = none140CHECK-NEXT:     64 | S_ENVBLOCK [size = {{[0-9]+}}]141CHECK:         {{[0-9]+}} | S_SECTION [size = 28] `.text`142CHECK-NEXT:          length = 4102, alignment = 12, rva = 4096, section # = 1143CHECK-NEXT:          characteristics =144CHECK-NEXT:            code145CHECK-NEXT:            execute permissions146CHECK-NEXT:            read permissions147CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 24] `.text`148CHECK-NEXT:          length = 8, addr = 0001:0000149CHECK-NEXT:          characteristics =150CHECK-NEXT:            code151CHECK-NEXT:            execute permissions152CHECK-NEXT:            read permissions153CHECK-NEXT:    {{[0-9]+}} | S_SECTION [size = 28] `.rdata`154CHECK-NEXT:          length = 8208, alignment = 12, rva = 12288, section # = 2155CHECK-NEXT:          characteristics =156CHECK-NEXT:            initialized data157CHECK-NEXT:            read permissions158CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.idata$5`159CHECK-NEXT:          length = 16, addr = 0002:0000160CHECK-NEXT:          characteristics =161CHECK-NEXT:            initialized data162CHECK-NEXT:            read permissions163CHECK-NEXT:            write permissions164CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.00cfg`165CHECK-NEXT:          length = 456, addr = 0002:166CHECK-NEXT:          characteristics =167CHECK-NEXT:            initialized data168CHECK-NEXT:            read permissions169CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.idata$2`170CHECK-NEXT:          length = 40, addr = 0002:171CHECK-NEXT:          characteristics =172CHECK-NEXT:            initialized data173CHECK-NEXT:            read permissions174CHECK-NEXT:            write permissions175CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.idata$4`176CHECK-NEXT:          length = 16, addr = 0002:177CHECK-NEXT:          characteristics =178CHECK-NEXT:            initialized data179CHECK-NEXT:            read permissions180CHECK-NEXT:            write permissions181CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.idata$6`182CHECK-NEXT:          length = 8, addr = 0002:183CHECK-NEXT:          characteristics =184CHECK-NEXT:            initialized data185CHECK-NEXT:            read permissions186CHECK-NEXT:            write permissions187CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.idata$7`188CHECK-NEXT:          length = 9, addr = 0002:189CHECK-NEXT:          characteristics =190CHECK-NEXT:            initialized data191CHECK-NEXT:            read permissions192CHECK-NEXT:            write permissions193CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.idata$a`194CHECK-NEXT:          length = 16, addr = 0002:195CHECK-NEXT:          characteristics =196CHECK-NEXT:            initialized data197CHECK-NEXT:            read permissions198CHECK-NEXT:            write permissions199CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 28] `.idata$9`200CHECK-NEXT:          length = 16, addr = 0002:8192201CHECK-NEXT:          characteristics =202CHECK-NEXT:            initialized data203CHECK-NEXT:            read permissions204CHECK-NEXT:            write permissions205CHECK-NEXT:    {{[0-9]+}} | S_SECTION [size = 28] `.data`206CHECK-NEXT:          length = 124, alignment = 12, rva = 24576, section # = 3207CHECK-NEXT:          characteristics =208CHECK-NEXT:            initialized data209CHECK-NEXT:            read permissions210CHECK-NEXT:            write permissions211CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 24] `.data`212CHECK-NEXT:          length = 124, addr = 0003:0000213CHECK-NEXT:          characteristics =214CHECK-NEXT:            initialized data215CHECK-NEXT:            read permissions216CHECK-NEXT:            write permissions217CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 24] `.bss`218CHECK-NEXT:          length = 0, addr = 0003:0124219CHECK-NEXT:          characteristics =220CHECK-NEXT:            uninitialized data221CHECK-NEXT:            read permissions222CHECK-NEXT:            write permissions223CHECK-NEXT:    {{[0-9]+}} | S_SECTION [size = 28] `.a64xrm`224CHECK-NEXT:          length = 8, alignment = 12, rva = 28672, section # = 4225CHECK-NEXT:          characteristics =226CHECK-NEXT:            initialized data227CHECK-NEXT:            read permissions228CHECK-NEXT:    {{[0-9]+}} | S_SECTION [size = 28] `.test`229CHECK-NEXT:          length = 16, alignment = 12, rva = 32768, section # = 5230CHECK-NEXT:          characteristics =231CHECK-NEXT:            initialized data232CHECK-NEXT:            read permissions233CHECK-NEXT:    {{[0-9]+}} | S_COFFGROUP [size = 24] `.test`234CHECK-NEXT:          length = 16, addr = 0005:0000235CHECK-NEXT:          characteristics =236CHECK-NEXT:            initialized data237CHECK-NEXT:            read permissions238CHECK-NEXT:    {{[0-9]+}} | S_SECTION [size = 28] `.reloc`239CHECK-NEXT:          length = 32, alignment = 12, rva = 36864, section # = 6240CHECK-NEXT:          characteristics =241CHECK-NEXT:            initialized data242CHECK-NEXT:            discardable243CHECK-NEXT:            read permissions244 245#--- test-arm64ec.s246        .text247        .globl __icall_helper_arm64ec248        .p2align 2, 0x0249__icall_helper_arm64ec:250        mov w0, #0251        ret252 253        .section .test,"dr"254        .globl arm64ec_sym255arm64ec_sym:256        .rva __imp_func257        .rva __imp_aux_func258 259#--- test-x86_64.s260        .section .test,"dr"261        .globl x86_64_sym262x86_64_sym:263        .rva __imp_func264        .rva __imp_aux_func265 266#--- test.def267LIBRARY test.dll268EXPORTS269        func270