blob: fd5d2a1ecfc80f383e0930c443a7f94c17a0f3f5 [file] [log] [blame]
Ulrich Weigandd8394902013-05-03 19:50:27 +00001
2# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
3
4# FIXME: Condition register bit symbols
5
6# Branch mnemonics
7
8# CHECK: blr # encoding: [0x4e,0x80,0x00,0x20]
9 blr
10# CHECK: bctr # encoding: [0x4e,0x80,0x04,0x20]
11 bctr
Ulrich Weigand1847bb82013-06-24 11:01:55 +000012# CHECK: blrl # encoding: [0x4e,0x80,0x00,0x21]
13 blrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000014# CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21]
15 bctrl
16
Ulrich Weigandfedd5a72013-06-24 12:49:20 +000017# CHECK: bc 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA00]
18# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
19 bt 2, target
20# CHECK: bca 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA10]
21# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
22 bta 2, target
23# CHECK: bclr 12, 2, 0 # encoding: [0x4d,0x82,0x00,0x20]
24 btlr 2
25# CHECK: bcctr 12, 2, 0 # encoding: [0x4d,0x82,0x04,0x20]
26 btctr 2
27# CHECK: bcl 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA01]
28# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
29 btl 2, target
30# CHECK: bcla 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA11]
31# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
32 btla 2, target
33# CHECK: bclrl 12, 2, 0 # encoding: [0x4d,0x82,0x00,0x21]
34 btlrl 2
35# CHECK: bcctrl 12, 2, 0 # encoding: [0x4d,0x82,0x04,0x21]
36 btctrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +000037
Ulrich Weigandfedd5a72013-06-24 12:49:20 +000038# CHECK: bc 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA00]
39# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
40 bf 2, target
41# CHECK: bca 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA10]
42# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
43 bfa 2, target
44# CHECK: bclr 4, 2, 0 # encoding: [0x4c,0x82,0x00,0x20]
45 bflr 2
46# CHECK: bcctr 4, 2, 0 # encoding: [0x4c,0x82,0x04,0x20]
47 bfctr 2
48# CHECK: bcl 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA01]
49# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
50 bfl 2, target
51# CHECK: bcla 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA11]
52# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
53 bfla 2, target
54# CHECK: bclrl 4, 2, 0 # encoding: [0x4c,0x82,0x00,0x21]
55 bflrl 2
56# CHECK: bcctrl 4, 2, 0 # encoding: [0x4c,0x82,0x04,0x21]
57 bfctrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +000058
59# CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
60# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
61 bdnz target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +000062# CHECK: bdnza target # encoding: [0x42,0x00,A,0bAAAAAA10]
63# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
64 bdnza target
Ulrich Weigandd8394902013-05-03 19:50:27 +000065# CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
66 bdnzlr
Ulrich Weigand5b9d5912013-06-24 11:02:38 +000067# CHECK: bdnzl target # encoding: [0x42,0x00,A,0bAAAAAA01]
68# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
69 bdnzl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +000070# CHECK: bdnzla target # encoding: [0x42,0x00,A,0bAAAAAA11]
71# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
72 bdnzla target
Ulrich Weigand5b9d5912013-06-24 11:02:38 +000073# CHECK: bdnzlrl # encoding: [0x4e,0x00,0x00,0x21]
74 bdnzlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000075
Ulrich Weigandfedd5a72013-06-24 12:49:20 +000076# CHECK: bc 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA00]
77# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
78 bdnzt 2, target
79# CHECK: bca 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA10]
80# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
81 bdnzta 2, target
82# CHECK: bclr 8, 2, 0 # encoding: [0x4d,0x02,0x00,0x20]
83 bdnztlr 2
84# CHECK: bcl 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA01]
85# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
86 bdnztl 2, target
87# CHECK: bcla 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA11]
88# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
89 bdnztla 2, target
90# CHECK: bclrl 8, 2, 0 # encoding: [0x4d,0x02,0x00,0x21]
91 bdnztlrl 2
92
93# CHECK: bc 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA00]
94# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
95 bdnzf 2, target
96# CHECK: bca 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA10]
97# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
98 bdnzfa 2, target
99# CHECK: bclr 0, 2, 0 # encoding: [0x4c,0x02,0x00,0x20]
100 bdnzflr 2
101# CHECK: bcl 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA01]
102# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
103 bdnzfl 2, target
104# CHECK: bcla 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA11]
105# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
106 bdnzfla 2, target
107# CHECK: bclrl 0, 2, 0 # encoding: [0x4c,0x02,0x00,0x21]
108 bdnzflrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +0000109
110# CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
111# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
112 bdz target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000113# CHECK: bdza target # encoding: [0x42,0x40,A,0bAAAAAA10]
114# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
115 bdza target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000116# CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
117 bdzlr
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000118# CHECK: bdzl target # encoding: [0x42,0x40,A,0bAAAAAA01]
119# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
120 bdzl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000121# CHECK: bdzla target # encoding: [0x42,0x40,A,0bAAAAAA11]
122# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
123 bdzla target
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000124# CHECK: bdzlrl # encoding: [0x4e,0x40,0x00,0x21]
125 bdzlrl
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000126
Ulrich Weigandfedd5a72013-06-24 12:49:20 +0000127# CHECK: bc 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA00]
128# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
129 bdzt 2, target
130# CHECK: bca 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA10]
131# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
132 bdzta 2, target
133# CHECK: bclr 10, 2, 0 # encoding: [0x4d,0x42,0x00,0x20]
134 bdztlr 2
135# CHECK: bcl 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA01]
136# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
137 bdztl 2, target
138# CHECK: bcla 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA11]
139# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
140 bdztla 2, target
141# CHECK: bclrl 10, 2, 0 # encoding: [0x4d,0x42,0x00,0x21]
142 bdztlrl 2
143
144# CHECK: bc 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA00]
145# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
146 bdzf 2, target
147# CHECK: bca 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA10]
148# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
149 bdzfa 2, target
150# CHECK: bclr 2, 2, 0 # encoding: [0x4c,0x42,0x00,0x20]
151 bdzflr 2
152# CHECK: bcl 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA01]
153# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
154 bdzfl 2, target
155# CHECK: bcla 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA11]
156# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
157 bdzfla 2, target
158# CHECK: bclrl 2, 2, 0 # encoding: [0x4c,0x42,0x00,0x21]
159 bdzflrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +0000160
161# CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
162# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
163 blt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000164# CHECK: blt 0, target # encoding: [0x41,0x80,A,0bAAAAAA00]
165# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
166 blt target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000167# CHECK: blta 2, target # encoding: [0x41,0x88,A,0bAAAAAA10]
168# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
169 blta 2, target
170# CHECK: blta 0, target # encoding: [0x41,0x80,A,0bAAAAAA10]
171# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
172 blta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000173# CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
174 bltlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000175# CHECK: bltlr 0 # encoding: [0x4d,0x80,0x00,0x20]
176 bltlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000177# CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
178 bltctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000179# CHECK: bltctr 0 # encoding: [0x4d,0x80,0x04,0x20]
180 bltctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000181# CHECK: bltl 2, target # encoding: [0x41,0x88,A,0bAAAAAA01]
182# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
183 bltl 2, target
184# CHECK: bltl 0, target # encoding: [0x41,0x80,A,0bAAAAAA01]
185# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
186 bltl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000187# CHECK: bltla 2, target # encoding: [0x41,0x88,A,0bAAAAAA11]
188# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
189 bltla 2, target
190# CHECK: bltla 0, target # encoding: [0x41,0x80,A,0bAAAAAA11]
191# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
192 bltla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000193# CHECK: bltlrl 2 # encoding: [0x4d,0x88,0x00,0x21]
194 bltlrl 2
195# CHECK: bltlrl 0 # encoding: [0x4d,0x80,0x00,0x21]
196 bltlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000197# CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
198 bltctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000199# CHECK: bltctrl 0 # encoding: [0x4d,0x80,0x04,0x21]
200 bltctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000201
202# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
203# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
204 ble 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000205# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
206# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
207 ble target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000208# CHECK: blea 2, target # encoding: [0x40,0x89,A,0bAAAAAA10]
209# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
210 blea 2, target
211# CHECK: blea 0, target # encoding: [0x40,0x81,A,0bAAAAAA10]
212# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
213 blea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000214# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
215 blelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000216# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
217 blelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000218# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
219 blectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000220# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
221 blectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000222# CHECK: blel 2, target # encoding: [0x40,0x89,A,0bAAAAAA01]
223# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
224 blel 2, target
225# CHECK: blel 0, target # encoding: [0x40,0x81,A,0bAAAAAA01]
226# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
227 blel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000228# CHECK: blela 2, target # encoding: [0x40,0x89,A,0bAAAAAA11]
229# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
230 blela 2, target
231# CHECK: blela 0, target # encoding: [0x40,0x81,A,0bAAAAAA11]
232# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
233 blela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000234# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
235 blelrl 2
236# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
237 blelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000238# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
239 blectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000240# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
241 blectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000242
243# CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
244# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
245 beq 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000246# CHECK: beq 0, target # encoding: [0x41,0x82,A,0bAAAAAA00]
247# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
248 beq target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000249# CHECK: beqa 2, target # encoding: [0x41,0x8a,A,0bAAAAAA10]
250# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
251 beqa 2, target
252# CHECK: beqa 0, target # encoding: [0x41,0x82,A,0bAAAAAA10]
253# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
254 beqa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000255# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
256 beqlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000257# CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
258 beqlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000259# CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
260 beqctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000261# CHECK: beqctr 0 # encoding: [0x4d,0x82,0x04,0x20]
262 beqctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000263# CHECK: beql 2, target # encoding: [0x41,0x8a,A,0bAAAAAA01]
264# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
265 beql 2, target
266# CHECK: beql 0, target # encoding: [0x41,0x82,A,0bAAAAAA01]
267# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
268 beql target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000269# CHECK: beqla 2, target # encoding: [0x41,0x8a,A,0bAAAAAA11]
270# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
271 beqla 2, target
272# CHECK: beqla 0, target # encoding: [0x41,0x82,A,0bAAAAAA11]
273# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
274 beqla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000275# CHECK: beqlrl 2 # encoding: [0x4d,0x8a,0x00,0x21]
276 beqlrl 2
277# CHECK: beqlrl 0 # encoding: [0x4d,0x82,0x00,0x21]
278 beqlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000279# CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
280 beqctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000281# CHECK: beqctrl 0 # encoding: [0x4d,0x82,0x04,0x21]
282 beqctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000283
284# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
285# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
286 bge 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000287# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
288# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
289 bge target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000290# CHECK: bgea 2, target # encoding: [0x40,0x88,A,0bAAAAAA10]
291# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
292 bgea 2, target
293# CHECK: bgea 0, target # encoding: [0x40,0x80,A,0bAAAAAA10]
294# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
295 bgea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000296# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
297 bgelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000298# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
299 bgelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000300# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
301 bgectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000302# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
303 bgectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000304# CHECK: bgel 2, target # encoding: [0x40,0x88,A,0bAAAAAA01]
305# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
306 bgel 2, target
307# CHECK: bgel 0, target # encoding: [0x40,0x80,A,0bAAAAAA01]
308# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
309 bgel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000310# CHECK: bgela 2, target # encoding: [0x40,0x88,A,0bAAAAAA11]
311# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
312 bgela 2, target
313# CHECK: bgela 0, target # encoding: [0x40,0x80,A,0bAAAAAA11]
314# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
315 bgela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000316# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
317 bgelrl 2
318# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
319 bgelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000320# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
321 bgectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000322# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
323 bgectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000324
325# CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
326# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
327 bgt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000328# CHECK: bgt 0, target # encoding: [0x41,0x81,A,0bAAAAAA00]
329# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
330 bgt target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000331# CHECK: bgta 2, target # encoding: [0x41,0x89,A,0bAAAAAA10]
332# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
333 bgta 2, target
334# CHECK: bgta 0, target # encoding: [0x41,0x81,A,0bAAAAAA10]
335# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
336 bgta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000337# CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
338 bgtlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000339# CHECK: bgtlr 0 # encoding: [0x4d,0x81,0x00,0x20]
340 bgtlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000341# CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
342 bgtctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000343# CHECK: bgtctr 0 # encoding: [0x4d,0x81,0x04,0x20]
344 bgtctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000345# CHECK: bgtl 2, target # encoding: [0x41,0x89,A,0bAAAAAA01]
346# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
347 bgtl 2, target
348# CHECK: bgtl 0, target # encoding: [0x41,0x81,A,0bAAAAAA01]
349# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
350 bgtl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000351# CHECK: bgtla 2, target # encoding: [0x41,0x89,A,0bAAAAAA11]
352# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
353 bgtla 2, target
354# CHECK: bgtla 0, target # encoding: [0x41,0x81,A,0bAAAAAA11]
355# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
356 bgtla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000357# CHECK: bgtlrl 2 # encoding: [0x4d,0x89,0x00,0x21]
358 bgtlrl 2
359# CHECK: bgtlrl 0 # encoding: [0x4d,0x81,0x00,0x21]
360 bgtlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000361# CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
362 bgtctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000363# CHECK: bgtctrl 0 # encoding: [0x4d,0x81,0x04,0x21]
364 bgtctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000365
366# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
367# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
368 bnl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000369# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
370# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
371 bnl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000372# CHECK: bgea 2, target # encoding: [0x40,0x88,A,0bAAAAAA10]
373# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
374 bnla 2, target
375# CHECK: bgea 0, target # encoding: [0x40,0x80,A,0bAAAAAA10]
376# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
377 bnla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000378# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
379 bnllr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000380# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
381 bnllr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000382# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
383 bnlctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000384# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
385 bnlctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000386# CHECK: bgel 2, target # encoding: [0x40,0x88,A,0bAAAAAA01]
387# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
388 bnll 2, target
389# CHECK: bgel 0, target # encoding: [0x40,0x80,A,0bAAAAAA01]
390# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
391 bnll target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000392# CHECK: bgela 2, target # encoding: [0x40,0x88,A,0bAAAAAA11]
393# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
394 bnlla 2, target
395# CHECK: bgela 0, target # encoding: [0x40,0x80,A,0bAAAAAA11]
396# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
397 bnlla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000398# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
399 bnllrl 2
400# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
401 bnllrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000402# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
403 bnlctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000404# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
405 bnlctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000406
407# CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
408# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
409 bne 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000410# CHECK: bne 0, target # encoding: [0x40,0x82,A,0bAAAAAA00]
411# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
412 bne target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000413# CHECK: bnea 2, target # encoding: [0x40,0x8a,A,0bAAAAAA10]
414# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
415 bnea 2, target
416# CHECK: bnea 0, target # encoding: [0x40,0x82,A,0bAAAAAA10]
417# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
418 bnea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000419# CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
420 bnelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000421# CHECK: bnelr 0 # encoding: [0x4c,0x82,0x00,0x20]
422 bnelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000423# CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
424 bnectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000425# CHECK: bnectr 0 # encoding: [0x4c,0x82,0x04,0x20]
426 bnectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000427# CHECK: bnel 2, target # encoding: [0x40,0x8a,A,0bAAAAAA01]
428# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
429 bnel 2, target
430# CHECK: bnel 0, target # encoding: [0x40,0x82,A,0bAAAAAA01]
431# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
432 bnel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000433# CHECK: bnela 2, target # encoding: [0x40,0x8a,A,0bAAAAAA11]
434# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
435 bnela 2, target
436# CHECK: bnela 0, target # encoding: [0x40,0x82,A,0bAAAAAA11]
437# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
438 bnela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000439# CHECK: bnelrl 2 # encoding: [0x4c,0x8a,0x00,0x21]
440 bnelrl 2
441# CHECK: bnelrl 0 # encoding: [0x4c,0x82,0x00,0x21]
442 bnelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000443# CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
444 bnectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000445# CHECK: bnectrl 0 # encoding: [0x4c,0x82,0x04,0x21]
446 bnectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000447
448# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
449# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
450 bng 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000451# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
452# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
453 bng target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000454# CHECK: blea 2, target # encoding: [0x40,0x89,A,0bAAAAAA10]
455# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
456 bnga 2, target
457# CHECK: blea 0, target # encoding: [0x40,0x81,A,0bAAAAAA10]
458# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
459 bnga target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000460# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
461 bnglr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000462# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
463 bnglr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000464# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
465 bngctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000466# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
467 bngctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000468# CHECK: blel 2, target # encoding: [0x40,0x89,A,0bAAAAAA01]
469# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
470 bngl 2, target
471# CHECK: blel 0, target # encoding: [0x40,0x81,A,0bAAAAAA01]
472# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
473 bngl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000474# CHECK: blela 2, target # encoding: [0x40,0x89,A,0bAAAAAA11]
475# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
476 bngla 2, target
477# CHECK: blela 0, target # encoding: [0x40,0x81,A,0bAAAAAA11]
478# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
479 bngla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000480# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
481 bnglrl 2
482# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
483 bnglrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000484# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
485 bngctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000486# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
487 bngctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000488
489# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
490# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
491 bso 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000492# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
493# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
494 bso target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000495# CHECK: buna 2, target # encoding: [0x41,0x8b,A,0bAAAAAA10]
496# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
497 bsoa 2, target
498# CHECK: buna 0, target # encoding: [0x41,0x83,A,0bAAAAAA10]
499# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
500 bsoa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000501# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
502 bsolr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000503# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
504 bsolr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000505# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
506 bsoctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000507# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
508 bsoctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000509# CHECK: bunl 2, target # encoding: [0x41,0x8b,A,0bAAAAAA01]
510# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
511 bsol 2, target
512# CHECK: bunl 0, target # encoding: [0x41,0x83,A,0bAAAAAA01]
513# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
514 bsol target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000515# CHECK: bunla 2, target # encoding: [0x41,0x8b,A,0bAAAAAA11]
516# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
517 bsola 2, target
518# CHECK: bunla 0, target # encoding: [0x41,0x83,A,0bAAAAAA11]
519# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
520 bsola target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000521# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
522 bsolrl 2
523# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
524 bsolrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000525# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
526 bsoctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000527# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
528 bsoctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000529
530# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
531# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
532 bns 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000533# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
534# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
535 bns target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000536# CHECK: bnua 2, target # encoding: [0x40,0x8b,A,0bAAAAAA10]
537# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
538 bnsa 2, target
539# CHECK: bnua 0, target # encoding: [0x40,0x83,A,0bAAAAAA10]
540# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
541 bnsa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000542# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
543 bnslr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000544# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
545 bnslr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000546# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
547 bnsctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000548# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
549 bnsctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000550# CHECK: bnul 2, target # encoding: [0x40,0x8b,A,0bAAAAAA01]
551# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
552 bnsl 2, target
553# CHECK: bnul 0, target # encoding: [0x40,0x83,A,0bAAAAAA01]
554# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
555 bnsl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000556# CHECK: bnula 2, target # encoding: [0x40,0x8b,A,0bAAAAAA11]
557# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
558 bnsla 2, target
559# CHECK: bnula 0, target # encoding: [0x40,0x83,A,0bAAAAAA11]
560# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
561 bnsla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000562# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
563 bnslrl 2
564# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
565 bnslrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000566# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
567 bnsctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000568# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
569 bnsctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000570
571# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
572# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
573 bun 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000574# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
575# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
576 bun target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000577# CHECK: buna 2, target # encoding: [0x41,0x8b,A,0bAAAAAA10]
578# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
579 buna 2, target
580# CHECK: buna 0, target # encoding: [0x41,0x83,A,0bAAAAAA10]
581# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
582 buna target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000583# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
584 bunlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000585# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
586 bunlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000587# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
588 bunctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000589# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
590 bunctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000591# CHECK: bunl 2, target # encoding: [0x41,0x8b,A,0bAAAAAA01]
592# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
593 bunl 2, target
594# CHECK: bunl 0, target # encoding: [0x41,0x83,A,0bAAAAAA01]
595# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
596 bunl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000597# CHECK: bunla 2, target # encoding: [0x41,0x8b,A,0bAAAAAA11]
598# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
599 bunla 2, target
600# CHECK: bunla 0, target # encoding: [0x41,0x83,A,0bAAAAAA11]
601# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
602 bunla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000603# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
604 bunlrl 2
605# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
606 bunlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000607# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
608 bunctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000609# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
610 bunctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000611
612# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
613# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
614 bnu 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000615# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
616# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
617 bnu target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000618# CHECK: bnua 2, target # encoding: [0x40,0x8b,A,0bAAAAAA10]
619# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
620 bnua 2, target
621# CHECK: bnua 0, target # encoding: [0x40,0x83,A,0bAAAAAA10]
622# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
623 bnua target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000624# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
625 bnulr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000626# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
627 bnulr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000628# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
629 bnuctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000630# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
631 bnuctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000632# CHECK: bnul 2, target # encoding: [0x40,0x8b,A,0bAAAAAA01]
633# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
634 bnul 2, target
635# CHECK: bnul 0, target # encoding: [0x40,0x83,A,0bAAAAAA01]
636# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
637 bnul target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000638# CHECK: bnula 2, target # encoding: [0x40,0x8b,A,0bAAAAAA11]
639# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
640 bnula 2, target
641# CHECK: bnula 0, target # encoding: [0x40,0x83,A,0bAAAAAA11]
642# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
643 bnula target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000644# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
645 bnulrl 2
646# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
647 bnulrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000648# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
649 bnuctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000650# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
651 bnuctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000652
653# FIXME: Condition register logical mnemonics
654
655# FIXME: Subtract mnemonics
656
657# Compare mnemonics
658
659# CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
660 cmpdi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000661# CHECK: cmpdi 0, 3, 128 # encoding: [0x2c,0x23,0x00,0x80]
662 cmpdi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000663# CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
664 cmpd 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000665# CHECK: cmpd 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x00]
666 cmpd 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000667# CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
668 cmpldi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000669# CHECK: cmpldi 0, 3, 128 # encoding: [0x28,0x23,0x00,0x80]
670 cmpldi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000671# CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
672 cmpld 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000673# CHECK: cmpld 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x40]
674 cmpld 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000675
676# CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
677 cmpwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000678# CHECK: cmpwi 0, 3, 128 # encoding: [0x2c,0x03,0x00,0x80]
679 cmpwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000680# CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
681 cmpw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000682# CHECK: cmpw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x00]
683 cmpw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000684# CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
685 cmplwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000686# CHECK: cmplwi 0, 3, 128 # encoding: [0x28,0x03,0x00,0x80]
687 cmplwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000688# CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
689 cmplw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000690# CHECK: cmplw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x40]
691 cmplw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000692
693# FIXME: Trap mnemonics
694
695# Rotate and shift mnemonics
696
697# FIXME: extldi 2, 3, 4, 5
698# FIXME: extrdi 2, 3, 4, 5
699# FIXME: insrdi 2, 3, 4, 5
700# FIXME: rotldi 2, 3, 4
701# FIXME: rotrdi 2, 3, 4
702# FIXME: rotld 2, 3, 4
703# CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
704 sldi 2, 3, 4
705# CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
706 srdi 2, 3, 4
707# FIXME: clrldi 2, 3, 4
708# FIXME: clrrdi 2, 3, 4
709# FIXME: clrlsldi 2, 3, 4, 5
710
711# FIXME: extlwi 2, 3, 4, 5
712# FIXME: extrwi 2, 3, 4, 5
713# FIXME: inslwi 2, 3, 4, 5
714# FIXME: insrwi 2, 3, 4, 5
715# FIXME: rotlwi 2, 3, 4
716# FIXME: rotrwi 2, 3, 4
717# FIXME: rotlw 2, 3, 4
718# CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
719 slwi 2, 3, 4
720# CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
721 srwi 2, 3, 4
722# FIXME: clrlwi 2, 3, 4
723# FIXME: clrrwi 2, 3, 4
724# FIXME: clrlslwi 2, 3, 4, 5
725
726# Move to/from special purpose register mnemonics
727
728# FIXME: mtxer 2
729# FIXME: mfxer 2
730# CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
731 mtlr 2
732# CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
733 mflr 2
734# CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
735 mtctr 2
736# CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
737 mfctr 2
738
739# Miscellaneous mnemonics
740
741# CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
742 nop
743# FIXME: xnop
744# CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
745 li 2, 128
746# CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
747 lis 2, 128
748# FIXME: la 2, 128(4)
749# CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]
750 mr 2, 3
751# FIXME: not 2, 3
752