1 ! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
2 ! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
4 ! CHECK: call foo ! encoding: [0b01AAAAAA,A,A,A]
5 ! CHECK: ! fixup A - offset: 0, value: foo, kind: fixup_sparc_call30
8 ! CHECK: call %g1+%i2 ! encoding: [0x9f,0xc0,0x40,0x1a]
11 ! CHECK: call %o1+8 ! encoding: [0x9f,0xc2,0x60,0x08]
14 ! CHECK: call %g1 ! encoding: [0x9f,0xc0,0x40,0x00]
17 ! CHECK: call %g1+%lo(sym) ! encoding: [0x9f,0xc0,0b011000AA,A]
18 ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10
21 ! CHECK: jmp %g1+%i2 ! encoding: [0x81,0xc0,0x40,0x1a]
24 ! CHECK: jmp %o1+8 ! encoding: [0x81,0xc2,0x60,0x08]
27 ! CHECK: jmp %g1 ! encoding: [0x81,0xc0,0x40,0x00]
30 ! CHECK: jmp %g1+%lo(sym) ! encoding: [0x81,0xc0,0b011000AA,A]
31 ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10
34 ! CHECK: jmpl %g1+%i2, %g2 ! encoding: [0x85,0xc0,0x40,0x1a]
37 ! CHECK: jmpl %o1+8, %g2 ! encoding: [0x85,0xc2,0x60,0x08]
40 ! CHECK: jmpl %g1, %g2 ! encoding: [0x85,0xc0,0x40,0x00]
43 ! CHECK: jmpl %g1+%lo(sym), %g2 ! encoding: [0x85,0xc0,0b011000AA,A]
44 ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10
45 jmpl %g1+%lo(sym), %g2
47 ! CHECK: ba .BB0 ! encoding: [0x10,0b10AAAAAA,A,A]
48 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
51 ! CHECK: bne .BB0 ! encoding: [0x12,0b10AAAAAA,A,A]
52 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
55 ! CHECK: bne .BB0 ! encoding: [0x12,0b10AAAAAA,A,A]
56 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
59 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A]
60 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
63 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A]
64 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
67 ! CHECK: be .BB0 ! encoding: [0x02,0b10AAAAAA,A,A]
68 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
71 ! CHECK: bg .BB0 ! encoding: [0x14,0b10AAAAAA,A,A]
72 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
75 ! CHECK: ble .BB0 ! encoding: [0x04,0b10AAAAAA,A,A]
76 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
79 ! CHECK: bge .BB0 ! encoding: [0x16,0b10AAAAAA,A,A]
80 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
83 ! CHECK: bl .BB0 ! encoding: [0x06,0b10AAAAAA,A,A]
84 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
87 ! CHECK: bgu .BB0 ! encoding: [0x18,0b10AAAAAA,A,A]
88 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
91 ! CHECK: bleu .BB0 ! encoding: [0x08,0b10AAAAAA,A,A]
92 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
95 ! CHECK: bcc .BB0 ! encoding: [0x1a,0b10AAAAAA,A,A]
96 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
99 ! CHECK: bcc .BB0 ! encoding: [0x1a,0b10AAAAAA,A,A]
100 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
103 ! CHECK: bcs .BB0 ! encoding: [0x0a,0b10AAAAAA,A,A]
104 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
107 ! CHECK: bcs .BB0 ! encoding: [0x0a,0b10AAAAAA,A,A]
108 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
111 ! CHECK: bpos .BB0 ! encoding: [0x1c,0b10AAAAAA,A,A]
112 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
115 ! CHECK: bneg .BB0 ! encoding: [0x0c,0b10AAAAAA,A,A]
116 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
119 ! CHECK: bvc .BB0 ! encoding: [0x1e,0b10AAAAAA,A,A]
120 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
123 ! CHECK: bvs .BB0 ! encoding: [0x0e,0b10AAAAAA,A,A]
124 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
127 ! CHECK: fba .BB0 ! encoding: [0x11,0b10AAAAAA,A,A]
128 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
131 ! CHECK: fba .BB0 ! encoding: [0x11,0b10AAAAAA,A,A]
132 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
135 ! CHECK: fbn .BB0 ! encoding: [0x01,0b10AAAAAA,A,A]
136 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
139 ! CHECK: fbu .BB0 ! encoding: [0x0f,0b10AAAAAA,A,A]
140 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
143 ! CHECK: fbg .BB0 ! encoding: [0x0d,0b10AAAAAA,A,A]
144 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
147 ! CHECK: fbug .BB0 ! encoding: [0x0b,0b10AAAAAA,A,A]
148 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
151 ! CHECK: fbl .BB0 ! encoding: [0x09,0b10AAAAAA,A,A]
152 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
155 ! CHECK: fbul .BB0 ! encoding: [0x07,0b10AAAAAA,A,A]
156 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
159 ! CHECK: fblg .BB0 ! encoding: [0x05,0b10AAAAAA,A,A]
160 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
163 ! CHECK: fbne .BB0 ! encoding: [0x03,0b10AAAAAA,A,A]
164 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
167 ! CHECK: fbne .BB0 ! encoding: [0x03,0b10AAAAAA,A,A]
168 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
171 ! CHECK: fbe .BB0 ! encoding: [0x13,0b10AAAAAA,A,A]
172 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
175 ! CHECK: fbe .BB0 ! encoding: [0x13,0b10AAAAAA,A,A]
176 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
179 ! CHECK: fbue .BB0 ! encoding: [0x15,0b10AAAAAA,A,A]
180 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
183 ! CHECK: fbge .BB0 ! encoding: [0x17,0b10AAAAAA,A,A]
184 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
187 ! CHECK: fbuge .BB0 ! encoding: [0x19,0b10AAAAAA,A,A]
188 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
191 ! CHECK: fble .BB0 ! encoding: [0x1b,0b10AAAAAA,A,A]
192 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
195 ! CHECK: fbule .BB0 ! encoding: [0x1d,0b10AAAAAA,A,A]
196 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
199 ! CHECK: fbo .BB0 ! encoding: [0x1f,0b10AAAAAA,A,A]
200 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
203 ! CHECK: ba,a .BB0 ! encoding: [0x30,0b10AAAAAA,A,A]
204 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
207 ! CHECK: bne,a .BB0 ! encoding: [0x32,0b10AAAAAA,A,A]
208 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
211 ! CHECK: be,a .BB0 ! encoding: [0x22,0b10AAAAAA,A,A]
212 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
215 ! CHECK: bg,a .BB0 ! encoding: [0x34,0b10AAAAAA,A,A]
216 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
219 ! CHECK: ble,a .BB0 ! encoding: [0x24,0b10AAAAAA,A,A]
220 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
223 ! CHECK: bge,a .BB0 ! encoding: [0x36,0b10AAAAAA,A,A]
224 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
227 ! CHECK: bl,a .BB0 ! encoding: [0x26,0b10AAAAAA,A,A]
228 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
231 ! CHECK: bgu,a .BB0 ! encoding: [0x38,0b10AAAAAA,A,A]
232 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
235 ! CHECK: bleu,a .BB0 ! encoding: [0x28,0b10AAAAAA,A,A]
236 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
239 ! CHECK: bcc,a .BB0 ! encoding: [0x3a,0b10AAAAAA,A,A]
240 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
243 ! CHECK: bcs,a .BB0 ! encoding: [0x2a,0b10AAAAAA,A,A]
244 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
247 ! CHECK: bpos,a .BB0 ! encoding: [0x3c,0b10AAAAAA,A,A]
248 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
251 ! CHECK: bneg,a .BB0 ! encoding: [0x2c,0b10AAAAAA,A,A]
252 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
255 ! CHECK: bvc,a .BB0 ! encoding: [0x3e,0b10AAAAAA,A,A]
256 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
259 ! CHECK: bvs,a .BB0 ! encoding: [0x2e,0b10AAAAAA,A,A]
260 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
263 ! CHECK: fbu,a .BB0 ! encoding: [0x2f,0b10AAAAAA,A,A]
264 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
267 ! CHECK: fbg,a .BB0 ! encoding: [0x2d,0b10AAAAAA,A,A]
268 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
270 ! CHECK: fbug,a .BB0 ! encoding: [0x2b,0b10AAAAAA,A,A]
271 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
274 ! CHECK: fbl,a .BB0 ! encoding: [0x29,0b10AAAAAA,A,A]
275 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
278 ! CHECK: fbul,a .BB0 ! encoding: [0x27,0b10AAAAAA,A,A]
279 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
282 ! CHECK: fblg,a .BB0 ! encoding: [0x25,0b10AAAAAA,A,A]
283 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
286 ! CHECK: fbne,a .BB0 ! encoding: [0x23,0b10AAAAAA,A,A]
287 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
290 ! CHECK: fbe,a .BB0 ! encoding: [0x33,0b10AAAAAA,A,A]
291 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
294 ! CHECK: fbue,a .BB0 ! encoding: [0x35,0b10AAAAAA,A,A]
295 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
298 ! CHECK: fbge,a .BB0 ! encoding: [0x37,0b10AAAAAA,A,A]
299 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
302 ! CHECK: fbuge,a .BB0 ! encoding: [0x39,0b10AAAAAA,A,A]
303 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
306 ! CHECK: fble,a .BB0 ! encoding: [0x3b,0b10AAAAAA,A,A]
307 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
310 ! CHECK: fbule,a .BB0 ! encoding: [0x3d,0b10AAAAAA,A,A]
311 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
314 ! CHECK: fbo,a .BB0 ! encoding: [0x3f,0b10AAAAAA,A,A]
315 ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
318 ! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08]