Skip to content

Commit a5b7ea0

Browse files
author
Pavel Kosov
committed
[llvm-objdump] Implemented PrintBranchImmAsAddress for MIPS
Updated MipsInstPrinter to print absolute hex offsets for branch instructions. It is necessary to make the llvm-objdump output close to the gnu objdump output. This implementation is based on the implementation for RISC-V. OS Laboratory. Huawei Russian Research Institute. Saint-Petersburg Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D123764
1 parent eb4d229 commit a5b7ea0

26 files changed

+273
-168
lines changed

lld/test/ELF/mips-jalr-non-functions.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,5 @@ reg_obj:
5454
# CHECK-NEXT: nop
5555
# CHECK-NEXT: jr $25
5656
# CHECK-NEXT: nop
57-
# CHECK-NEXT: b 8 <untyped>
57+
# CHECK-NEXT: b {{.*}} <untyped>
5858
# CHECK-NEXT: nop

lld/test/ELF/mips-jalr.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@
1616
# REL: R_MIPS_JALR {{.*}} far
1717

1818
# SO: jalr $25
19-
# SO: bal -24 <foo>
19+
# SO: bal {{.*}} <foo>
2020
# SO: jalr $25
2121

2222
# SO: jr $25
23-
# SO: b -64 <foo>
23+
# SO: b {{.*}} <foo>
2424
# SO: jr $25
2525

26-
# EXE: bal -4 <foo>
27-
# EXE: bal -24 <foo>
26+
# EXE: bal {{.*}} <foo>
27+
# EXE: bal {{.*}} <foo>
2828
# EXE: jalr $25
2929

30-
# EXE: b -56 <foo>
31-
# EXE: b -64 <foo>
30+
# EXE: b {{.*}} <foo>
31+
# EXE: b {{.*}} <foo>
3232
# EXE: jr $25
3333

3434
.text

lld/test/ELF/mips-micro-plt.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
# ASM-NEXT: addi $8, $8, 801
4343
#
4444
# ASM: <foo>:
45-
# ASM-NEXT: 20210: jal 131872
45+
# ASM-NEXT: 20210: jal 0x20320
4646

4747
.text
4848
.set micromips

lld/test/ELF/mips-micro-relocs.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@
4646
# ASM-NEXT: addiu $3, $3, 32495
4747
# ASM-NEXT: lw $3, -32744($gp)
4848
# ASM-NEXT: lw $3, -32744($3)
49-
# ASM-NEXT: beqz16 $6, -32
49+
# ASM-NEXT: beqz16 $6, 0x20100
5050
# ASM-NEXT: sll $3, $fp, 0
51-
# ASM-NEXT: b16 -40
51+
# ASM-NEXT: b16 0x200fe
5252
# ASM-NEXT: nop
53-
# ASM-NEXT: b -44
53+
# ASM-NEXT: b 0x20100
5454

5555
# ELF: Entry point address: 0x20111
5656

lld/test/ELF/mips-micro-thunks.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,22 @@
4242
# RUN: | FileCheck --check-prefix=R6 %s
4343

4444
# R2: <__start>:
45-
# R2-NEXT: 20100: jal 131336 <__microLA25Thunk_foo>
45+
# R2-NEXT: 20100: jal {{.*}} <__microLA25Thunk_foo>
4646
# R2-NEXT: nop
4747

4848
# R2: <__microLA25Thunk_foo>:
4949
# R2-NEXT: 20108: lui $25, 2
50-
# R2-NEXT: j 131360 <foo>
50+
# R2-NEXT: j {{.*}} <foo>
5151
# R2-NEXT: addiu $25, $25, 289
5252
# R2-NEXT: nop
5353

5454
# R6: <__start>:
55-
# R6-NEXT: 20100: balc 0 <__start>
55+
# R6-NEXT: 20100: balc {{.*}} <__start>
5656

