xref: /aosp_15_r20/external/llvm/test/MC/Hexagon/relocations.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -filetype=obj -triple=hexagon %s | llvm-objdump -r - | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B22_PCREL
4*9880d681SAndroid Build Coastguard Workerr_hex_b22_pcrel:
5*9880d681SAndroid Build Coastguard Worker{ jump #undefined }
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B15_PCREL
8*9880d681SAndroid Build Coastguard Workerr_hex_b15_pcrel:
9*9880d681SAndroid Build Coastguard Worker{ if (p0) jump #undefined }
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B7_PCREL
12*9880d681SAndroid Build Coastguard Workerr_hex_b7_pcrel:
13*9880d681SAndroid Build Coastguard Worker{ loop1 (#undefined, #0) }
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_32
16*9880d681SAndroid Build Coastguard Workerr_hex_32:
17*9880d681SAndroid Build Coastguard Worker.word undefined
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_16
20*9880d681SAndroid Build Coastguard Workerr_hex_16:
21*9880d681SAndroid Build Coastguard Worker.half undefined
22*9880d681SAndroid Build Coastguard Worker.half 0
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_8
25*9880d681SAndroid Build Coastguard Workerr_hex_8:
26*9880d681SAndroid Build Coastguard Worker.byte undefined
27*9880d681SAndroid Build Coastguard Worker.byte 0
28*9880d681SAndroid Build Coastguard Worker.byte 0
29*9880d681SAndroid Build Coastguard Worker.byte 0
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GPREL16_0
32*9880d681SAndroid Build Coastguard Workerr_hex_gprel16_0:
33*9880d681SAndroid Build Coastguard Worker{ r0 = memb (#undefined@gotrel) }
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GPREL16_1
36*9880d681SAndroid Build Coastguard Workerr_hex_gprel16_1:
37*9880d681SAndroid Build Coastguard Worker{ r0 = memh (#undefined@gotrel) }
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GPREL16_2
40*9880d681SAndroid Build Coastguard Workerr_hex_gprel16_2:
41*9880d681SAndroid Build Coastguard Worker{ r0 = memw (#undefined@gotrel) }
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GPREL16_3
44*9880d681SAndroid Build Coastguard Workerr_hex_gprel16_3:
45*9880d681SAndroid Build Coastguard Worker{ r1:0 = memd (#undefined@gotrel) }
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B13_PCREL
48*9880d681SAndroid Build Coastguard Workerr_hex_b13_pcrel:
49*9880d681SAndroid Build Coastguard Worker{ if (r0 != #0) jump:nt #undefined }
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B9_PCREL
52*9880d681SAndroid Build Coastguard Workerr_hex_b9_pcrel:
53*9880d681SAndroid Build Coastguard Worker{ r0 = #0 ; jump #undefined }
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B32_PCREL_X
56*9880d681SAndroid Build Coastguard Workerr_hex_b32_pcrel_x:
57*9880d681SAndroid Build Coastguard Worker{ jump ##undefined }
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_32_6_X
60*9880d681SAndroid Build Coastguard Workerr_hex_32_6_x:
61*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined }
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B22_PCREL_X
64*9880d681SAndroid Build Coastguard Workerr_hex_b22_pcrel_x:
65*9880d681SAndroid Build Coastguard Worker{ jump ##undefined }
66*9880d681SAndroid Build Coastguard Worker
67*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B15_PCREL_X
68*9880d681SAndroid Build Coastguard Workerr_hex_b15_pcrel_x:
69*9880d681SAndroid Build Coastguard Worker{ if (p0) jump ##undefined }
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B9_PCREL_X
72*9880d681SAndroid Build Coastguard Workerr_hex_b9_pcrel_x:
73*9880d681SAndroid Build Coastguard Worker{ r0 = #0 ; jump ##undefined }
74*9880d681SAndroid Build Coastguard Worker
75*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_B7_PCREL_X
76*9880d681SAndroid Build Coastguard Workerr_hex_b7_pcrel_x:
77*9880d681SAndroid Build Coastguard Worker{ loop1 (##undefined, #0) }
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_32_PCREL
80*9880d681SAndroid Build Coastguard Workerr_hex_32_pcrel:
81*9880d681SAndroid Build Coastguard Worker.word undefined@pcrel
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_PLT_B22_PCREL
84*9880d681SAndroid Build Coastguard Workerr_hex_plt_b22_pcrel:
85*9880d681SAndroid Build Coastguard Workerjump undefined@plt
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOTREL_32
88*9880d681SAndroid Build Coastguard Workerr_hex_gotrel_32:
89*9880d681SAndroid Build Coastguard Worker.word undefined@gotrel
90*9880d681SAndroid Build Coastguard Worker
91*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOT_32
92*9880d681SAndroid Build Coastguard Workerr_hex_got_32:
93*9880d681SAndroid Build Coastguard Worker.word undefined@got
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOT_16
96*9880d681SAndroid Build Coastguard Workerr_hex_got_16:
97*9880d681SAndroid Build Coastguard Worker.half undefined@got
98*9880d681SAndroid Build Coastguard Worker.half 0
99*9880d681SAndroid Build Coastguard Worker
100*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_DTPREL_32
101*9880d681SAndroid Build Coastguard Workerr_hex_dtprel_32:
102*9880d681SAndroid Build Coastguard Worker.word undefined@dtprel
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_DTPREL_16
105*9880d681SAndroid Build Coastguard Workerr_hex_dtprel_16:
106*9880d681SAndroid Build Coastguard Worker.half undefined@dtprel
107*9880d681SAndroid Build Coastguard Worker.half 0
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GD_GOT_32
110*9880d681SAndroid Build Coastguard Workerr_hex_gd_got_32:
111*9880d681SAndroid Build Coastguard Worker.word undefined@gdgot
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GD_GOT_16
114*9880d681SAndroid Build Coastguard Workerr_hex_gd_got_16:
115*9880d681SAndroid Build Coastguard Worker.half undefined@gdgot
116*9880d681SAndroid Build Coastguard Worker.half 0
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_32
119*9880d681SAndroid Build Coastguard Workerr_hex_ie_32:
120*9880d681SAndroid Build Coastguard Worker.word undefined@ie
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_GOT_32
123*9880d681SAndroid Build Coastguard Workerr_hex_ie_got_32:
124*9880d681SAndroid Build Coastguard Worker.word undefined@iegot
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_GOT_16
127*9880d681SAndroid Build Coastguard Workerr_hex_ie_got_16:
128*9880d681SAndroid Build Coastguard Worker.half undefined@iegot
129*9880d681SAndroid Build Coastguard Worker.half 0
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_TPREL_32
132*9880d681SAndroid Build Coastguard Workerr_hex_tprel_32:
133*9880d681SAndroid Build Coastguard Worker.word undefined@tprel
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_TPREL_16
136*9880d681SAndroid Build Coastguard Workerr_hex_tprel_16:
137*9880d681SAndroid Build Coastguard Workerr0 = #undefined@tprel
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_6_PCREL_X
140*9880d681SAndroid Build Coastguard Workerr_hex_6_pcrel_x:
141*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@pcrel
142*9880d681SAndroid Build Coastguard Worker  r1 = r1 }
143*9880d681SAndroid Build Coastguard Worker
144*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOTREL_32_6_X
145*9880d681SAndroid Build Coastguard Workerr_hex_gotrel_32_6_x:
146*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@gotrel }
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOTREL_16_X
149*9880d681SAndroid Build Coastguard Workerr_hex_gotrel_16_x:
150*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@gotrel }
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOTREL_11_X
153*9880d681SAndroid Build Coastguard Workerr_hex_gotrel_11_x:
154*9880d681SAndroid Build Coastguard Worker{ r0 = memw(r0 + ##undefined@gotrel) }
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOT_32_6_X
157*9880d681SAndroid Build Coastguard Workerr_hex_got_32_6_x:
158*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@got }
159*9880d681SAndroid Build Coastguard Worker
160*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOT_16_X
161*9880d681SAndroid Build Coastguard Workerr_hex_got_16_x:
162*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@got }
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GOT_11_X
165*9880d681SAndroid Build Coastguard Workerr_hex_got_11_x:
166*9880d681SAndroid Build Coastguard Worker{ r0 = memw(r0 + ##undefined@got) }
167*9880d681SAndroid Build Coastguard Worker
168*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_DTPREL_32_6_X
169*9880d681SAndroid Build Coastguard Workerr_hex_dtprel_32_6_x:
170*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@dtprel }
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_DTPREL_16_X
173*9880d681SAndroid Build Coastguard Workerr_hex_dtprel_16_x:
174*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@dtprel }
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_DTPREL_11_X
177*9880d681SAndroid Build Coastguard Workerr_hex_dtprel_11_x:
178*9880d681SAndroid Build Coastguard Worker{ r0 = memw(r0 + ##undefined@dtprel) }
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GD_GOT_32_6_X
181*9880d681SAndroid Build Coastguard Workerr_hex_gd_got_32_6_x:
182*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@gdgot }
183*9880d681SAndroid Build Coastguard Worker
184*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GD_GOT_16_X
185*9880d681SAndroid Build Coastguard Workerr_hex_gd_got_16_x:
186*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@gdgot }
187*9880d681SAndroid Build Coastguard Worker
188*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_GD_GOT_11_X
189*9880d681SAndroid Build Coastguard Workerr_hex_gd_got_11_x:
190*9880d681SAndroid Build Coastguard Worker{ r0 = memw(r0 + ##undefined@gdgot) }
191*9880d681SAndroid Build Coastguard Worker
192*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_32_6_X
193*9880d681SAndroid Build Coastguard Workerr_hex_ie_32_6_x:
194*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@ie }
195*9880d681SAndroid Build Coastguard Worker
196*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_16_X
197*9880d681SAndroid Build Coastguard Workerr_hex_ie_16_x:
198*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@ie }
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_GOT_32_6_X
201*9880d681SAndroid Build Coastguard Workerr_hex_ie_got_32_6_x:
202*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@iegot }
203*9880d681SAndroid Build Coastguard Worker
204*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_GOT_16_X
205*9880d681SAndroid Build Coastguard Workerr_hex_ie_got_16_x:
206*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@iegot }
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_IE_GOT_11_X
209*9880d681SAndroid Build Coastguard Workerr_hex_ie_got_11_x:
210*9880d681SAndroid Build Coastguard Worker{ r0 = memw(r0 + ##undefined@iegot) }
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_TPREL_32_6_X
213*9880d681SAndroid Build Coastguard Workerr_hex_tprel_32_6_x:
214*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@tprel }
215*9880d681SAndroid Build Coastguard Worker
216*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_TPREL_16_X
217*9880d681SAndroid Build Coastguard Workerr_hex_tprel_16_x:
218*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@tprel }
219*9880d681SAndroid Build Coastguard Worker
220*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_TPREL_11_X
221*9880d681SAndroid Build Coastguard Workerr_hex_tprel_11_x:
222*9880d681SAndroid Build Coastguard Worker{ r0 = memw(r0 + ##undefined@tprel) }
223*9880d681SAndroid Build Coastguard Worker
224*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_LD_GOT_32
225*9880d681SAndroid Build Coastguard Workerr_hex_ld_got_32:
226*9880d681SAndroid Build Coastguard Worker.word undefined@ldgot
227*9880d681SAndroid Build Coastguard Worker
228*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_LD_GOT_16
229*9880d681SAndroid Build Coastguard Workerr_hex_ld_got_16:
230*9880d681SAndroid Build Coastguard Worker.half undefined@ldgot
231*9880d681SAndroid Build Coastguard Worker.half 0
232*9880d681SAndroid Build Coastguard Worker
233*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_LD_GOT_32_6_X
234*9880d681SAndroid Build Coastguard Workerr_hex_ld_got_32_6_x:
235*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@ldgot }
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_LD_GOT_16_X
238*9880d681SAndroid Build Coastguard Workerr_hex_ld_got_16_x:
239*9880d681SAndroid Build Coastguard Worker{ r0 = ##undefined@ldgot }
240*9880d681SAndroid Build Coastguard Worker
241*9880d681SAndroid Build Coastguard Worker# CHECK: R_HEX_LD_GOT_11_X
242*9880d681SAndroid Build Coastguard Workerr_hex_ld_got_11_x:
243*9880d681SAndroid Build Coastguard Worker{ r0 = memw(r0 + ##undefined@ldgot) }
244*9880d681SAndroid Build Coastguard Worker
245