1 #ifndef CAPSTONE_SYSTEMZ_H 2 #define CAPSTONE_SYSTEMZ_H 3 4 /* Capstone Disassembly Engine */ 5 /* By Nguyen Anh Quynh <aquynh@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