1# RUN: llvm-mc -filetype=obj -triple=hexagon %s | llvm-objdump -r - | FileCheck %s
2
3# CHECK: R_HEX_B22_PCREL
4r_hex_b22_pcrel:
5{ jump #undefined }
6
7# CHECK: R_HEX_B15_PCREL
8r_hex_b15_pcrel:
9{ if (p0) jump #undefined }
10
11# CHECK: R_HEX_B7_PCREL
12r_hex_b7_pcrel:
13{ loop1 (#undefined, #0) }
14
15# CHECK: R_HEX_32
16r_hex_32:
17.word undefined
18
19# CHECK: R_HEX_16
20r_hex_16:
21.half undefined
22.half 0
23
24# CHECK: R_HEX_8
25r_hex_8:
26.byte undefined
27.byte 0
28.byte 0
29.byte 0
30
31# CHECK: R_HEX_GPREL16_0
32r_hex_gprel16_0:
33{ r0 = memb (#undefined@gotrel) }
34
35# CHECK: R_HEX_GPREL16_1
36r_hex_gprel16_1:
37{ r0 = memh (#undefined@gotrel) }
38
39# CHECK: R_HEX_GPREL16_2
40r_hex_gprel16_2:
41{ r0 = memw (#undefined@gotrel) }
42
43# CHECK: R_HEX_GPREL16_3
44r_hex_gprel16_3:
45{ r1:0 = memd (#undefined@gotrel) }
46
47# CHECK: R_HEX_B13_PCREL
48r_hex_b13_pcrel:
49{ if (r0 != #0) jump:nt #undefined }
50
51# CHECK: R_HEX_B9_PCREL
52r_hex_b9_pcrel:
53{ r0 = #0 ; jump #undefined }
54
55# CHECK: R_HEX_B32_PCREL_X
56r_hex_b32_pcrel_x:
57{ jump ##undefined }
58
59# CHECK: R_HEX_32_6_X
60r_hex_32_6_x:
61{ r0 = ##undefined }
62
63# CHECK: R_HEX_B22_PCREL_X
64r_hex_b22_pcrel_x:
65{ jump ##undefined }
66
67# CHECK: R_HEX_B15_PCREL_X
68r_hex_b15_pcrel_x:
69{ if (p0) jump ##undefined }
70
71# CHECK: R_HEX_B9_PCREL_X
72r_hex_b9_pcrel_x:
73{ r0 = #0 ; jump ##undefined }
74
75# CHECK: R_HEX_B7_PCREL_X
76r_hex_b7_pcrel_x:
77{ loop1 (##undefined, #0) }
78
79# CHECK: R_HEX_32_PCREL
80r_hex_32_pcrel:
81.word undefined@pcrel
82
83# CHECK: R_HEX_PLT_B22_PCREL
84r_hex_plt_b22_pcrel:
85jump undefined@plt
86
87# CHECK: R_HEX_GOTREL_32
88r_hex_gotrel_32:
89.word undefined@gotrel
90
91# CHECK: R_HEX_GOT_32
92r_hex_got_32:
93.word undefined@got
94
95# CHECK: R_HEX_GOT_16
96r_hex_got_16:
97.half undefined@got
98.half 0
99
100# CHECK: R_HEX_DTPREL_32
101r_hex_dtprel_32:
102.word undefined@dtprel
103
104# CHECK: R_HEX_DTPREL_16
105r_hex_dtprel_16:
106.half undefined@dtprel
107.half 0
108
109# CHECK: R_HEX_GD_GOT_32
110r_hex_gd_got_32:
111.word undefined@gdgot
112
113# CHECK: R_HEX_GD_GOT_16
114r_hex_gd_got_16:
115.half undefined@gdgot
116.half 0
117
118# CHECK: R_HEX_IE_32
119r_hex_ie_32:
120.word undefined@ie
121
122# CHECK: R_HEX_IE_GOT_32
123r_hex_ie_got_32:
124.word undefined@iegot
125
126# CHECK: R_HEX_IE_GOT_16
127r_hex_ie_got_16:
128.half undefined@iegot
129.half 0
130
131# CHECK: R_HEX_TPREL_32
132r_hex_tprel_32:
133.word undefined@tprel
134
135# CHECK: R_HEX_TPREL_16
136r_hex_tprel_16:
137r0 = #undefined@tprel
138
139# CHECK: R_HEX_6_PCREL_X
140r_hex_6_pcrel_x:
141{ r0 = ##undefined@pcrel
142  r1 = r1 }
143
144# CHECK: R_HEX_GOTREL_32_6_X
145r_hex_gotrel_32_6_x:
146{ r0 = ##undefined@gotrel }
147
148# CHECK: R_HEX_GOTREL_16_X
149r_hex_gotrel_16_x:
150{ r0 = ##undefined@gotrel }
151
152# CHECK: R_HEX_GOTREL_11_X
153r_hex_gotrel_11_x:
154{ r0 = memw(r0 + ##undefined@gotrel) }
155
156# CHECK: R_HEX_GOT_32_6_X
157r_hex_got_32_6_x:
158{ r0 = ##undefined@got }
159
160# CHECK: R_HEX_GOT_16_X
161r_hex_got_16_x:
162{ r0 = ##undefined@got }
163
164# CHECK: R_HEX_GOT_11_X
165r_hex_got_11_x:
166{ r0 = memw(r0 + ##undefined@got) }
167
168# CHECK: R_HEX_DTPREL_32_6_X
169r_hex_dtprel_32_6_x:
170{ r0 = ##undefined@dtprel }
171
172# CHECK: R_HEX_DTPREL_16_X
173r_hex_dtprel_16_x:
174{ r0 = ##undefined@dtprel }
175
176# CHECK: R_HEX_DTPREL_11_X
177r_hex_dtprel_11_x:
178{ r0 = memw(r0 + ##undefined@dtprel) }
179
180# CHECK: R_HEX_GD_GOT_32_6_X
181r_hex_gd_got_32_6_x:
182{ r0 = ##undefined@gdgot }
183
184# CHECK: R_HEX_GD_GOT_16_X
185r_hex_gd_got_16_x:
186{ r0 = ##undefined@gdgot }
187
188# CHECK: R_HEX_GD_GOT_11_X
189r_hex_gd_got_11_x:
190{ r0 = memw(r0 + ##undefined@gdgot) }
191
192# CHECK: R_HEX_IE_32_6_X
193r_hex_ie_32_6_x:
194{ r0 = ##undefined@ie }
195
196# CHECK: R_HEX_IE_16_X
197r_hex_ie_16_x:
198{ r0 = ##undefined@ie }
199
200# CHECK: R_HEX_IE_GOT_32_6_X
201r_hex_ie_got_32_6_x:
202{ r0 = ##undefined@iegot }
203
204# CHECK: R_HEX_IE_GOT_16_X
205r_hex_ie_got_16_x:
206{ r0 = ##undefined@iegot }
207
208# CHECK: R_HEX_IE_GOT_11_X
209r_hex_ie_got_11_x:
210{ r0 = memw(r0 + ##undefined@iegot) }
211
212# CHECK: R_HEX_TPREL_32_6_X
213r_hex_tprel_32_6_x:
214{ r0 = ##undefined@tprel }
215
216# CHECK: R_HEX_TPREL_16_X
217r_hex_tprel_16_x:
218{ r0 = ##undefined@tprel }
219
220# CHECK: R_HEX_TPREL_11_X
221r_hex_tprel_11_x:
222{ r0 = memw(r0 + ##undefined@tprel) }
223
224# CHECK: R_HEX_LD_GOT_32
225r_hex_ld_got_32:
226.word undefined@ldgot
227
228# CHECK: R_HEX_LD_GOT_16
229r_hex_ld_got_16:
230.half undefined@ldgot
231.half 0
232
233# CHECK: R_HEX_LD_GOT_32_6_X
234r_hex_ld_got_32_6_x:
235{ r0 = ##undefined@ldgot }
236
237# CHECK: R_HEX_LD_GOT_16_X
238r_hex_ld_got_16_x:
239{ r0 = ##undefined@ldgot }
240
241# CHECK: R_HEX_LD_GOT_11_X
242r_hex_ld_got_11_x:
243{ r0 = memw(r0 + ##undefined@ldgot) }
244
245