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
8extern "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
18typedef 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
35typedef 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
42typedef 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
51typedef 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
271typedef struct ppc_op_mem {
272 ppc_reg base; ///< base register
273 int32_t disp; ///< displacement/offset value
274} ppc_op_mem;
275
276typedef struct ppc_op_crx {
277 unsigned int scale;
278 ppc_reg reg;
279 ppc_bc cond;
280} ppc_op_crx;
281
282/// Instruction operand
283typedef 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
294typedef 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
311typedef 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
1433typedef 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