1 #ifndef CAPSTONE_PPC_H
2 #define CAPSTONE_PPC_H
3 
4 /* Capstone Disassembly Engine */
5 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 #include "platform.h"
12 
13 #ifdef _MSC_VER
14 #pragma warning(disable:4201)
15 #endif
16 
17 /// PPC branch codes for some branch instructions
18 typedef enum ppc_bc {
19 	PPC_BC_INVALID  = 0,
20 	PPC_BC_LT       = (0 << 5) | 12,
21 	PPC_BC_LE       = (1 << 5) |  4,
22 	PPC_BC_EQ       = (2 << 5) | 12,
23 	PPC_BC_GE       = (0 << 5) |  4,
24 	PPC_BC_GT       = (1 << 5) | 12,
25 	PPC_BC_NE       = (2 << 5) |  4,
26 	PPC_BC_UN       = (3 << 5) | 12,
27 	PPC_BC_NU       = (3 << 5) |  4,
28 
29 	// extra conditions
30 	PPC_BC_SO = (4 << 5) | 12,	///< summary overflow
31 	PPC_BC_NS = (4 << 5) | 4,	///< not summary overflow
32 } ppc_bc;
33 
34 /// PPC branch hint for some branch instructions
35 typedef enum ppc_bh {
36 	PPC_BH_INVALID = 0,	///< no hint
37 	PPC_BH_PLUS,	///< PLUS hint
38 	PPC_BH_MINUS,	///< MINUS hint
39 } ppc_bh;
40 
41 /// Operand type for instruction's operands
42 typedef enum ppc_op_type {
43 	PPC_OP_INVALID = 0, ///< = CS_OP_INVALID (Uninitialized).
44 	PPC_OP_REG, ///< = CS_OP_REG (Register operand).
45 	PPC_OP_IMM, ///< = CS_OP_IMM (Immediate operand).
46 	PPC_OP_MEM, ///< = CS_OP_MEM (Memory operand).
47 	PPC_OP_CRX = 64,	///< Condition Register field
48 } ppc_op_type;
49 
50 /// PPC registers
51 typedef enum ppc_reg {
52 	PPC_REG_INVALID = 0,
53 
54 	PPC_REG_CARRY,
55 	PPC_REG_CR0,
56 	PPC_REG_CR1,
57 	PPC_REG_CR2,
58 	PPC_REG_CR3,
59 	PPC_REG_CR4,
60 	PPC_REG_CR5,
61 	PPC_REG_CR6,
62 	PPC_REG_CR7,
63 	PPC_REG_CTR,
64 	PPC_REG_F0,
65 	PPC_REG_F1,
66 	PPC_REG_F2,
67 	PPC_REG_F3,
68 	PPC_REG_F4,
69 	PPC_REG_F5,
70 	PPC_REG_F6,
71 	PPC_REG_F7,
72 	PPC_REG_F8,
73 	PPC_REG_F9,
74 	PPC_REG_F10,
75 	PPC_REG_F11,
76 	PPC_REG_F12,
77 	PPC_REG_F13,
78 	PPC_REG_F14,
79 	PPC_REG_F15,
80 	PPC_REG_F16,
81 	PPC_REG_F17,
82 	PPC_REG_F18,
83 	PPC_REG_F19,
84 	PPC_REG_F20,
85 	PPC_REG_F21,
86 	PPC_REG_F22,
87 	PPC_REG_F23,
88 	PPC_REG_F24,
89 	PPC_REG_F25,
90 	PPC_REG_F26,
91 	PPC_REG_F27,
92 	PPC_REG_F28,
93 	PPC_REG_F29,
94 	PPC_REG_F30,
95 	PPC_REG_F31,
96 	PPC_REG_LR,
97 	PPC_REG_R0,
98 	PPC_REG_R1,
99 	PPC_REG_R2,
100 	PPC_REG_R3,
101 	PPC_REG_R4,
102 	PPC_REG_R5,
103 	PPC_REG_R6,
104 	PPC_REG_R7,
105 	PPC_REG_R8,
106 	PPC_REG_R9,
107 	PPC_REG_R10,
108 	PPC_REG_R11,
109 	PPC_REG_R12,
110 	PPC_REG_R13,
111 	PPC_REG_R14,
112 	PPC_REG_R15,
113 	PPC_REG_R16,
114 	PPC_REG_R17,
115 	PPC_REG_R18,
116 	PPC_REG_R19,
117 	PPC_REG_R20,
118 	PPC_REG_R21,
119 	PPC_REG_R22,
120 	PPC_REG_R23,
121 	PPC_REG_R24,
122 	PPC_REG_R25,
123 	PPC_REG_R26,
124 	PPC_REG_R27,
125 	PPC_REG_R28,
126 	PPC_REG_R29,
127 	PPC_REG_R30,
128 	PPC_REG_R31,
129 	PPC_REG_V0,
130 	PPC_REG_V1,
131 	PPC_REG_V2,
132 	PPC_REG_V3,
133 	PPC_REG_V4,
134 	PPC_REG_V5,
135 	PPC_REG_V6,
136 	PPC_REG_V7,
137 	PPC_REG_V8,
138 	PPC_REG_V9,
139 	PPC_REG_V10,
140 	PPC_REG_V11,
141 	PPC_REG_V12,
142 	PPC_REG_V13,
143 	PPC_REG_V14,
144 	PPC_REG_V15,
145 	PPC_REG_V16,
146 	PPC_REG_V17,
147 	PPC_REG_V18,
148 	PPC_REG_V19,
149 	PPC_REG_V20,
150 	PPC_REG_V21,
151 	PPC_REG_V22,
152 	PPC_REG_V23,
153 	PPC_REG_V24,
154 	PPC_REG_V25,
155 	PPC_REG_V26,
156 	PPC_REG_V27,
157 	PPC_REG_V28,
158 	PPC_REG_V29,
159 	PPC_REG_V30,
160 	PPC_REG_V31,
161 	PPC_REG_VRSAVE,
162 	PPC_REG_VS0,
163 	PPC_REG_VS1,
164 	PPC_REG_VS2,
165 	PPC_REG_VS3,
166 	PPC_REG_VS4,
167 	PPC_REG_VS5,
168 	PPC_REG_VS6,
169 	PPC_REG_VS7,
170 	PPC_REG_VS8,
171 	PPC_REG_VS9,
172 	PPC_REG_VS10,
173 	PPC_REG_VS11,
174 	PPC_REG_VS12,
175 	PPC_REG_VS13,
176 	PPC_REG_VS14,
177 	PPC_REG_VS15,
178 	PPC_REG_VS16,
179 	PPC_REG_VS17,
180 	PPC_REG_VS18,
181 	PPC_REG_VS19,
182 	PPC_REG_VS20,
183 	PPC_REG_VS21,
184 	PPC_REG_VS22,
185 	PPC_REG_VS23,
186 	PPC_REG_VS24,
187 	PPC_REG_VS25,
188 	PPC_REG_VS26,
189 	PPC_REG_VS27,
190 	PPC_REG_VS28,
191 	PPC_REG_VS29,
192 	PPC_REG_VS30,
193 	PPC_REG_VS31,
194 	PPC_REG_VS32,
195 	PPC_REG_VS33,
196 	PPC_REG_VS34,
197 	PPC_REG_VS35,
198 	PPC_REG_VS36,
199 	PPC_REG_VS37,
200 	PPC_REG_VS38,
201 	PPC_REG_VS39,
202 	PPC_REG_VS40,
203 	PPC_REG_VS41,
204 	PPC_REG_VS42,
205 	PPC_REG_VS43,
206 	PPC_REG_VS44,
207 	PPC_REG_VS45,
208 	PPC_REG_VS46,
209 	PPC_REG_VS47,
210 	PPC_REG_VS48,
211 	PPC_REG_VS49,
212 	PPC_REG_VS50,
213 	PPC_REG_VS51,
214 	PPC_REG_VS52,
215 	PPC_REG_VS53,
216 	PPC_REG_VS54,
217 	PPC_REG_VS55,
218 	PPC_REG_VS56,
219 	PPC_REG_VS57,
220 	PPC_REG_VS58,
221 	PPC_REG_VS59,
222 	PPC_REG_VS60,
223 	PPC_REG_VS61,
224 	PPC_REG_VS62,
225 	PPC_REG_VS63,
226 	PPC_REG_Q0,
227 	PPC_REG_Q1,
228 	PPC_REG_Q2,
229 	PPC_REG_Q3,
230 	PPC_REG_Q4,
231 	PPC_REG_Q5,
232 	PPC_REG_Q6,
233 	PPC_REG_Q7,
234 	PPC_REG_Q8,
235 	PPC_REG_Q9,
236 	PPC_REG_Q10,
237 	PPC_REG_Q11,
238 	PPC_REG_Q12,
239 	PPC_REG_Q13,
240 	PPC_REG_Q14,
241 	PPC_REG_Q15,
242 	PPC_REG_Q16,
243 	PPC_REG_Q17,
244 	PPC_REG_Q18,
245 	PPC_REG_Q19,
246 	PPC_REG_Q20,
247 	PPC_REG_Q21,
248 	PPC_REG_Q22,
249 	PPC_REG_Q23,
250 	PPC_REG_Q24,
251 	PPC_REG_Q25,
252 	PPC_REG_Q26,
253 	PPC_REG_Q27,
254 	PPC_REG_Q28,
255 	PPC_REG_Q29,
256 	PPC_REG_Q30,
257 	PPC_REG_Q31,
258 
259 	// extra registers for PPCMapping.c
260 	PPC_REG_RM,
261 	PPC_REG_CTR8,
262 	PPC_REG_LR8,
263 	PPC_REG_CR1EQ,
264 	PPC_REG_X2,
265 
266 	PPC_REG_ENDING,   // <-- mark the end of the list of registers
267 } ppc_reg;
268 
269 /// Instruction's operand referring to memory
270 /// This is associated with PPC_OP_MEM operand type above
271 typedef struct ppc_op_mem {
272 	ppc_reg base;	///< base register
273 	int32_t disp;	///< displacement/offset value
274 } ppc_op_mem;
275 
276 typedef struct ppc_op_crx {
277 	unsigned int scale;
278 	ppc_reg reg;
279 	ppc_bc cond;
280 } ppc_op_crx;
281 
282 /// Instruction operand
283 typedef struct cs_ppc_op {
284 	ppc_op_type type;	///< operand type
285 	union {
286 		ppc_reg reg;	///< register value for REG operand
287 		int64_t imm;		///< immediate value for IMM operand
288 		ppc_op_mem mem;		///< base/disp value for MEM operand
289 		ppc_op_crx crx;		///< operand with condition register
290 	};
291 } cs_ppc_op;
292 
293 /// Instruction structure
294 typedef struct cs_ppc {
295 	/// branch code for branch instructions
296 	ppc_bc bc;
297 
298 	/// branch hint for branch instructions
299 	ppc_bh bh;
300 
301 	/// if update_cr0 = True, then this 'dot' insn updates CR0
302 	bool update_cr0;
303 
304 	/// Number of operands of this instruction,
305 	/// or 0 when instruction has no operand.
306 	uint8_t op_count;
307 	cs_ppc_op operands[8]; ///< operands for this instruction.
308 } cs_ppc;
309 
310 /// PPC instruction
311 typedef enum ppc_insn {
312 	PPC_INS_INVALID = 0,
313 
314 	PPC_INS_ADD,
315 	PPC_INS_ADDC,
316 	PPC_INS_ADDE,
317 	PPC_INS_ADDI,
318 	PPC_INS_ADDIC,
319 	PPC_INS_ADDIS,
320 	PPC_INS_ADDME,
321 	PPC_INS_ADDZE,
322 	PPC_INS_AND,
323 	PPC_INS_ANDC,
324 	PPC_INS_ANDIS,
325 	PPC_INS_ANDI,
326 	PPC_INS_ATTN,
327 	PPC_INS_B,
328 	PPC_INS_BA,
329 	PPC_INS_BC,
330 	PPC_INS_BCCTR,
331 	PPC_INS_BCCTRL,
332 	PPC_INS_BCL,
333 	PPC_INS_BCLR,
334 	PPC_INS_BCLRL,
335 	PPC_INS_BCTR,
336 	PPC_INS_BCTRL,
337 	PPC_INS_BCT,
338 	PPC_INS_BDNZ,
339 	PPC_INS_BDNZA,
340 	PPC_INS_BDNZL,
341 	PPC_INS_BDNZLA,
342 	PPC_INS_BDNZLR,
343 	PPC_INS_BDNZLRL,
344 	PPC_INS_BDZ,
345 	PPC_INS_BDZA,
346 	PPC_INS_BDZL,
347 	PPC_INS_BDZLA,
348 	PPC_INS_BDZLR,
349 	PPC_INS_BDZLRL,
350 	PPC_INS_BL,
351 	PPC_INS_BLA,
352 	PPC_INS_BLR,
353 	PPC_INS_BLRL,
354 	PPC_INS_BRINC,
355 	PPC_INS_CMPB,
356 	PPC_INS_CMPD,
357 	PPC_INS_CMPDI,
358 	PPC_INS_CMPLD,
359 	PPC_INS_CMPLDI,
360 	PPC_INS_CMPLW,
361 	PPC_INS_CMPLWI,
362 	PPC_INS_CMPW,
363 	PPC_INS_CMPWI,
364 	PPC_INS_CNTLZD,
365 	PPC_INS_CNTLZW,
366 	PPC_INS_CREQV,
367 	PPC_INS_CRXOR,
368 	PPC_INS_CRAND,
369 	PPC_INS_CRANDC,
370 	PPC_INS_CRNAND,
371 	PPC_INS_CRNOR,
372 	PPC_INS_CROR,
373 	PPC_INS_CRORC,
374 	PPC_INS_DCBA,
375 	PPC_INS_DCBF,
376 	PPC_INS_DCBI,
377 	PPC_INS_DCBST,
378 	PPC_INS_DCBT,
379 	PPC_INS_DCBTST,
380 	PPC_INS_DCBZ,
381 	PPC_INS_DCBZL,
382 	PPC_INS_DCCCI,
383 	PPC_INS_DIVD,
384 	PPC_INS_DIVDU,
385 	PPC_INS_DIVW,
386 	PPC_INS_DIVWU,
387 	PPC_INS_DSS,
388 	PPC_INS_DSSALL,
389 	PPC_INS_DST,
390 	PPC_INS_DSTST,
391 	PPC_INS_DSTSTT,
392 	PPC_INS_DSTT,
393 	PPC_INS_EQV,
394 	PPC_INS_EVABS,
395 	PPC_INS_EVADDIW,
396 	PPC_INS_EVADDSMIAAW,
397 	PPC_INS_EVADDSSIAAW,
398 	PPC_INS_EVADDUMIAAW,
399 	PPC_INS_EVADDUSIAAW,
400 	PPC_INS_EVADDW,
401 	PPC_INS_EVAND,
402 	PPC_INS_EVANDC,
403 	PPC_INS_EVCMPEQ,
404 	PPC_INS_EVCMPGTS,
405 	PPC_INS_EVCMPGTU,
406 	PPC_INS_EVCMPLTS,
407 	PPC_INS_EVCMPLTU,
408 	PPC_INS_EVCNTLSW,
409 	PPC_INS_EVCNTLZW,
410 	PPC_INS_EVDIVWS,
411 	PPC_INS_EVDIVWU,
412 	PPC_INS_EVEQV,
413 	PPC_INS_EVEXTSB,
414 	PPC_INS_EVEXTSH,
415 	PPC_INS_EVLDD,
416 	PPC_INS_EVLDDX,
417 	PPC_INS_EVLDH,
418 	PPC_INS_EVLDHX,
419 	PPC_INS_EVLDW,
420 	PPC_INS_EVLDWX,
421 	PPC_INS_EVLHHESPLAT,
422 	PPC_INS_EVLHHESPLATX,
423 	PPC_INS_EVLHHOSSPLAT,
424 	PPC_INS_EVLHHOSSPLATX,
425 	PPC_INS_EVLHHOUSPLAT,
426 	PPC_INS_EVLHHOUSPLATX,
427 	PPC_INS_EVLWHE,
428 	PPC_INS_EVLWHEX,
429 	PPC_INS_EVLWHOS,
430 	PPC_INS_EVLWHOSX,
431 	PPC_INS_EVLWHOU,
432 	PPC_INS_EVLWHOUX,
433 	PPC_INS_EVLWHSPLAT,
434 	PPC_INS_EVLWHSPLATX,
435 	PPC_INS_EVLWWSPLAT,
436 	PPC_INS_EVLWWSPLATX,
437 	PPC_INS_EVMERGEHI,
438 	PPC_INS_EVMERGEHILO,
439 	PPC_INS_EVMERGELO,
440 	PPC_INS_EVMERGELOHI,
441 	PPC_INS_EVMHEGSMFAA,
442 	PPC_INS_EVMHEGSMFAN,
443 	PPC_INS_EVMHEGSMIAA,
444 	PPC_INS_EVMHEGSMIAN,
445 	PPC_INS_EVMHEGUMIAA,
446 	PPC_INS_EVMHEGUMIAN,
447 	PPC_INS_EVMHESMF,
448 	PPC_INS_EVMHESMFA,
449 	PPC_INS_EVMHESMFAAW,
450 	PPC_INS_EVMHESMFANW,
451 	PPC_INS_EVMHESMI,
452 	PPC_INS_EVMHESMIA,
453 	PPC_INS_EVMHESMIAAW,
454 	PPC_INS_EVMHESMIANW,
455 	PPC_INS_EVMHESSF,
456 	PPC_INS_EVMHESSFA,
457 	PPC_INS_EVMHESSFAAW,
458 	PPC_INS_EVMHESSFANW,
459 	PPC_INS_EVMHESSIAAW,
460 	PPC_INS_EVMHESSIANW,
461 	PPC_INS_EVMHEUMI,
462 	PPC_INS_EVMHEUMIA,
463 	PPC_INS_EVMHEUMIAAW,
464 	PPC_INS_EVMHEUMIANW,
465 	PPC_INS_EVMHEUSIAAW,
466 	PPC_INS_EVMHEUSIANW,
467 	PPC_INS_EVMHOGSMFAA,
468 	PPC_INS_EVMHOGSMFAN,
469 	PPC_INS_EVMHOGSMIAA,
470 	PPC_INS_EVMHOGSMIAN,
471 	PPC_INS_EVMHOGUMIAA,
472 	PPC_INS_EVMHOGUMIAN,
473 	PPC_INS_EVMHOSMF,
474 	PPC_INS_EVMHOSMFA,
475 	PPC_INS_EVMHOSMFAAW,
476 	PPC_INS_EVMHOSMFANW,
477 	PPC_INS_EVMHOSMI,
478 	PPC_INS_EVMHOSMIA,
479 	PPC_INS_EVMHOSMIAAW,
480 	PPC_INS_EVMHOSMIANW,
481 	PPC_INS_EVMHOSSF,
482 	PPC_INS_EVMHOSSFA,
483 	PPC_INS_EVMHOSSFAAW,
484 	PPC_INS_EVMHOSSFANW,
485 	PPC_INS_EVMHOSSIAAW,
486 	PPC_INS_EVMHOSSIANW,
487 	PPC_INS_EVMHOUMI,
488 	PPC_INS_EVMHOUMIA,
489 	PPC_INS_EVMHOUMIAAW,
490 	PPC_INS_EVMHOUMIANW,
491 	PPC_INS_EVMHOUSIAAW,
492 	PPC_INS_EVMHOUSIANW,
493 	PPC_INS_EVMRA,
494 	PPC_INS_EVMWHSMF,
495 	PPC_INS_EVMWHSMFA,
496 	PPC_INS_EVMWHSMI,
497 	PPC_INS_EVMWHSMIA,
498 	PPC_INS_EVMWHSSF,
499 	PPC_INS_EVMWHSSFA,
500 	PPC_INS_EVMWHUMI,
501 	PPC_INS_EVMWHUMIA,
502 	PPC_INS_EVMWLSMIAAW,
503 	PPC_INS_EVMWLSMIANW,
504 	PPC_INS_EVMWLSSIAAW,
505 	PPC_INS_EVMWLSSIANW,
506 	PPC_INS_EVMWLUMI,
507 	PPC_INS_EVMWLUMIA,
508 	PPC_INS_EVMWLUMIAAW,
509 	PPC_INS_EVMWLUMIANW,
510 	PPC_INS_EVMWLUSIAAW,
511 	PPC_INS_EVMWLUSIANW,
512 	PPC_INS_EVMWSMF,
513 	PPC_INS_EVMWSMFA,
514 	PPC_INS_EVMWSMFAA,
515 	PPC_INS_EVMWSMFAN,
516 	PPC_INS_EVMWSMI,
517 	PPC_INS_EVMWSMIA,
518 	PPC_INS_EVMWSMIAA,
519 	PPC_INS_EVMWSMIAN,
520 	PPC_INS_EVMWSSF,
521 	PPC_INS_EVMWSSFA,
522 	PPC_INS_EVMWSSFAA,
523 	PPC_INS_EVMWSSFAN,
524 	PPC_INS_EVMWUMI,
525 	PPC_INS_EVMWUMIA,
526 	PPC_INS_EVMWUMIAA,
527 	PPC_INS_EVMWUMIAN,
528 	PPC_INS_EVNAND,
529 	PPC_INS_EVNEG,
530 	PPC_INS_EVNOR,
531 	PPC_INS_EVOR,
532 	PPC_INS_EVORC,
533 	PPC_INS_EVRLW,
534 	PPC_INS_EVRLWI,
535 	PPC_INS_EVRNDW,
536 	PPC_INS_EVSLW,
537 	PPC_INS_EVSLWI,
538 	PPC_INS_EVSPLATFI,
539 	PPC_INS_EVSPLATI,
540 	PPC_INS_EVSRWIS,
541 	PPC_INS_EVSRWIU,
542 	PPC_INS_EVSRWS,
543 	PPC_INS_EVSRWU,
544 	PPC_INS_EVSTDD,
545 	PPC_INS_EVSTDDX,
546 	PPC_INS_EVSTDH,
547 	PPC_INS_EVSTDHX,
548 	PPC_INS_EVSTDW,
549 	PPC_INS_EVSTDWX,
550 	PPC_INS_EVSTWHE,
551 	PPC_INS_EVSTWHEX,
552 	PPC_INS_EVSTWHO,
553 	PPC_INS_EVSTWHOX,
554 	PPC_INS_EVSTWWE,
555 	PPC_INS_EVSTWWEX,
556 	PPC_INS_EVSTWWO,
557 	PPC_INS_EVSTWWOX,
558 	PPC_INS_EVSUBFSMIAAW,
559 	PPC_INS_EVSUBFSSIAAW,
560 	PPC_INS_EVSUBFUMIAAW,
561 	PPC_INS_EVSUBFUSIAAW,
562 	PPC_INS_EVSUBFW,
563 	PPC_INS_EVSUBIFW,
564 	PPC_INS_EVXOR,
565 	PPC_INS_EXTSB,
566 	PPC_INS_EXTSH,
567 	PPC_INS_EXTSW,
568 	PPC_INS_EIEIO,
569 	PPC_INS_FABS,
570 	PPC_INS_FADD,
571 	PPC_INS_FADDS,
572 	PPC_INS_FCFID,
573 	PPC_INS_FCFIDS,
574 	PPC_INS_FCFIDU,
575 	PPC_INS_FCFIDUS,
576 	PPC_INS_FCMPU,
577 	PPC_INS_FCPSGN,
578 	PPC_INS_FCTID,
579 	PPC_INS_FCTIDUZ,
580 	PPC_INS_FCTIDZ,
581 	PPC_INS_FCTIW,
582 	PPC_INS_FCTIWUZ,
583 	PPC_INS_FCTIWZ,
584 	PPC_INS_FDIV,
585 	PPC_INS_FDIVS,
586 	PPC_INS_FMADD,
587 	PPC_INS_FMADDS,
588 	PPC_INS_FMR,
589 	PPC_INS_FMSUB,
590 	PPC_INS_FMSUBS,
591 	PPC_INS_FMUL,
592 	PPC_INS_FMULS,
593 	PPC_INS_FNABS,
594 	PPC_INS_FNEG,
595 	PPC_INS_FNMADD,
596 	PPC_INS_FNMADDS,
597 	PPC_INS_FNMSUB,
598 	PPC_INS_FNMSUBS,
599 	PPC_INS_FRE,
600 	PPC_INS_FRES,
601 	PPC_INS_FRIM,
602 	PPC_INS_FRIN,
603 	PPC_INS_FRIP,
604 	PPC_INS_FRIZ,
605 	PPC_INS_FRSP,
606 	PPC_INS_FRSQRTE,
607 	PPC_INS_FRSQRTES,
608 	PPC_INS_FSEL,
609 	PPC_INS_FSQRT,
610 	PPC_INS_FSQRTS,
611 	PPC_INS_FSUB,
612 	PPC_INS_FSUBS,
613 	PPC_INS_ICBI,
614 	PPC_INS_ICBT,
615 	PPC_INS_ICCCI,
616 	PPC_INS_ISEL,
617 	PPC_INS_ISYNC,
618 	PPC_INS_LA,
619 	PPC_INS_LBZ,
620 	PPC_INS_LBZCIX,
621 	PPC_INS_LBZU,
622 	PPC_INS_LBZUX,
623 	PPC_INS_LBZX,
624 	PPC_INS_LD,
625 	PPC_INS_LDARX,
626 	PPC_INS_LDBRX,
627 	PPC_INS_LDCIX,
628 	PPC_INS_LDU,
629 	PPC_INS_LDUX,
630 	PPC_INS_LDX,
631 	PPC_INS_LFD,
632 	PPC_INS_LFDU,
633 	PPC_INS_LFDUX,
634 	PPC_INS_LFDX,
635 	PPC_INS_LFIWAX,
636 	PPC_INS_LFIWZX,
637 	PPC_INS_LFS,
638 	PPC_INS_LFSU,
639 	PPC_INS_LFSUX,
640 	PPC_INS_LFSX,
641 	PPC_INS_LHA,
642 	PPC_INS_LHAU,
643 	PPC_INS_LHAUX,
644 	PPC_INS_LHAX,
645 	PPC_INS_LHBRX,
646 	PPC_INS_LHZ,
647 	PPC_INS_LHZCIX,
648 	PPC_INS_LHZU,
649 	PPC_INS_LHZUX,
650 	PPC_INS_LHZX,
651 	PPC_INS_LI,
652 	PPC_INS_LIS,
653 	PPC_INS_LMW,
654 	PPC_INS_LSWI,
655 	PPC_INS_LVEBX,
656 	PPC_INS_LVEHX,
657 	PPC_INS_LVEWX,
658 	PPC_INS_LVSL,
659 	PPC_INS_LVSR,
660 	PPC_INS_LVX,
661 	PPC_INS_LVXL,
662 	PPC_INS_LWA,
663 	PPC_INS_LWARX,
664 	PPC_INS_LWAUX,
665 	PPC_INS_LWAX,
666 	PPC_INS_LWBRX,
667 	PPC_INS_LWZ,
668 	PPC_INS_LWZCIX,
669 	PPC_INS_LWZU,
670 	PPC_INS_LWZUX,
671 	PPC_INS_LWZX,
672 	PPC_INS_LXSDX,
673 	PPC_INS_LXVD2X,
674 	PPC_INS_LXVDSX,
675 	PPC_INS_LXVW4X,
676 	PPC_INS_MBAR,
677 	PPC_INS_MCRF,
678 	PPC_INS_MCRFS,
679 	PPC_INS_MFCR,
680 	PPC_INS_MFCTR,
681 	PPC_INS_MFDCR,
682 	PPC_INS_MFFS,
683 	PPC_INS_MFLR,
684 	PPC_INS_MFMSR,
685 	PPC_INS_MFOCRF,
686 	PPC_INS_MFSPR,
687 	PPC_INS_MFSR,
688 	PPC_INS_MFSRIN,
689 	PPC_INS_MFTB,
690 	PPC_INS_MFVSCR,
691 	PPC_INS_MSYNC,
692 	PPC_INS_MTCRF,
693 	PPC_INS_MTCTR,
694 	PPC_INS_MTDCR,
695 	PPC_INS_MTFSB0,
696 	PPC_INS_MTFSB1,
697 	PPC_INS_MTFSF,
698 	PPC_INS_MTFSFI,
699 	PPC_INS_MTLR,
700 	PPC_INS_MTMSR,
701 	PPC_INS_MTMSRD,
702 	PPC_INS_MTOCRF,
703 	PPC_INS_MTSPR,
704 	PPC_INS_MTSR,
705 	PPC_INS_MTSRIN,
706 	PPC_INS_MTVSCR,
707 	PPC_INS_MULHD,
708 	PPC_INS_MULHDU,
709 	PPC_INS_MULHW,
710 	PPC_INS_MULHWU,
711 	PPC_INS_MULLD,
712 	PPC_INS_MULLI,
713 	PPC_INS_MULLW,
714 	PPC_INS_NAND,
715 	PPC_INS_NEG,
716 	PPC_INS_NOP,
717 	PPC_INS_ORI,
718 	PPC_INS_NOR,
719 	PPC_INS_OR,
720 	PPC_INS_ORC,
721 	PPC_INS_ORIS,
722 	PPC_INS_POPCNTD,
723 	PPC_INS_POPCNTW,
724 	PPC_INS_QVALIGNI,
725 	PPC_INS_QVESPLATI,
726 	PPC_INS_QVFABS,
727 	PPC_INS_QVFADD,
728 	PPC_INS_QVFADDS,
729 	PPC_INS_QVFCFID,
730 	PPC_INS_QVFCFIDS,
731 	PPC_INS_QVFCFIDU,
732 	PPC_INS_QVFCFIDUS,
733 	PPC_INS_QVFCMPEQ,
734 	PPC_INS_QVFCMPGT,
735 	PPC_INS_QVFCMPLT,
736 	PPC_INS_QVFCPSGN,
737 	PPC_INS_QVFCTID,
738 	PPC_INS_QVFCTIDU,
739 	PPC_INS_QVFCTIDUZ,
740 	PPC_INS_QVFCTIDZ,
741 	PPC_INS_QVFCTIW,
742 	PPC_INS_QVFCTIWU,
743 	PPC_INS_QVFCTIWUZ,
744 	PPC_INS_QVFCTIWZ,
745 	PPC_INS_QVFLOGICAL,
746 	PPC_INS_QVFMADD,
747 	PPC_INS_QVFMADDS,
748 	PPC_INS_QVFMR,
749 	PPC_INS_QVFMSUB,
750 	PPC_INS_QVFMSUBS,
751 	PPC_INS_QVFMUL,
752 	PPC_INS_QVFMULS,
753 	PPC_INS_QVFNABS,
754 	PPC_INS_QVFNEG,
755 	PPC_INS_QVFNMADD,
756 	PPC_INS_QVFNMADDS,
757 	PPC_INS_QVFNMSUB,
758 	PPC_INS_QVFNMSUBS,
759 	PPC_INS_QVFPERM,
760 	PPC_INS_QVFRE,
761 	PPC_INS_QVFRES,
762 	PPC_INS_QVFRIM,
763 	PPC_INS_QVFRIN,
764 	PPC_INS_QVFRIP,
765 	PPC_INS_QVFRIZ,
766 	PPC_INS_QVFRSP,
767 	PPC_INS_QVFRSQRTE,
768 	PPC_INS_QVFRSQRTES,
769 	PPC_INS_QVFSEL,
770 	PPC_INS_QVFSUB,
771 	PPC_INS_QVFSUBS,
772 	PPC_INS_QVFTSTNAN,
773 	PPC_INS_QVFXMADD,
774 	PPC_INS_QVFXMADDS,
775 	PPC_INS_QVFXMUL,
776 	PPC_INS_QVFXMULS,
777 	PPC_INS_QVFXXCPNMADD,
778 	PPC_INS_QVFXXCPNMADDS,
779 	PPC_INS_QVFXXMADD,
780 	PPC_INS_QVFXXMADDS,
781 	PPC_INS_QVFXXNPMADD,
782 	PPC_INS_QVFXXNPMADDS,
783 	PPC_INS_QVGPCI,
784 	PPC_INS_QVLFCDUX,
785 	PPC_INS_QVLFCDUXA,
786 	PPC_INS_QVLFCDX,
787 	PPC_INS_QVLFCDXA,
788 	PPC_INS_QVLFCSUX,
789 	PPC_INS_QVLFCSUXA,
790 	PPC_INS_QVLFCSX,
791 	PPC_INS_QVLFCSXA,
792 	PPC_INS_QVLFDUX,
793 	PPC_INS_QVLFDUXA,
794 	PPC_INS_QVLFDX,
795 	PPC_INS_QVLFDXA,
796 	PPC_INS_QVLFIWAX,
797 	PPC_INS_QVLFIWAXA,
798 	PPC_INS_QVLFIWZX,
799 	PPC_INS_QVLFIWZXA,
800 	PPC_INS_QVLFSUX,
801 	PPC_INS_QVLFSUXA,
802 	PPC_INS_QVLFSX,
803 	PPC_INS_QVLFSXA,
804 	PPC_INS_QVLPCLDX,
805 	PPC_INS_QVLPCLSX,
806 	PPC_INS_QVLPCRDX,
807 	PPC_INS_QVLPCRSX,
808 	PPC_INS_QVSTFCDUX,
809 	PPC_INS_QVSTFCDUXA,
810 	PPC_INS_QVSTFCDUXI,
811 	PPC_INS_QVSTFCDUXIA,
812 	PPC_INS_QVSTFCDX,
813 	PPC_INS_QVSTFCDXA,
814 	PPC_INS_QVSTFCDXI,
815 	PPC_INS_QVSTFCDXIA,
816 	PPC_INS_QVSTFCSUX,
817 	PPC_INS_QVSTFCSUXA,
818 	PPC_INS_QVSTFCSUXI,
819 	PPC_INS_QVSTFCSUXIA,
820 	PPC_INS_QVSTFCSX,
821 	PPC_INS_QVSTFCSXA,
822 	PPC_INS_QVSTFCSXI,
823 	PPC_INS_QVSTFCSXIA,
824 	PPC_INS_QVSTFDUX,
825 	PPC_INS_QVSTFDUXA,
826 	PPC_INS_QVSTFDUXI,
827 	PPC_INS_QVSTFDUXIA,
828 	PPC_INS_QVSTFDX,
829 	PPC_INS_QVSTFDXA,
830 	PPC_INS_QVSTFDXI,
831 	PPC_INS_QVSTFDXIA,
832 	PPC_INS_QVSTFIWX,
833 	PPC_INS_QVSTFIWXA,
834 	PPC_INS_QVSTFSUX,
835 	PPC_INS_QVSTFSUXA,
836 	PPC_INS_QVSTFSUXI,
837 	PPC_INS_QVSTFSUXIA,
838 	PPC_INS_QVSTFSX,
839 	PPC_INS_QVSTFSXA,
840 	PPC_INS_QVSTFSXI,
841 	PPC_INS_QVSTFSXIA,
842 	PPC_INS_RFCI,
843 	PPC_INS_RFDI,
844 	PPC_INS_RFI,
845 	PPC_INS_RFID,
846 	PPC_INS_RFMCI,
847 	PPC_INS_RLDCL,
848 	PPC_INS_RLDCR,
849 	PPC_INS_RLDIC,
850 	PPC_INS_RLDICL,
851 	PPC_INS_RLDICR,
852 	PPC_INS_RLDIMI,
853 	PPC_INS_RLWIMI,
854 	PPC_INS_RLWINM,
855 	PPC_INS_RLWNM,
856 	PPC_INS_SC,
857 	PPC_INS_SLBIA,
858 	PPC_INS_SLBIE,
859 	PPC_INS_SLBMFEE,
860 	PPC_INS_SLBMTE,
861 	PPC_INS_SLD,
862 	PPC_INS_SLW,
863 	PPC_INS_SRAD,
864 	PPC_INS_SRADI,
865 	PPC_INS_SRAW,
866 	PPC_INS_SRAWI,
867 	PPC_INS_SRD,
868 	PPC_INS_SRW,
869 	PPC_INS_STB,
870 	PPC_INS_STBCIX,
871 	PPC_INS_STBU,
872 	PPC_INS_STBUX,
873 	PPC_INS_STBX,
874 	PPC_INS_STD,
875 	PPC_INS_STDBRX,
876 	PPC_INS_STDCIX,
877 	PPC_INS_STDCX,
878 	PPC_INS_STDU,
879 	PPC_INS_STDUX,
880 	PPC_INS_STDX,
881 	PPC_INS_STFD,
882 	PPC_INS_STFDU,
883 	PPC_INS_STFDUX,
884 	PPC_INS_STFDX,
885 	PPC_INS_STFIWX,
886 	PPC_INS_STFS,
887 	PPC_INS_STFSU,
888 	PPC_INS_STFSUX,
889 	PPC_INS_STFSX,
890 	PPC_INS_STH,
891 	PPC_INS_STHBRX,
892 	PPC_INS_STHCIX,
893 	PPC_INS_STHU,
894 	PPC_INS_STHUX,
895 	PPC_INS_STHX,
896 	PPC_INS_STMW,
897 	PPC_INS_STSWI,
898 	PPC_INS_STVEBX,
899 	PPC_INS_STVEHX,
900 	PPC_INS_STVEWX,
901 	PPC_INS_STVX,
902 	PPC_INS_STVXL,
903 	PPC_INS_STW,
904 	PPC_INS_STWBRX,
905 	PPC_INS_STWCIX,
906 	PPC_INS_STWCX,
907 	PPC_INS_STWU,
908 	PPC_INS_STWUX,
909 	PPC_INS_STWX,
910 	PPC_INS_STXSDX,
911 	PPC_INS_STXVD2X,
912 	PPC_INS_STXVW4X,
913 	PPC_INS_SUBF,
914 	PPC_INS_SUBFC,
915 	PPC_INS_SUBFE,
916 	PPC_INS_SUBFIC,
917 	PPC_INS_SUBFME,
918 	PPC_INS_SUBFZE,
919 	PPC_INS_SYNC,
920 	PPC_INS_TD,
921 	PPC_INS_TDI,
922 	PPC_INS_TLBIA,
923 	PPC_INS_TLBIE,
924 	PPC_INS_TLBIEL,
925 	PPC_INS_TLBIVAX,
926 	PPC_INS_TLBLD,
927 	PPC_INS_TLBLI,
928 	PPC_INS_TLBRE,
929 	PPC_INS_TLBSX,
930 	PPC_INS_TLBSYNC,
931 	PPC_INS_TLBWE,
932 	PPC_INS_TRAP,
933 	PPC_INS_TW,
934 	PPC_INS_TWI,
935 	PPC_INS_VADDCUW,
936 	PPC_INS_VADDFP,
937 	PPC_INS_VADDSBS,
938 	PPC_INS_VADDSHS,
939 	PPC_INS_VADDSWS,
940 	PPC_INS_VADDUBM,
941 	PPC_INS_VADDUBS,
942 	PPC_INS_VADDUDM,
943 	PPC_INS_VADDUHM,
944 	PPC_INS_VADDUHS,
945 	PPC_INS_VADDUWM,
946 	PPC_INS_VADDUWS,
947 	PPC_INS_VAND,
948 	PPC_INS_VANDC,
949 	PPC_INS_VAVGSB,
950 	PPC_INS_VAVGSH,
951 	PPC_INS_VAVGSW,
952 	PPC_INS_VAVGUB,
953 	PPC_INS_VAVGUH,
954 	PPC_INS_VAVGUW,
955 	PPC_INS_VCFSX,
956 	PPC_INS_VCFUX,
957 	PPC_INS_VCLZB,
958 	PPC_INS_VCLZD,
959 	PPC_INS_VCLZH,
960 	PPC_INS_VCLZW,
961 	PPC_INS_VCMPBFP,
962 	PPC_INS_VCMPEQFP,
963 	PPC_INS_VCMPEQUB,
964 	PPC_INS_VCMPEQUD,
965 	PPC_INS_VCMPEQUH,
966 	PPC_INS_VCMPEQUW,
967 	PPC_INS_VCMPGEFP,
968 	PPC_INS_VCMPGTFP,
969 	PPC_INS_VCMPGTSB,
970 	PPC_INS_VCMPGTSD,
971 	PPC_INS_VCMPGTSH,
972 	PPC_INS_VCMPGTSW,
973 	PPC_INS_VCMPGTUB,
974 	PPC_INS_VCMPGTUD,
975 	PPC_INS_VCMPGTUH,
976 	PPC_INS_VCMPGTUW,
977 	PPC_INS_VCTSXS,
978 	PPC_INS_VCTUXS,
979 	PPC_INS_VEQV,
980 	PPC_INS_VEXPTEFP,
981 	PPC_INS_VLOGEFP,
982 	PPC_INS_VMADDFP,
983 	PPC_INS_VMAXFP,
984 	PPC_INS_VMAXSB,
985 	PPC_INS_VMAXSD,
986 	PPC_INS_VMAXSH,
987 	PPC_INS_VMAXSW,
988 	PPC_INS_VMAXUB,
989 	PPC_INS_VMAXUD,
990 	PPC_INS_VMAXUH,
991 	PPC_INS_VMAXUW,
992 	PPC_INS_VMHADDSHS,
993 	PPC_INS_VMHRADDSHS,
994 	PPC_INS_VMINUD,
995 	PPC_INS_VMINFP,
996 	PPC_INS_VMINSB,
997 	PPC_INS_VMINSD,
998 	PPC_INS_VMINSH,
999 	PPC_INS_VMINSW,
1000 	PPC_INS_VMINUB,
1001 	PPC_INS_VMINUH,
1002 	PPC_INS_VMINUW,
1003 	PPC_INS_VMLADDUHM,
1004 	PPC_INS_VMRGHB,
1005 	PPC_INS_VMRGHH,
1006 	PPC_INS_VMRGHW,
1007 	PPC_INS_VMRGLB,
1008 	PPC_INS_VMRGLH,
1009 	PPC_INS_VMRGLW,
1010 	PPC_INS_VMSUMMBM,
1011 	PPC_INS_VMSUMSHM,
1012 	PPC_INS_VMSUMSHS,
1013 	PPC_INS_VMSUMUBM,
1014 	PPC_INS_VMSUMUHM,
1015 	PPC_INS_VMSUMUHS,
1016 	PPC_INS_VMULESB,
1017 	PPC_INS_VMULESH,
1018 	PPC_INS_VMULESW,
1019 	PPC_INS_VMULEUB,
1020 	PPC_INS_VMULEUH,
1021 	PPC_INS_VMULEUW,
1022 	PPC_INS_VMULOSB,
1023 	PPC_INS_VMULOSH,
1024 	PPC_INS_VMULOSW,
1025 	PPC_INS_VMULOUB,
1026 	PPC_INS_VMULOUH,
1027 	PPC_INS_VMULOUW,
1028 	PPC_INS_VMULUWM,
1029 	PPC_INS_VNAND,
1030 	PPC_INS_VNMSUBFP,
1031 	PPC_INS_VNOR,
1032 	PPC_INS_VOR,
1033 	PPC_INS_VORC,
1034 	PPC_INS_VPERM,
1035 	PPC_INS_VPKPX,
1036 	PPC_INS_VPKSHSS,
1037 	PPC_INS_VPKSHUS,
1038 	PPC_INS_VPKSWSS,
1039 	PPC_INS_VPKSWUS,
1040 	PPC_INS_VPKUHUM,
1041 	PPC_INS_VPKUHUS,
1042 	PPC_INS_VPKUWUM,
1043 	PPC_INS_VPKUWUS,
1044 	PPC_INS_VPOPCNTB,
1045 	PPC_INS_VPOPCNTD,
1046 	PPC_INS_VPOPCNTH,
1047 	PPC_INS_VPOPCNTW,
1048 	PPC_INS_VREFP,
1049 	PPC_INS_VRFIM,
1050 	PPC_INS_VRFIN,
1051 	PPC_INS_VRFIP,
1052 	PPC_INS_VRFIZ,
1053 	PPC_INS_VRLB,
1054 	PPC_INS_VRLD,
1055 	PPC_INS_VRLH,
1056 	PPC_INS_VRLW,
1057 	PPC_INS_VRSQRTEFP,
1058 	PPC_INS_VSEL,
1059 	PPC_INS_VSL,
1060 	PPC_INS_VSLB,
1061 	PPC_INS_VSLD,
1062 	PPC_INS_VSLDOI,
1063 	PPC_INS_VSLH,
1064 	PPC_INS_VSLO,
1065 	PPC_INS_VSLW,
1066 	PPC_INS_VSPLTB,
1067 	PPC_INS_VSPLTH,
1068 	PPC_INS_VSPLTISB,
1069 	PPC_INS_VSPLTISH,
1070 	PPC_INS_VSPLTISW,
1071 	PPC_INS_VSPLTW,
1072 	PPC_INS_VSR,
1073 	PPC_INS_VSRAB,
1074 	PPC_INS_VSRAD,
1075 	PPC_INS_VSRAH,
1076 	PPC_INS_VSRAW,
1077 	PPC_INS_VSRB,
1078 	PPC_INS_VSRD,
1079 	PPC_INS_VSRH,
1080 	PPC_INS_VSRO,
1081 	PPC_INS_VSRW,
1082 	PPC_INS_VSUBCUW,
1083 	PPC_INS_VSUBFP,
1084 	PPC_INS_VSUBSBS,
1085 	PPC_INS_VSUBSHS,
1086 	PPC_INS_VSUBSWS,
1087 	PPC_INS_VSUBUBM,
1088 	PPC_INS_VSUBUBS,
1089 	PPC_INS_VSUBUDM,
1090 	PPC_INS_VSUBUHM,
1091 	PPC_INS_VSUBUHS,
1092 	PPC_INS_VSUBUWM,
1093 	PPC_INS_VSUBUWS,
1094 	PPC_INS_VSUM2SWS,
1095 	PPC_INS_VSUM4SBS,
1096 	PPC_INS_VSUM4SHS,
1097 	PPC_INS_VSUM4UBS,
1098 	PPC_INS_VSUMSWS,
1099 	PPC_INS_VUPKHPX,
1100 	PPC_INS_VUPKHSB,
1101 	PPC_INS_VUPKHSH,
1102 	PPC_INS_VUPKLPX,
1103 	PPC_INS_VUPKLSB,
1104 	PPC_INS_VUPKLSH,
1105 	PPC_INS_VXOR,
1106 	PPC_INS_WAIT,
1107 	PPC_INS_WRTEE,
1108 	PPC_INS_WRTEEI,
1109 	PPC_INS_XOR,
1110 	PPC_INS_XORI,
1111 	PPC_INS_XORIS,
1112 	PPC_INS_XSABSDP,
1113 	PPC_INS_XSADDDP,
1114 	PPC_INS_XSCMPODP,
1115 	PPC_INS_XSCMPUDP,
1116 	PPC_INS_XSCPSGNDP,
1117 	PPC_INS_XSCVDPSP,
1118 	PPC_INS_XSCVDPSXDS,
1119 	PPC_INS_XSCVDPSXWS,
1120 	PPC_INS_XSCVDPUXDS,
1121 	PPC_INS_XSCVDPUXWS,
1122 	PPC_INS_XSCVSPDP,
1123 	PPC_INS_XSCVSXDDP,
1124 	PPC_INS_XSCVUXDDP,
1125 	PPC_INS_XSDIVDP,
1126 	PPC_INS_XSMADDADP,
1127 	PPC_INS_XSMADDMDP,
1128 	PPC_INS_XSMAXDP,
1129 	PPC_INS_XSMINDP,
1130 	PPC_INS_XSMSUBADP,
1131 	PPC_INS_XSMSUBMDP,
1132 	PPC_INS_XSMULDP,
1133 	PPC_INS_XSNABSDP,
1134 	PPC_INS_XSNEGDP,
1135 	PPC_INS_XSNMADDADP,
1136 	PPC_INS_XSNMADDMDP,
1137 	PPC_INS_XSNMSUBADP,
1138 	PPC_INS_XSNMSUBMDP,
1139 	PPC_INS_XSRDPI,
1140 	PPC_INS_XSRDPIC,
1141 	PPC_INS_XSRDPIM,
1142 	PPC_INS_XSRDPIP,
1143 	PPC_INS_XSRDPIZ,
1144 	PPC_INS_XSREDP,
1145 	PPC_INS_XSRSQRTEDP,
1146 	PPC_INS_XSSQRTDP,
1147 	PPC_INS_XSSUBDP,
1148 	PPC_INS_XSTDIVDP,
1149 	PPC_INS_XSTSQRTDP,
1150 	PPC_INS_XVABSDP,
1151 	PPC_INS_XVABSSP,
1152 	PPC_INS_XVADDDP,
1153 	PPC_INS_XVADDSP,
1154 	PPC_INS_XVCMPEQDP,
1155 	PPC_INS_XVCMPEQSP,
1156 	PPC_INS_XVCMPGEDP,
1157 	PPC_INS_XVCMPGESP,
1158 	PPC_INS_XVCMPGTDP,
1159 	PPC_INS_XVCMPGTSP,
1160 	PPC_INS_XVCPSGNDP,
1161 	PPC_INS_XVCPSGNSP,
1162 	PPC_INS_XVCVDPSP,
1163 	PPC_INS_XVCVDPSXDS,
1164 	PPC_INS_XVCVDPSXWS,
1165 	PPC_INS_XVCVDPUXDS,
1166 	PPC_INS_XVCVDPUXWS,
1167 	PPC_INS_XVCVSPDP,
1168 	PPC_INS_XVCVSPSXDS,
1169 	PPC_INS_XVCVSPSXWS,
1170 	PPC_INS_XVCVSPUXDS,
1171 	PPC_INS_XVCVSPUXWS,
1172 	PPC_INS_XVCVSXDDP,
1173 	PPC_INS_XVCVSXDSP,
1174 	PPC_INS_XVCVSXWDP,
1175 	PPC_INS_XVCVSXWSP,
1176 	PPC_INS_XVCVUXDDP,
1177 	PPC_INS_XVCVUXDSP,
1178 	PPC_INS_XVCVUXWDP,
1179 	PPC_INS_XVCVUXWSP,
1180 	PPC_INS_XVDIVDP,
1181 	PPC_INS_XVDIVSP,
1182 	PPC_INS_XVMADDADP,
1183 	PPC_INS_XVMADDASP,
1184 	PPC_INS_XVMADDMDP,
1185 	PPC_INS_XVMADDMSP,
1186 	PPC_INS_XVMAXDP,
1187 	PPC_INS_XVMAXSP,
1188 	PPC_INS_XVMINDP,
1189 	PPC_INS_XVMINSP,
1190 	PPC_INS_XVMSUBADP,
1191 	PPC_INS_XVMSUBASP,
1192 	PPC_INS_XVMSUBMDP,
1193 	PPC_INS_XVMSUBMSP,
1194 	PPC_INS_XVMULDP,
1195 	PPC_INS_XVMULSP,
1196 	PPC_INS_XVNABSDP,
1197 	PPC_INS_XVNABSSP,
1198 	PPC_INS_XVNEGDP,
1199 	PPC_INS_XVNEGSP,
1200 	PPC_INS_XVNMADDADP,
1201 	PPC_INS_XVNMADDASP,
1202 	PPC_INS_XVNMADDMDP,
1203 	PPC_INS_XVNMADDMSP,
1204 	PPC_INS_XVNMSUBADP,
1205 	PPC_INS_XVNMSUBASP,
1206 	PPC_INS_XVNMSUBMDP,
1207 	PPC_INS_XVNMSUBMSP,
1208 	PPC_INS_XVRDPI,
1209 	PPC_INS_XVRDPIC,
1210 	PPC_INS_XVRDPIM,
1211 	PPC_INS_XVRDPIP,
1212 	PPC_INS_XVRDPIZ,
1213 	PPC_INS_XVREDP,
1214 	PPC_INS_XVRESP,
1215 	PPC_INS_XVRSPI,
1216 	PPC_INS_XVRSPIC,
1217 	PPC_INS_XVRSPIM,
1218 	PPC_INS_XVRSPIP,
1219 	PPC_INS_XVRSPIZ,
1220 	PPC_INS_XVRSQRTEDP,
1221 	PPC_INS_XVRSQRTESP,
1222 	PPC_INS_XVSQRTDP,
1223 	PPC_INS_XVSQRTSP,
1224 	PPC_INS_XVSUBDP,
1225 	PPC_INS_XVSUBSP,
1226 	PPC_INS_XVTDIVDP,
1227 	PPC_INS_XVTDIVSP,
1228 	PPC_INS_XVTSQRTDP,
1229 	PPC_INS_XVTSQRTSP,
1230 	PPC_INS_XXLAND,
1231 	PPC_INS_XXLANDC,
1232 	PPC_INS_XXLEQV,
1233 	PPC_INS_XXLNAND,
1234 	PPC_INS_XXLNOR,
1235 	PPC_INS_XXLOR,
1236 	PPC_INS_XXLORC,
1237 	PPC_INS_XXLXOR,
1238 	PPC_INS_XXMRGHW,
1239 	PPC_INS_XXMRGLW,
1240 	PPC_INS_XXPERMDI,
1241 	PPC_INS_XXSEL,
1242 	PPC_INS_XXSLDWI,
1243 	PPC_INS_XXSPLTW,
1244 	PPC_INS_BCA,
1245 	PPC_INS_BCLA,
1246 
1247 	// extra & alias instructions
1248 	PPC_INS_SLWI,
1249 	PPC_INS_SRWI,
1250 	PPC_INS_SLDI,
1251 
1252 	PPC_INS_BTA,
1253 	PPC_INS_CRSET,
1254 	PPC_INS_CRNOT,
1255 	PPC_INS_CRMOVE,
1256 	PPC_INS_CRCLR,
1257 	PPC_INS_MFBR0,
1258 	PPC_INS_MFBR1,
1259 	PPC_INS_MFBR2,
1260 	PPC_INS_MFBR3,
1261 	PPC_INS_MFBR4,
1262 	PPC_INS_MFBR5,
1263 	PPC_INS_MFBR6,
1264 	PPC_INS_MFBR7,
1265 	PPC_INS_MFXER,
1266 	PPC_INS_MFRTCU,
1267 	PPC_INS_MFRTCL,
1268 	PPC_INS_MFDSCR,
1269 	PPC_INS_MFDSISR,
1270 	PPC_INS_MFDAR,
1271 	PPC_INS_MFSRR2,
1272 	PPC_INS_MFSRR3,
1273 	PPC_INS_MFCFAR,
1274 	PPC_INS_MFAMR,
1275 	PPC_INS_MFPID,
1276 	PPC_INS_MFTBLO,
1277 	PPC_INS_MFTBHI,
1278 	PPC_INS_MFDBATU,
1279 	PPC_INS_MFDBATL,
1280 	PPC_INS_MFIBATU,
1281 	PPC_INS_MFIBATL,
1282 	PPC_INS_MFDCCR,
1283 	PPC_INS_MFICCR,
1284 	PPC_INS_MFDEAR,
1285 	PPC_INS_MFESR,
1286 	PPC_INS_MFSPEFSCR,
1287 	PPC_INS_MFTCR,
1288 	PPC_INS_MFASR,
1289 	PPC_INS_MFPVR,
1290 	PPC_INS_MFTBU,
1291 	PPC_INS_MTCR,
1292 	PPC_INS_MTBR0,
1293 	PPC_INS_MTBR1,
1294 	PPC_INS_MTBR2,
1295 	PPC_INS_MTBR3,
1296 	PPC_INS_MTBR4,
1297 	PPC_INS_MTBR5,
1298 	PPC_INS_MTBR6,
1299 	PPC_INS_MTBR7,
1300 	PPC_INS_MTXER,
1301 	PPC_INS_MTDSCR,
1302 	PPC_INS_MTDSISR,
1303 	PPC_INS_MTDAR,
1304 	PPC_INS_MTSRR2,
1305 	PPC_INS_MTSRR3,
1306 	PPC_INS_MTCFAR,
1307 	PPC_INS_MTAMR,
1308 	PPC_INS_MTPID,
1309 	PPC_INS_MTTBL,
1310 	PPC_INS_MTTBU,
1311 	PPC_INS_MTTBLO,
1312 	PPC_INS_MTTBHI,
1313 	PPC_INS_MTDBATU,
1314 	PPC_INS_MTDBATL,
1315 	PPC_INS_MTIBATU,
1316 	PPC_INS_MTIBATL,
1317 	PPC_INS_MTDCCR,
1318 	PPC_INS_MTICCR,
1319 	PPC_INS_MTDEAR,
1320 	PPC_INS_MTESR,
1321 	PPC_INS_MTSPEFSCR,
1322 	PPC_INS_MTTCR,
1323 	PPC_INS_NOT,
1324 	PPC_INS_MR,
1325 	PPC_INS_ROTLD,
1326 	PPC_INS_ROTLDI,
1327 	PPC_INS_CLRLDI,
1328 	PPC_INS_ROTLWI,
1329 	PPC_INS_CLRLWI,
1330 	PPC_INS_ROTLW,
1331 	PPC_INS_SUB,
1332 	PPC_INS_SUBC,
1333 	PPC_INS_LWSYNC,
1334 	PPC_INS_PTESYNC,
1335 	PPC_INS_TDLT,
1336 	PPC_INS_TDEQ,
1337 	PPC_INS_TDGT,
1338 	PPC_INS_TDNE,
1339 	PPC_INS_TDLLT,
1340 	PPC_INS_TDLGT,
1341 	PPC_INS_TDU,
1342 	PPC_INS_TDLTI,
1343 	PPC_INS_TDEQI,
1344 	PPC_INS_TDGTI,
1345 	PPC_INS_TDNEI,
1346 	PPC_INS_TDLLTI,
1347 	PPC_INS_TDLGTI,
1348 	PPC_INS_TDUI,
1349 	PPC_INS_TLBREHI,
1350 	PPC_INS_TLBRELO,
1351 	PPC_INS_TLBWEHI,
1352 	PPC_INS_TLBWELO,
1353 	PPC_INS_TWLT,
1354 	PPC_INS_TWEQ,
1355 	PPC_INS_TWGT,
1356 	PPC_INS_TWNE,
1357 	PPC_INS_TWLLT,
1358 	PPC_INS_TWLGT,
1359 	PPC_INS_TWU,
1360 	PPC_INS_TWLTI,
1361 	PPC_INS_TWEQI,
1362 	PPC_INS_TWGTI,
1363 	PPC_INS_TWNEI,
1364 	PPC_INS_TWLLTI,
1365 	PPC_INS_TWLGTI,
1366 	PPC_INS_TWUI,
1367 	PPC_INS_WAITRSV,
1368 	PPC_INS_WAITIMPL,
1369 	PPC_INS_XNOP,
1370 	PPC_INS_XVMOVDP,
1371 	PPC_INS_XVMOVSP,
1372 	PPC_INS_XXSPLTD,
1373 	PPC_INS_XXMRGHD,
1374 	PPC_INS_XXMRGLD,
1375 	PPC_INS_XXSWAPD,
1376 	PPC_INS_BT,
1377 	PPC_INS_BF,
1378 	PPC_INS_BDNZT,
1379 	PPC_INS_BDNZF,
1380 	PPC_INS_BDZF,
1381 	PPC_INS_BDZT,
1382 	PPC_INS_BFA,
1383 	PPC_INS_BDNZTA,
1384 	PPC_INS_BDNZFA,
1385 	PPC_INS_BDZTA,
1386 	PPC_INS_BDZFA,
1387 	PPC_INS_BTCTR,
1388 	PPC_INS_BFCTR,
1389 	PPC_INS_BTCTRL,
1390 	PPC_INS_BFCTRL,
1391 	PPC_INS_BTL,
1392 	PPC_INS_BFL,
1393 	PPC_INS_BDNZTL,
1394 	PPC_INS_BDNZFL,
1395 	PPC_INS_BDZTL,
1396 	PPC_INS_BDZFL,
1397 	PPC_INS_BTLA,
1398 	PPC_INS_BFLA,
1399 	PPC_INS_BDNZTLA,
1400 	PPC_INS_BDNZFLA,
1401 	PPC_INS_BDZTLA,
1402 	PPC_INS_BDZFLA,
1403 	PPC_INS_BTLR,
1404 	PPC_INS_BFLR,
1405 	PPC_INS_BDNZTLR,
1406 	PPC_INS_BDZTLR,
1407 	PPC_INS_BDZFLR,
1408 	PPC_INS_BTLRL,
1409 	PPC_INS_BFLRL,
1410 	PPC_INS_BDNZTLRL,
1411 	PPC_INS_BDNZFLRL,
1412 	PPC_INS_BDZTLRL,
1413 	PPC_INS_BDZFLRL,
1414 
1415 	// QPX
1416 	PPC_INS_QVFAND,
1417 	PPC_INS_QVFCLR,
1418 	PPC_INS_QVFANDC,
1419 	PPC_INS_QVFCTFB,
1420 	PPC_INS_QVFXOR,
1421 	PPC_INS_QVFOR,
1422 	PPC_INS_QVFNOR,
1423 	PPC_INS_QVFEQU,
1424 	PPC_INS_QVFNOT,
1425 	PPC_INS_QVFORC,
1426 	PPC_INS_QVFNAND,
1427 	PPC_INS_QVFSET,
1428 
1429 	PPC_INS_ENDING,   // <-- mark the end of the list of instructions
1430 } ppc_insn;
1431 
1432 /// Group of PPC instructions
1433 typedef enum ppc_insn_group {
1434 	PPC_GRP_INVALID = 0, ///< = CS_GRP_INVALID
1435 
1436 	// Generic groups
1437 	// all jump instructions (conditional+direct+indirect jumps)
1438 	PPC_GRP_JUMP,	///< = CS_GRP_JUMP
1439 
1440 	// Architecture-specific groups
1441 	PPC_GRP_ALTIVEC = 128,
1442 	PPC_GRP_MODE32,
1443 	PPC_GRP_MODE64,
1444 	PPC_GRP_BOOKE,
1445 	PPC_GRP_NOTBOOKE,
1446 	PPC_GRP_SPE,
1447 	PPC_GRP_VSX,
1448 	PPC_GRP_E500,
1449 	PPC_GRP_PPC4XX,
1450 	PPC_GRP_PPC6XX,
1451 	PPC_GRP_ICBT,
1452 	PPC_GRP_P8ALTIVEC,
1453 	PPC_GRP_P8VECTOR,
1454 	PPC_GRP_QPX,
1455 
1456 	PPC_GRP_ENDING,   // <-- mark the end of the list of groups
1457 } ppc_insn_group;
1458 
1459 #ifdef __cplusplus
1460 }
1461 #endif
1462 
1463 #endif
1464