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