Skip to content

Commit 7f36cb1

Browse files
committed
[AArch64InstPrinter] Change printAlignedLabel to print the target address in hexadecimal form
Similar to D76580 (x86) and D76591 (PPC). ``` // llvm-objdump -d output (before) 10000: 08 00 00 94 bl #32 10004: 08 00 00 94 bl #32 // llvm-objdump -d output (after) 10000: 08 00 00 94 bl 0x10020 10004: 08 00 00 94 bl 0x10024 // GNU objdump -d. The lack of 0x is not ideal due to ambiguity. 10000: 94000008 bl 10020 <bar+0x18> 10004: 94000008 bl 10024 <bar+0x1c> ``` The new output makes it easier to find the jump target. Differential Revision: https://reviews.llvm.org/D77853
1 parent 1824ae0 commit 7f36cb1

30 files changed

+165
-161
lines changed

lld/test/COFF/arm64-delayimport.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
# DISASM: 140001014: 11 00 00 d0 adrp x17, #8192
99
# DISASM: 140001018: 31 22 00 91 add x17, x17, #8
10-
# DISASM: 14000101c: 01 00 00 14 b #4 <.text+0x20>
10+
# DISASM: 14000101c: 01 00 00 14 b 0x140001020 <.text+0x20>
1111
# DISASM: 140001020: fd 7b b3 a9 stp x29, x30, [sp, #-208]!
1212
# DISASM: 140001024: fd 03 00 91 mov x29, sp
1313
# DISASM: 140001028: e0 07 01 a9 stp x0, x1, [sp, #16]
@@ -21,7 +21,7 @@
2121
# DISASM: 140001048: e1 03 11 aa mov x1, x17
2222
# DISASM: 14000104c: 00 00 00 b0 adrp x0, #4096
2323
# DISASM: 140001050: 00 00 00 91 add x0, x0, #0
24-
# DISASM: 140001054: eb ff ff 97 bl #-84 <.text>
24+
# DISASM: 140001054: eb ff ff 97 bl 0x140001000 <.text>
2525
# DISASM: 140001058: f0 03 00 aa mov x16, x0
2626
# DISASM: 14000105c: e6 9f 45 ad ldp q6, q7, [sp, #176]
2727
# DISASM: 140001060: e4 97 44 ad ldp q4, q5, [sp, #144]

lld/test/COFF/arm64-import2.test

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88

99
# BEFORE: Disassembly of section .text:
1010
# BEFORE-EMPTY:
11-
# BEFORE: 0: 00 00 00 94 bl #0
12-
# BEFORE: 4: 00 00 00 94 bl #0
11+
# BEFORE: 0: 00 00 00 94 bl 0x0
12+
# BEFORE: 4: 00 00 00 94 bl 0x4
1313
# BEFORE: 8: c0 03 5f d6 ret
1414

1515
# AFTER: Disassembly of section .text:
1616
# AFTER-EMPTY:
17-
# AFTER: 140001000: 03 00 00 94 bl #12
18-
# AFTER: 140001004: 05 00 00 94 bl #20
17+
# AFTER: 140001000: 03 00 00 94 bl 0x14000100c
18+
# AFTER: 140001004: 05 00 00 94 bl 0x140001018
1919
# AFTER: 140001008: c0 03 5f d6 ret
2020
# AFTER: 14000100c: 10 00 00 b0 adrp x16, #4096
2121
# AFTER: 140001010: 10 32 40 f9 ldr x16, [x16, #96]

