Skip to content

Commit 133cb8f

Browse files
committed
Update unwind info
1 parent c99c818 commit 133cb8f

File tree

6 files changed

+20
-28
lines changed

6 files changed

+20
-28
lines changed

lld/COFF/DLL.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -270,14 +270,10 @@ static const uint8_t tailMergeX64[] = {
270270

271271
static const uint8_t tailMergeUnwindInfoX64[] = {
272272
0x01, // Version=1, Flags=UNW_FLAG_NHANDLER
273-
0x0a, // Size of prolog
274-
0x05, // Count of unwind codes
273+
0x18, // Size of prolog
274+
0x01, // Count of unwind codes
275275
0x00, // No frame register
276-
0x0a, 0x82, // Offset 0xa: UWOP_ALLOC_SMALL(0x48)
277-
0x06, 0x02, // Offset 6: UWOP_ALLOC_SMALL(8)
278-
0x04, 0x02, // Offset 4: UWOP_ALLOC_SMALL(8)
279-
0x02, 0x02, // Offset 2: UWOP_ALLOC_SMALL(8)
280-
0x01, 0x02, // Offset 1: UWOP_ALLOC_SMALL(8)
276+
0x18, 0xC2, // Offset 0x18: UWOP_ALLOC_SMALL(0x68)
281277
0x00, 0x00 // Padding to align on 32-bits
282278
};
283279

lld/test/COFF/arm64ec-delayimport.test

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ DISASM-NEXT: 18000204c: 66 0f 7f 4c 24 30 movdqa %xmm1, 0x30(%rsp)
6161
DISASM-NEXT: 180002052: 66 0f 7f 54 24 40 movdqa %xmm2, 0x40(%rsp)
6262
DISASM-NEXT: 180002058: 66 0f 7f 5c 24 50 movdqa %xmm3, 0x50(%rsp)
6363
DISASM-NEXT: 18000205e: 48 8b d0 movq %rax, %rdx
64-
DISASM-NEXT: 180002061: 48 8d 0d 98 21 00 00 leaq 0x2198(%rip), %rcx # 0x180004200
64+
DISASM-NEXT: 180002061: 48 8d 0d 90 21 00 00 leaq 0x2190(%rip), %rcx # 0x1800041f8
6565
DISASM-NEXT: 180002068: e8 9b ef ff ff callq 0x180001008 <.text+0x8>
6666
DISASM-NEXT: 18000206d: 66 0f 6f 44 24 20 movdqa 0x20(%rsp), %xmm0
6767
DISASM-NEXT: 180002073: 66 0f 6f 4c 24 30 movdqa 0x30(%rsp), %xmm1
@@ -85,7 +85,7 @@ IMPORTS-NEXT: Name: test.dll
8585
IMPORTS-NEXT: Attributes: 0x1
8686
IMPORTS-NEXT: ModuleHandle: 0x7080
8787
IMPORTS-NEXT: ImportAddressTable: 0x7088
88-
IMPORTS-NEXT: ImportNameTable: 0x4240
88+
IMPORTS-NEXT: ImportNameTable: 0x4238
8989
IMPORTS-NEXT: BoundDelayImportTable: 0x0
9090
IMPORTS-NEXT: UnloadDelayImportTable: 0x0
9191
IMPORTS-NEXT: Import {

lld/test/COFF/arm64x-delayimport.test

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ IMPORTS-NEXT: Name: test.dll
2121
IMPORTS-NEXT: Attributes: 0x1
2222
IMPORTS-NEXT: ModuleHandle: 0x6080
2323
IMPORTS-NEXT: ImportAddressTable: 0x6088
24-
IMPORTS-NEXT: ImportNameTable: 0x4390
24+
IMPORTS-NEXT: ImportNameTable: 0x4388
2525
IMPORTS-NEXT: BoundDelayImportTable: 0x0
2626
IMPORTS-NEXT: UnloadDelayImportTable: 0x0
2727
IMPORTS-NEXT: Import {
@@ -35,7 +35,7 @@ IMPORTS-NEXT: Name: test.dll
3535
IMPORTS-NEXT: Attributes: 0x1
3636
IMPORTS-NEXT: ModuleHandle: 0x6080
3737
IMPORTS-NEXT: ImportAddressTable: 0x6098
38-
IMPORTS-NEXT: ImportNameTable: 0x43A0
38+
IMPORTS-NEXT: ImportNameTable: 0x4398
3939
IMPORTS-NEXT: BoundDelayImportTable: 0x0
4040
IMPORTS-NEXT: UnloadDelayImportTable: 0x0
4141
IMPORTS-NEXT: Import {
@@ -73,7 +73,7 @@ DISASM-NEXT: 180001040: ad0497e4 stp q4, q5, [sp, #0x90]
7373
DISASM-NEXT: 180001044: ad059fe6 stp q6, q7, [sp, #0xb0]
7474
DISASM-NEXT: 180001048: aa1103e1 mov x1, x17
7575
DISASM-NEXT: 18000104c: f0000000 adrp x0, 0x180004000
76-
DISASM-NEXT: 180001050: 910d4000 add x0, x0, #0x350
76+
DISASM-NEXT: 180001050: 910d2000 add x0, x0, #0x348
7777
DISASM-NEXT: 180001054: 97ffffeb bl 0x180001000 <.text>
7878
DISASM-NEXT: 180001058: aa0003f0 mov x16, x0
7979
DISASM-NEXT: 18000105c: ad459fe6 ldp q6, q7, [sp, #0xb0]
@@ -115,7 +115,7 @@ DISASM-NEXT: 180003030: 66 0f 7f 4c 24 30 movdqa %xmm1, 0x30(%rsp)
115115
DISASM-NEXT: 180003036: 66 0f 7f 54 24 40 movdqa %xmm2, 0x40(%rsp)
116116
DISASM-NEXT: 18000303c: 66 0f 7f 5c 24 50 movdqa %xmm3, 0x50(%rsp)
117117
DISASM-NEXT: 180003042: 48 8b d0 movq %rax, %rdx
118-
DISASM-NEXT: 180003045: 48 8d 0d 04 13 00 00 leaq 0x1304(%rip), %rcx # 0x180004350
118+
DISASM-NEXT: 180003045: 48 8d 0d fc 12 00 00 leaq 0x12fc(%rip), %rcx # 0x180004348
119119
DISASM-NEXT: 18000304c: e8 b7 ef ff ff callq 0x180002008 <.text+0x1008>
120120
DISASM-NEXT: 180003051: 66 0f 6f 44 24 20 movdqa 0x20(%rsp), %xmm0
121121
DISASM-NEXT: 180003057: 66 0f 6f 4c 24 30 movdqa 0x30(%rsp), %xmm1
@@ -230,7 +230,7 @@ EC-IMPORTS-NEXT: Name: test.dll
230230
EC-IMPORTS-NEXT: Attributes: 0x1
231231
EC-IMPORTS-NEXT: ModuleHandle: 0x6080
232232
EC-IMPORTS-NEXT: ImportAddressTable: 0x6088
233-
EC-IMPORTS-NEXT: ImportNameTable: 0x4388
233+
EC-IMPORTS-NEXT: ImportNameTable: 0x4380
234234
EC-IMPORTS-NEXT: BoundDelayImportTable: 0x0
235235
EC-IMPORTS-NEXT: UnloadDelayImportTable: 0x0
236236
EC-IMPORTS-NEXT: }
@@ -243,7 +243,7 @@ EC-IMPORTS-NEXT: Name: test.dll
243243
EC-IMPORTS-NEXT: Attributes: 0x1
244244
EC-IMPORTS-NEXT: ModuleHandle: 0x6080
245245
EC-IMPORTS-NEXT: ImportAddressTable: 0x6090
246-
EC-IMPORTS-NEXT: ImportNameTable: 0x4390
246+
EC-IMPORTS-NEXT: ImportNameTable: 0x4388
247247
EC-IMPORTS-NEXT: BoundDelayImportTable: 0x0
248248
EC-IMPORTS-NEXT: UnloadDelayImportTable: 0x0
249249
EC-IMPORTS-NEXT: Import {
@@ -289,7 +289,7 @@ EC-DISASM-NEXT: 180003030: 66 0f 7f 4c 24 30 movdqa %xmm1, 0x30(%rsp
289289
EC-DISASM-NEXT: 180003036: 66 0f 7f 54 24 40 movdqa %xmm2, 0x40(%rsp)
290290
EC-DISASM-NEXT: 18000303c: 66 0f 7f 5c 24 50 movdqa %xmm3, 0x50(%rsp)
291291
EC-DISASM-NEXT: 180003042: 48 8b d0 movq %rax, %rdx
292-
EC-DISASM-NEXT: 180003045: 48 8d 0d fc 12 00 00 leaq 0x12fc(%rip), %rcx # 0x180004348
292+
EC-DISASM-NEXT: 180003045: 48 8d 0d f4 12 00 00 leaq 0x12f4(%rip), %rcx # 0x180004340
293293
EC-DISASM-NEXT: 18000304c: e8 b7 ef ff ff callq 0x180002008 <.text+0x1008>
294294
EC-DISASM-NEXT: 180003051: 66 0f 6f 44 24 20 movdqa 0x20(%rsp), %xmm0
295295
EC-DISASM-NEXT: 180003057: 66 0f 6f 4c 24 30 movdqa 0x30(%rsp), %xmm1

lld/test/COFF/delayimports.test

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ IMPORT-NEXT: Name: std64.dll
1010
IMPORT-NEXT: Attributes: 0x1
1111
IMPORT-NEXT: ModuleHandle: 0x3018
1212
IMPORT-NEXT: ImportAddressTable: 0x3020
13-
IMPORT-NEXT: ImportNameTable: 0x2050
13+
IMPORT-NEXT: ImportNameTable: 0x2048
1414
IMPORT-NEXT: BoundDelayImportTable: 0x0
1515
IMPORT-NEXT: UnloadDelayImportTable: 0x0
1616
IMPORT-NEXT: Import {
@@ -50,16 +50,12 @@ UNWIND-NEXT: UnwindInfo {
5050
UNWIND-NEXT: Version: 1
5151
UNWIND-NEXT: Flags [ (0x0)
5252
UNWIND-NEXT: ]
53-
UNWIND-NEXT: PrologSize: 10
53+
UNWIND-NEXT: PrologSize: 24
5454
UNWIND-NEXT: FrameRegister: -
5555
UNWIND-NEXT: FrameOffset: -
56-
UNWIND-NEXT: UnwindCodeCount: 5
56+
UNWIND-NEXT: UnwindCodeCount: 1
5757
UNWIND-NEXT: UnwindCodes [
58-
UNWIND-NEXT: 0x0A: ALLOC_SMALL size=72
59-
UNWIND-NEXT: 0x06: ALLOC_SMALL size=8
60-
UNWIND-NEXT: 0x04: ALLOC_SMALL size=8
61-
UNWIND-NEXT: 0x02: ALLOC_SMALL size=8
62-
UNWIND-NEXT: 0x01: ALLOC_SMALL size=8
58+
UNWIND-NEXT: 0x18: ALLOC_SMALL size=104
6359
UNWIND-NEXT: ]
6460
UNWIND-NEXT: }
6561
UNWIND-NEXT: }

lld/test/COFF/delayimporttables.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# CHECK-NEXT: Attributes: 0x1
1616
# CHECK-NEXT: ModuleHandle: 0x3000
1717
# CHECK-NEXT: ImportAddressTable: 0x3010
18-
# CHECK-NEXT: ImportNameTable: 0x2070
18+
# CHECK-NEXT: ImportNameTable: 0x2068
1919
# CHECK-NEXT: BoundDelayImportTable: 0x0
2020
# CHECK-NEXT: UnloadDelayImportTable: 0x0
2121
# CHECK-NEXT: Import {
@@ -32,7 +32,7 @@
3232
# CHECK-NEXT: Attributes: 0x1
3333
# CHECK-NEXT: ModuleHandle: 0x3008
3434
# CHECK-NEXT: ImportAddressTable: 0x3028
35-
# CHECK-NEXT: ImportNameTable: 0x2088
35+
# CHECK-NEXT: ImportNameTable: 0x2080
3636
# CHECK-NEXT: BoundDelayImportTable: 0x0
3737
# CHECK-NEXT: UnloadDelayImportTable: 0x0
3838
# CHECK-NEXT: Import {

lld/test/COFF/giats.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@
3737

3838
# DELAY-CHECK: ImageBase: 0x140000000
3939
# DELAY-CHECK: LoadConfig [
40-
# DELAY-CHECK: GuardCFFunctionTable: 0x140002124
40+
# DELAY-CHECK: GuardCFFunctionTable: 0x14000211C
4141
# DELAY-CHECK: GuardCFFunctionCount: 2
4242
# DELAY-CHECK: GuardFlags [ (0x10500)
4343
# DELAY-CHECK: CF_FUNCTION_TABLE_PRESENT (0x400)
4444
# DELAY-CHECK: CF_INSTRUMENTED (0x100)
4545
# DELAY-CHECK: CF_LONGJUMP_TABLE_PRESENT (0x10000)
4646
# DELAY-CHECK: ]
47-
# DELAY-CHECK: GuardAddressTakenIatEntryTable: 0x14000212C
47+
# DELAY-CHECK: GuardAddressTakenIatEntryTable: 0x140002124
4848
# DELAY-CHECK: GuardAddressTakenIatEntryCount: 1
4949
# DELAY-CHECK: ]
5050
# DELAY-CHECK: GuardFidTable [

0 commit comments

Comments
 (0)