blob: abaf08893b9c5863786ea56dbc5ab7227afa7bef [file] [log] [blame]
Nguyen Anh Quynhdd407502014-01-19 23:51:34 +08001#ifndef CAPSTONE_PPC_H
2#define CAPSTONE_PPC_H
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +08003
Nguyen Anh Quynh7751fbe2014-04-28 11:23:14 +08004/* Capstone Disassembly Engine */
5/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +08006
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#include <stdint.h>
Nguyen Anh Quynhcb591062014-05-15 21:51:02 +080012#include "platform.h"
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080013
Alex Ionescu46018db2014-01-22 09:45:00 -080014#ifdef _MSC_VER
15#pragma warning(disable:4201)
16#endif
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080017
Nguyen Anh Quynh0b4c1232014-01-02 12:02:59 +080018//> PPC branch codes for some branch instructions
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080019typedef enum ppc_bc {
Nguyen Anh Quynhdfc94e12014-07-10 08:01:02 +080020 PPC_BC_INVALID = 0,
Nguyen Anh Quynh25dc23d2014-03-10 00:22:02 +080021 PPC_BC_LT = (0 << 5) | 12,
22 PPC_BC_LE = (1 << 5) | 4,
23 PPC_BC_EQ = (2 << 5) | 12,
24 PPC_BC_GE = (0 << 5) | 4,
25 PPC_BC_GT = (1 << 5) | 12,
26 PPC_BC_NE = (2 << 5) | 4,
27 PPC_BC_UN = (3 << 5) | 12,
28 PPC_BC_NU = (3 << 5) | 4,
Nguyen Anh Quynh7e57e792014-09-21 13:04:50 +080029
30 // extra conditions
31 PPC_BC_SO = 4 << 5, // summary overflow
32 PPC_BC_NS = 4 << 5, // not summary overflow
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080033} ppc_bc;
34
Nguyen Anh Quynhaf6ca7e2014-01-05 01:05:22 +080035//> PPC branch hint for some branch instructions
36typedef enum ppc_bh {
Nguyen Anh Quynh994f3362014-07-10 11:46:11 +080037 PPC_BH_INVALID = 0, // no hint
Nguyen Anh Quynhaf6ca7e2014-01-05 01:05:22 +080038 PPC_BH_PLUS, // PLUS hint
39 PPC_BH_MINUS, // MINUS hint
40} ppc_bh;
41
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080042//> Operand type for instruction's operands
43typedef enum ppc_op_type {
44 PPC_OP_INVALID = 0, // Uninitialized.
45 PPC_OP_REG, // Register operand.
46 PPC_OP_IMM, // Immediate operand.
47 PPC_OP_MEM, // Memory operand
48} ppc_op_type;
49
50// Instruction's operand referring to memory
51// This is associated with PPC_OP_MEM operand type above
52typedef struct ppc_op_mem {
53 unsigned int base; // base register
Nguyen Anh Quynh0b4c1232014-01-02 12:02:59 +080054 int32_t disp; // displacement/offset value
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080055} ppc_op_mem;
56
57// Instruction operand
58typedef struct cs_ppc_op {
59 ppc_op_type type; // operand type
60 union {
61 unsigned int reg; // register value for REG operand
Nguyen Anh Quynh448648f2014-03-09 00:28:36 +080062 int32_t imm; // immediate value for IMM operand
Nguyen Anh Quynh0b4c1232014-01-02 12:02:59 +080063 ppc_op_mem mem; // base/disp value for MEM operand
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080064 };
65} cs_ppc_op;
66
67// Instruction structure
68typedef struct cs_ppc {
69 // branch code for branch instructions
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +080070 ppc_bc bc;
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080071
Nguyen Anh Quynhaf6ca7e2014-01-05 01:05:22 +080072 // branch hint for branch instructions
73 ppc_bh bh;
74
75 // if update_cr0 = True, then this 'dot' insn updates CR0
Nguyen Anh Quynh0b4c1232014-01-02 12:02:59 +080076 bool update_cr0;
77
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +080078 // Number of operands of this instruction,
79 // or 0 when instruction has no operand.
80 uint8_t op_count;
81 cs_ppc_op operands[8]; // operands for this instruction.
82} cs_ppc;
83
84//> PPC registers
85typedef enum ppc_reg {
86 PPC_REG_INVALID = 0,
Nguyen Anh Quynh0b4c1232014-01-02 12:02:59 +080087
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +080088 PPC_REG_CARRY,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +080089 PPC_REG_CC,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +080090 PPC_REG_CR0,
91 PPC_REG_CR1,
92 PPC_REG_CR2,
93 PPC_REG_CR3,
94 PPC_REG_CR4,
95 PPC_REG_CR5,
96 PPC_REG_CR6,
97 PPC_REG_CR7,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +080098 PPC_REG_CTR,
99 PPC_REG_F0,
100 PPC_REG_F1,
101 PPC_REG_F2,
102 PPC_REG_F3,
103 PPC_REG_F4,
104 PPC_REG_F5,
105 PPC_REG_F6,
106 PPC_REG_F7,
107 PPC_REG_F8,
108 PPC_REG_F9,
109 PPC_REG_F10,
110 PPC_REG_F11,
111 PPC_REG_F12,
112 PPC_REG_F13,
113 PPC_REG_F14,
114 PPC_REG_F15,
115 PPC_REG_F16,
116 PPC_REG_F17,
117 PPC_REG_F18,
118 PPC_REG_F19,
119 PPC_REG_F20,
120 PPC_REG_F21,
121 PPC_REG_F22,
122 PPC_REG_F23,
123 PPC_REG_F24,
124 PPC_REG_F25,
125 PPC_REG_F26,
126 PPC_REG_F27,
127 PPC_REG_F28,
128 PPC_REG_F29,
129 PPC_REG_F30,
130 PPC_REG_F31,
131 PPC_REG_LR,
132 PPC_REG_R0,
133 PPC_REG_R1,
134 PPC_REG_R2,
135 PPC_REG_R3,
136 PPC_REG_R4,
137 PPC_REG_R5,
138 PPC_REG_R6,
139 PPC_REG_R7,
140 PPC_REG_R8,
141 PPC_REG_R9,
142 PPC_REG_R10,
143 PPC_REG_R11,
144 PPC_REG_R12,
145 PPC_REG_R13,
146 PPC_REG_R14,
147 PPC_REG_R15,
148 PPC_REG_R16,
149 PPC_REG_R17,
150 PPC_REG_R18,
151 PPC_REG_R19,
152 PPC_REG_R20,
153 PPC_REG_R21,
154 PPC_REG_R22,
155 PPC_REG_R23,
156 PPC_REG_R24,
157 PPC_REG_R25,
158 PPC_REG_R26,
159 PPC_REG_R27,
160 PPC_REG_R28,
161 PPC_REG_R29,
162 PPC_REG_R30,
163 PPC_REG_R31,
164 PPC_REG_V0,
165 PPC_REG_V1,
166 PPC_REG_V2,
167 PPC_REG_V3,
168 PPC_REG_V4,
169 PPC_REG_V5,
170 PPC_REG_V6,
171 PPC_REG_V7,
172 PPC_REG_V8,
173 PPC_REG_V9,
174 PPC_REG_V10,
175 PPC_REG_V11,
176 PPC_REG_V12,
177 PPC_REG_V13,
178 PPC_REG_V14,
179 PPC_REG_V15,
180 PPC_REG_V16,
181 PPC_REG_V17,
182 PPC_REG_V18,
183 PPC_REG_V19,
184 PPC_REG_V20,
185 PPC_REG_V21,
186 PPC_REG_V22,
187 PPC_REG_V23,
188 PPC_REG_V24,
189 PPC_REG_V25,
190 PPC_REG_V26,
191 PPC_REG_V27,
192 PPC_REG_V28,
193 PPC_REG_V29,
194 PPC_REG_V30,
195 PPC_REG_V31,
196 PPC_REG_VRSAVE,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800197 PPC_REG_VS0,
198 PPC_REG_VS1,
199 PPC_REG_VS2,
200 PPC_REG_VS3,
201 PPC_REG_VS4,
202 PPC_REG_VS5,
203 PPC_REG_VS6,
204 PPC_REG_VS7,
205 PPC_REG_VS8,
206 PPC_REG_VS9,
207 PPC_REG_VS10,
208 PPC_REG_VS11,
209 PPC_REG_VS12,
210 PPC_REG_VS13,
211 PPC_REG_VS14,
212 PPC_REG_VS15,
213 PPC_REG_VS16,
214 PPC_REG_VS17,
215 PPC_REG_VS18,
216 PPC_REG_VS19,
217 PPC_REG_VS20,
218 PPC_REG_VS21,
219 PPC_REG_VS22,
220 PPC_REG_VS23,
221 PPC_REG_VS24,
222 PPC_REG_VS25,
223 PPC_REG_VS26,
224 PPC_REG_VS27,
225 PPC_REG_VS28,
226 PPC_REG_VS29,
227 PPC_REG_VS30,
228 PPC_REG_VS31,
229 PPC_REG_VS32,
230 PPC_REG_VS33,
231 PPC_REG_VS34,
232 PPC_REG_VS35,
233 PPC_REG_VS36,
234 PPC_REG_VS37,
235 PPC_REG_VS38,
236 PPC_REG_VS39,
237 PPC_REG_VS40,
238 PPC_REG_VS41,
239 PPC_REG_VS42,
240 PPC_REG_VS43,
241 PPC_REG_VS44,
242 PPC_REG_VS45,
243 PPC_REG_VS46,
244 PPC_REG_VS47,
245 PPC_REG_VS48,
246 PPC_REG_VS49,
247 PPC_REG_VS50,
248 PPC_REG_VS51,
249 PPC_REG_VS52,
250 PPC_REG_VS53,
251 PPC_REG_VS54,
252 PPC_REG_VS55,
253 PPC_REG_VS56,
254 PPC_REG_VS57,
255 PPC_REG_VS58,
256 PPC_REG_VS59,
257 PPC_REG_VS60,
258 PPC_REG_VS61,
259 PPC_REG_VS62,
260 PPC_REG_VS63,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800261
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800262 // extra registers for PPCMapping.c
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800263 PPC_REG_RM,
264 PPC_REG_CTR8,
265 PPC_REG_LR8,
266 PPC_REG_CR1EQ,
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +0800267
Nguyen Anh Quynhd7e42b72014-09-29 17:15:25 +0800268 PPC_REG_ENDING, // <-- mark the end of the list of registers
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +0800269} ppc_reg;
270
271//> PPC instruction
272typedef enum ppc_insn {
273 PPC_INS_INVALID = 0,
Nguyen Anh Quynh0b4c1232014-01-02 12:02:59 +0800274
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800275 PPC_INS_ADD,
276 PPC_INS_ADDC,
277 PPC_INS_ADDE,
278 PPC_INS_ADDI,
279 PPC_INS_ADDIC,
280 PPC_INS_ADDIS,
281 PPC_INS_ADDME,
282 PPC_INS_ADDZE,
283 PPC_INS_AND,
284 PPC_INS_ANDC,
285 PPC_INS_ANDIS,
286 PPC_INS_ANDI,
287 PPC_INS_B,
288 PPC_INS_BA,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800289 PPC_INS_BC,
290 PPC_INS_BCCTR,
291 PPC_INS_BCCTRL,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800292 PPC_INS_BCL,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800293 PPC_INS_BCLR,
294 PPC_INS_BCLRL,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800295 PPC_INS_BCTR,
296 PPC_INS_BCTRL,
297 PPC_INS_BDNZ,
298 PPC_INS_BDNZA,
299 PPC_INS_BDNZL,
300 PPC_INS_BDNZLA,
301 PPC_INS_BDNZLR,
302 PPC_INS_BDNZLRL,
303 PPC_INS_BDZ,
304 PPC_INS_BDZA,
305 PPC_INS_BDZL,
306 PPC_INS_BDZLA,
307 PPC_INS_BDZLR,
308 PPC_INS_BDZLRL,
309 PPC_INS_BL,
310 PPC_INS_BLA,
311 PPC_INS_BLR,
312 PPC_INS_BLRL,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800313 PPC_INS_BRINC,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800314 PPC_INS_CMPD,
315 PPC_INS_CMPDI,
316 PPC_INS_CMPLD,
317 PPC_INS_CMPLDI,
318 PPC_INS_CMPLW,
319 PPC_INS_CMPLWI,
320 PPC_INS_CMPW,
321 PPC_INS_CMPWI,
322 PPC_INS_CNTLZD,
323 PPC_INS_CNTLZW,
324 PPC_INS_CREQV,
325 PPC_INS_CRXOR,
326 PPC_INS_CRAND,
327 PPC_INS_CRANDC,
328 PPC_INS_CRNAND,
329 PPC_INS_CRNOR,
330 PPC_INS_CROR,
331 PPC_INS_CRORC,
332 PPC_INS_DCBA,
333 PPC_INS_DCBF,
334 PPC_INS_DCBI,
335 PPC_INS_DCBST,
336 PPC_INS_DCBT,
337 PPC_INS_DCBTST,
338 PPC_INS_DCBZ,
339 PPC_INS_DCBZL,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800340 PPC_INS_DCCCI,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800341 PPC_INS_DIVD,
342 PPC_INS_DIVDU,
343 PPC_INS_DIVW,
344 PPC_INS_DIVWU,
345 PPC_INS_DSS,
346 PPC_INS_DSSALL,
347 PPC_INS_DST,
348 PPC_INS_DSTST,
349 PPC_INS_DSTSTT,
350 PPC_INS_DSTT,
351 PPC_INS_EIEIO,
352 PPC_INS_EQV,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800353 PPC_INS_EVABS,
354 PPC_INS_EVADDIW,
355 PPC_INS_EVADDSMIAAW,
356 PPC_INS_EVADDSSIAAW,
357 PPC_INS_EVADDUMIAAW,
358 PPC_INS_EVADDUSIAAW,
359 PPC_INS_EVADDW,
360 PPC_INS_EVAND,
361 PPC_INS_EVANDC,
362 PPC_INS_EVCMPEQ,
363 PPC_INS_EVCMPGTS,
364 PPC_INS_EVCMPGTU,
365 PPC_INS_EVCMPLTS,
366 PPC_INS_EVCMPLTU,
367 PPC_INS_EVCNTLSW,
368 PPC_INS_EVCNTLZW,
369 PPC_INS_EVDIVWS,
370 PPC_INS_EVDIVWU,
371 PPC_INS_EVEQV,
372 PPC_INS_EVEXTSB,
373 PPC_INS_EVEXTSH,
374 PPC_INS_EVLDD,
375 PPC_INS_EVLDDX,
376 PPC_INS_EVLDH,
377 PPC_INS_EVLDHX,
378 PPC_INS_EVLDW,
379 PPC_INS_EVLDWX,
380 PPC_INS_EVLHHESPLAT,
381 PPC_INS_EVLHHESPLATX,
382 PPC_INS_EVLHHOSSPLAT,
383 PPC_INS_EVLHHOSSPLATX,
384 PPC_INS_EVLHHOUSPLAT,
385 PPC_INS_EVLHHOUSPLATX,
386 PPC_INS_EVLWHE,
387 PPC_INS_EVLWHEX,
388 PPC_INS_EVLWHOS,
389 PPC_INS_EVLWHOSX,
390 PPC_INS_EVLWHOU,
391 PPC_INS_EVLWHOUX,
392 PPC_INS_EVLWHSPLAT,
393 PPC_INS_EVLWHSPLATX,
394 PPC_INS_EVLWWSPLAT,
395 PPC_INS_EVLWWSPLATX,
396 PPC_INS_EVMERGEHI,
397 PPC_INS_EVMERGEHILO,
398 PPC_INS_EVMERGELO,
399 PPC_INS_EVMERGELOHI,
400 PPC_INS_EVMHEGSMFAA,
401 PPC_INS_EVMHEGSMFAN,
402 PPC_INS_EVMHEGSMIAA,
403 PPC_INS_EVMHEGSMIAN,
404 PPC_INS_EVMHEGUMIAA,
405 PPC_INS_EVMHEGUMIAN,
406 PPC_INS_EVMHESMF,
407 PPC_INS_EVMHESMFA,
408 PPC_INS_EVMHESMFAAW,
409 PPC_INS_EVMHESMFANW,
410 PPC_INS_EVMHESMI,
411 PPC_INS_EVMHESMIA,
412 PPC_INS_EVMHESMIAAW,
413 PPC_INS_EVMHESMIANW,
414 PPC_INS_EVMHESSF,
415 PPC_INS_EVMHESSFA,
416 PPC_INS_EVMHESSFAAW,
417 PPC_INS_EVMHESSFANW,
418 PPC_INS_EVMHESSIAAW,
419 PPC_INS_EVMHESSIANW,
420 PPC_INS_EVMHEUMI,
421 PPC_INS_EVMHEUMIA,
422 PPC_INS_EVMHEUMIAAW,
423 PPC_INS_EVMHEUMIANW,
424 PPC_INS_EVMHEUSIAAW,
425 PPC_INS_EVMHEUSIANW,
426 PPC_INS_EVMHOGSMFAA,
427 PPC_INS_EVMHOGSMFAN,
428 PPC_INS_EVMHOGSMIAA,
429 PPC_INS_EVMHOGSMIAN,
430 PPC_INS_EVMHOGUMIAA,
431 PPC_INS_EVMHOGUMIAN,
432 PPC_INS_EVMHOSMF,
433 PPC_INS_EVMHOSMFA,
434 PPC_INS_EVMHOSMFAAW,
435 PPC_INS_EVMHOSMFANW,
436 PPC_INS_EVMHOSMI,
437 PPC_INS_EVMHOSMIA,
438 PPC_INS_EVMHOSMIAAW,
439 PPC_INS_EVMHOSMIANW,
440 PPC_INS_EVMHOSSF,
441 PPC_INS_EVMHOSSFA,
442 PPC_INS_EVMHOSSFAAW,
443 PPC_INS_EVMHOSSFANW,
444 PPC_INS_EVMHOSSIAAW,
445 PPC_INS_EVMHOSSIANW,
446 PPC_INS_EVMHOUMI,
447 PPC_INS_EVMHOUMIA,
448 PPC_INS_EVMHOUMIAAW,
449 PPC_INS_EVMHOUMIANW,
450 PPC_INS_EVMHOUSIAAW,
451 PPC_INS_EVMHOUSIANW,
452 PPC_INS_EVMRA,
453 PPC_INS_EVMWHSMF,
454 PPC_INS_EVMWHSMFA,
455 PPC_INS_EVMWHSMI,
456 PPC_INS_EVMWHSMIA,
457 PPC_INS_EVMWHSSF,
458 PPC_INS_EVMWHSSFA,
459 PPC_INS_EVMWHUMI,
460 PPC_INS_EVMWHUMIA,
461 PPC_INS_EVMWLSMIAAW,
462 PPC_INS_EVMWLSMIANW,
463 PPC_INS_EVMWLSSIAAW,
464 PPC_INS_EVMWLSSIANW,
465 PPC_INS_EVMWLUMI,
466 PPC_INS_EVMWLUMIA,
467 PPC_INS_EVMWLUMIAAW,
468 PPC_INS_EVMWLUMIANW,
469 PPC_INS_EVMWLUSIAAW,
470 PPC_INS_EVMWLUSIANW,
471 PPC_INS_EVMWSMF,
472 PPC_INS_EVMWSMFA,
473 PPC_INS_EVMWSMFAA,
474 PPC_INS_EVMWSMFAN,
475 PPC_INS_EVMWSMI,
476 PPC_INS_EVMWSMIA,
477 PPC_INS_EVMWSMIAA,
478 PPC_INS_EVMWSMIAN,
479 PPC_INS_EVMWSSF,
480 PPC_INS_EVMWSSFA,
481 PPC_INS_EVMWSSFAA,
482 PPC_INS_EVMWSSFAN,
483 PPC_INS_EVMWUMI,
484 PPC_INS_EVMWUMIA,
485 PPC_INS_EVMWUMIAA,
486 PPC_INS_EVMWUMIAN,
487 PPC_INS_EVNAND,
488 PPC_INS_EVNEG,
489 PPC_INS_EVNOR,
490 PPC_INS_EVOR,
491 PPC_INS_EVORC,
492 PPC_INS_EVRLW,
493 PPC_INS_EVRLWI,
494 PPC_INS_EVRNDW,
495 PPC_INS_EVSLW,
496 PPC_INS_EVSLWI,
497 PPC_INS_EVSPLATFI,
498 PPC_INS_EVSPLATI,
499 PPC_INS_EVSRWIS,
500 PPC_INS_EVSRWIU,
501 PPC_INS_EVSRWS,
502 PPC_INS_EVSRWU,
503 PPC_INS_EVSTDD,
504 PPC_INS_EVSTDDX,
505 PPC_INS_EVSTDH,
506 PPC_INS_EVSTDHX,
507 PPC_INS_EVSTDW,
508 PPC_INS_EVSTDWX,
509 PPC_INS_EVSTWHE,
510 PPC_INS_EVSTWHEX,
511 PPC_INS_EVSTWHO,
512 PPC_INS_EVSTWHOX,
513 PPC_INS_EVSTWWE,
514 PPC_INS_EVSTWWEX,
515 PPC_INS_EVSTWWO,
516 PPC_INS_EVSTWWOX,
517 PPC_INS_EVSUBFSMIAAW,
518 PPC_INS_EVSUBFSSIAAW,
519 PPC_INS_EVSUBFUMIAAW,
520 PPC_INS_EVSUBFUSIAAW,
521 PPC_INS_EVSUBFW,
522 PPC_INS_EVSUBIFW,
523 PPC_INS_EVXOR,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800524 PPC_INS_EXTSB,
525 PPC_INS_EXTSH,
526 PPC_INS_EXTSW,
527 PPC_INS_FABS,
528 PPC_INS_FADD,
529 PPC_INS_FADDS,
530 PPC_INS_FCFID,
531 PPC_INS_FCFIDS,
532 PPC_INS_FCFIDU,
533 PPC_INS_FCFIDUS,
534 PPC_INS_FCMPU,
535 PPC_INS_FCPSGN,
536 PPC_INS_FCTID,
537 PPC_INS_FCTIDUZ,
538 PPC_INS_FCTIDZ,
539 PPC_INS_FCTIW,
540 PPC_INS_FCTIWUZ,
541 PPC_INS_FCTIWZ,
542 PPC_INS_FDIV,
543 PPC_INS_FDIVS,
544 PPC_INS_FMADD,
545 PPC_INS_FMADDS,
Nguyen Anh Quynh8b915ed2014-02-19 17:01:44 +0800546 PPC_INS_FMR,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800547 PPC_INS_FMSUB,
548 PPC_INS_FMSUBS,
549 PPC_INS_FMUL,
550 PPC_INS_FMULS,
551 PPC_INS_FNABS,
552 PPC_INS_FNEG,
553 PPC_INS_FNMADD,
554 PPC_INS_FNMADDS,
555 PPC_INS_FNMSUB,
556 PPC_INS_FNMSUBS,
557 PPC_INS_FRE,
558 PPC_INS_FRES,
559 PPC_INS_FRIM,
560 PPC_INS_FRIN,
561 PPC_INS_FRIP,
562 PPC_INS_FRIZ,
563 PPC_INS_FRSP,
564 PPC_INS_FRSQRTE,
565 PPC_INS_FRSQRTES,
566 PPC_INS_FSEL,
567 PPC_INS_FSQRT,
568 PPC_INS_FSQRTS,
569 PPC_INS_FSUB,
570 PPC_INS_FSUBS,
571 PPC_INS_ICBI,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800572 PPC_INS_ICCCI,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800573 PPC_INS_ISEL,
574 PPC_INS_ISYNC,
575 PPC_INS_LA,
576 PPC_INS_LBZ,
577 PPC_INS_LBZU,
578 PPC_INS_LBZUX,
579 PPC_INS_LBZX,
580 PPC_INS_LD,
581 PPC_INS_LDARX,
582 PPC_INS_LDBRX,
583 PPC_INS_LDU,
584 PPC_INS_LDUX,
585 PPC_INS_LDX,
586 PPC_INS_LFD,
587 PPC_INS_LFDU,
588 PPC_INS_LFDUX,
589 PPC_INS_LFDX,
590 PPC_INS_LFIWAX,
591 PPC_INS_LFIWZX,
592 PPC_INS_LFS,
593 PPC_INS_LFSU,
594 PPC_INS_LFSUX,
595 PPC_INS_LFSX,
596 PPC_INS_LHA,
597 PPC_INS_LHAU,
598 PPC_INS_LHAUX,
599 PPC_INS_LHAX,
600 PPC_INS_LHBRX,
601 PPC_INS_LHZ,
602 PPC_INS_LHZU,
603 PPC_INS_LHZUX,
604 PPC_INS_LHZX,
605 PPC_INS_LI,
606 PPC_INS_LIS,
607 PPC_INS_LMW,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800608 PPC_INS_LSWI,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800609 PPC_INS_LVEBX,
610 PPC_INS_LVEHX,
611 PPC_INS_LVEWX,
612 PPC_INS_LVSL,
613 PPC_INS_LVSR,
614 PPC_INS_LVX,
615 PPC_INS_LVXL,
616 PPC_INS_LWA,
617 PPC_INS_LWARX,
618 PPC_INS_LWAUX,
619 PPC_INS_LWAX,
620 PPC_INS_LWBRX,
621 PPC_INS_LWZ,
622 PPC_INS_LWZU,
623 PPC_INS_LWZUX,
624 PPC_INS_LWZX,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800625 PPC_INS_LXSDX,
626 PPC_INS_LXVD2X,
627 PPC_INS_LXVDSX,
628 PPC_INS_LXVW4X,
629 PPC_INS_MBAR,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800630 PPC_INS_MCRF,
631 PPC_INS_MFCR,
632 PPC_INS_MFCTR,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800633 PPC_INS_MFDCR,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800634 PPC_INS_MFFS,
635 PPC_INS_MFLR,
636 PPC_INS_MFMSR,
637 PPC_INS_MFOCRF,
638 PPC_INS_MFSPR,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800639 PPC_INS_MFSR,
640 PPC_INS_MFSRIN,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800641 PPC_INS_MFTB,
642 PPC_INS_MFVSCR,
Nguyen Anh Quynh8b915ed2014-02-19 17:01:44 +0800643 PPC_INS_MSYNC,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800644 PPC_INS_MTCRF,
645 PPC_INS_MTCTR,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800646 PPC_INS_MTDCR,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800647 PPC_INS_MTFSB0,
648 PPC_INS_MTFSB1,
649 PPC_INS_MTFSF,
650 PPC_INS_MTLR,
651 PPC_INS_MTMSR,
652 PPC_INS_MTMSRD,
653 PPC_INS_MTOCRF,
654 PPC_INS_MTSPR,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800655 PPC_INS_MTSR,
656 PPC_INS_MTSRIN,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800657 PPC_INS_MTVSCR,
658 PPC_INS_MULHD,
659 PPC_INS_MULHDU,
660 PPC_INS_MULHW,
661 PPC_INS_MULHWU,
662 PPC_INS_MULLD,
663 PPC_INS_MULLI,
664 PPC_INS_MULLW,
665 PPC_INS_NAND,
666 PPC_INS_NEG,
667 PPC_INS_NOP,
668 PPC_INS_ORI,
669 PPC_INS_NOR,
670 PPC_INS_OR,
671 PPC_INS_ORC,
672 PPC_INS_ORIS,
673 PPC_INS_POPCNTD,
674 PPC_INS_POPCNTW,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800675 PPC_INS_RFCI,
676 PPC_INS_RFDI,
677 PPC_INS_RFI,
678 PPC_INS_RFID,
679 PPC_INS_RFMCI,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800680 PPC_INS_RLDCL,
681 PPC_INS_RLDCR,
682 PPC_INS_RLDIC,
683 PPC_INS_RLDICL,
684 PPC_INS_RLDICR,
685 PPC_INS_RLDIMI,
686 PPC_INS_RLWIMI,
687 PPC_INS_RLWINM,
688 PPC_INS_RLWNM,
689 PPC_INS_SC,
690 PPC_INS_SLBIA,
691 PPC_INS_SLBIE,
692 PPC_INS_SLBMFEE,
693 PPC_INS_SLBMTE,
694 PPC_INS_SLD,
695 PPC_INS_SLW,
696 PPC_INS_SRAD,
697 PPC_INS_SRADI,
698 PPC_INS_SRAW,
699 PPC_INS_SRAWI,
700 PPC_INS_SRD,
701 PPC_INS_SRW,
702 PPC_INS_STB,
703 PPC_INS_STBU,
704 PPC_INS_STBUX,
705 PPC_INS_STBX,
706 PPC_INS_STD,
707 PPC_INS_STDBRX,
708 PPC_INS_STDCX,
709 PPC_INS_STDU,
710 PPC_INS_STDUX,
711 PPC_INS_STDX,
712 PPC_INS_STFD,
713 PPC_INS_STFDU,
714 PPC_INS_STFDUX,
715 PPC_INS_STFDX,
716 PPC_INS_STFIWX,
717 PPC_INS_STFS,
718 PPC_INS_STFSU,
719 PPC_INS_STFSUX,
720 PPC_INS_STFSX,
721 PPC_INS_STH,
722 PPC_INS_STHBRX,
723 PPC_INS_STHU,
724 PPC_INS_STHUX,
725 PPC_INS_STHX,
726 PPC_INS_STMW,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800727 PPC_INS_STSWI,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800728 PPC_INS_STVEBX,
729 PPC_INS_STVEHX,
730 PPC_INS_STVEWX,
731 PPC_INS_STVX,
732 PPC_INS_STVXL,
733 PPC_INS_STW,
734 PPC_INS_STWBRX,
735 PPC_INS_STWCX,
736 PPC_INS_STWU,
737 PPC_INS_STWUX,
738 PPC_INS_STWX,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800739 PPC_INS_STXSDX,
740 PPC_INS_STXVD2X,
741 PPC_INS_STXVW4X,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800742 PPC_INS_SUBF,
743 PPC_INS_SUBFC,
744 PPC_INS_SUBFE,
745 PPC_INS_SUBFIC,
746 PPC_INS_SUBFME,
747 PPC_INS_SUBFZE,
748 PPC_INS_SYNC,
749 PPC_INS_TD,
750 PPC_INS_TDI,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800751 PPC_INS_TLBIA,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800752 PPC_INS_TLBIE,
753 PPC_INS_TLBIEL,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800754 PPC_INS_TLBIVAX,
755 PPC_INS_TLBLD,
756 PPC_INS_TLBLI,
757 PPC_INS_TLBRE,
758 PPC_INS_TLBSX,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800759 PPC_INS_TLBSYNC,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800760 PPC_INS_TLBWE,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800761 PPC_INS_TRAP,
762 PPC_INS_TW,
763 PPC_INS_TWI,
764 PPC_INS_VADDCUW,
765 PPC_INS_VADDFP,
766 PPC_INS_VADDSBS,
767 PPC_INS_VADDSHS,
768 PPC_INS_VADDSWS,
769 PPC_INS_VADDUBM,
770 PPC_INS_VADDUBS,
771 PPC_INS_VADDUHM,
772 PPC_INS_VADDUHS,
773 PPC_INS_VADDUWM,
774 PPC_INS_VADDUWS,
775 PPC_INS_VAND,
776 PPC_INS_VANDC,
777 PPC_INS_VAVGSB,
778 PPC_INS_VAVGSH,
779 PPC_INS_VAVGSW,
780 PPC_INS_VAVGUB,
781 PPC_INS_VAVGUH,
782 PPC_INS_VAVGUW,
783 PPC_INS_VCFSX,
784 PPC_INS_VCFUX,
785 PPC_INS_VCMPBFP,
786 PPC_INS_VCMPEQFP,
787 PPC_INS_VCMPEQUB,
788 PPC_INS_VCMPEQUH,
789 PPC_INS_VCMPEQUW,
790 PPC_INS_VCMPGEFP,
791 PPC_INS_VCMPGTFP,
792 PPC_INS_VCMPGTSB,
793 PPC_INS_VCMPGTSH,
794 PPC_INS_VCMPGTSW,
795 PPC_INS_VCMPGTUB,
796 PPC_INS_VCMPGTUH,
797 PPC_INS_VCMPGTUW,
798 PPC_INS_VCTSXS,
799 PPC_INS_VCTUXS,
800 PPC_INS_VEXPTEFP,
801 PPC_INS_VLOGEFP,
802 PPC_INS_VMADDFP,
803 PPC_INS_VMAXFP,
804 PPC_INS_VMAXSB,
805 PPC_INS_VMAXSH,
806 PPC_INS_VMAXSW,
807 PPC_INS_VMAXUB,
808 PPC_INS_VMAXUH,
809 PPC_INS_VMAXUW,
810 PPC_INS_VMHADDSHS,
811 PPC_INS_VMHRADDSHS,
812 PPC_INS_VMINFP,
813 PPC_INS_VMINSB,
814 PPC_INS_VMINSH,
815 PPC_INS_VMINSW,
816 PPC_INS_VMINUB,
817 PPC_INS_VMINUH,
818 PPC_INS_VMINUW,
819 PPC_INS_VMLADDUHM,
820 PPC_INS_VMRGHB,
821 PPC_INS_VMRGHH,
822 PPC_INS_VMRGHW,
823 PPC_INS_VMRGLB,
824 PPC_INS_VMRGLH,
825 PPC_INS_VMRGLW,
826 PPC_INS_VMSUMMBM,
827 PPC_INS_VMSUMSHM,
828 PPC_INS_VMSUMSHS,
829 PPC_INS_VMSUMUBM,
830 PPC_INS_VMSUMUHM,
831 PPC_INS_VMSUMUHS,
832 PPC_INS_VMULESB,
833 PPC_INS_VMULESH,
834 PPC_INS_VMULEUB,
835 PPC_INS_VMULEUH,
836 PPC_INS_VMULOSB,
837 PPC_INS_VMULOSH,
838 PPC_INS_VMULOUB,
839 PPC_INS_VMULOUH,
840 PPC_INS_VNMSUBFP,
841 PPC_INS_VNOR,
842 PPC_INS_VOR,
843 PPC_INS_VPERM,
844 PPC_INS_VPKPX,
845 PPC_INS_VPKSHSS,
846 PPC_INS_VPKSHUS,
847 PPC_INS_VPKSWSS,
848 PPC_INS_VPKSWUS,
849 PPC_INS_VPKUHUM,
850 PPC_INS_VPKUHUS,
851 PPC_INS_VPKUWUM,
852 PPC_INS_VPKUWUS,
853 PPC_INS_VREFP,
854 PPC_INS_VRFIM,
855 PPC_INS_VRFIN,
856 PPC_INS_VRFIP,
857 PPC_INS_VRFIZ,
858 PPC_INS_VRLB,
859 PPC_INS_VRLH,
860 PPC_INS_VRLW,
861 PPC_INS_VRSQRTEFP,
862 PPC_INS_VSEL,
863 PPC_INS_VSL,
864 PPC_INS_VSLB,
865 PPC_INS_VSLDOI,
866 PPC_INS_VSLH,
867 PPC_INS_VSLO,
868 PPC_INS_VSLW,
869 PPC_INS_VSPLTB,
870 PPC_INS_VSPLTH,
871 PPC_INS_VSPLTISB,
872 PPC_INS_VSPLTISH,
873 PPC_INS_VSPLTISW,
874 PPC_INS_VSPLTW,
875 PPC_INS_VSR,
876 PPC_INS_VSRAB,
877 PPC_INS_VSRAH,
878 PPC_INS_VSRAW,
879 PPC_INS_VSRB,
880 PPC_INS_VSRH,
881 PPC_INS_VSRO,
882 PPC_INS_VSRW,
883 PPC_INS_VSUBCUW,
884 PPC_INS_VSUBFP,
885 PPC_INS_VSUBSBS,
886 PPC_INS_VSUBSHS,
887 PPC_INS_VSUBSWS,
888 PPC_INS_VSUBUBM,
889 PPC_INS_VSUBUBS,
890 PPC_INS_VSUBUHM,
891 PPC_INS_VSUBUHS,
892 PPC_INS_VSUBUWM,
893 PPC_INS_VSUBUWS,
894 PPC_INS_VSUM2SWS,
895 PPC_INS_VSUM4SBS,
896 PPC_INS_VSUM4SHS,
897 PPC_INS_VSUM4UBS,
898 PPC_INS_VSUMSWS,
899 PPC_INS_VUPKHPX,
900 PPC_INS_VUPKHSB,
901 PPC_INS_VUPKHSH,
902 PPC_INS_VUPKLPX,
903 PPC_INS_VUPKLSB,
904 PPC_INS_VUPKLSH,
905 PPC_INS_VXOR,
906 PPC_INS_WAIT,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800907 PPC_INS_WRTEE,
908 PPC_INS_WRTEEI,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +0800909 PPC_INS_XOR,
910 PPC_INS_XORI,
911 PPC_INS_XORIS,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +0800912 PPC_INS_XSABSDP,
913 PPC_INS_XSADDDP,
914 PPC_INS_XSCMPODP,
915 PPC_INS_XSCMPUDP,
916 PPC_INS_XSCPSGNDP,
917 PPC_INS_XSCVDPSP,
918 PPC_INS_XSCVDPSXDS,
919 PPC_INS_XSCVDPSXWS,
920 PPC_INS_XSCVDPUXDS,
921 PPC_INS_XSCVDPUXWS,
922 PPC_INS_XSCVSPDP,
923 PPC_INS_XSCVSXDDP,
924 PPC_INS_XSCVUXDDP,
925 PPC_INS_XSDIVDP,
926 PPC_INS_XSMADDADP,
927 PPC_INS_XSMADDMDP,
928 PPC_INS_XSMAXDP,
929 PPC_INS_XSMINDP,
930 PPC_INS_XSMSUBADP,
931 PPC_INS_XSMSUBMDP,
932 PPC_INS_XSMULDP,
933 PPC_INS_XSNABSDP,
934 PPC_INS_XSNEGDP,
935 PPC_INS_XSNMADDADP,
936 PPC_INS_XSNMADDMDP,
937 PPC_INS_XSNMSUBADP,
938 PPC_INS_XSNMSUBMDP,
939 PPC_INS_XSRDPI,
940 PPC_INS_XSRDPIC,
941 PPC_INS_XSRDPIM,
942 PPC_INS_XSRDPIP,
943 PPC_INS_XSRDPIZ,
944 PPC_INS_XSREDP,
945 PPC_INS_XSRSQRTEDP,
946 PPC_INS_XSSQRTDP,
947 PPC_INS_XSSUBDP,
948 PPC_INS_XSTDIVDP,
949 PPC_INS_XSTSQRTDP,
950 PPC_INS_XVABSDP,
951 PPC_INS_XVABSSP,
952 PPC_INS_XVADDDP,
953 PPC_INS_XVADDSP,
954 PPC_INS_XVCMPEQDP,
955 PPC_INS_XVCMPEQSP,
956 PPC_INS_XVCMPGEDP,
957 PPC_INS_XVCMPGESP,
958 PPC_INS_XVCMPGTDP,
959 PPC_INS_XVCMPGTSP,
960 PPC_INS_XVCPSGNDP,
961 PPC_INS_XVCPSGNSP,
962 PPC_INS_XVCVDPSP,
963 PPC_INS_XVCVDPSXDS,
964 PPC_INS_XVCVDPSXWS,
965 PPC_INS_XVCVDPUXDS,
966 PPC_INS_XVCVDPUXWS,
967 PPC_INS_XVCVSPDP,
968 PPC_INS_XVCVSPSXDS,
969 PPC_INS_XVCVSPSXWS,
970 PPC_INS_XVCVSPUXDS,
971 PPC_INS_XVCVSPUXWS,
972 PPC_INS_XVCVSXDDP,
973 PPC_INS_XVCVSXDSP,
974 PPC_INS_XVCVSXWDP,
975 PPC_INS_XVCVSXWSP,
976 PPC_INS_XVCVUXDDP,
977 PPC_INS_XVCVUXDSP,
978 PPC_INS_XVCVUXWDP,
979 PPC_INS_XVCVUXWSP,
980 PPC_INS_XVDIVDP,
981 PPC_INS_XVDIVSP,
982 PPC_INS_XVMADDADP,
983 PPC_INS_XVMADDASP,
984 PPC_INS_XVMADDMDP,
985 PPC_INS_XVMADDMSP,
986 PPC_INS_XVMAXDP,
987 PPC_INS_XVMAXSP,
988 PPC_INS_XVMINDP,
989 PPC_INS_XVMINSP,
990 PPC_INS_XVMSUBADP,
991 PPC_INS_XVMSUBASP,
992 PPC_INS_XVMSUBMDP,
993 PPC_INS_XVMSUBMSP,
994 PPC_INS_XVMULDP,
995 PPC_INS_XVMULSP,
996 PPC_INS_XVNABSDP,
997 PPC_INS_XVNABSSP,
998 PPC_INS_XVNEGDP,
999 PPC_INS_XVNEGSP,
1000 PPC_INS_XVNMADDADP,
1001 PPC_INS_XVNMADDASP,
1002 PPC_INS_XVNMADDMDP,
1003 PPC_INS_XVNMADDMSP,
1004 PPC_INS_XVNMSUBADP,
1005 PPC_INS_XVNMSUBASP,
1006 PPC_INS_XVNMSUBMDP,
1007 PPC_INS_XVNMSUBMSP,
1008 PPC_INS_XVRDPI,
1009 PPC_INS_XVRDPIC,
1010 PPC_INS_XVRDPIM,
1011 PPC_INS_XVRDPIP,
1012 PPC_INS_XVRDPIZ,
1013 PPC_INS_XVREDP,
1014 PPC_INS_XVRESP,
1015 PPC_INS_XVRSPI,
1016 PPC_INS_XVRSPIC,
1017 PPC_INS_XVRSPIM,
1018 PPC_INS_XVRSPIP,
1019 PPC_INS_XVRSPIZ,
1020 PPC_INS_XVRSQRTEDP,
1021 PPC_INS_XVRSQRTESP,
1022 PPC_INS_XVSQRTDP,
1023 PPC_INS_XVSQRTSP,
1024 PPC_INS_XVSUBDP,
1025 PPC_INS_XVSUBSP,
1026 PPC_INS_XVTDIVDP,
1027 PPC_INS_XVTDIVSP,
1028 PPC_INS_XVTSQRTDP,
1029 PPC_INS_XVTSQRTSP,
1030 PPC_INS_XXLAND,
1031 PPC_INS_XXLANDC,
1032 PPC_INS_XXLNOR,
1033 PPC_INS_XXLOR,
1034 PPC_INS_XXLXOR,
1035 PPC_INS_XXMRGHW,
1036 PPC_INS_XXMRGLW,
1037 PPC_INS_XXPERMDI,
1038 PPC_INS_XXSEL,
1039 PPC_INS_XXSLDWI,
1040 PPC_INS_XXSPLTW,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +08001041 PPC_INS_BCA,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +08001042 PPC_INS_BCLA,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +08001043
Nguyen Anh Quynh721d07f2014-09-04 12:03:31 +08001044 // extra & alias instructions
1045 PPC_INS_SLWI,
1046 PPC_INS_SRWI,
1047 PPC_INS_SLDI,
1048
1049 PPC_INS_BTA,
1050 PPC_INS_CRSET,
1051 PPC_INS_CRNOT,
1052 PPC_INS_CRMOVE,
1053 PPC_INS_CRCLR,
1054 PPC_INS_MFBR0,
1055 PPC_INS_MFBR1,
1056 PPC_INS_MFBR2,
1057 PPC_INS_MFBR3,
1058 PPC_INS_MFBR4,
1059 PPC_INS_MFBR5,
1060 PPC_INS_MFBR6,
1061 PPC_INS_MFBR7,
1062 PPC_INS_MFXER,
1063 PPC_INS_MFRTCU,
1064 PPC_INS_MFRTCL,
1065 PPC_INS_MFDSCR,
1066 PPC_INS_MFDSISR,
1067 PPC_INS_MFDAR,
1068 PPC_INS_MFSRR2,
1069 PPC_INS_MFSRR3,
1070 PPC_INS_MFCFAR,
1071 PPC_INS_MFAMR,
1072 PPC_INS_MFPID,
1073 PPC_INS_MFTBLO,
1074 PPC_INS_MFTBHI,
1075 PPC_INS_MFDBATU,
1076 PPC_INS_MFDBATL,
1077 PPC_INS_MFIBATU,
1078 PPC_INS_MFIBATL,
1079 PPC_INS_MFDCCR,
1080 PPC_INS_MFICCR,
1081 PPC_INS_MFDEAR,
1082 PPC_INS_MFESR,
1083 PPC_INS_MFSPEFSCR,
1084 PPC_INS_MFTCR,
1085 PPC_INS_MFASR,
1086 PPC_INS_MFPVR,
1087 PPC_INS_MFTBU,
1088 PPC_INS_MTCR,
1089 PPC_INS_MTBR0,
1090 PPC_INS_MTBR1,
1091 PPC_INS_MTBR2,
1092 PPC_INS_MTBR3,
1093 PPC_INS_MTBR4,
1094 PPC_INS_MTBR5,
1095 PPC_INS_MTBR6,
1096 PPC_INS_MTBR7,
1097 PPC_INS_MTXER,
1098 PPC_INS_MTDSCR,
1099 PPC_INS_MTDSISR,
1100 PPC_INS_MTDAR,
1101 PPC_INS_MTSRR2,
1102 PPC_INS_MTSRR3,
1103 PPC_INS_MTCFAR,
1104 PPC_INS_MTAMR,
1105 PPC_INS_MTPID,
1106 PPC_INS_MTTBL,
1107 PPC_INS_MTTBU,
1108 PPC_INS_MTTBLO,
1109 PPC_INS_MTTBHI,
1110 PPC_INS_MTDBATU,
1111 PPC_INS_MTDBATL,
1112 PPC_INS_MTIBATU,
1113 PPC_INS_MTIBATL,
1114 PPC_INS_MTDCCR,
1115 PPC_INS_MTICCR,
1116 PPC_INS_MTDEAR,
1117 PPC_INS_MTESR,
1118 PPC_INS_MTSPEFSCR,
1119 PPC_INS_MTTCR,
1120 PPC_INS_NOT,
1121 PPC_INS_MR,
1122 PPC_INS_ROTLD,
1123 PPC_INS_ROTLDI,
1124 PPC_INS_CLRLDI,
1125 PPC_INS_ROTLWI,
1126 PPC_INS_CLRLWI,
1127 PPC_INS_ROTLW,
1128 PPC_INS_SUB,
1129 PPC_INS_SUBC,
1130 PPC_INS_LWSYNC,
1131 PPC_INS_PTESYNC,
1132 PPC_INS_TDLT,
1133 PPC_INS_TDEQ,
1134 PPC_INS_TDGT,
1135 PPC_INS_TDNE,
1136 PPC_INS_TDLLT,
1137 PPC_INS_TDLGT,
1138 PPC_INS_TDU,
1139 PPC_INS_TDLTI,
1140 PPC_INS_TDEQI,
1141 PPC_INS_TDGTI,
1142 PPC_INS_TDNEI,
1143 PPC_INS_TDLLTI,
1144 PPC_INS_TDLGTI,
1145 PPC_INS_TDUI,
1146 PPC_INS_TLBREHI,
1147 PPC_INS_TLBRELO,
1148 PPC_INS_TLBWEHI,
1149 PPC_INS_TLBWELO,
1150 PPC_INS_TWLT,
1151 PPC_INS_TWEQ,
1152 PPC_INS_TWGT,
1153 PPC_INS_TWNE,
1154 PPC_INS_TWLLT,
1155 PPC_INS_TWLGT,
1156 PPC_INS_TWU,
1157 PPC_INS_TWLTI,
1158 PPC_INS_TWEQI,
1159 PPC_INS_TWGTI,
1160 PPC_INS_TWNEI,
1161 PPC_INS_TWLLTI,
1162 PPC_INS_TWLGTI,
1163 PPC_INS_TWUI,
1164 PPC_INS_WAITRSV,
1165 PPC_INS_WAITIMPL,
1166 PPC_INS_XNOP,
1167 PPC_INS_XVMOVDP,
1168 PPC_INS_XVMOVSP,
1169 PPC_INS_XXSPLTD,
1170 PPC_INS_XXMRGHD,
1171 PPC_INS_XXMRGLD,
1172 PPC_INS_XXSWAPD,
1173 PPC_INS_BT,
1174 PPC_INS_BF,
1175 PPC_INS_BDNZT,
1176 PPC_INS_BDNZF,
1177 PPC_INS_BDZF,
1178 PPC_INS_BDZT,
1179 PPC_INS_BFA,
1180 PPC_INS_BDNZTA,
1181 PPC_INS_BDNZFA,
1182 PPC_INS_BDZTA,
1183 PPC_INS_BDZFA,
1184 PPC_INS_BTCTR,
1185 PPC_INS_BFCTR,
1186 PPC_INS_BTCTRL,
1187 PPC_INS_BFCTRL,
1188 PPC_INS_BTL,
1189 PPC_INS_BFL,
1190 PPC_INS_BDNZTL,
1191 PPC_INS_BDNZFL,
1192 PPC_INS_BDZTL,
1193 PPC_INS_BDZFL,
1194 PPC_INS_BTLA,
1195 PPC_INS_BFLA,
1196 PPC_INS_BDNZTLA,
1197 PPC_INS_BDNZFLA,
1198 PPC_INS_BDZTLA,
1199 PPC_INS_BDZFLA,
1200 PPC_INS_BTLR,
1201 PPC_INS_BFLR,
1202 PPC_INS_BDNZTLR,
1203 PPC_INS_BDZTLR,
1204 PPC_INS_BDZFLR,
1205 PPC_INS_BTLRL,
1206 PPC_INS_BFLRL,
1207 PPC_INS_BDNZTLRL,
1208 PPC_INS_BDNZFLRL,
1209 PPC_INS_BDZTLRL,
1210 PPC_INS_BDZFLRL,
1211
Nguyen Anh Quynhd7e42b72014-09-29 17:15:25 +08001212 PPC_INS_ENDING, // <-- mark the end of the list of instructions
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +08001213} ppc_insn;
1214
1215//> Group of PPC instructions
1216typedef enum ppc_insn_group {
1217 PPC_GRP_INVALID = 0,
1218
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +08001219 PPC_GRP_ALTIVEC,
1220 PPC_GRP_MODE32,
1221 PPC_GRP_MODE64,
Nguyen Anh Quynh8b915ed2014-02-19 17:01:44 +08001222 PPC_GRP_BOOKE,
1223 PPC_GRP_NOTBOOKE,
Nguyen Anh Quynhdd3deec2014-08-15 13:26:12 +08001224 PPC_GRP_SPE,
1225 PPC_GRP_VSX,
1226 PPC_GRP_E500,
1227 PPC_GRP_PPC4XX,
1228 PPC_GRP_PPC6XX,
Nguyen Anh Quynhf1d489b2014-01-05 00:00:05 +08001229
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +08001230 PPC_GRP_JUMP, // all jump instructions (conditional+direct+indirect jumps)
1231
Nguyen Anh Quynhd7e42b72014-09-29 17:15:25 +08001232 PPC_GRP_ENDING, // <-- mark the end of the list of groups
Nguyen Anh Quynh4d227792013-12-31 21:01:01 +08001233} ppc_insn_group;
1234
1235#ifdef __cplusplus
1236}
1237#endif
1238
1239#endif