lld/test/COFF/arm64-relocs-imports.test

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# BEFORE: 0: fe 0f 1f f8 str x30, [sp, #-16]!
1111
# BEFORE: 4: 00 00 00 90 adrp x0, #0
1212
# BEFORE: 8: 00 08 00 91 add x0, x0, #2
13-
# BEFORE: c: 00 00 00 94 bl #0
13+
# BEFORE: c: 00 00 00 94 bl 0xc
1414
# BEFORE: 10: 00 01 40 39 ldrb w0, [x8]
1515
# BEFORE: 14: 00 01 40 79 ldrh w0, [x8]
1616
# BEFORE: 18: 00 01 40 b9 ldr w0, [x8]
@@ -44,16 +44,16 @@
4444
# BEFORE: 88: 00 00 40 f9 ldr x0, [x0]
4545
# BEFORE: 8c: 01 00 00 00 udf #1
4646
# BEFORE: 90: 20 1a 09 30 adr x0, #74565
47-
# BEFORE: 94: 01 00 00 54 b.ne #0
48-
# BEFORE: 98: 00 00 00 36 tbz w0, #0, #0
47+
# BEFORE: 94: 01 00 00 54 b.ne 0x94
48+
# BEFORE: 98: 00 00 00 36 tbz w0, #0, 0x98
4949
# BEFORE: 9c: 01 00 00 00 udf #1
5050

5151
# AFTER: Disassembly of section .text:
5252
# AFTER-EMPTY:
5353
# AFTER: 140001000: fe 0f 1f f8 str x30, [sp, #-16]!
5454
# AFTER: 140001004: 00 00 00 b0 adrp x0, #4096
5555
# AFTER: 140001008: 00 18 00 91 add x0, x0, #6
56-
# AFTER: 14000100c: 25 00 00 94 bl #148
56+
# AFTER: 14000100c: 25 00 00 94 bl 0x1400010a0
5757
# AFTER: 140001010: 00 21 40 39 ldrb w0, [x8, #8]
5858
# AFTER: 140001014: 00 11 40 79 ldrh w0, [x8, #8]
5959
# AFTER: 140001018: 00 09 40 b9 ldr w0, [x8, #8]
@@ -87,8 +87,8 @@
8787
# AFTER: 140001088: 00 c4 41 f9 ldr x0, [x0, #904]
8888
# AFTER: 14000108c: 03 00 00 00 udf #3
8989
# AFTER: 140001090: e0 95 09 30 adr x0, #78525
90-
# AFTER: 140001094: 61 00 00 54 b.ne #12
91-
# AFTER: 140001098: 40 00 00 36 tbz w0, #0, #8
90+
# AFTER: 140001094: 61 00 00 54 b.ne 0x1400010a0
91+
# AFTER: 140001098: 40 00 00 36 tbz w0, #0, 0x1400010a0
9292
# AFTER: 14000109c: 61 ff ff ff <unknown>
9393
# AFTER: 1400010a0: 10 00 00 b0 adrp x16, #4096
9494
# AFTER: 1400010a4: 10 2a 40 f9 ldr x16, [x16, #80]

lld/test/COFF/arm64-thunks.s

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ func2:
2727
ret
2828

2929
// DISASM: 0000000140001000 <.text>:
30-
// DISASM: 140001000: 40 00 00 36 tbz w0, #0, #8 <.text+0x8>
30+
// DISASM: 140001000: 40 00 00 36 tbz w0, #0, 0x140001008 <.text+0x8>
3131
// DISASM: 140001004: c0 03 5f d6 ret
3232
// DISASM: 140001008: 50 00 00 90 adrp x16, #32768
3333
// DISASM: 14000100c: 10 52 00 91 add x16, x16, #20
3434
// DISASM: 140001010: 00 02 1f d6 br x16
3535

36-
// DISASM: 140009014: 60 00 00 36 tbz w0, #0, #12 <.text+0x8020>
36+
// DISASM: 140009014: 60 00 00 36 tbz w0, #0, 0x140009020 <.text+0x8020>
3737
// DISASM: 140009018: c0 03 5f d6 ret
3838

3939
// DISASM: 140009020: 50 00 00 90 adrp x16, #32768

lld/test/ELF/aarch64-call26-thunk.s

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ _start:
1212
// CHECK: Disassembly of section .text:
1313
// CHECK-EMPTY:
1414
// CHECK-NEXT: <_start>:
15-
// CHECK-NEXT: 210120: bl #4
15+
// CHECK-NEXT: 210120: bl 0x210124
1616
// CHECK: <__AArch64AbsLongThunk_big>:
17-
// CHECK-NEXT: 210124: ldr x16, #8
17+
// CHECK-NEXT: 210124: ldr x16, 0x21012c
1818
// CHECK-NEXT: 210128: br x16
1919
// CHECK: <$d>:
2020
// CHECK-NEXT: 21012c: 00 00 00 00 .word 0x00000000

