brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.2 KiB · 1c2e7e7 Raw
161 lines · plain
1REQUIRES: aarch64, x862RUN: split-file %s %t.dir && cd %t.dir3 4RUN: llvm-mc -filetype=obj -triple=arm64ec-windows arm64ec-dllmain.s -o arm64ec-dllmain.obj5RUN: llvm-mc -filetype=obj -triple=aarch64-windows arm64-dllmain.s -o arm64-dllmain.obj6RUN: llvm-mc -filetype=obj -triple=x86_64-windows amd64-dllmain.s -o amd64-dllmain.obj7RUN: llvm-mc -filetype=obj -triple=arm64ec-windows arm64ec-func.s -o arm64ec-func.obj8RUN: llvm-mc -filetype=obj -triple=aarch64-windows arm64-func.s -o arm64-func.obj9RUN: llvm-mc -filetype=obj -triple=arm64ec-windows arm64-drectve.s -o arm64ec-drectve.obj10RUN: llvm-mc -filetype=obj -triple=aarch64-windows arm64-drectve.s -o arm64-drectve.obj11RUN: llvm-mc -filetype=obj -triple=arm64ec-windows %S/Inputs/loadconfig-arm64ec.s -o loadconfig-arm64ec.obj12RUN: llvm-mc -filetype=obj -triple=aarch64-windows %S/Inputs/loadconfig-arm64.s -o loadconfig-arm64.obj13RUN: llvm-mc -filetype=obj -triple=arm64ec-windows loadconfig-min.s -o loadconfig-min.obj14 15RUN: lld-link -machine:arm64x -dll -out:out.dll arm64ec-dllmain.obj arm64-dllmain.obj \16RUN:          loadconfig-arm64.obj loadconfig-arm64ec.obj17 18RUN: llvm-objdump -d out.dll | FileCheck --check-prefix=DISASM %s19DISASM: Disassembly of section .text:20DISASM-EMPTY:21DISASM-NEXT: 0000000180001000 <.text>:22DISASM-NEXT: 180001000: 52800020     mov     w0, #0x1                // =123DISASM-NEXT: 180001004: d65f03c0     ret24DISASM-NEXT:                 ...25DISASM-NEXT: 180002000: 52800040     mov     w0, #0x2                // =226DISASM-NEXT: 180002004: d65f03c0     ret27DISASM-EMPTY:28DISASM-NEXT: Disassembly of section .hexpthk:29DISASM-EMPTY:30DISASM-NEXT: 0000000180003000 <.hexpthk>:31DISASM-NEXT: 180003000: 48 8b c4                     movq    %rsp, %rax32DISASM-NEXT: 180003003: 48 89 58 20                  movq    %rbx, 0x20(%rax)33DISASM-NEXT: 180003007: 55                           pushq   %rbp34DISASM-NEXT: 180003008: 5d                           popq    %rbp35DISASM-NEXT: 180003009: e9 f2 ef ff ff               jmp     0x180002000 <.text+0x1000>36DISASM-NEXT: 18000300e: cc                           int337DISASM-NEXT: 18000300f: cc                           int338 39RUN: llvm-readobj --headers --coff-load-config out.dll | FileCheck --check-prefix=READOBJ %s40READOBJ: AddressOfEntryPoint: 0x100041READOBJ: AlternateEntryPoint: 0x200042READOBJ: HybridObject {43READOBJ:   AddressOfEntryPoint: 0x300044READOBJ:   AlternateEntryPoint: 0x100045READOBJ: }46 47RUN: lld-link -machine:arm64x -dll -out:out2.dll arm64ec-func.obj arm64-func.obj \48RUN:          arm64ec-drectve.obj loadconfig-arm64.obj loadconfig-arm64ec.obj49RUN: llvm-objdump -d out2.dll | FileCheck --check-prefix=DISASM %s50RUN: llvm-readobj --headers --coff-load-config out2.dll | FileCheck --check-prefix=READOBJ %s51 52RUN: lld-link -machine:arm64x -dll -out:out3.dll arm64ec-func.obj arm64-func.obj \53RUN:          arm64-drectve.obj loadconfig-arm64.obj loadconfig-arm64ec.obj54RUN: llvm-objdump -d out3.dll | FileCheck --check-prefix=DISASM %s55RUN: llvm-readobj --headers --coff-load-config out3.dll | FileCheck --check-prefix=READOBJ %s56 57RUN: lld-link -machine:arm64x -dll -out:out4.dll arm64ec-func.obj arm64-func.obj \58RUN:          loadconfig-arm64.obj loadconfig-arm64ec.obj -entry:func59RUN: llvm-objdump -d out4.dll | FileCheck --check-prefix=DISASM %s60RUN: llvm-readobj --headers --coff-load-config out4.dll | FileCheck --check-prefix=READOBJ %s61 62RUN: lld-link -machine:arm64x -dll -out:out-x86.dll amd64-dllmain.obj arm64-dllmain.obj \63RUN:          loadconfig-arm64.obj loadconfig-arm64ec.obj64RUN: llvm-readobj --headers --coff-load-config out-x86.dll | FileCheck --check-prefix=READOBJ-X86 %s65READOBJ-X86: AddressOfEntryPoint: 0x100066READOBJ-X86: AlternateEntryPoint: 0x200067READOBJ-X86: HybridObject {68READOBJ-X86:   AddressOfEntryPoint: 0x200069READOBJ-X86:   AlternateEntryPoint: 0x100070READOBJ-X86: }71 72RUN: lld-link -machine:arm64x -dll -out:out-warn.dll arm64ec-dllmain.obj arm64-dllmain.obj \73RUN:          loadconfig-arm64.obj loadconfig-min.obj 2>&1 | FileCheck --check-prefix=WARN %s74WARN: lld-link: warning: '__chpe_metadata' is missing for ARM64X target75 76#--- arm64-dllmain.s77    .section .text,"xr",discard,_DllMainCRTStartup78    .globl _DllMainCRTStartup79    .p2align 280_DllMainCRTStartup:81    mov w0, #182    ret83 84#--- arm64ec-dllmain.s85    .section .text,"xr",discard,_DllMainCRTStartup86    .globl _DllMainCRTStartup87    .p2align 288_DllMainCRTStartup:89    mov w0, #290    ret91 92#--- arm64-func.s93    .section .text,"xr",discard,func94    .globl func95    .p2align 296func:97    mov w0, #198    ret99 100#--- arm64ec-func.s101    .section .text,"xr",discard,func102    .globl func103    .p2align 2104func:105    mov w0, #2106    ret107 108#--- amd64-dllmain.s109    .section .text,"xr",discard,_DllMainCRTStartup110    .globl _DllMainCRTStartup111    .p2align 2112_DllMainCRTStartup:113    movl $3, %eax114    retq115 116#--- arm64-drectve.s117.section .drectve118    .ascii "-entry:func"119 120#--- loadconfig-min.s121        .section .rdata,"dr"122        .globl _load_config_used123        .p2align 3, 0124_load_config_used:125        .word 0x140126        .fill 0xc4,1,0127        .xword chpe_metadata128        .fill 0x70,1,0129 130        .p2align 3, 0131chpe_metadata:132        .word 2133        .rva __hybrid_code_map134        .word __hybrid_code_map_count135        .rva __x64_code_ranges_to_entry_points136        .rva __arm64x_redirection_metadata137        .word 0 // __os_arm64x_dispatch_call_no_redirect138        .word 0 // __os_arm64x_dispatch_ret139        .word 0 // __os_arm64x_check_call140        .word 0 // __os_arm64x_check_icall141        .word 0 // __os_arm64x_check_icall_cfg142        .rva __arm64x_native_entrypoint143        .rva __hybrid_auxiliary_iat144        .word __x64_code_ranges_to_entry_points_count145        .word __arm64x_redirection_metadata_count146        .word 0 // __os_arm64x_get_x64_information147        .word 0 // __os_arm64x_set_x64_information148        .rva __arm64x_extra_rfe_table149        .word __arm64x_extra_rfe_table_size150        .word 0 // __os_arm64x_dispatch_fptr151        .rva __hybrid_auxiliary_iat_copy152        .rva __hybrid_auxiliary_delayload_iat153        .rva __hybrid_auxiliary_delayload_iat_copy154        .word __hybrid_image_info_bitfield155        .word 0 // __os_arm64x_helper3156        .word 0 // __os_arm64x_helper4157        .word 0 // __os_arm64x_helper5158        .word 0 // __os_arm64x_helper6159        .word 0 // __os_arm64x_helper7160        .word 0 // __os_arm64x_helper8161