5757
# R6: <__microLA25Thunk_foo>:
5858
# R6-NEXT: 20104: lui $25, 2
5959
# R6-NEXT: addiu $25, $25, 273
60-
# R6-NEXT: bc 0 <__microLA25Thunk_foo+0x8>
60+
# R6-NEXT: bc {{.*}} <__microLA25Thunk_foo+0x8>
6161

6262
.text
6363
.set micromips

lld/test/ELF/mips-micror6-relocs.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
# CHECK: <__start>:
2727
# CHECK-NEXT: 20110: lapc $2, -12
28-
# CHECK-NEXT: beqzc $3, -36
29-
# CHECK-NEXT: balc -24 <foo>
28+
# CHECK-NEXT: beqzc $3, 0x200f0
29+
# CHECK-NEXT: balc {{.*}} <foo>
3030

3131
.text
3232
.set micromips

lld/test/ELF/mips-npic-call-pic-script.s

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
# CHECK-EMPTY:
1818
# CHECK-NEXT: <__LA25Thunk_foo1a>:
1919
# CHECK-NEXT: 20000: lui $25, 2
20-
# CHECK-NEXT: 20004: j 131104 <foo1a>
20+
# CHECK-NEXT: 20004: j {{.*}} <foo1a>
2121
# CHECK-NEXT: 20008: addiu $25, $25, 32
2222
# CHECK-NEXT: 2000c: nop
2323

2424
# CHECK: <__LA25Thunk_foo1b>:
2525
# CHECK-NEXT: 20010: lui $25, 2
26-
# CHECK-NEXT: 20014: j 131108 <foo1b>
26+
# CHECK-NEXT: 20014: j {{.*}} <foo1b>
2727
# CHECK-NEXT: 20018: addiu $25, $25, 36
2828
# CHECK-NEXT: 2001c: nop
2929

@@ -35,30 +35,30 @@
3535

3636
# CHECK: <__LA25Thunk_foo2>:
3737
# CHECK-NEXT: 20028: lui $25, 2
38-
# CHECK-NEXT: 2002c: j 131136 <foo2>
38+
# CHECK-NEXT: 2002c: j {{.*}} <foo2>
3939
# CHECK-NEXT: 20030: addiu $25, $25, 64
4040
# CHECK-NEXT: 20034: nop
4141

4242
# CHECK: <foo2>:
4343
# CHECK-NEXT: 20040: nop
4444

4545
# CHECK: <__start>:
46-
# CHECK-NEXT: 20150: jal 131072 <__LA25Thunk_foo1a>
46+
# CHECK-NEXT: 20150: jal {{.*}} <__LA25Thunk_foo1a>
4747
# CHECK-NEXT: 20154: nop
48-
# CHECK-NEXT: 20158: jal 131112 <__LA25Thunk_foo2>
48+
# CHECK-NEXT: 20158: jal {{.*}} <__LA25Thunk_foo2>
4949
# CHECK-NEXT: 2015c: nop
50-
# CHECK-NEXT: 20160: jal 131088 <__LA25Thunk_foo1b>
50+
# CHECK-NEXT: 20160: jal {{.*}} <__LA25Thunk_foo1b>
5151
# CHECK-NEXT: 20164: nop
52-
# CHECK-NEXT: 20168: jal 131112 <__LA25Thunk_foo2>
52+
# CHECK-NEXT: 20168: jal {{.*}} <__LA25Thunk_foo2>
5353
# CHECK-NEXT: 2016c: nop
54-
# CHECK-NEXT: 20170: jal 131456 <__LA25Thunk_fpic>
54+
# CHECK-NEXT: 20170: jal {{.*}} <__LA25Thunk_fpic>
5555
# CHECK-NEXT: 20174: nop
56-
# CHECK-NEXT: 20178: jal 131488 <fnpic>
56+
# CHECK-NEXT: 20178: jal {{.*}} <fnpic>
5757
# CHECK-NEXT: 2017c: nop
5858

5959
# CHECK: <__LA25Thunk_fpic>:
6060
# CHECK-NEXT: 20180: lui $25, 2
61-
# CHECK-NEXT: 20184: j 131472 <fpic>
61+
# CHECK-NEXT: 20184: j {{.*}} <fpic>
6262
# CHECK-NEXT: 20188: addiu $25, $25, 400
6363
# CHECK-NEXT: 2018c: nop
6464

