Skip to content

Commit eb374f8

Browse files
author
git apple-llvm automerger
committed
Merge commit 'bd9bc536b4ac' from llvm.org/release/21.x into stable/21.x
2 parents f3f7b93 + bd9bc53 commit eb374f8

File tree

3 files changed

+88
-80
lines changed

3 files changed

+88
-80
lines changed

lld/COFF/DLL.cpp

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -320,32 +320,34 @@ static const uint8_t thunkARM64[] = {
320320
};
321321

322322
static const uint8_t tailMergeARM64[] = {
323-
0xfd, 0x7b, 0xb3, 0xa9, // stp x29, x30, [sp, #-208]!
323+
0xfd, 0x7b, 0xb2, 0xa9, // stp x29, x30, [sp, #-224]!
324324
0xfd, 0x03, 0x00, 0x91, // mov x29, sp
325325
0xe0, 0x07, 0x01, 0xa9, // stp x0, x1, [sp, #16]
326326
0xe2, 0x0f, 0x02, 0xa9, // stp x2, x3, [sp, #32]
327327
0xe4, 0x17, 0x03, 0xa9, // stp x4, x5, [sp, #48]
328328
0xe6, 0x1f, 0x04, 0xa9, // stp x6, x7, [sp, #64]
329-
0xe0, 0x87, 0x02, 0xad, // stp q0, q1, [sp, #80]
330-
0xe2, 0x8f, 0x03, 0xad, // stp q2, q3, [sp, #112]
331-
0xe4, 0x97, 0x04, 0xad, // stp q4, q5, [sp, #144]
332-
0xe6, 0x9f, 0x05, 0xad, // stp q6, q7, [sp, #176]
329+
0xe8, 0x2b, 0x00, 0xf9, // str x8, [sp, #80]
330+
0xe0, 0x07, 0x03, 0xad, // stp q0, q1, [sp, #96]
331+
0xe2, 0x0f, 0x04, 0xad, // stp q2, q3, [sp, #128]
332+
0xe4, 0x17, 0x05, 0xad, // stp q4, q5, [sp, #160]
333+
0xe6, 0x1f, 0x06, 0xad, // stp q6, q7, [sp, #192]
333334
0xe1, 0x03, 0x11, 0xaa, // mov x1, x17
334335
0x00, 0x00, 0x00, 0x90, // adrp x0, #0 DELAY_IMPORT_DESCRIPTOR
335336
0x00, 0x00, 0x00, 0x91, // add x0, x0, #0 :lo12:DELAY_IMPORT_DESCRIPTOR
336337
0x02, 0x00, 0x00, 0x90, // adrp x2, #0 __delayLoadHelper2
337338
0x42, 0x00, 0x00, 0x91, // add x2, x2, #0 :lo12:__delayLoadHelper2
338339
0x40, 0x00, 0x3f, 0xd6, // blr x2
339340
0xf0, 0x03, 0x00, 0xaa, // mov x16, x0
340-
0xe6, 0x9f, 0x45, 0xad, // ldp q6, q7, [sp, #176]
341-
0xe4, 0x97, 0x44, 0xad, // ldp q4, q5, [sp, #144]
342-
0xe2, 0x8f, 0x43, 0xad, // ldp q2, q3, [sp, #112]
343-
0xe0, 0x87, 0x42, 0xad, // ldp q0, q1, [sp, #80]
341+
0xe6, 0x1f, 0x46, 0xad, // ldp q6, q7, [sp, #192]
342+
0xe4, 0x17, 0x45, 0xad, // ldp q4, q5, [sp, #160]
343+
0xe2, 0x0f, 0x44, 0xad, // ldp q2, q3, [sp, #128]
344+
0xe0, 0x07, 0x43, 0xad, // ldp q0, q1, [sp, #96]
345+
0xe8, 0x2b, 0x40, 0xf9, // ldr x8, [sp, #80]
344346
0xe6, 0x1f, 0x44, 0xa9, // ldp x6, x7, [sp, #64]
345347
0xe4, 0x17, 0x43, 0xa9, // ldp x4, x5, [sp, #48]
346348
0xe2, 0x0f, 0x42, 0xa9, // ldp x2, x3, [sp, #32]
347349
0xe0, 0x07, 0x41, 0xa9, // ldp x0, x1, [sp, #16]
348-
0xfd, 0x7b, 0xcd, 0xa8, // ldp x29, x30, [sp], #208
350+
0xfd, 0x7b, 0xce, 0xa8, // ldp x29, x30, [sp], #224
349351
0x00, 0x02, 0x1f, 0xd6, // br x16
350352
};
351353

