1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
# MIPS ELF GOT reloc n64
.data
.align 3
sp1:
.space 60
.globl dg1
dg1:
dl1:
.space 60
.text
.globl fn
.ent fn
.type fn,@function
fn:
.Lfn:
dla $5,dg1+0
dla $5,dg1+12
dla $5,dg1+123456
dla $5,dg1+0($17)
dla $5,dg1+12($17)
dla $5,dg1+123456($17)
ld $5,dg1+0
ld $5,dg1+12
ld $5,dg1+0($17)
ld $5,dg1+12($17)
ld $5,dg1+34($5)
sd $5,dg1+56($5)
ulw $5,dg1+0
ulw $5,dg1+12
ulw $5,dg1+0($17)
ulw $5,dg1+12($17)
ulw $5,dg1+34($5)
usw $5,dg1+56($5)
dla $5,dl1+0
dla $5,dl1+12
dla $5,dl1+123456
dla $5,dl1+0($17)
dla $5,dl1+12($17)
dla $5,dl1+123456($17)
ld $5,dl1+0
ld $5,dl1+12
ld $5,dl1+0($17)
ld $5,dl1+12($17)
ld $5,dl1+34($5)
sd $5,dl1+56($5)
ulw $5,dl1+0
ulw $5,dl1+12
ulw $5,dl1+0($17)
ulw $5,dl1+12($17)
ulw $5,dl1+34($5)
usw $5,dl1+56($5)
dla $5,fn
dla $5,.Lfn
dla $25,fn
dla $25,.Lfn
jal fn
jal .Lfn
dla $5,dg2+0
dla $5,dg2+12
dla $5,dg2+123456
dla $5,dg2+0($17)
dla $5,dg2+12($17)
dla $5,dg2+123456($17)
ld $5,dg2+0
ld $5,dg2+12
ld $5,dg2+0($17)
ld $5,dg2+12($17)
ld $5,dg2+34($5)
sd $5,dg2+56($5)
ulw $5,dg2+0
ulw $5,dg2+12
ulw $5,dg2+0($17)
ulw $5,dg2+12($17)
ulw $5,dg2+34($5)
usw $5,dg2+56($5)
dla $5,dl2+0
dla $5,dl2+12
dla $5,dl2+123456
dla $5,dl2+0($17)
dla $5,dl2+12($17)
dla $5,dl2+123456($17)
ld $5,dl2+0
ld $5,dl2+12
ld $5,dl2+0($17)
ld $5,dl2+12($17)
ld $5,dl2+34($5)
sd $5,dl2+56($5)
ulw $5,dl2+0
ulw $5,dl2+12
ulw $5,dl2+0($17)
ulw $5,dl2+12($17)
ulw $5,dl2+34($5)
usw $5,dl2+56($5)
dla $5,fn2
dla $5,.Lfn2
dla $25,fn2
dla $25,.Lfn2
jal fn2
jal .Lfn2
# Check that filling delay slots doesn't break our relocations.
dla $5,dg1
b .Lfn
ld $5,dg2
b .Lfn2
dla $5,dl1
b .Lfn
dla $5,dl2+12
b .Lfn2
dla $5,dl1+123456
b .Lfn
ld $5,dl2
b .Lfn2
ld $5,dl1+12
b .Lfn
ld $5,dl2+34($5)
b .Lfn2
# Force at least 8 (non-deddlay-slot) zero bytes, to make 'objdump' print ...
.space 8
.end fn
.globl fn2
.ent fn2
.type fn2,@function
fn2:
.Lfn2:
.end fn2
.globl __start
__start:
.data
.align 3
sp2:
.space 60
.globl dg2
dg2:
dl2:
.space 60
|