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