@@ -87,22 +87,22 @@ __start:
8787
# ORPH1: Disassembly of section .text:
8888
# ORPH1-EMPTY:
8989
# ORPH1-NEXT: <__start>:
90-
# ORPH1-NEXT: 20000: jal 131168 <__LA25Thunk_foo1a>
90+
# ORPH1-NEXT: 20000: jal {{.*}} <__LA25Thunk_foo1a>
9191
# ORPH1-NEXT: 20004: nop
92-
# ORPH1-NEXT: 20008: jal 131216 <__LA25Thunk_foo2>
92+
# ORPH1-NEXT: 20008: jal {{.*}} <__LA25Thunk_foo2>
9393
# ORPH1-NEXT: 2000c: nop
94-
# ORPH1-NEXT: 20010: jal 131184 <__LA25Thunk_foo1b>
94+
# ORPH1-NEXT: 20010: jal {{.*}} <__LA25Thunk_foo1b>
9595
# ORPH1-NEXT: 20014: nop
96-
# ORPH1-NEXT: 20018: jal 131216 <__LA25Thunk_foo2>
96+
# ORPH1-NEXT: 20018: jal {{.*}} <__LA25Thunk_foo2>
9797
# ORPH1-NEXT: 2001c: nop
98-
# ORPH1-NEXT: 20020: jal 131120 <__LA25Thunk_fpic>
98+
# ORPH1-NEXT: 20020: jal {{.*}} <__LA25Thunk_fpic>
9999
# ORPH1-NEXT: 20024: nop
100-
# ORPH1-NEXT: 20028: jal 131152 <fnpic>
100+
# ORPH1-NEXT: 20028: jal {{.*}} <fnpic>
101101
# ORPH1-NEXT: 2002c: nop
102102

103103
# ORPH1: <__LA25Thunk_fpic>:
104104
# ORPH1-NEXT: 20030: lui $25, 2
105-
# ORPH1-NEXT: 20034: j 131136 <fpic>
105+
# ORPH1-NEXT: 20034: j {{.*}} <fpic>
106106
# ORPH1-NEXT: 20038: addiu $25, $25, 64
107107
# ORPH1-NEXT: 2003c: nop
108108

@@ -114,13 +114,13 @@ __start:
114114

115115
# ORPH1: <__LA25Thunk_foo1a>:
116116
# ORPH1-NEXT: 20060: lui $25, 2
117-
# ORPH1-NEXT: j 131200 <foo1a>
117+
# ORPH1-NEXT: j {{.*}} <foo1a>
118118
# ORPH1-NEXT: addiu $25, $25, 128
119119
# ORPH1-NEXT: nop
120120

121121
# ORPH1: <__LA25Thunk_foo1b>:
122122
# ORPH1-NEXT: 20070: lui $25, 2
123-
# ORPH1-NEXT: j 131204 <foo1b>
123+
# ORPH1-NEXT: j {{.*}} <foo1b>
124124
# ORPH1-NEXT: addiu $25, $25, 132
125125
# ORPH1-NEXT: nop
126126

@@ -132,7 +132,7 @@ __start:
132132

133133
# ORPH1: <__LA25Thunk_foo2>:
134134
# ORPH1-NEXT: 20090: lui $25, 2
135-
# ORPH1-NEXT: j 131232 <foo2>
135+
# ORPH1-NEXT: j {{.*}} <foo2>
136136
# ORPH1-NEXT: addiu $25, $25, 160
137137
# ORPH1-NEXT: nop
138138

