ppc.h 25 KB

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