systemz.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831
  1. #ifndef CAPSTONE_SYSTEMZ_H
  2. #define CAPSTONE_SYSTEMZ_H
  3. /* Capstone Disassembly Engine */
  4. /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2014-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. /// Enums corresponding to SystemZ condition codes
  13. typedef enum sysz_cc {
  14. SYSZ_CC_INVALID = 0, ///< invalid CC (default)
  15. SYSZ_CC_O,
  16. SYSZ_CC_H,
  17. SYSZ_CC_NLE,
  18. SYSZ_CC_L,
  19. SYSZ_CC_NHE,
  20. SYSZ_CC_LH,
  21. SYSZ_CC_NE,
  22. SYSZ_CC_E,
  23. SYSZ_CC_NLH,
  24. SYSZ_CC_HE,
  25. SYSZ_CC_NL,
  26. SYSZ_CC_LE,
  27. SYSZ_CC_NH,
  28. SYSZ_CC_NO,
  29. } sysz_cc;
  30. /// Operand type for instruction's operands
  31. typedef enum sysz_op_type {
  32. SYSZ_OP_INVALID = 0, ///< = CS_OP_INVALID (Uninitialized).
  33. SYSZ_OP_REG, ///< = CS_OP_REG (Register operand).
  34. SYSZ_OP_IMM, ///< = CS_OP_IMM (Immediate operand).
  35. SYSZ_OP_MEM, ///< = CS_OP_MEM (Memory operand).
  36. SYSZ_OP_ACREG = 64, ///< Access register operand.
  37. } sysz_op_type;
  38. /// SystemZ registers
  39. typedef enum sysz_reg {
  40. SYSZ_REG_INVALID = 0,
  41. SYSZ_REG_0,
  42. SYSZ_REG_1,
  43. SYSZ_REG_2,
  44. SYSZ_REG_3,
  45. SYSZ_REG_4,
  46. SYSZ_REG_5,
  47. SYSZ_REG_6,
  48. SYSZ_REG_7,
  49. SYSZ_REG_8,
  50. SYSZ_REG_9,
  51. SYSZ_REG_10,
  52. SYSZ_REG_11,
  53. SYSZ_REG_12,
  54. SYSZ_REG_13,
  55. SYSZ_REG_14,
  56. SYSZ_REG_15,
  57. SYSZ_REG_CC,
  58. SYSZ_REG_F0,
  59. SYSZ_REG_F1,
  60. SYSZ_REG_F2,
  61. SYSZ_REG_F3,
  62. SYSZ_REG_F4,
  63. SYSZ_REG_F5,
  64. SYSZ_REG_F6,
  65. SYSZ_REG_F7,
  66. SYSZ_REG_F8,
  67. SYSZ_REG_F9,
  68. SYSZ_REG_F10,
  69. SYSZ_REG_F11,
  70. SYSZ_REG_F12,
  71. SYSZ_REG_F13,
  72. SYSZ_REG_F14,
  73. SYSZ_REG_F15,
  74. SYSZ_REG_R0L,
  75. SYSZ_REG_ENDING,
  76. } sysz_reg;
  77. /// Instruction's operand referring to memory
  78. /// This is associated with SYSZ_OP_MEM operand type above
  79. typedef struct sysz_op_mem {
  80. uint8_t base; ///< base register, can be safely interpreted as
  81. ///< a value of type `sysz_reg`, but it is only
  82. ///< one byte wide
  83. uint8_t index; ///< index register, same conditions apply here
  84. uint64_t length; ///< BDLAddr operand
  85. int64_t disp; ///< displacement/offset value
  86. } sysz_op_mem;
  87. /// Instruction operand
  88. typedef struct cs_sysz_op {
  89. sysz_op_type type; ///< operand type
  90. union {
  91. sysz_reg reg; ///< register value for REG operand
  92. int64_t imm; ///< immediate value for IMM operand
  93. sysz_op_mem mem; ///< base/disp value for MEM operand
  94. };
  95. } cs_sysz_op;
  96. // Instruction structure
  97. typedef struct cs_sysz {
  98. sysz_cc cc; ///< Code condition
  99. /// Number of operands of this instruction,
  100. /// or 0 when instruction has no operand.
  101. uint8_t op_count;
  102. cs_sysz_op operands[6]; ///< operands for this instruction.
  103. } cs_sysz;
  104. /// SystemZ instruction
  105. typedef enum sysz_insn {
  106. SYSZ_INS_INVALID = 0,
  107. SYSZ_INS_A,
  108. SYSZ_INS_ADB,
  109. SYSZ_INS_ADBR,
  110. SYSZ_INS_AEB,
  111. SYSZ_INS_AEBR,
  112. SYSZ_INS_AFI,
  113. SYSZ_INS_AG,
  114. SYSZ_INS_AGF,
  115. SYSZ_INS_AGFI,
  116. SYSZ_INS_AGFR,
  117. SYSZ_INS_AGHI,
  118. SYSZ_INS_AGHIK,
  119. SYSZ_INS_AGR,
  120. SYSZ_INS_AGRK,
  121. SYSZ_INS_AGSI,
  122. SYSZ_INS_AH,
  123. SYSZ_INS_AHI,
  124. SYSZ_INS_AHIK,
  125. SYSZ_INS_AHY,
  126. SYSZ_INS_AIH,
  127. SYSZ_INS_AL,
  128. SYSZ_INS_ALC,
  129. SYSZ_INS_ALCG,
  130. SYSZ_INS_ALCGR,
  131. SYSZ_INS_ALCR,
  132. SYSZ_INS_ALFI,
  133. SYSZ_INS_ALG,
  134. SYSZ_INS_ALGF,
  135. SYSZ_INS_ALGFI,
  136. SYSZ_INS_ALGFR,
  137. SYSZ_INS_ALGHSIK,
  138. SYSZ_INS_ALGR,
  139. SYSZ_INS_ALGRK,
  140. SYSZ_INS_ALHSIK,
  141. SYSZ_INS_ALR,
  142. SYSZ_INS_ALRK,
  143. SYSZ_INS_ALY,
  144. SYSZ_INS_AR,
  145. SYSZ_INS_ARK,
  146. SYSZ_INS_ASI,
  147. SYSZ_INS_AXBR,
  148. SYSZ_INS_AY,
  149. SYSZ_INS_BCR,
  150. SYSZ_INS_BRC,
  151. SYSZ_INS_BRCL,
  152. SYSZ_INS_CGIJ,
  153. SYSZ_INS_CGRJ,
  154. SYSZ_INS_CIJ,
  155. SYSZ_INS_CLGIJ,
  156. SYSZ_INS_CLGRJ,
  157. SYSZ_INS_CLIJ,
  158. SYSZ_INS_CLRJ,
  159. SYSZ_INS_CRJ,
  160. SYSZ_INS_BER,
  161. SYSZ_INS_JE,
  162. SYSZ_INS_JGE,
  163. SYSZ_INS_LOCE,
  164. SYSZ_INS_LOCGE,
  165. SYSZ_INS_LOCGRE,
  166. SYSZ_INS_LOCRE,
  167. SYSZ_INS_STOCE,
  168. SYSZ_INS_STOCGE,
  169. SYSZ_INS_BHR,
  170. SYSZ_INS_BHER,
  171. SYSZ_INS_JHE,
  172. SYSZ_INS_JGHE,
  173. SYSZ_INS_LOCHE,
  174. SYSZ_INS_LOCGHE,
  175. SYSZ_INS_LOCGRHE,
  176. SYSZ_INS_LOCRHE,
  177. SYSZ_INS_STOCHE,
  178. SYSZ_INS_STOCGHE,
  179. SYSZ_INS_JH,
  180. SYSZ_INS_JGH,
  181. SYSZ_INS_LOCH,
  182. SYSZ_INS_LOCGH,
  183. SYSZ_INS_LOCGRH,
  184. SYSZ_INS_LOCRH,
  185. SYSZ_INS_STOCH,
  186. SYSZ_INS_STOCGH,
  187. SYSZ_INS_CGIJNLH,
  188. SYSZ_INS_CGRJNLH,
  189. SYSZ_INS_CIJNLH,
  190. SYSZ_INS_CLGIJNLH,
  191. SYSZ_INS_CLGRJNLH,
  192. SYSZ_INS_CLIJNLH,
  193. SYSZ_INS_CLRJNLH,
  194. SYSZ_INS_CRJNLH,
  195. SYSZ_INS_CGIJE,
  196. SYSZ_INS_CGRJE,
  197. SYSZ_INS_CIJE,
  198. SYSZ_INS_CLGIJE,
  199. SYSZ_INS_CLGRJE,
  200. SYSZ_INS_CLIJE,
  201. SYSZ_INS_CLRJE,
  202. SYSZ_INS_CRJE,
  203. SYSZ_INS_CGIJNLE,
  204. SYSZ_INS_CGRJNLE,
  205. SYSZ_INS_CIJNLE,
  206. SYSZ_INS_CLGIJNLE,
  207. SYSZ_INS_CLGRJNLE,
  208. SYSZ_INS_CLIJNLE,
  209. SYSZ_INS_CLRJNLE,
  210. SYSZ_INS_CRJNLE,
  211. SYSZ_INS_CGIJH,
  212. SYSZ_INS_CGRJH,
  213. SYSZ_INS_CIJH,
  214. SYSZ_INS_CLGIJH,
  215. SYSZ_INS_CLGRJH,
  216. SYSZ_INS_CLIJH,
  217. SYSZ_INS_CLRJH,
  218. SYSZ_INS_CRJH,
  219. SYSZ_INS_CGIJNL,
  220. SYSZ_INS_CGRJNL,
  221. SYSZ_INS_CIJNL,
  222. SYSZ_INS_CLGIJNL,
  223. SYSZ_INS_CLGRJNL,
  224. SYSZ_INS_CLIJNL,
  225. SYSZ_INS_CLRJNL,
  226. SYSZ_INS_CRJNL,
  227. SYSZ_INS_CGIJHE,
  228. SYSZ_INS_CGRJHE,
  229. SYSZ_INS_CIJHE,
  230. SYSZ_INS_CLGIJHE,
  231. SYSZ_INS_CLGRJHE,
  232. SYSZ_INS_CLIJHE,
  233. SYSZ_INS_CLRJHE,
  234. SYSZ_INS_CRJHE,
  235. SYSZ_INS_CGIJNHE,
  236. SYSZ_INS_CGRJNHE,
  237. SYSZ_INS_CIJNHE,
  238. SYSZ_INS_CLGIJNHE,
  239. SYSZ_INS_CLGRJNHE,
  240. SYSZ_INS_CLIJNHE,
  241. SYSZ_INS_CLRJNHE,
  242. SYSZ_INS_CRJNHE,
  243. SYSZ_INS_CGIJL,
  244. SYSZ_INS_CGRJL,
  245. SYSZ_INS_CIJL,
  246. SYSZ_INS_CLGIJL,
  247. SYSZ_INS_CLGRJL,
  248. SYSZ_INS_CLIJL,
  249. SYSZ_INS_CLRJL,
  250. SYSZ_INS_CRJL,
  251. SYSZ_INS_CGIJNH,
  252. SYSZ_INS_CGRJNH,
  253. SYSZ_INS_CIJNH,
  254. SYSZ_INS_CLGIJNH,
  255. SYSZ_INS_CLGRJNH,
  256. SYSZ_INS_CLIJNH,
  257. SYSZ_INS_CLRJNH,
  258. SYSZ_INS_CRJNH,
  259. SYSZ_INS_CGIJLE,
  260. SYSZ_INS_CGRJLE,
  261. SYSZ_INS_CIJLE,
  262. SYSZ_INS_CLGIJLE,
  263. SYSZ_INS_CLGRJLE,
  264. SYSZ_INS_CLIJLE,
  265. SYSZ_INS_CLRJLE,
  266. SYSZ_INS_CRJLE,
  267. SYSZ_INS_CGIJNE,
  268. SYSZ_INS_CGRJNE,
  269. SYSZ_INS_CIJNE,
  270. SYSZ_INS_CLGIJNE,
  271. SYSZ_INS_CLGRJNE,
  272. SYSZ_INS_CLIJNE,
  273. SYSZ_INS_CLRJNE,
  274. SYSZ_INS_CRJNE,
  275. SYSZ_INS_CGIJLH,
  276. SYSZ_INS_CGRJLH,
  277. SYSZ_INS_CIJLH,
  278. SYSZ_INS_CLGIJLH,
  279. SYSZ_INS_CLGRJLH,
  280. SYSZ_INS_CLIJLH,
  281. SYSZ_INS_CLRJLH,
  282. SYSZ_INS_CRJLH,
  283. SYSZ_INS_BLR,
  284. SYSZ_INS_BLER,
  285. SYSZ_INS_JLE,
  286. SYSZ_INS_JGLE,
  287. SYSZ_INS_LOCLE,
  288. SYSZ_INS_LOCGLE,
  289. SYSZ_INS_LOCGRLE,
  290. SYSZ_INS_LOCRLE,
  291. SYSZ_INS_STOCLE,
  292. SYSZ_INS_STOCGLE,
  293. SYSZ_INS_BLHR,
  294. SYSZ_INS_JLH,
  295. SYSZ_INS_JGLH,
  296. SYSZ_INS_LOCLH,
  297. SYSZ_INS_LOCGLH,
  298. SYSZ_INS_LOCGRLH,
  299. SYSZ_INS_LOCRLH,
  300. SYSZ_INS_STOCLH,
  301. SYSZ_INS_STOCGLH,
  302. SYSZ_INS_JL,
  303. SYSZ_INS_JGL,
  304. SYSZ_INS_LOCL,
  305. SYSZ_INS_LOCGL,
  306. SYSZ_INS_LOCGRL,
  307. SYSZ_INS_LOCRL,
  308. SYSZ_INS_LOC,
  309. SYSZ_INS_LOCG,
  310. SYSZ_INS_LOCGR,
  311. SYSZ_INS_LOCR,
  312. SYSZ_INS_STOCL,
  313. SYSZ_INS_STOCGL,
  314. SYSZ_INS_BNER,
  315. SYSZ_INS_JNE,
  316. SYSZ_INS_JGNE,
  317. SYSZ_INS_LOCNE,
  318. SYSZ_INS_LOCGNE,
  319. SYSZ_INS_LOCGRNE,
  320. SYSZ_INS_LOCRNE,
  321. SYSZ_INS_STOCNE,
  322. SYSZ_INS_STOCGNE,
  323. SYSZ_INS_BNHR,
  324. SYSZ_INS_BNHER,
  325. SYSZ_INS_JNHE,
  326. SYSZ_INS_JGNHE,
  327. SYSZ_INS_LOCNHE,
  328. SYSZ_INS_LOCGNHE,
  329. SYSZ_INS_LOCGRNHE,
  330. SYSZ_INS_LOCRNHE,
  331. SYSZ_INS_STOCNHE,
  332. SYSZ_INS_STOCGNHE,
  333. SYSZ_INS_JNH,
  334. SYSZ_INS_JGNH,
  335. SYSZ_INS_LOCNH,
  336. SYSZ_INS_LOCGNH,
  337. SYSZ_INS_LOCGRNH,
  338. SYSZ_INS_LOCRNH,
  339. SYSZ_INS_STOCNH,
  340. SYSZ_INS_STOCGNH,
  341. SYSZ_INS_BNLR,
  342. SYSZ_INS_BNLER,
  343. SYSZ_INS_JNLE,
  344. SYSZ_INS_JGNLE,
  345. SYSZ_INS_LOCNLE,
  346. SYSZ_INS_LOCGNLE,
  347. SYSZ_INS_LOCGRNLE,
  348. SYSZ_INS_LOCRNLE,
  349. SYSZ_INS_STOCNLE,
  350. SYSZ_INS_STOCGNLE,
  351. SYSZ_INS_BNLHR,
  352. SYSZ_INS_JNLH,
  353. SYSZ_INS_JGNLH,
  354. SYSZ_INS_LOCNLH,
  355. SYSZ_INS_LOCGNLH,
  356. SYSZ_INS_LOCGRNLH,
  357. SYSZ_INS_LOCRNLH,
  358. SYSZ_INS_STOCNLH,
  359. SYSZ_INS_STOCGNLH,
  360. SYSZ_INS_JNL,
  361. SYSZ_INS_JGNL,
  362. SYSZ_INS_LOCNL,
  363. SYSZ_INS_LOCGNL,
  364. SYSZ_INS_LOCGRNL,
  365. SYSZ_INS_LOCRNL,
  366. SYSZ_INS_STOCNL,
  367. SYSZ_INS_STOCGNL,
  368. SYSZ_INS_BNOR,
  369. SYSZ_INS_JNO,
  370. SYSZ_INS_JGNO,
  371. SYSZ_INS_LOCNO,
  372. SYSZ_INS_LOCGNO,
  373. SYSZ_INS_LOCGRNO,
  374. SYSZ_INS_LOCRNO,
  375. SYSZ_INS_STOCNO,
  376. SYSZ_INS_STOCGNO,
  377. SYSZ_INS_BOR,
  378. SYSZ_INS_JO,
  379. SYSZ_INS_JGO,
  380. SYSZ_INS_LOCO,
  381. SYSZ_INS_LOCGO,
  382. SYSZ_INS_LOCGRO,
  383. SYSZ_INS_LOCRO,
  384. SYSZ_INS_STOCO,
  385. SYSZ_INS_STOCGO,
  386. SYSZ_INS_STOC,
  387. SYSZ_INS_STOCG,
  388. SYSZ_INS_BASR,
  389. SYSZ_INS_BR,
  390. SYSZ_INS_BRAS,
  391. SYSZ_INS_BRASL,
  392. SYSZ_INS_J,
  393. SYSZ_INS_JG,
  394. SYSZ_INS_BRCT,
  395. SYSZ_INS_BRCTG,
  396. SYSZ_INS_C,
  397. SYSZ_INS_CDB,
  398. SYSZ_INS_CDBR,
  399. SYSZ_INS_CDFBR,
  400. SYSZ_INS_CDGBR,
  401. SYSZ_INS_CDLFBR,
  402. SYSZ_INS_CDLGBR,
  403. SYSZ_INS_CEB,
  404. SYSZ_INS_CEBR,
  405. SYSZ_INS_CEFBR,
  406. SYSZ_INS_CEGBR,
  407. SYSZ_INS_CELFBR,
  408. SYSZ_INS_CELGBR,
  409. SYSZ_INS_CFDBR,
  410. SYSZ_INS_CFEBR,
  411. SYSZ_INS_CFI,
  412. SYSZ_INS_CFXBR,
  413. SYSZ_INS_CG,
  414. SYSZ_INS_CGDBR,
  415. SYSZ_INS_CGEBR,
  416. SYSZ_INS_CGF,
  417. SYSZ_INS_CGFI,
  418. SYSZ_INS_CGFR,
  419. SYSZ_INS_CGFRL,
  420. SYSZ_INS_CGH,
  421. SYSZ_INS_CGHI,
  422. SYSZ_INS_CGHRL,
  423. SYSZ_INS_CGHSI,
  424. SYSZ_INS_CGR,
  425. SYSZ_INS_CGRL,
  426. SYSZ_INS_CGXBR,
  427. SYSZ_INS_CH,
  428. SYSZ_INS_CHF,
  429. SYSZ_INS_CHHSI,
  430. SYSZ_INS_CHI,
  431. SYSZ_INS_CHRL,
  432. SYSZ_INS_CHSI,
  433. SYSZ_INS_CHY,
  434. SYSZ_INS_CIH,
  435. SYSZ_INS_CL,
  436. SYSZ_INS_CLC,
  437. SYSZ_INS_CLFDBR,
  438. SYSZ_INS_CLFEBR,
  439. SYSZ_INS_CLFHSI,
  440. SYSZ_INS_CLFI,
  441. SYSZ_INS_CLFXBR,
  442. SYSZ_INS_CLG,
  443. SYSZ_INS_CLGDBR,
  444. SYSZ_INS_CLGEBR,
  445. SYSZ_INS_CLGF,
  446. SYSZ_INS_CLGFI,
  447. SYSZ_INS_CLGFR,
  448. SYSZ_INS_CLGFRL,
  449. SYSZ_INS_CLGHRL,
  450. SYSZ_INS_CLGHSI,
  451. SYSZ_INS_CLGR,
  452. SYSZ_INS_CLGRL,
  453. SYSZ_INS_CLGXBR,
  454. SYSZ_INS_CLHF,
  455. SYSZ_INS_CLHHSI,
  456. SYSZ_INS_CLHRL,
  457. SYSZ_INS_CLI,
  458. SYSZ_INS_CLIH,
  459. SYSZ_INS_CLIY,
  460. SYSZ_INS_CLR,
  461. SYSZ_INS_CLRL,
  462. SYSZ_INS_CLST,
  463. SYSZ_INS_CLY,
  464. SYSZ_INS_CPSDR,
  465. SYSZ_INS_CR,
  466. SYSZ_INS_CRL,
  467. SYSZ_INS_CS,
  468. SYSZ_INS_CSG,
  469. SYSZ_INS_CSY,
  470. SYSZ_INS_CXBR,
  471. SYSZ_INS_CXFBR,
  472. SYSZ_INS_CXGBR,
  473. SYSZ_INS_CXLFBR,
  474. SYSZ_INS_CXLGBR,
  475. SYSZ_INS_CY,
  476. SYSZ_INS_DDB,
  477. SYSZ_INS_DDBR,
  478. SYSZ_INS_DEB,
  479. SYSZ_INS_DEBR,
  480. SYSZ_INS_DL,
  481. SYSZ_INS_DLG,
  482. SYSZ_INS_DLGR,
  483. SYSZ_INS_DLR,
  484. SYSZ_INS_DSG,
  485. SYSZ_INS_DSGF,
  486. SYSZ_INS_DSGFR,
  487. SYSZ_INS_DSGR,
  488. SYSZ_INS_DXBR,
  489. SYSZ_INS_EAR,
  490. SYSZ_INS_FIDBR,
  491. SYSZ_INS_FIDBRA,
  492. SYSZ_INS_FIEBR,
  493. SYSZ_INS_FIEBRA,
  494. SYSZ_INS_FIXBR,
  495. SYSZ_INS_FIXBRA,
  496. SYSZ_INS_FLOGR,
  497. SYSZ_INS_IC,
  498. SYSZ_INS_ICY,
  499. SYSZ_INS_IIHF,
  500. SYSZ_INS_IIHH,
  501. SYSZ_INS_IIHL,
  502. SYSZ_INS_IILF,
  503. SYSZ_INS_IILH,
  504. SYSZ_INS_IILL,
  505. SYSZ_INS_IPM,
  506. SYSZ_INS_L,
  507. SYSZ_INS_LA,
  508. SYSZ_INS_LAA,
  509. SYSZ_INS_LAAG,
  510. SYSZ_INS_LAAL,
  511. SYSZ_INS_LAALG,
  512. SYSZ_INS_LAN,
  513. SYSZ_INS_LANG,
  514. SYSZ_INS_LAO,
  515. SYSZ_INS_LAOG,
  516. SYSZ_INS_LARL,
  517. SYSZ_INS_LAX,
  518. SYSZ_INS_LAXG,
  519. SYSZ_INS_LAY,
  520. SYSZ_INS_LB,
  521. SYSZ_INS_LBH,
  522. SYSZ_INS_LBR,
  523. SYSZ_INS_LCDBR,
  524. SYSZ_INS_LCEBR,
  525. SYSZ_INS_LCGFR,
  526. SYSZ_INS_LCGR,
  527. SYSZ_INS_LCR,
  528. SYSZ_INS_LCXBR,
  529. SYSZ_INS_LD,
  530. SYSZ_INS_LDEB,
  531. SYSZ_INS_LDEBR,
  532. SYSZ_INS_LDGR,
  533. SYSZ_INS_LDR,
  534. SYSZ_INS_LDXBR,
  535. SYSZ_INS_LDXBRA,
  536. SYSZ_INS_LDY,
  537. SYSZ_INS_LE,
  538. SYSZ_INS_LEDBR,
  539. SYSZ_INS_LEDBRA,
  540. SYSZ_INS_LER,
  541. SYSZ_INS_LEXBR,
  542. SYSZ_INS_LEXBRA,
  543. SYSZ_INS_LEY,
  544. SYSZ_INS_LFH,
  545. SYSZ_INS_LG,
  546. SYSZ_INS_LGB,
  547. SYSZ_INS_LGBR,
  548. SYSZ_INS_LGDR,
  549. SYSZ_INS_LGF,
  550. SYSZ_INS_LGFI,
  551. SYSZ_INS_LGFR,
  552. SYSZ_INS_LGFRL,
  553. SYSZ_INS_LGH,
  554. SYSZ_INS_LGHI,
  555. SYSZ_INS_LGHR,
  556. SYSZ_INS_LGHRL,
  557. SYSZ_INS_LGR,
  558. SYSZ_INS_LGRL,
  559. SYSZ_INS_LH,
  560. SYSZ_INS_LHH,
  561. SYSZ_INS_LHI,
  562. SYSZ_INS_LHR,
  563. SYSZ_INS_LHRL,
  564. SYSZ_INS_LHY,
  565. SYSZ_INS_LLC,
  566. SYSZ_INS_LLCH,
  567. SYSZ_INS_LLCR,
  568. SYSZ_INS_LLGC,
  569. SYSZ_INS_LLGCR,
  570. SYSZ_INS_LLGF,
  571. SYSZ_INS_LLGFR,
  572. SYSZ_INS_LLGFRL,
  573. SYSZ_INS_LLGH,
  574. SYSZ_INS_LLGHR,
  575. SYSZ_INS_LLGHRL,
  576. SYSZ_INS_LLH,
  577. SYSZ_INS_LLHH,
  578. SYSZ_INS_LLHR,
  579. SYSZ_INS_LLHRL,
  580. SYSZ_INS_LLIHF,
  581. SYSZ_INS_LLIHH,
  582. SYSZ_INS_LLIHL,
  583. SYSZ_INS_LLILF,
  584. SYSZ_INS_LLILH,
  585. SYSZ_INS_LLILL,
  586. SYSZ_INS_LMG,
  587. SYSZ_INS_LNDBR,
  588. SYSZ_INS_LNEBR,
  589. SYSZ_INS_LNGFR,
  590. SYSZ_INS_LNGR,
  591. SYSZ_INS_LNR,
  592. SYSZ_INS_LNXBR,
  593. SYSZ_INS_LPDBR,
  594. SYSZ_INS_LPEBR,
  595. SYSZ_INS_LPGFR,
  596. SYSZ_INS_LPGR,
  597. SYSZ_INS_LPR,
  598. SYSZ_INS_LPXBR,
  599. SYSZ_INS_LR,
  600. SYSZ_INS_LRL,
  601. SYSZ_INS_LRV,
  602. SYSZ_INS_LRVG,
  603. SYSZ_INS_LRVGR,
  604. SYSZ_INS_LRVR,
  605. SYSZ_INS_LT,
  606. SYSZ_INS_LTDBR,
  607. SYSZ_INS_LTEBR,
  608. SYSZ_INS_LTG,
  609. SYSZ_INS_LTGF,
  610. SYSZ_INS_LTGFR,
  611. SYSZ_INS_LTGR,
  612. SYSZ_INS_LTR,
  613. SYSZ_INS_LTXBR,
  614. SYSZ_INS_LXDB,
  615. SYSZ_INS_LXDBR,
  616. SYSZ_INS_LXEB,
  617. SYSZ_INS_LXEBR,
  618. SYSZ_INS_LXR,
  619. SYSZ_INS_LY,
  620. SYSZ_INS_LZDR,
  621. SYSZ_INS_LZER,
  622. SYSZ_INS_LZXR,
  623. SYSZ_INS_MADB,
  624. SYSZ_INS_MADBR,
  625. SYSZ_INS_MAEB,
  626. SYSZ_INS_MAEBR,
  627. SYSZ_INS_MDB,
  628. SYSZ_INS_MDBR,
  629. SYSZ_INS_MDEB,
  630. SYSZ_INS_MDEBR,
  631. SYSZ_INS_MEEB,
  632. SYSZ_INS_MEEBR,
  633. SYSZ_INS_MGHI,
  634. SYSZ_INS_MH,
  635. SYSZ_INS_MHI,
  636. SYSZ_INS_MHY,
  637. SYSZ_INS_MLG,
  638. SYSZ_INS_MLGR,
  639. SYSZ_INS_MS,
  640. SYSZ_INS_MSDB,
  641. SYSZ_INS_MSDBR,
  642. SYSZ_INS_MSEB,
  643. SYSZ_INS_MSEBR,
  644. SYSZ_INS_MSFI,
  645. SYSZ_INS_MSG,
  646. SYSZ_INS_MSGF,
  647. SYSZ_INS_MSGFI,
  648. SYSZ_INS_MSGFR,
  649. SYSZ_INS_MSGR,
  650. SYSZ_INS_MSR,
  651. SYSZ_INS_MSY,
  652. SYSZ_INS_MVC,
  653. SYSZ_INS_MVGHI,
  654. SYSZ_INS_MVHHI,
  655. SYSZ_INS_MVHI,
  656. SYSZ_INS_MVI,
  657. SYSZ_INS_MVIY,
  658. SYSZ_INS_MVST,
  659. SYSZ_INS_MXBR,
  660. SYSZ_INS_MXDB,
  661. SYSZ_INS_MXDBR,
  662. SYSZ_INS_N,
  663. SYSZ_INS_NC,
  664. SYSZ_INS_NG,
  665. SYSZ_INS_NGR,
  666. SYSZ_INS_NGRK,
  667. SYSZ_INS_NI,
  668. SYSZ_INS_NIHF,
  669. SYSZ_INS_NIHH,
  670. SYSZ_INS_NIHL,
  671. SYSZ_INS_NILF,
  672. SYSZ_INS_NILH,
  673. SYSZ_INS_NILL,
  674. SYSZ_INS_NIY,
  675. SYSZ_INS_NR,
  676. SYSZ_INS_NRK,
  677. SYSZ_INS_NY,
  678. SYSZ_INS_O,
  679. SYSZ_INS_OC,
  680. SYSZ_INS_OG,
  681. SYSZ_INS_OGR,
  682. SYSZ_INS_OGRK,
  683. SYSZ_INS_OI,
  684. SYSZ_INS_OIHF,
  685. SYSZ_INS_OIHH,
  686. SYSZ_INS_OIHL,
  687. SYSZ_INS_OILF,
  688. SYSZ_INS_OILH,
  689. SYSZ_INS_OILL,
  690. SYSZ_INS_OIY,
  691. SYSZ_INS_OR,
  692. SYSZ_INS_ORK,
  693. SYSZ_INS_OY,
  694. SYSZ_INS_PFD,
  695. SYSZ_INS_PFDRL,
  696. SYSZ_INS_RISBG,
  697. SYSZ_INS_RISBHG,
  698. SYSZ_INS_RISBLG,
  699. SYSZ_INS_RLL,
  700. SYSZ_INS_RLLG,
  701. SYSZ_INS_RNSBG,
  702. SYSZ_INS_ROSBG,
  703. SYSZ_INS_RXSBG,
  704. SYSZ_INS_S,
  705. SYSZ_INS_SDB,
  706. SYSZ_INS_SDBR,
  707. SYSZ_INS_SEB,
  708. SYSZ_INS_SEBR,
  709. SYSZ_INS_SG,
  710. SYSZ_INS_SGF,
  711. SYSZ_INS_SGFR,
  712. SYSZ_INS_SGR,
  713. SYSZ_INS_SGRK,
  714. SYSZ_INS_SH,
  715. SYSZ_INS_SHY,
  716. SYSZ_INS_SL,
  717. SYSZ_INS_SLB,
  718. SYSZ_INS_SLBG,
  719. SYSZ_INS_SLBR,
  720. SYSZ_INS_SLFI,
  721. SYSZ_INS_SLG,
  722. SYSZ_INS_SLBGR,
  723. SYSZ_INS_SLGF,
  724. SYSZ_INS_SLGFI,
  725. SYSZ_INS_SLGFR,
  726. SYSZ_INS_SLGR,
  727. SYSZ_INS_SLGRK,
  728. SYSZ_INS_SLL,
  729. SYSZ_INS_SLLG,
  730. SYSZ_INS_SLLK,
  731. SYSZ_INS_SLR,
  732. SYSZ_INS_SLRK,
  733. SYSZ_INS_SLY,
  734. SYSZ_INS_SQDB,
  735. SYSZ_INS_SQDBR,
  736. SYSZ_INS_SQEB,
  737. SYSZ_INS_SQEBR,
  738. SYSZ_INS_SQXBR,
  739. SYSZ_INS_SR,
  740. SYSZ_INS_SRA,
  741. SYSZ_INS_SRAG,
  742. SYSZ_INS_SRAK,
  743. SYSZ_INS_SRK,
  744. SYSZ_INS_SRL,
  745. SYSZ_INS_SRLG,
  746. SYSZ_INS_SRLK,
  747. SYSZ_INS_SRST,
  748. SYSZ_INS_ST,
  749. SYSZ_INS_STC,
  750. SYSZ_INS_STCH,
  751. SYSZ_INS_STCY,
  752. SYSZ_INS_STD,
  753. SYSZ_INS_STDY,
  754. SYSZ_INS_STE,
  755. SYSZ_INS_STEY,
  756. SYSZ_INS_STFH,
  757. SYSZ_INS_STG,
  758. SYSZ_INS_STGRL,
  759. SYSZ_INS_STH,
  760. SYSZ_INS_STHH,
  761. SYSZ_INS_STHRL,
  762. SYSZ_INS_STHY,
  763. SYSZ_INS_STMG,
  764. SYSZ_INS_STRL,
  765. SYSZ_INS_STRV,
  766. SYSZ_INS_STRVG,
  767. SYSZ_INS_STY,
  768. SYSZ_INS_SXBR,
  769. SYSZ_INS_SY,
  770. SYSZ_INS_TM,
  771. SYSZ_INS_TMHH,
  772. SYSZ_INS_TMHL,
  773. SYSZ_INS_TMLH,
  774. SYSZ_INS_TMLL,
  775. SYSZ_INS_TMY,
  776. SYSZ_INS_X,
  777. SYSZ_INS_XC,
  778. SYSZ_INS_XG,
  779. SYSZ_INS_XGR,
  780. SYSZ_INS_XGRK,
  781. SYSZ_INS_XI,
  782. SYSZ_INS_XIHF,
  783. SYSZ_INS_XILF,
  784. SYSZ_INS_XIY,
  785. SYSZ_INS_XR,
  786. SYSZ_INS_XRK,
  787. SYSZ_INS_XY,
  788. SYSZ_INS_ENDING, // <-- mark the end of the list of instructions
  789. } sysz_insn;
  790. /// Group of SystemZ instructions
  791. typedef enum sysz_insn_group {
  792. SYSZ_GRP_INVALID = 0, ///< = CS_GRP_INVALID
  793. // Generic groups
  794. // all jump instructions (conditional+direct+indirect jumps)
  795. SYSZ_GRP_JUMP, ///< = CS_GRP_JUMP
  796. // Architecture-specific groups
  797. SYSZ_GRP_DISTINCTOPS = 128,
  798. SYSZ_GRP_FPEXTENSION,
  799. SYSZ_GRP_HIGHWORD,
  800. SYSZ_GRP_INTERLOCKEDACCESS1,
  801. SYSZ_GRP_LOADSTOREONCOND,
  802. SYSZ_GRP_ENDING, // <-- mark the end of the list of groups
  803. } sysz_insn_group;
  804. #ifdef __cplusplus
  805. }
  806. #endif
  807. #endif