@@ -12,9 +12,9 @@ RUN: lld-link -machine:arm64ec -dll -noentry -out:out.dll loadconfig-arm64ec.obj
1212RUN: helper-mangled.obj test-arm64ec.lib test2-arm64ec.lib -delayload:test.dll -map
1313
1414RUN: llvm-readobj --hex-dump=.test out.dll | FileCheck --check-prefix=TESTSEC %s
15- TESTSEC: 0x18000a000 00600000 88700000 00200000 10100000
16- TESTSEC-NEXT: 0x18000a010 08600000 90700000 10200000 30100000
17- TESTSEC-NEXT: 0x18000a020 1c100000 3c100000 00300000
15+ TESTSEC: 0x18000b000 00600000 00900000 00200000 10100000
16+ TESTSEC-NEXT: 0x18000b010 08600000 08900000 10200000 30100000
17+ TESTSEC-NEXT: 0x18000b020 1c100000 3c100000 00300000
1818
1919RUN: llvm-objdump -d out.dll | FileCheck --check-prefix=DISASM %s
2020DISASM: 0000000180001000 <.text>:
@@ -25,16 +25,16 @@ DISASM-NEXT: 18000100c: d65f03c0 ret
2525DISASM-NEXT: 180001010: b0000030 adrp x16, 0x180006000
2626DISASM-NEXT: 180001014: f9400210 ldr x16, [x16]
2727DISASM-NEXT: 180001018: d61f0200 br x16
28- DISASM-NEXT: 18000101c: d000002b adrp x11, 0x180007000
29- DISASM-NEXT: 180001020: f940456b ldr x11, [x11, #0x88 ]
28+ DISASM-NEXT: 18000101c: 9000004b adrp x11, 0x180009000
29+ DISASM-NEXT: 180001020: f940016b ldr x11, [x11]
3030DISASM-NEXT: 180001024: 9000000a adrp x10, 0x180001000 <.text>
3131DISASM-NEXT: 180001028: 9101414a add x10, x10, #0x50
3232DISASM-NEXT: 18000102c: 17fffff5 b 0x180001000 <.text>
3333DISASM-NEXT: 180001030: b0000030 adrp x16, 0x180006000
3434DISASM-NEXT: 180001034: f9400610 ldr x16, [x16, #0x8]
3535DISASM-NEXT: 180001038: d61f0200 br x16
36- DISASM-NEXT: 18000103c: d000002b adrp x11, 0x180007000
37- DISASM-NEXT: 180001040: f940496b ldr x11, [x11, #0x90 ]
36+ DISASM-NEXT: 18000103c: 9000004b adrp x11, 0x180009000
37+ DISASM-NEXT: 180001040: f940056b ldr x11, [x11, #0x8 ]
3838DISASM-NEXT: 180001044: 9000000a adrp x10, 0x180001000 <.text>
3939DISASM-NEXT: 180001048: 9101614a add x10, x10, #0x58
4040DISASM-NEXT: 18000104c: 17ffffed b 0x180001000 <.text>
@@ -43,13 +43,13 @@ DISASM-NEXT: 180001054: d65f03c0 ret
4343DISASM-NEXT: 180001058: 52800060 mov w0, #0x3 // =3
4444DISASM-NEXT: 18000105c: d65f03c0 ret
4545DISASM-NEXT: ...
46- DISASM-NEXT: 180002000: ff 25 82 50 00 00 jmpq *0x5082 (%rip) # 0x180007088
46+ DISASM-NEXT: 180002000: ff 25 fa 6f 00 00 jmpq *0x6ffa (%rip) # 0x180009000
4747DISASM-NEXT: ...
4848DISASM-NEXT: 18000200e: 00 00 addb %al, (%rax)
49- DISASM-NEXT: 180002010: ff 25 7a 50 00 00 jmpq *0x507a (%rip) # 0x180007090
50- DISASM-NEXT: 180002016: 48 8d 05 6b 50 00 00 leaq 0x506b (%rip), %rax # 0x180007088
49+ DISASM-NEXT: 180002010: ff 25 f2 6f 00 00 jmpq *0x6ff2 (%rip) # 0x180009008
50+ DISASM-NEXT: 180002016: 48 8d 05 e3 6f 00 00 leaq 0x6fe3 (%rip), %rax # 0x180009000
5151DISASM-NEXT: 18000201d: e9 0c 00 00 00 jmp 0x18000202e <.text+0x102e>
52- DISASM-NEXT: 180002022: 48 8d 05 67 50 00 00 leaq 0x5067 (%rip), %rax # 0x180007090
52+ DISASM-NEXT: 180002022: 48 8d 05 df 6f 00 00 leaq 0x6fdf (%rip), %rax # 0x180009008
5353DISASM-NEXT: 180002029: e9 00 00 00 00 jmp 0x18000202e <.text+0x102e>
5454DISASM-NEXT: 18000202e: 51 pushq %rcx
5555DISASM-NEXT: 18000202f: 52 pushq %rdx
@@ -61,7 +61,7 @@ DISASM-NEXT: 18000203d: 66 0f 7f 4c 24 10 movdqa %xmm1, 0x10(%rsp)
6161DISASM-NEXT: 180002043: 66 0f 7f 54 24 20 movdqa %xmm2, 0x20(%rsp)
6262DISASM-NEXT: 180002049: 66 0f 7f 5c 24 30 movdqa %xmm3, 0x30(%rsp)
6363DISASM-NEXT: 18000204f: 48 8b d0 movq %rax, %rdx
64- DISASM-NEXT: 180002052: 48 8d 0d a7 21 00 00 leaq 0x21a7 (%rip), %rcx # 0x180004200
64+ DISASM-NEXT: 180002052: 48 8d 0d a7 1f 00 00 leaq 0x1fa7 (%rip), %rcx # 0x180004000
6565DISASM-NEXT: 180002059: e8 aa ef ff ff callq 0x180001008 <.text+0x8>
6666DISASM-NEXT: 18000205e: 66 0f 6f 04 24 movdqa (%rsp), %xmm0
6767DISASM-NEXT: 180002063: 66 0f 6f 4c 24 10 movdqa 0x10(%rsp), %xmm1
@@ -77,15 +77,15 @@ DISASM-NEXT: 18000207f: ff e0 jmpq *%rax
7777RUN: llvm-readobj --coff-load-config out.dll | FileCheck --check-prefix=LOADCFG %s
7878LOADCFG: CHPEMetadata [
7979LOADCFG: AuxiliaryDelayloadIAT: 0x6000
80- LOADCFG-NEXT: AuxiliaryDelayloadIATCopy: 0x4000
80+ LOADCFG-NEXT: AuxiliaryDelayloadIATCopy: 0x4078
8181
8282RUN: llvm-readobj --coff-imports out.dll | FileCheck --check-prefix=IMPORTS %s
8383IMPORTS: DelayImport {
8484IMPORTS-NEXT: Name: test.dll
8585IMPORTS-NEXT: Attributes: 0x1
8686IMPORTS-NEXT: ModuleHandle: 0x7080
87- IMPORTS-NEXT: ImportAddressTable: 0x7088
88- IMPORTS-NEXT: ImportNameTable: 0x4240
87+ IMPORTS-NEXT: ImportAddressTable: 0x9000
88+ IMPORTS-NEXT: ImportNameTable: 0x4040
8989IMPORTS-NEXT: BoundDelayImportTable: 0x0
9090IMPORTS-NEXT: UnloadDelayImportTable: 0x0
9191IMPORTS-NEXT: Import {
@@ -109,29 +109,29 @@ MAP-NEXT: 0001:00000058 func2_exit_thunk 0000000180001058 t
109109MAP-NEXT: 0001:00001000 func 0000000180002000 test-arm64ec:test.dll
110110MAP-NEXT: 0001:00001010 func2 0000000180002010 test-arm64ec:test.dll
111111MAP-NEXT: 0002:00000000 __imp_data 0000000180003000 test2-arm64ec:test2.dll
112- MAP-NEXT: 0000:00000000 __hybrid_auxiliary_delayload_iat_copy 0000000180004000 <linker-defined>
113- MAP-NEXT: 0002:00001000 __auximpcopy_func 0000000180004000 test-arm64ec:test.dll
114- MAP-NEXT: 0002:00001008 __auximpcopy_func2 0000000180004008 test-arm64ec:test.dll
112+ MAP-NEXT: 0000:00000000 __hybrid_auxiliary_delayload_iat_copy 0000000180004078 <linker-defined>
113+ MAP-NEXT: 0002:00001078 __auximpcopy_func 0000000180004078 test-arm64ec:test.dll
114+ MAP-NEXT: 0002:00001080 __auximpcopy_func2 0000000180004080 test-arm64ec:test.dll
115115MAP: 0002:00003000 __imp_func 0000000180006000 test-arm64ec:test.dll
116116MAP-NEXT: 0002:00003008 __imp_func2 0000000180006008 test-arm64ec:test.dll
117- MAP: 0003:00000088 __imp_aux_func 0000000180007088 test-arm64ec:test.dll
118- MAP-NEXT: 0003:00000090 __imp_aux_func2 0000000180007090 test-arm64ec:test.dll
117+ MAP: 0005:00000000 __imp_aux_func 0000000180009000 test-arm64ec:test.dll
118+ MAP-NEXT: 0005:00000008 __imp_aux_func2 0000000180009008 test-arm64ec:test.dll
119119
120120RUN: llvm-readobj --hex-dump=.rdata out.dll | FileCheck --check-prefix=RDATA %s
121- RDATA: 0x180004000 1c100080 01000000 3c100080 01000000
122- RDATA-NEXT: 0x180004010 00000000 00000000
121+ RDATA: 0x180004070 {{[0-9a-f]{8} [0-9a-f]{8} }}1c100080 01000000
122+ RDATA-NEXT: 0x180004080 3c100080 01000000 00000000 00000000
123123RDATA: 0x180006000 1c100080 01000000 3c100080 01000000
124124RDATA-NEXT: 0x180006010 00000000 00000000
125125
126126RUN: llvm-readobj --coff-basereloc out.dll | FileCheck --check-prefix=RELOC %s
127127RELOC: BaseReloc [
128128RELOC-NEXT: Entry {
129129RELOC-NEXT: Type: DIR64
130- RELOC-NEXT: Address: 0x4000
130+ RELOC-NEXT: Address: 0x4078
131131RELOC-NEXT: }
132132RELOC-NEXT: Entry {
133133RELOC-NEXT: Type: DIR64
134- RELOC-NEXT: Address: 0x4008
134+ RELOC-NEXT: Address: 0x4080
135135RELOC-NEXT: }
136136RELOC: Address: 0x6000
137137RELOC-NEXT: }
@@ -141,7 +141,7 @@ RELOC-NEXT: Address: 0x6008
141141RELOC-NEXT: }
142142
143143RUN: llvm-readobj --hex-dump=.pdata out.dll | FileCheck --check-prefix=PDATA %s
144- PDATA: 0x180008000 2e200000 81200000 18400000
144+ PDATA: 0x180008000 2e200000 81200000 90400000
145145
146146Verify that a demangled version of __delayLoadHelper2 can be used.
147147
0 commit comments