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