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 | |