@@ -148,22 +148,22 @@ __start:
148148
# ORPH2: Disassembly of section .out:
149149
# ORPH2-EMPTY:
150150
# ORPH2-NEXT: <__start>:
151-
# ORPH2-NEXT: 20000: jal 131168 <__LA25Thunk_foo1a>
151+
# ORPH2-NEXT: 20000: jal {{.*}} <__LA25Thunk_foo1a>
152152
# ORPH2-NEXT: 20004: nop
153-
# ORPH2-NEXT: 20008: jal 131208 <__LA25Thunk_foo2>
153+
# ORPH2-NEXT: 20008: jal {{.*}} <__LA25Thunk_foo2>
154154
# ORPH2-NEXT: 2000c: nop
155-
# ORPH2-NEXT: 20010: jal 131184 <__LA25Thunk_foo1b>
155+
# ORPH2-NEXT: 20010: jal {{.*}} <__LA25Thunk_foo1b>
156156
# ORPH2-NEXT: 20014: nop
157-
# ORPH2-NEXT: 20018: jal 131208 <__LA25Thunk_foo2>
157+
# ORPH2-NEXT: 20018: jal {{.*}} <__LA25Thunk_foo2>
158158
# ORPH2-NEXT: 2001c: nop
159-
# ORPH2-NEXT: 20020: jal 131120 <__LA25Thunk_fpic>
159+
# ORPH2-NEXT: 20020: jal {{.*}} <__LA25Thunk_fpic>
160160
# ORPH2-NEXT: 20024: nop
161-
# ORPH2-NEXT: 20028: jal 131152 <fnpic>
161+
# ORPH2-NEXT: 20028: jal {{.*}} <fnpic>
162162
# ORPH2-NEXT: 2002c: nop
163163

164164
# ORPH2: <__LA25Thunk_fpic>:
165165
# ORPH2-NEXT: 20030: lui $25, 2
166-
# ORPH2-NEXT: 20034: j 131136 <fpic>
166+
# ORPH2-NEXT: 20034: j {{.*}} <fpic>
167167
# ORPH2-NEXT: 20038: addiu $25, $25, 64
168168
# ORPH2-NEXT: 2003c: nop
169169

@@ -178,13 +178,13 @@ __start:
178178

179179
# ORPH2-NEXT: <__LA25Thunk_foo1a>:
180180
# ORPH2-NEXT: 20060: lui $25, 2
181-
# ORPH2-NEXT: 20064: j 131200 <foo1a>
181+
# ORPH2-NEXT: 20064: j {{.*}} <foo1a>
182182
# ORPH2-NEXT: 20068: addiu $25, $25, 128
183183
# ORPH2-NEXT: 2006c: nop
184184

185185
# ORPH2: <__LA25Thunk_foo1b>:
186186
# ORPH2-NEXT: 20070: lui $25, 2
187-
# ORPH2-NEXT: 20074: j 131204 <foo1b>
187+
# ORPH2-NEXT: 20074: j {{.*}} <foo1b>
188188
# ORPH2-NEXT: 20078: addiu $25, $25, 132
189189
# ORPH2-NEXT: 2007c: nop
190190

@@ -196,7 +196,7 @@ __start:
196196

197197
# ORPH2: <__LA25Thunk_foo2>:
198198
# ORPH2-NEXT: 20088: lui $25, 2
199-
# ORPH2-NEXT: 2008c: j 131232 <foo2>
199+
# ORPH2-NEXT: 2008c: j {{.*}} <foo2>
200200
# ORPH2-NEXT: 20090: addiu $25, $25, 160
201201
# ORPH2-NEXT: 20094: nop
202202