@@ -556,11 +558,11 @@ class TailMergeChunkARM64 : public NonSectionCodeChunk {
556558

557559
void writeTo(uint8_t *buf) const override {
558560
memcpy(buf, tailMergeARM64, sizeof(tailMergeARM64));
559-
applyArm64Addr(buf + 44, desc->getRVA(), rva + 44, 12);
560-
applyArm64Imm(buf + 48, desc->getRVA() & 0xfff, 0);
561+
applyArm64Addr(buf + 48, desc->getRVA(), rva + 48, 12);
562+
applyArm64Imm(buf + 52, desc->getRVA() & 0xfff, 0);
561563
if (helper) {
562-
applyArm64Addr(buf + 52, helper->getRVA(), rva + 52, 12);
563-
applyArm64Imm(buf + 56, helper->getRVA() & 0xfff, 0);
564+
applyArm64Addr(buf + 56, helper->getRVA(), rva + 56, 12);
565+
applyArm64Imm(buf + 60, helper->getRVA() & 0xfff, 0);
564566
}
565567
}
566568

lld/test/COFF/arm64-delayimport.yaml

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,35 @@
88
# DISASM: 140001014: d0000011 adrp x17, 0x140003000
99
# DISASM: 140001018: 91002231 add x17, x17, #8
1010
# DISASM: 14000101c: 14000001 b 0x140001020 <.text+0x20>
11-
# DISASM: 140001020: a9b37bfd stp x29, x30, [sp, #-208]!
11+
# DISASM: 140001020: a9b27bfd stp x29, x30, [sp, #-224]!
1212
# DISASM: 140001024: 910003fd mov x29, sp
1313
# DISASM: 140001028: a90107e0 stp x0, x1, [sp, #16]
1414
# DISASM: 14000102c: a9020fe2 stp x2, x3, [sp, #32]
1515
# DISASM: 140001030: a90317e4 stp x4, x5, [sp, #48]
1616
# DISASM: 140001034: a9041fe6 stp x6, x7, [sp, #64]
17-
# DISASM: 140001038: ad0287e0 stp q0, q1, [sp, #80]
18-
# DISASM: 14000103c: ad038fe2 stp q2, q3, [sp, #112]
19-
# DISASM: 140001040: ad0497e4 stp q4, q5, [sp, #144]
20-
# DISASM: 140001044: ad059fe6 stp q6, q7, [sp, #176]
21-
# DISASM: 140001048: aa1103e1 mov x1, x17
22-
# DISASM: 14000104c: b0000000 adrp x0, 0x140002000
23-
# DISASM: 140001050: 91000000 add x0, x0, #0
24-
# DISASM: 140001054: 90000002 adrp x2, 0x140001000 <.text>
25-
# DISASM: 140001058: 91000042 add x2, x2, #0
26-
# DISASM: 14000105c: d63f0040 blr x2
27-
# DISASM: 140001060: aa0003f0 mov x16, x0
28-
# DISASM: 140001064: ad459fe6 ldp q6, q7, [sp, #176]
29-
# DISASM: 140001068: ad4497e4 ldp q4, q5, [sp, #144]
30-
# DISASM: 14000106c: ad438fe2 ldp q2, q3, [sp, #112]
31-
# DISASM: 140001070: ad4287e0 ldp q0, q1, [sp, #80]
32-
# DISASM: 140001074: a9441fe6 ldp x6, x7, [sp, #64]
33-
# DISASM: 140001078: a94317e4 ldp x4, x5, [sp, #48]
34-
# DISASM: 14000107c: a9420fe2 ldp x2, x3, [sp, #32]
35-
# DISASM: 140001080: a94107e0 ldp x0, x1, [sp, #16]
36-
# DISASM: 140001084: a8cd7bfd ldp x29, x30, [sp], #208
37-
# DISASM: 140001088: d61f0200 br x16
17+
# DISASM: 140001038: f9002be8 str x8, [sp, #80]
18+
# DISASM: 14000103c: ad0307e0 stp q0, q1, [sp, #96]
19+
# DISASM: 140001040: ad040fe2 stp q2, q3, [sp, #128]
20+
# DISASM: 140001044: ad0517e4 stp q4, q5, [sp, #160]
21+
# DISASM: 140001048: ad061fe6 stp q6, q7, [sp, #192]
22+
# DISASM: 14000104c: aa1103e1 mov x1, x17
23+
# DISASM: 140001050: b0000000 adrp x0, 0x140002000
24+
# DISASM: 140001054: 91000000 add x0, x0, #0
25+
# DISASM: 140001058: 90000002 adrp x2, 0x140001000 <.text>
26+
# DISASM: 14000105c: 91000042 add x2, x2, #0
27+
# DISASM: 140001060: d63f0040 blr x2
28+
# DISASM: 140001064: aa0003f0 mov x16, x0
29+
# DISASM: 140001068: ad461fe6 ldp q6, q7, [sp, #192]
30+
# DISASM: 14000106c: ad4517e4 ldp q4, q5, [sp, #160]
31+
# DISASM: 140001070: ad440fe2 ldp q2, q3, [sp, #128]
32+
# DISASM: 140001074: ad4307e0 ldp q0, q1, [sp, #96]
33+
# DISASM: 140001078: f9402be8 ldr x8, [sp, #80]
34+
# DISASM: 14000107c: a9441fe6 ldp x6, x7, [sp, #64]
35+
# DISASM: 140001080: a94317e4 ldp x4, x5, [sp, #48]
36+
# DISASM: 140001084: a9420fe2 ldp x2, x3, [sp, #32]
37+
# DISASM: 140001088: a94107e0 ldp x0, x1, [sp, #16]
38+
# DISASM: 14000108c: a8ce7bfd ldp x29, x30, [sp], #224
39+
# DISASM: 140001090: d61f0200 br x16
3840

3941
# IMPORTS: Format: COFF-ARM64
4042
# IMPORTS: Arch: aarch64

lld/test/COFF/arm64x-delayimport.test

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -61,33 +61,35 @@ DISASM-NEXT: 180001010: d61f0200 br x16
6161
DISASM-NEXT: 180001014: b0000031 adrp x17, 0x180006000
6262
DISASM-NEXT: 180001018: 91022231 add x17, x17, #0x88
6363
DISASM-NEXT: 18000101c: 14000001 b 0x180001020 <.text+0x20>
64-
DISASM-NEXT: 180001020: a9b37bfd stp x29, x30, [sp, #-0xd0]!
64+
DISASM-NEXT: 180001020: a9b27bfd stp x29, x30, [sp, #-0xe0]!
6565
DISASM-NEXT: 180001024: 910003fd mov x29, sp
6666
DISASM-NEXT: 180001028: a90107e0 stp x0, x1, [sp, #0x10]
6767
DISASM-NEXT: 18000102c: a9020fe2 stp x2, x3, [sp, #0x20]
6868
DISASM-NEXT: 180001030: a90317e4 stp x4, x5, [sp, #0x30]
6969
DISASM-NEXT: 180001034: a9041fe6 stp x6, x7, [sp, #0x40]
70-
DISASM-NEXT: 180001038: ad0287e0 stp q0, q1, [sp, #0x50]
71-
DISASM-NEXT: 18000103c: ad038fe2 stp q2, q3, [sp, #0x70]
72-
DISASM-NEXT: 180001040: ad0497e4 stp q4, q5, [sp, #0x90]
73-
DISASM-NEXT: 180001044: ad059fe6 stp q6, q7, [sp, #0xb0]
74-
DISASM-NEXT: 180001048: aa1103e1 mov x1, x17
75-
DISASM-NEXT: 18000104c: f0000000 adrp x0, 0x180004000
76-
DISASM-NEXT: 180001050: 910d2000 add x0, x0, #0x348
77-
DISASM-NEXT: 180001054: 90000002 adrp x2, 0x180001000 <.text>
78-
DISASM-NEXT: 180001058: 91000042 add x2, x2, #0x0
79-
DISASM-NEXT: 18000105c: d63f0040 blr x2
80-
DISASM-NEXT: 180001060: aa0003f0 mov x16, x0
81-
DISASM-NEXT: 180001064: ad459fe6 ldp q6, q7, [sp, #0xb0]
82-
DISASM-NEXT: 180001068: ad4497e4 ldp q4, q5, [sp, #0x90]
83-
DISASM-NEXT: 18000106c: ad438fe2 ldp q2, q3, [sp, #0x70]
84-
DISASM-NEXT: 180001070: ad4287e0 ldp q0, q1, [sp, #0x50]
85-
DISASM-NEXT: 180001074: a9441fe6 ldp x6, x7, [sp, #0x40]
86-
DISASM-NEXT: 180001078: a94317e4 ldp x4, x5, [sp, #0x30]
87-
DISASM-NEXT: 18000107c: a9420fe2 ldp x2, x3, [sp, #0x20]
88-
DISASM-NEXT: 180001080: a94107e0 ldp x0, x1, [sp, #0x10]
89-
DISASM-NEXT: 180001084: a8cd7bfd ldp x29, x30, [sp], #0xd0
90-
DISASM-NEXT: 180001088: d61f0200 br x16
70+
DISASM-NEXT: 180001038: f9002be8 str x8, [sp, #0x50]
71+
DISASM-NEXT: 18000103c: ad0307e0 stp q0, q1, [sp, #0x60]
72+
DISASM-NEXT: 180001040: ad040fe2 stp q2, q3, [sp, #0x80]
73+
DISASM-NEXT: 180001044: ad0517e4 stp q4, q5, [sp, #0xa0]
74+
DISASM-NEXT: 180001048: ad061fe6 stp q6, q7, [sp, #0xc0]
75+
DISASM-NEXT: 18000104c: aa1103e1 mov x1, x17
76+
DISASM-NEXT: 180001050: f0000000 adrp x0, 0x180004000
77+
DISASM-NEXT: 180001054: 910d2000 add x0, x0, #0x348
78+
DISASM-NEXT: 180001058: 90000002 adrp x2, 0x180001000 <.text>
79+
DISASM-NEXT: 18000105c: 91000042 add x2, x2, #0x0
80+
DISASM-NEXT: 180001060: d63f0040 blr x2
81+
DISASM-NEXT: 180001064: aa0003f0 mov x16, x0
82+
DISASM-NEXT: 180001068: ad461fe6 ldp q6, q7, [sp, #0xc0]
83+
DISASM-NEXT: 18000106c: ad4517e4 ldp q4, q5, [sp, #0xa0]
84+
DISASM-NEXT: 180001070: ad440fe2 ldp q2, q3, [sp, #0x80]
85+
DISASM-NEXT: 180001074: ad4307e0 ldp q0, q1, [sp, #0x60]
86+
DISASM-NEXT: 180001078: f9402be8 ldr x8, [sp, #0x50]
87+
DISASM-NEXT: 18000107c: a9441fe6 ldp x6, x7, [sp, #0x40]
88+
DISASM-NEXT: 180001080: a94317e4 ldp x4, x5, [sp, #0x30]
89+
DISASM-NEXT: 180001084: a9420fe2 ldp x2, x3, [sp, #0x20]
90+
DISASM-NEXT: 180001088: a94107e0 ldp x0, x1, [sp, #0x10]
91+
DISASM-NEXT: 18000108c: a8ce7bfd ldp x29, x30, [sp], #0xe0
92+
DISASM-NEXT: 180001090: d61f0200 br x16
9193
DISASM-NEXT: ...
9294
DISASM-NEXT: 180002000: 52800040 mov w0, #0x2 // =2
9395
DISASM-NEXT: 180002004: d65f03c0 ret
@@ -186,33 +188,35 @@ NATIVE-DISASM-NEXT: 180001010: d61f0200 br x16
186188
NATIVE-DISASM-NEXT: 180001014: 90000031 adrp x17, 0x180005000
187189
NATIVE-DISASM-NEXT: 180001018: 91022231 add x17, x17, #0x88
188190
NATIVE-DISASM-NEXT: 18000101c: 14000001 b 0x180001020 <.text+0x20>
189-
NATIVE-DISASM-NEXT: 180001020: a9b37bfd stp x29, x30, [sp, #-0xd0]!
191+
NATIVE-DISASM-NEXT: 180001020: a9b27bfd stp x29, x30, [sp, #-0xe0]!
190192
NATIVE-DISASM-NEXT: 180001024: 910003fd mov x29, sp
191193
NATIVE-DISASM-NEXT: 180001028: a90107e0 stp x0, x1, [sp, #0x10]
192194
NATIVE-DISASM-NEXT: 18000102c: a9020fe2 stp x2, x3, [sp, #0x20]
193195
NATIVE-DISASM-NEXT: 180001030: a90317e4 stp x4, x5, [sp, #0x30]
194196
NATIVE-DISASM-NEXT: 180001034: a9041fe6 stp x6, x7, [sp, #0x40]
195-
NATIVE-DISASM-NEXT: 180001038: ad0287e0 stp q0, q1, [sp, #0x50]
196-
NATIVE-DISASM-NEXT: 18000103c: ad038fe2 stp q2, q3, [sp, #0x70]
197-
NATIVE-DISASM-NEXT: 180001040: ad0497e4 stp q4, q5, [sp, #0x90]
198-
NATIVE-DISASM-NEXT: 180001044: ad059fe6 stp q6, q7, [sp, #0xb0]
199-
NATIVE-DISASM-NEXT: 180001048: aa1103e1 mov x1, x17
200-
NATIVE-DISASM-NEXT: 18000104c: d0000000 adrp x0, 0x180003000
201-
NATIVE-DISASM-NEXT: 180001050: 910cc000 add x0, x0, #0x330
202-
NATIVE-DISASM-NEXT: 180001054: 90000002 adrp x2, 0x180001000 <.text>
203-
NATIVE-DISASM-NEXT: 180001058: 91000042 add x2, x2, #0x0
204-
NATIVE-DISASM-NEXT: 18000105c: d63f0040 blr x2
205-
NATIVE-DISASM-NEXT: 180001060: aa0003f0 mov x16, x0
206-
NATIVE-DISASM-NEXT: 180001064: ad459fe6 ldp q6, q7, [sp, #0xb0]
207-
NATIVE-DISASM-NEXT: 180001068: ad4497e4 ldp q4, q5, [sp, #0x90]
208-
NATIVE-DISASM-NEXT: 18000106c: ad438fe2 ldp q2, q3, [sp, #0x70]
209-
NATIVE-DISASM-NEXT: 180001070: ad4287e0 ldp q0, q1, [sp, #0x50]
210-
NATIVE-DISASM-NEXT: 180001074: a9441fe6 ldp x6, x7, [sp, #0x40]
211-
NATIVE-DISASM-NEXT: 180001078: a94317e4 ldp x4, x5, [sp, #0x30]
212-
NATIVE-DISASM-NEXT: 18000107c: a9420fe2 ldp x2, x3, [sp, #0x20]
213-
NATIVE-DISASM-NEXT: 180001080: a94107e0 ldp x0, x1, [sp, #0x10]
214-
NATIVE-DISASM-NEXT: 180001084: a8cd7bfd ldp x29, x30, [sp], #0xd0
215-
NATIVE-DISASM-NEXT: 180001088: d61f0200 br x16
197+
NATIVE-DISASM-NEXT: 180001038: f9002be8 str x8, [sp, #0x50]
198+
NATIVE-DISASM-NEXT: 18000103c: ad0307e0 stp q0, q1, [sp, #0x60]
199+
NATIVE-DISASM-NEXT: 180001040: ad040fe2 stp q2, q3, [sp, #0x80]
200+
NATIVE-DISASM-NEXT: 180001044: ad0517e4 stp q4, q5, [sp, #0xa0]
201+
NATIVE-DISASM-NEXT: 180001048: ad061fe6 stp q6, q7, [sp, #0xc0]
202+
NATIVE-DISASM-NEXT: 18000104c: aa1103e1 mov x1, x17
203+
NATIVE-DISASM-NEXT: 180001050: d0000000 adrp x0, 0x180003000
204+
NATIVE-DISASM-NEXT: 180001054: 910cc000 add x0, x0, #0x330
205+
NATIVE-DISASM-NEXT: 180001058: 90000002 adrp x2, 0x180001000 <.text>
206+
NATIVE-DISASM-NEXT: 18000105c: 91000042 add x2, x2, #0x0
207+
NATIVE-DISASM-NEXT: 180001060: d63f0040 blr x2
208+
NATIVE-DISASM-NEXT: 180001064: aa0003f0 mov x16, x0
209+
NATIVE-DISASM-NEXT: 180001068: ad461fe6 ldp q6, q7, [sp, #0xc0]
210+
NATIVE-DISASM-NEXT: 18000106c: ad4517e4 ldp q4, q5, [sp, #0xa0]
211+
NATIVE-DISASM-NEXT: 180001070: ad440fe2 ldp q2, q3, [sp, #0x80]
212+
NATIVE-DISASM-NEXT: 180001074: ad4307e0 ldp q0, q1, [sp, #0x60]
213+
NATIVE-DISASM-NEXT: 180001078: f9402be8 ldr x8, [sp, #0x50]
214+
NATIVE-DISASM-NEXT: 18000107c: a9441fe6 ldp x6, x7, [sp, #0x40]
215+
NATIVE-DISASM-NEXT: 180001080: a94317e4 ldp x4, x5, [sp, #0x30]
216+
NATIVE-DISASM-NEXT: 180001084: a9420fe2 ldp x2, x3, [sp, #0x20]
217+
NATIVE-DISASM-NEXT: 180001088: a94107e0 ldp x0, x1, [sp, #0x10]
218+
NATIVE-DISASM-NEXT: 18000108c: a8ce7bfd ldp x29, x30, [sp], #0xe0
219+
NATIVE-DISASM-NEXT: 180001090: d61f0200 br x16
216220

217221
RUN: llvm-readobj --coff-load-config out-native.dll | FileCheck --check-prefix=NATIVE-LOADCFG %s
218222
NATIVE-LOADCFG: AuxiliaryDelayloadIAT: 0x4000

0 commit comments

Comments
 (0)