Merging r260390:
[oota-llvm.git] / test / MC / Sparc / sparc-ctrl-instructions.s
1 ! RUN: llvm-mc %s -arch=sparc   -show-encoding | FileCheck %s
2 ! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
3
4         ! CHECK: call foo     ! encoding: [0b01AAAAAA,A,A,A]
5         ! CHECK:              !   fixup A - offset: 0, value: foo, kind: fixup_sparc_call30
6         call foo
7
8         ! CHECK: call %g1+%i2 ! encoding: [0x9f,0xc0,0x40,0x1a]
9         call %g1 + %i2
10
11         ! CHECK: call %o1+8   ! encoding: [0x9f,0xc2,0x60,0x08]
12         call %o1 + 8
13
14         ! CHECK: call %g1     ! encoding: [0x9f,0xc0,0x40,0x00]
15         call %g1
16
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
19         call %g1+%lo(sym)
20
21         ! CHECK: jmp %g1+%i2  ! encoding: [0x81,0xc0,0x40,0x1a]
22         jmp %g1 + %i2
23
24         ! CHECK: jmp %o1+8    ! encoding: [0x81,0xc2,0x60,0x08]
25         jmp %o1 + 8
26
27         ! CHECK: jmp %g1      ! encoding: [0x81,0xc0,0x40,0x00]
28         jmp %g1
29
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
32         jmp %g1+%lo(sym)
33
34         ! CHECK: jmpl %g1+%i2, %g2  ! encoding: [0x85,0xc0,0x40,0x1a]
35         jmpl %g1 + %i2, %g2
36
37         ! CHECK: jmpl %o1+8, %g2    ! encoding: [0x85,0xc2,0x60,0x08]
38         jmpl %o1 + 8, %g2
39
40         ! CHECK: jmpl %g1, %g2      ! encoding: [0x85,0xc0,0x40,0x00]
41         jmpl %g1, %g2
42
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
46
47         ! CHECK: ba .BB0      ! encoding: [0x10,0b10AAAAAA,A,A]
48         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
49         ba .BB0
50
51         ! CHECK: bne .BB0     ! encoding: [0x12,0b10AAAAAA,A,A]
52         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
53         bne .BB0
54
55         ! CHECK: bne .BB0     ! encoding: [0x12,0b10AAAAAA,A,A]
56         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
57         bnz .BB0
58
59         ! CHECK: be .BB0      ! encoding: [0x02,0b10AAAAAA,A,A]
60         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
61         be .BB0
62
63         ! CHECK: be .BB0      ! encoding: [0x02,0b10AAAAAA,A,A]
64         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
65         bz .BB0
66
67         ! CHECK: be .BB0      ! encoding: [0x02,0b10AAAAAA,A,A]
68         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
69         beq .BB0
70
71         ! CHECK: bg .BB0      ! encoding: [0x14,0b10AAAAAA,A,A]
72         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
73         bg .BB0
74
75         ! CHECK: ble .BB0      ! encoding: [0x04,0b10AAAAAA,A,A]
76         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
77         ble .BB0
78
79         ! CHECK: bge .BB0      ! encoding: [0x16,0b10AAAAAA,A,A]
80         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
81         bge .BB0
82
83         ! CHECK: bl .BB0      ! encoding: [0x06,0b10AAAAAA,A,A]
84         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
85         bl .BB0
86
87         ! CHECK: bgu .BB0      ! encoding: [0x18,0b10AAAAAA,A,A]
88         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
89         bgu .BB0
90
91         ! CHECK: bleu .BB0      ! encoding: [0x08,0b10AAAAAA,A,A]
92         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
93         bleu .BB0
94
95         ! CHECK: bcc .BB0      ! encoding: [0x1a,0b10AAAAAA,A,A]
96         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
97         bcc .BB0
98
99         ! CHECK: bcc .BB0      ! encoding: [0x1a,0b10AAAAAA,A,A]
100         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
101         bgeu .BB0
102
103         ! CHECK: bcs .BB0      ! encoding: [0x0a,0b10AAAAAA,A,A]
104         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
105         bcs .BB0
106
107         ! CHECK: bcs .BB0      ! encoding: [0x0a,0b10AAAAAA,A,A]
108         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
109         blu .BB0
110
111         ! CHECK: bpos .BB0      ! encoding: [0x1c,0b10AAAAAA,A,A]
112         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
113         bpos .BB0
114
115         ! CHECK: bneg .BB0      ! encoding: [0x0c,0b10AAAAAA,A,A]
116         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
117         bneg .BB0
118
119         ! CHECK: bvc .BB0      ! encoding: [0x1e,0b10AAAAAA,A,A]
120         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
121         bvc .BB0
122
123         ! CHECK: bvs .BB0      ! encoding: [0x0e,0b10AAAAAA,A,A]
124         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
125         bvs .BB0
126
127         ! CHECK:             fba .BB0                        ! encoding: [0x11,0b10AAAAAA,A,A]
128         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
129         fba .BB0
130
131         ! CHECK:             fba .BB0                        ! encoding: [0x11,0b10AAAAAA,A,A]
132         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
133         fb .BB0
134
135         ! CHECK:             fbn .BB0                        ! encoding: [0x01,0b10AAAAAA,A,A]
136         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
137         fbn .BB0
138
139         ! CHECK:             fbu .BB0                        ! encoding: [0x0f,0b10AAAAAA,A,A]
140         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
141         fbu .BB0
142
143         ! CHECK:             fbg .BB0                        ! encoding: [0x0d,0b10AAAAAA,A,A]
144         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
145         fbg .BB0
146
147         ! CHECK:             fbug .BB0                       ! encoding: [0x0b,0b10AAAAAA,A,A]
148         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
149         fbug .BB0
150
151         ! CHECK:             fbl .BB0                        ! encoding: [0x09,0b10AAAAAA,A,A]
152         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
153         fbl .BB0
154
155         ! CHECK:             fbul .BB0                       ! encoding: [0x07,0b10AAAAAA,A,A]
156         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
157         fbul .BB0
158
159         ! CHECK:             fblg .BB0                       ! encoding: [0x05,0b10AAAAAA,A,A]
160         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
161         fblg .BB0
162
163         ! CHECK:             fbne .BB0                       ! encoding: [0x03,0b10AAAAAA,A,A]
164         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
165         fbne .BB0
166
167         ! CHECK:             fbne .BB0                       ! encoding: [0x03,0b10AAAAAA,A,A]
168         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
169         fbnz .BB0
170
171         ! CHECK:             fbe .BB0                        ! encoding: [0x13,0b10AAAAAA,A,A]
172         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
173         fbe .BB0
174
175         ! CHECK:             fbe .BB0                        ! encoding: [0x13,0b10AAAAAA,A,A]
176         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
177         fbz .BB0
178
179         ! CHECK:             fbue .BB0                       ! encoding: [0x15,0b10AAAAAA,A,A]
180         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
181         fbue .BB0
182
183         ! CHECK:             fbge .BB0                       ! encoding: [0x17,0b10AAAAAA,A,A]
184         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
185         fbge .BB0
186
187         ! CHECK:             fbuge .BB0                      ! encoding: [0x19,0b10AAAAAA,A,A]
188         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
189         fbuge .BB0
190
191         ! CHECK:             fble .BB0                       ! encoding: [0x1b,0b10AAAAAA,A,A]
192         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
193         fble .BB0
194
195         ! CHECK:             fbule .BB0                      ! encoding: [0x1d,0b10AAAAAA,A,A]
196         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
197         fbule .BB0
198
199         ! CHECK:             fbo .BB0                        ! encoding: [0x1f,0b10AAAAAA,A,A]
200         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
201         fbo .BB0
202
203         ! CHECK: ba,a .BB0    ! encoding: [0x30,0b10AAAAAA,A,A]
204         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
205         ba,a .BB0
206
207         ! CHECK: bne,a .BB0   ! encoding: [0x32,0b10AAAAAA,A,A]
208         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
209         bne,a .BB0
210
211         ! CHECK: be,a .BB0    ! encoding: [0x22,0b10AAAAAA,A,A]
212         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
213         be,a .BB0
214
215         ! CHECK: bg,a .BB0    ! encoding: [0x34,0b10AAAAAA,A,A]
216         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
217         bg,a .BB0
218
219         ! CHECK: ble,a .BB0   ! encoding: [0x24,0b10AAAAAA,A,A]
220         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
221         ble,a .BB0
222
223         ! CHECK: bge,a .BB0   ! encoding: [0x36,0b10AAAAAA,A,A]
224         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
225         bge,a .BB0
226
227         ! CHECK: bl,a .BB0    ! encoding: [0x26,0b10AAAAAA,A,A]
228         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
229         bl,a .BB0
230
231         ! CHECK: bgu,a .BB0   ! encoding: [0x38,0b10AAAAAA,A,A]
232         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
233         bgu,a .BB0
234
235         ! CHECK: bleu,a .BB0  ! encoding: [0x28,0b10AAAAAA,A,A]
236         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
237         bleu,a .BB0
238
239         ! CHECK: bcc,a .BB0   ! encoding: [0x3a,0b10AAAAAA,A,A]
240         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
241         bcc,a .BB0
242
243         ! CHECK: bcs,a .BB0   ! encoding: [0x2a,0b10AAAAAA,A,A]
244         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
245         bcs,a .BB0
246
247         ! CHECK: bpos,a .BB0  ! encoding: [0x3c,0b10AAAAAA,A,A]
248         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
249         bpos,a .BB0
250
251         ! CHECK: bneg,a .BB0  ! encoding: [0x2c,0b10AAAAAA,A,A]
252         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
253         bneg,a .BB0
254
255         ! CHECK: bvc,a .BB0   ! encoding: [0x3e,0b10AAAAAA,A,A]
256         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
257         bvc,a .BB0
258
259         ! CHECK: bvs,a .BB0   ! encoding: [0x2e,0b10AAAAAA,A,A]
260         ! CHECK-NEXT:         ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
261         bvs,a .BB0
262
263         ! CHECK:             fbu,a .BB0                      ! encoding: [0x2f,0b10AAAAAA,A,A]
264         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
265         fbu,a .BB0
266
267         ! CHECK:             fbg,a .BB0                      ! encoding: [0x2d,0b10AAAAAA,A,A]
268         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
269         fbg,a .BB0
270         ! CHECK:             fbug,a .BB0                     ! encoding: [0x2b,0b10AAAAAA,A,A]
271         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
272         fbug,a .BB0
273
274         ! CHECK:             fbl,a .BB0                      ! encoding: [0x29,0b10AAAAAA,A,A]
275         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
276         fbl,a .BB0
277
278         ! CHECK:             fbul,a .BB0                     ! encoding: [0x27,0b10AAAAAA,A,A]
279         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
280         fbul,a .BB0
281
282         ! CHECK:             fblg,a .BB0                     ! encoding: [0x25,0b10AAAAAA,A,A]
283         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
284         fblg,a .BB0
285
286         ! CHECK:             fbne,a .BB0                     ! encoding: [0x23,0b10AAAAAA,A,A]
287         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
288         fbne,a .BB0
289
290         ! CHECK:             fbe,a .BB0                      ! encoding: [0x33,0b10AAAAAA,A,A]
291         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
292         fbe,a .BB0
293
294         ! CHECK:             fbue,a .BB0                     ! encoding: [0x35,0b10AAAAAA,A,A]
295         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
296         fbue,a .BB0
297
298         ! CHECK:             fbge,a .BB0                     ! encoding: [0x37,0b10AAAAAA,A,A]
299         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
300         fbge,a .BB0
301
302         ! CHECK:             fbuge,a .BB0                    ! encoding: [0x39,0b10AAAAAA,A,A]
303         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
304         fbuge,a .BB0
305
306         ! CHECK:             fble,a .BB0                     ! encoding: [0x3b,0b10AAAAAA,A,A]
307         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
308         fble,a .BB0
309
310         ! CHECK:             fbule,a .BB0                    ! encoding: [0x3d,0b10AAAAAA,A,A]
311         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
312         fbule,a .BB0
313
314         ! CHECK:             fbo,a .BB0                      ! encoding: [0x3f,0b10AAAAAA,A,A]
315         ! CHECK-NEXT:                                        !   fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
316         fbo,a .BB0
317
318         ! CHECK:  rett %i7+8   ! encoding: [0x81,0xcf,0xe0,0x08]
319         rett %i7 + 8