lld/test/ELF/aarch64-condb-reloc.s

+6-6
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
# CHECK-NEXT: 21013c: nop
2626
# CHECK-NEXT: 210140: nop
2727
# CHECK: <_start>:
28-
# CHECK-NEXT: 210144: b.eq #-36 <_foo>
29-
# CHECK-NEXT: 210148: b.eq #-24 <_bar>
30-
# CHECK-NEXT: 21014c: b.eq #-16 <_dah>
28+
# CHECK-NEXT: 210144: b.eq 0x210120 <_foo>
29+
# CHECK-NEXT: 210148: b.eq 0x210130 <_bar>
30+
# CHECK-NEXT: 21014c: b.eq 0x21013c <_dah>
3131

3232
#DSOREL: Section {
3333
#DSOREL: Index:
@@ -68,9 +68,9 @@
6868
#DSO-NEXT: 10354: nop
6969
#DSO-NEXT: 10358: nop
7070
#DSO: <_start>:
71-
#DSO-NEXT: 1035c: b.eq #52 <_foo@plt>
72-
#DSO-NEXT: 10360: b.eq #64 <_bar@plt>
73-
#DSO-NEXT: 10364: b.eq #76 <_dah@plt>
71+
#DSO-NEXT: 1035c: b.eq 0x10390 <_foo@plt>
72+
#DSO-NEXT: 10360: b.eq 0x103a0 <_bar@plt>
73+
#DSO-NEXT: 10364: b.eq 0x103b0 <_dah@plt>
7474
#DSO-EMPTY:
7575
#DSO-NEXT: Disassembly of section .plt:
7676
#DSO-EMPTY:

lld/test/ELF/aarch64-cortex-a53-843419-address.s

+10-10
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
// CHECK: <t3_ff8_ldr>:
4141
// CHECK-NEXT: ff8: 20 00 00 d0 adrp x0, #24576
4242
// CHECK-NEXT: ffc: 21 00 40 f9 ldr x1, [x1]
43-
// CHECK-NEXT: 1000: f9 0f 00 14 b #16356
43+
// CHECK-NEXT: 1000: f9 0f 00 14 b 0x4fe4
4444
// CHECK-NEXT: 1004: c0 03 5f d6 ret
4545
.section .text.01, "ax", %progbits
4646
.balign 4096
@@ -62,7 +62,7 @@ $x.999:
6262
// CHECK: <t3_ffc_ldrsimd>:
6363
// CHECK-NEXT: 1ffc: 20 00 00 b0 adrp x0, #20480
6464
// CHECK-NEXT: 2000: 21 00 40 bd ldr s1, [x1]
65-
// CHECK-NEXT: 2004: fa 0b 00 14 b #12264
65+
// CHECK-NEXT: 2004: fa 0b 00 14 b 0x4fec
6666
// CHECK-NEXT: 2008: c0 03 5f d6 ret
6767
.globl t3_ffc_ldrsimd
6868
.type t3_ffc_ldrsimd, %function
@@ -99,7 +99,7 @@ t3_ff8_ldralldata:
9999
// CHECK: <t3_ffc_ldr>:
100100
// CHECK-NEXT: 3ff8: 00 00 00 f0 adrp x0, #12288
101101
// CHECK-NEXT: 3ffc: 21 00 40 f9 ldr x1, [x1]
102-
// CHECK-NEXT: 4000: fd 03 00 14 b #4084
102+
// CHECK-NEXT: 4000: fd 03 00 14 b 0x4ff4
103103
// CHECK-NEXT: 4004: c0 03 5f d6 ret
104104
.space 4096 - 12
105105
.globl t3_ffc_ldr
@@ -112,13 +112,13 @@ t3_ff8_ldralldata:
112112

