blob: 4395b1980ababf5f772e3bd523a943c4a9837518 [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
12# FIXME: blrl
13# CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21]
14 bctrl
15
16# FIXME: bt 2, target
17# FIXME: bta 2, target
18# FIXME: btlr 2
19# FIXME: btctr 2
20# FIXME: btl 2, target
21# FIXME: btla 2, target
22# FIXME: btlrl 2
23# FIXME: btctrl 2
24
25# FIXME: bf 2, target
26# FIXME: bfa 2, target
27# FIXME: bflr 2
28# FIXME: bfctr 2
29# FIXME: bfl 2, target
30# FIXME: bfla 2, target
31# FIXME: bflrl 2
32# FIXME: bfctrl 2
33
34# CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
35# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
36 bdnz target
37# FIXME: bdnza target
38# CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
39 bdnzlr
40# FIXME: bdnzl target
41# FIXME: bdnzla target
42# FIXME: bdnzlrl
43
44# FIXME: bdnzt 2, target
45# FIXME: bdnzta 2, target
46# FIXME: bdnztlr 2
47# FIXME: bdnztl 2, target
48# FIXME: bdnztla 2, target
49# FIXME: bdnztlrl 2
50# FIXME: bdnzf 2, target
51# FIXME: bdnzfa 2, target
52# FIXME: bdnzflr 2
53# FIXME: bdnzfl 2, target
54# FIXME: bdnzfla 2, target
55# FIXME: bdnzflrl 2
56
57# CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
58# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
59 bdz target
60# FIXME: bdza target
61# CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
62 bdzlr
63# FIXME: bdzl target
64# FIXME: bdzla target
65
66# FIXME: bdzlrl
67# FIXME: bdzt 2, target
68# FIXME: bdzta 2, target
69# FIXME: bdztlr 2
70# FIXME: bdztl 2, target
71# FIXME: bdztla 2, target
72# FIXME: bdztlrl 2
73# FIXME: bdzf 2, target
74# FIXME: bdzfa 2, target
75# FIXME: bdzflr 2
76# FIXME: bdzfl 2, target
77# FIXME: bdzfla 2, target
78# FIXME: bdzflrl 2
79
80# CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
81# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
82 blt 2, target
83# FIXME: blta 2, target
84# CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
85 bltlr 2
86# CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
87 bltctr 2
88# FIXME: bltl 2, target
89# FIXME: bltla 2, target
90# FIXME: bltlrl 2
91# CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
92 bltctrl 2
93
94# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
95# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
96 ble 2, target
97# FIXME: blea 2, target
98# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
99 blelr 2
100# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
101 blectr 2
102# FIXME: blel 2, target
103# FIXME: blela 2, target
104# FIXME: blelrl 2
105# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
106 blectrl 2
107
108# CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
109# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
110 beq 2, target
111# FIXME: beqa 2, target
112# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
113 beqlr 2
114# CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
115 beqctr 2
116# FIXME: beql 2, target
117# FIXME: beqla 2, target
118# FIXME: beqlrl 2
119# CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
120 beqctrl 2
121
122# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
123# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
124 bge 2, target
125# FIXME: bgea 2, target
126# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
127 bgelr 2
128# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
129 bgectr 2
130# FIXME: bgel 2, target
131# FIXME: bgela 2, target
132# FIXME: bgelrl 2
133# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
134 bgectrl 2
135
136# CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
137# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
138 bgt 2, target
139# FIXME: bgta 2, target
140# CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
141 bgtlr 2
142# CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
143 bgtctr 2
144# FIXME: bgtl 2, target
145# FIXME: bgtla 2, target
146# FIXME: bgtlrl 2
147# CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
148 bgtctrl 2
149
150# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
151# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
152 bnl 2, target
153# FIXME: bnla 2, target
154# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
155 bnllr 2
156# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
157 bnlctr 2
158# FIXME: bnll 2, target
159# FIXME: bnlla 2, target
160# FIXME: bnllrl 2
161# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
162 bnlctrl 2
163
164# CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
165# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
166 bne 2, target
167# FIXME: bnea 2, target
168# CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
169 bnelr 2
170# CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
171 bnectr 2
172# FIXME: bnel 2, target
173# FIXME: bnela 2, target
174# FIXME: bnelrl 2
175# CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
176 bnectrl 2
177
178# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
179# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
180 bng 2, target
181# FIXME: bnga 2, target
182# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
183 bnglr 2
184# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
185 bngctr 2
186# FIXME: bngl 2, target
187# FIXME: bngla 2, target
188# FIXME: bnglrl 2
189# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
190 bngctrl 2
191
192# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
193# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
194 bso 2, target
195# FIXME: bsoa 2, target
196# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
197 bsolr 2
198# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
199 bsoctr 2
200# FIXME: bsol 2, target
201# FIXME: bsola 2, target
202# FIXME: bsolrl 2
203# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
204 bsoctrl 2
205
206# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
207# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
208 bns 2, target
209# FIXME: bnsa 2, target
210# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
211 bnslr 2
212# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
213 bnsctr 2
214# FIXME: bnsl 2, target
215# FIXME: bnsla 2, target
216# FIXME: bnslrl 2
217# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
218 bnsctrl 2
219
220# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
221# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
222 bun 2, target
223# FIXME: buna 2, target
224# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
225 bunlr 2
226# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
227 bunctr 2
228# FIXME: bunl 2, target
229# FIXME: bunla 2, target
230# FIXME: bunlrl 2
231# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
232 bunctrl 2
233
234# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
235# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
236 bnu 2, target
237# FIXME: bnua 2, target
238# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
239 bnulr 2
240# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
241 bnuctr 2
242# FIXME: bnul 2, target
243# FIXME: bnula 2, target
244# FIXME: bnulrl 2
245# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
246 bnuctrl 2
247
248# FIXME: Condition register logical mnemonics
249
250# FIXME: Subtract mnemonics
251
252# Compare mnemonics
253
254# CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
255 cmpdi 2, 3, 128
256# CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
257 cmpd 2, 3, 4
258# CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
259 cmpldi 2, 3, 128
260# CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
261 cmpld 2, 3, 4
262
263# CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
264 cmpwi 2, 3, 128
265# CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
266 cmpw 2, 3, 4
267# CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
268 cmplwi 2, 3, 128
269# CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
270 cmplw 2, 3, 4
271
272# FIXME: Trap mnemonics
273
274# Rotate and shift mnemonics
275
276# FIXME: extldi 2, 3, 4, 5
277# FIXME: extrdi 2, 3, 4, 5
278# FIXME: insrdi 2, 3, 4, 5
279# FIXME: rotldi 2, 3, 4
280# FIXME: rotrdi 2, 3, 4
281# FIXME: rotld 2, 3, 4
282# CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
283 sldi 2, 3, 4
284# CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
285 srdi 2, 3, 4
286# FIXME: clrldi 2, 3, 4
287# FIXME: clrrdi 2, 3, 4
288# FIXME: clrlsldi 2, 3, 4, 5
289
290# FIXME: extlwi 2, 3, 4, 5
291# FIXME: extrwi 2, 3, 4, 5
292# FIXME: inslwi 2, 3, 4, 5
293# FIXME: insrwi 2, 3, 4, 5
294# FIXME: rotlwi 2, 3, 4
295# FIXME: rotrwi 2, 3, 4
296# FIXME: rotlw 2, 3, 4
297# CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
298 slwi 2, 3, 4
299# CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
300 srwi 2, 3, 4
301# FIXME: clrlwi 2, 3, 4
302# FIXME: clrrwi 2, 3, 4
303# FIXME: clrlslwi 2, 3, 4, 5
304
305# Move to/from special purpose register mnemonics
306
307# FIXME: mtxer 2
308# FIXME: mfxer 2
309# CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
310 mtlr 2
311# CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
312 mflr 2
313# CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
314 mtctr 2
315# CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
316 mfctr 2
317
318# Miscellaneous mnemonics
319
320# CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
321 nop
322# FIXME: xnop
323# CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
324 li 2, 128
325# CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
326 lis 2, 128
327# FIXME: la 2, 128(4)
328# CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]
329 mr 2, 3
330# FIXME: not 2, 3
331