lld/test/ELF/mips-npic-call-pic.s

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,23 @@
3737
# CHECK: Disassembly of section .text:
3838
# CHECK-EMPTY:
3939
# CHECK-NEXT: <__start>:
40-
# CHECK-NEXT: 20100: jal 131412 <__LA25Thunk_foo1a>
40+
# CHECK-NEXT: 20100: jal {{.*}} <__LA25Thunk_foo1a>
4141
# CHECK-NEXT: nop
42-
# CHECK-NEXT: jal 131464 <__LA25Thunk_foo2>
42+
# CHECK-NEXT: jal {{.*}} <__LA25Thunk_foo2>
4343
# CHECK-NEXT: nop
44-
# CHECK-NEXT: jal 131428 <__LA25Thunk_foo1b>
44+
# CHECK-NEXT: jal {{.*}} <__LA25Thunk_foo1b>
4545
# CHECK-NEXT: nop
46-
# CHECK-NEXT: jal 131464 <__LA25Thunk_foo2>
46+
# CHECK-NEXT: jal {{.*}} <__LA25Thunk_foo2>
4747
# CHECK-NEXT: nop
48-
# CHECK-NEXT: jal 131376 <__LA25Thunk_fpic>
48+
# CHECK-NEXT: jal {{.*}} <__LA25Thunk_fpic>
4949
# CHECK-NEXT: nop
50-
# CHECK-NEXT: jal 131408 <fnpic>
50+
# CHECK-NEXT: jal {{.*}} <fnpic>
5151
# CHECK-NEXT: nop
5252

5353
# CHECK: <__LA25Thunk_fpic>:
5454
# R2: 20130: lui $25, 2
5555
# R6: 20130: aui $25, $zero, 2
56-
# CHECK-NEXT: j 131392 <fpic>
56+
# CHECK-NEXT: j {{.*}} <fpic>
5757
# CHECK-NEXT: addiu $25, $25, 320
5858
# CHECK-NEXT: nop
5959

@@ -66,14 +66,14 @@
6666
# CHECK: <__LA25Thunk_foo1a>:
6767
# R2: 20154: lui $25, 2
6868
# R6: 20154: aui $25, $zero, 2
69-
# CHECK: j 131456 <foo1a>
69+
# CHECK: j {{.*}} <foo1a>
7070
# CHECK-NEXT: addiu $25, $25, 384
7171
# CHECK-NEXT: nop
7272

7373
# CHECK: <__LA25Thunk_foo1b>:
7474
# R2: 20164: lui $25, 2
7575
# R6: aui $25, $zero, 2
76-
# CHECK-NEXT: j 131460 <foo1b>
76+
# CHECK-NEXT: j {{.*}} <foo1b>
7777
# CHECK-NEXT: addiu $25, $25, 388
7878
# CHECK-NEXT: nop
7979

@@ -86,7 +86,7 @@
8686
# CHECK: <__LA25Thunk_foo2>:
8787
# R2: 20188: lui $25, 2
8888
# R6: aui $25, $zero, 2
89-
# CHECK-NEXT: j 131488 <foo2>
89+
# CHECK-NEXT: j {{.*}} <foo2>
9090
# CHECK-NEXT: addiu $25, $25, 416
9191
# CHECK-NEXT: nop
9292

lld/test/ELF/mips-pc-relocs.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ __start:
3838
# CHECK-NEXT: <__start>:
3939
# CHECK-NEXT: 20000: lwpc $6, 32
4040
# ^-- (0x20020-0x20000)>>2
41-
# CHECK-NEXT: 20004: beqc $5, $6, 28
41+
# CHECK-NEXT: 20004: beqc $5, $6, 0x20020
4242
# ^-- (0x20020-4-0x20004)>>2
43-
# CHECK-NEXT: 20008: beqzc $9, 24
43+
# CHECK-NEXT: 20008: beqzc $9, 0x20020
4444
# ^-- (0x20020-4-0x20008)>>2
45-
# CHECK-NEXT: 2000c: bc 20
45+
# CHECK-NEXT: 2000c: bc 0x20020
4646
# ^-- (0x20020-4-0x2000c)>>2
4747
# CHECK-NEXT: 20010: aluipc $2, 0
4848
# ^-- %hi(0x20020-0x20010)

lld/test/ELF/mips-plt-n32.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
# CHECK: Disassembly of section .text:
2424
# CHECK-EMPTY:
2525
# CHECK-NEXT: <__start>:
26-
# CHECK-NEXT: 20000: jal 131120
26+
# CHECK-NEXT: 20000: jal 0x20030
2727
# ^-- 0x20030 gotplt[foo0]
2828
# CHECK-NEXT: 20004: nop
2929
#

0 commit comments

Comments
 (0)