113113
// CHECK: <__CortexA53843419_1000>:
114114
// CHECK-NEXT: 4fe4: 00 0c 40 f9 ldr x0, [x0, #24]
115-
// CHECK-NEXT: 4fe8: 07 f0 ff 17 b #-16356
115+
// CHECK-NEXT: 4fe8: 07 f0 ff 17 b 0x1004
116116
// CHECK: <__CortexA53843419_2004>:
117117
// CHECK-NEXT: 4fec: 02 0c 40 f9 ldr x2, [x0, #24]
118-
// CHECK-NEXT: 4ff0: 06 f4 ff 17 b #-12264
118+
// CHECK-NEXT: 4ff0: 06 f4 ff 17 b 0x2008
119119
// CHECK: <__CortexA53843419_4000>:
120120
// CHECK-NEXT: 4ff4: 00 0c 40 f9 ldr x0, [x0, #24]
121-
// CHECK-NEXT: 4ff8: 03 fc ff 17 b #-4084
121+
// CHECK-NEXT: 4ff8: 03 fc ff 17 b 0x4004
122122

123123
.section .text.02, "ax", %progbits
124124
.space 4096 - 36
@@ -131,7 +131,7 @@ t3_ff8_ldralldata:
131131
// CHECK: <t3_ffc_str>:
132132
// CHECK-NEXT: 4ffc: 00 00 00 d0 adrp x0, #8192
133133
// CHECK-NEXT: 5000: 21 00 00 f9 str x1, [x1]
134-
// CHECK-NEXT: 5004: fb 03 00 14 b #4076
134+
// CHECK-NEXT: 5004: fb 03 00 14 b 0x5ff0
135135
// CHECK-NEXT: 5008: c0 03 5f d6 ret
136136

137137
.section .newisd, "ax", %progbits
@@ -146,7 +146,7 @@ t3_ffc_str:
146146

147147
// CHECK: <__CortexA53843419_5004>:
148148
// CHECK-NEXT: 5ff0: 00 0c 40 f9 ldr x0, [x0, #24]
149-
// CHECK-NEXT: 5ff4: 05 fc ff 17 b #-4076
149+
// CHECK-NEXT: 5ff4: 05 fc ff 17 b 0x5008
150150

151151
// Start a new OutputSection (see Linker Script) so the
152152
// start address will be affected by any patches added to previous
@@ -156,7 +156,7 @@ t3_ffc_str:
156156
// CHECK: <t3_ff8_str>:
157157
// CHECK-NEXT: 5ff8: 00 00 00 b0 adrp x0, #4096
158158
// CHECK-NEXT: 5ffc: 21 00 00 f9 str x1, [x1]
159-
// CHECK-NEXT: 6000: 03 00 00 14 b #12
159+
// CHECK-NEXT: 6000: 03 00 00 14 b 0x600c
160160
// CHECK-NEXT: 6004: c0 03 5f d6 ret
161161

162162
.section .newos, "ax", %progbits
@@ -174,7 +174,7 @@ _start:
174174

175175
// CHECK: <__CortexA53843419_6000>:
176176
// CHECK-NEXT: 600c: 00 0c 40 f9 ldr x0, [x0, #24]
177-
// CHECK-NEXT: 6010: fd ff ff 17 b #-12
177+
// CHECK-NEXT: 6010: fd ff ff 17 b 0x6004
178178

179179
.data
180180
.globl dat

lld/test/ELF/aarch64-cortex-a53-843419-large.s

+8-8
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// required.
1414

1515
// CHECK1: <__AArch64AbsLongThunk_need_thunk_after_patch>:
16-
// CHECK1-NEXT: 210000: 50 00 00 58 ldr x16, #8
16+
// CHECK1-NEXT: 210000: 50 00 00 58 ldr x16, 0x210008
1717
// CHECK1-NEXT: 210004: 00 02 1f d6 br x16
1818
// CHECK1: <$d>:
1919
// CHECK1-NEXT: 210008: 0c 10 21 08 .word 0x0821100c
@@ -29,7 +29,7 @@ _start:
2929
.space 4096 - 12
3030

