@@ -12,9 +12,9 @@ RUN: lld-link -machine:arm64ec -dll -noentry -out:out.dll loadconfig-arm64ec.obj
12
12
RUN: helper-mangled.obj test-arm64ec.lib test2-arm64ec.lib -delayload:test.dll -map
13
13
14
14
RUN: 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
18
18
19
19
RUN: llvm-objdump -d out.dll | FileCheck --check-prefix=DISASM %s
20
20
DISASM: 0000000180001000 <.text>:
@@ -25,16 +25,16 @@ DISASM-NEXT: 18000100c: d65f03c0 ret
25
25
DISASM-NEXT: 180001010: b0000030 adrp x16, 0x180006000
26
26
DISASM-NEXT: 180001014: f9400210 ldr x16, [x16]
27
27
DISASM-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]
30
30
DISASM-NEXT: 180001024: 9000000a adrp x10, 0x180001000 <.text>
31
31
DISASM-NEXT: 180001028: 9101414a add x10, x10, #0x50
32
32
DISASM-NEXT: 18000102c: 17fffff5 b 0x180001000 <.text>
33
33
DISASM-NEXT: 180001030: b0000030 adrp x16, 0x180006000
34
34
DISASM-NEXT: 180001034: f9400610 ldr x16, [x16, #0x8]
35
35
DISASM-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 ]
38
38
DISASM-NEXT: 180001044: 9000000a adrp x10, 0x180001000 <.text>
39
39
DISASM-NEXT: 180001048: 9101614a add x10, x10, #0x58
40
40
DISASM-NEXT: 18000104c: 17ffffed b 0x180001000 <.text>
@@ -43,13 +43,13 @@ DISASM-NEXT: 180001054: d65f03c0 ret
43
43
DISASM-NEXT: 180001058: 52800060 mov w0, #0x3 // =3
44
44
DISASM-NEXT: 18000105c: d65f03c0 ret
45
45
DISASM-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
47
47
DISASM-NEXT: ...
48
48
DISASM-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
51
51
DISASM-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
53
53
DISASM-NEXT: 180002029: e9 00 00 00 00 jmp 0x18000202e <.text+0x102e>
54
54
DISASM-NEXT: 18000202e: 51 pushq %rcx
55
55
DISASM-NEXT: 18000202f: 52 pushq %rdx
@@ -61,7 +61,7 @@ DISASM-NEXT: 18000203d: 66 0f 7f 4c 24 10 movdqa %xmm1, 0x10(%rsp)
61
61
DISASM-NEXT: 180002043: 66 0f 7f 54 24 20 movdqa %xmm2, 0x20(%rsp)
62
62
DISASM-NEXT: 180002049: 66 0f 7f 5c 24 30 movdqa %xmm3, 0x30(%rsp)
63
63
DISASM-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
65
65
DISASM-NEXT: 180002059: e8 aa ef ff ff callq 0x180001008 <.text+0x8>
66
66
DISASM-NEXT: 18000205e: 66 0f 6f 04 24 movdqa (%rsp), %xmm0
67
67
DISASM-NEXT: 180002063: 66 0f 6f 4c 24 10 movdqa 0x10(%rsp), %xmm1
@@ -77,15 +77,15 @@ DISASM-NEXT: 18000207f: ff e0 jmpq *%rax
77
77
RUN: llvm-readobj --coff-load-config out.dll | FileCheck --check-prefix=LOADCFG %s
78
78
LOADCFG: CHPEMetadata [
79
79
LOADCFG: AuxiliaryDelayloadIAT: 0x6000
80
- LOADCFG-NEXT: AuxiliaryDelayloadIATCopy: 0x4000
80
+ LOADCFG-NEXT: AuxiliaryDelayloadIATCopy: 0x4078
81
81
82
82
RUN: llvm-readobj --coff-imports out.dll | FileCheck --check-prefix=IMPORTS %s
83
83
IMPORTS: DelayImport {
84
84
IMPORTS-NEXT: Name: test.dll
85
85
IMPORTS-NEXT: Attributes: 0x1
86
86
IMPORTS-NEXT: ModuleHandle: 0x7080
87
- IMPORTS-NEXT: ImportAddressTable: 0x7088
88
- IMPORTS-NEXT: ImportNameTable: 0x4240
87
+ IMPORTS-NEXT: ImportAddressTable: 0x9000
88
+ IMPORTS-NEXT: ImportNameTable: 0x4040
89
89
IMPORTS-NEXT: BoundDelayImportTable: 0x0
90
90
IMPORTS-NEXT: UnloadDelayImportTable: 0x0
91
91
IMPORTS-NEXT: Import {
@@ -109,29 +109,29 @@ MAP-NEXT: 0001:00000058 func2_exit_thunk 0000000180001058 t
109
109
MAP-NEXT: 0001:00001000 func 0000000180002000 test-arm64ec:test.dll
110
110
MAP-NEXT: 0001:00001010 func2 0000000180002010 test-arm64ec:test.dll
111
111
MAP-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
115
115
MAP: 0002:00003000 __imp_func 0000000180006000 test-arm64ec:test.dll
116
116
MAP-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
119
119
120
120
RUN: 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
123
123
RDATA: 0x180006000 1c100080 01000000 3c100080 01000000
124
124
RDATA-NEXT: 0x180006010 00000000 00000000
125
125
126
126
RUN: llvm-readobj --coff-basereloc out.dll | FileCheck --check-prefix=RELOC %s
127
127
RELOC: BaseReloc [
128
128
RELOC-NEXT: Entry {
129
129
RELOC-NEXT: Type: DIR64
130
- RELOC-NEXT: Address: 0x4000
130
+ RELOC-NEXT: Address: 0x4078
131
131
RELOC-NEXT: }
132
132
RELOC-NEXT: Entry {
133
133
RELOC-NEXT: Type: DIR64
134
- RELOC-NEXT: Address: 0x4008
134
+ RELOC-NEXT: Address: 0x4080
135
135
RELOC-NEXT: }
136
136
RELOC: Address: 0x6000
137
137
RELOC-NEXT: }
@@ -141,7 +141,7 @@ RELOC-NEXT: Address: 0x6008
141
141
RELOC-NEXT: }
142
142
143
143
RUN: llvm-readobj --hex-dump=.pdata out.dll | FileCheck --check-prefix=PDATA %s
144
- PDATA: 0x180008000 2e200000 81200000 18400000
144
+ PDATA: 0x180008000 2e200000 81200000 90400000
145
145
146
146
Verify that a demangled version of __delayLoadHelper2 can be used.
147
147
0 commit comments