3131
// CHECK2: <_start>:
32-
// CHECK2-NEXT: 211000: 00 fc ff 97 bl #-4096
32+
// CHECK2-NEXT: 211000: 00 fc ff 97 bl 0x210000
3333

3434
// Expect patch on pass 1
3535
.section .text.03, "ax", %progbits
@@ -44,7 +44,7 @@ t3_ff8_ldr:
4444
// CHECK3: <t3_ff8_ldr>:
4545
// CHECK3-NEXT: 211ff8: e0 00 04 f0 adrp x0, #134344704
4646
// CHECK3-NEXT: 211ffc: 21 00 40 f9 ldr x1, [x1]
47-
// CHECK3-NEXT: 212000: 02 08 80 15 b #100671496
47+
// CHECK3-NEXT: 212000: 02 08 80 15 b 0x6214008
4848
// CHECK3-NEXT: 212004: c0 03 5f d6 ret
4949

5050
.section .text.04, "ax", %progbits
@@ -65,18 +65,18 @@ t3_ff8_str:
6565
// CHECK4: <t3_ff8_str>:
6666
// CHECK4-NEXT: 4213ff8: e0 00 02 b0 adrp x0, #67227648
6767
// CHECK4-NEXT: 4213ffc: 21 00 40 f9 ldr x1, [x1]
68-
// CHECK4-NEXT: 4214000: 04 00 80 14 b #33554448
68+
// CHECK4-NEXT: 4214000: 04 00 80 14 b 0x6214010
6969
// CHECK4-NEXT: 4214004: c0 03 5f d6 ret
7070

7171
.section .text.06, "ax", %progbits
7272
.space 32 * 1024 * 1024
7373

7474
// CHECK5: <__CortexA53843419_211000>:
7575
// CHECK5-NEXT: 6214008: 00 00 40 f9 ldr x0, [x0]
76-
// CHECK5-NEXT: 621400c: fe f7 7f 16 b #-100671496
76+
// CHECK5-NEXT: 621400c: fe f7 7f 16 b 0x212004
7777
// CHECK5: <__CortexA53843419_4213000>:
7878
// CHECK5-NEXT: 6214010: 00 00 00 f9 str x0, [x0]
79-
// CHECK5-NEXT: 6214014: fc ff 7f 17 b #-33554448
79+
// CHECK5-NEXT: 6214014: fc ff 7f 17 b 0x4214004
8080

8181
.section .text.07, "ax", %progbits
8282
.space (32 * 1024 * 1024) - 12300
@@ -104,11 +104,11 @@ t3_ffc_ldr:
104104
// CHECK7: <t3_ffc_ldr>:
105105
// CHECK7-NEXT: 8211ffc: e0 00 00 f0 adrp x0, #126976
106106
// CHECK7-NEXT: 8212000: 21 00 40 f9 ldr x1, [x1]
107-
// CHECK7-NEXT: 8212004: 02 00 00 14 b #8
107+
// CHECK7-NEXT: 8212004: 02 00 00 14 b 0x821200c
108108
// CHECK7-NEXT: 8212008: c0 03 5f d6 ret
109109
// CHECK7: <__CortexA53843419_8212004>:
110110
// CHECK7-NEXT: 821200c: 00 00 40 f9 ldr x0, [x0]
111-
// CHECK7-NEXT: 8212010: fe ff ff 17 b #-8
111+
// CHECK7-NEXT: 8212010: fe ff ff 17 b 0x8212008
112112

113113
.section .data
114114
.globl dat

lld/test/ELF/aarch64-cortex-a53-843419-large2.s

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
adrp x0, thunk
1010
ldr x1, [x1, #0]
1111
// CHECK: <thunk>:
12-
// CHECK-NEXT: b #67108872 <__CortexA53843419_8001000>
12+
// CHECK-NEXT: b 0xc001008 <__CortexA53843419_8001000>
1313
thunk:
1414
ldr x0, [x0, :got_lo12:thunk]
1515
ret

0 commit comments

Comments
 (0)