UNPKG

ts-capstone

Version:

This module provides bindings for the Capstone disassembly framework.

934 lines (915 loc) 18.2 kB
export interface cs_mips_op { type: MIPS; // operand type reg?: MIPS; // register id for REG operand imm?: number; // immediate value for IMM operand mem?: { // base/index/scale/disp value for MEM operand base: MIPS; // base register disp: number; // displacement/offset value }; } export enum MIPS { // Operand type for instruction's operands OP_INVALID = 0, // cs.OP_INVALID (Uninitialized). OP_REG, // cs.OP_REG (Register operand). OP_IMM, // cs.OP_IMM (Immediate operand). OP_MEM, // cs.OP_MEM (Memory operand). // MIPS registers REG_INVALID = 0, // General purpose registers REG_PC = 1, REG_0 = 2, REG_1 = 3, REG_2 = 4, REG_3 = 5, REG_4 = 6, REG_5 = 7, REG_6 = 8, REG_7 = 9, REG_8 = 10, REG_9 = 11, REG_10 = 12, REG_11 = 13, REG_12 = 14, REG_13 = 15, REG_14 = 16, REG_15 = 17, REG_16 = 18, REG_17 = 19, REG_18 = 20, REG_19 = 21, REG_20 = 22, REG_21 = 23, REG_22 = 24, REG_23 = 25, REG_24 = 26, REG_25 = 27, REG_26 = 28, REG_27 = 29, REG_28 = 30, REG_29 = 31, REG_30 = 32, REG_31 = 33, // DSP registers REG_DSPCCOND = 34, REG_DSPCARRY = 35, REG_DSPEFI = 36, REG_DSPOUTFLAG = 37, REG_DSPOUTFLAG16_19 = 38, REG_DSPOUTFLAG20 = 39, REG_DSPOUTFLAG21 = 40, REG_DSPOUTFLAG22 = 41, REG_DSPOUTFLAG23 = 42, REG_DSPPOS = 43, REG_DSPSCOUNT = 44, // ACC registers REG_AC0 = 45, REG_AC1 = 46, REG_AC2 = 47, REG_AC3 = 48, // COP registers REG_CC0 = 49, REG_CC1 = 50, REG_CC2 = 51, REG_CC3 = 52, REG_CC4 = 53, REG_CC5 = 54, REG_CC6 = 55, REG_CC7 = 56, // FPU registers REG_F0 = 57, REG_F1 = 58, REG_F2 = 59, REG_F3 = 60, REG_F4 = 61, REG_F5 = 62, REG_F6 = 63, REG_F7 = 64, REG_F8 = 65, REG_F9 = 66, REG_F10 = 67, REG_F11 = 68, REG_F12 = 69, REG_F13 = 70, REG_F14 = 71, REG_F15 = 72, REG_F16 = 73, REG_F17 = 74, REG_F18 = 75, REG_F19 = 76, REG_F20 = 77, REG_F21 = 78, REG_F22 = 79, REG_F23 = 80, REG_F24 = 81, REG_F25 = 82, REG_F26 = 83, REG_F27 = 84, REG_F28 = 85, REG_F29 = 86, REG_F30 = 87, REG_F31 = 88, REG_FCC0 = 89, REG_FCC1 = 90, REG_FCC2 = 91, REG_FCC3 = 92, REG_FCC4 = 93, REG_FCC5 = 94, REG_FCC6 = 95, REG_FCC7 = 96, // AFPR128 REG_W0 = 97, REG_W1 = 98, REG_W2 = 99, REG_W3 = 100, REG_W4 = 101, REG_W5 = 102, REG_W6 = 103, REG_W7 = 104, REG_W8 = 105, REG_W9 = 106, REG_W10 = 107, REG_W11 = 108, REG_W12 = 109, REG_W13 = 110, REG_W14 = 111, REG_W15 = 112, REG_W16 = 113, REG_W17 = 114, REG_W18 = 115, REG_W19 = 116, REG_W20 = 117, REG_W21 = 118, REG_W22 = 119, REG_W23 = 120, REG_W24 = 121, REG_W25 = 122, REG_W26 = 123, REG_W27 = 124, REG_W28 = 125, REG_W29 = 126, REG_W30 = 127, REG_W31 = 128, REG_HI = 129, REG_LO = 130, REG_P0 = 131, REG_P1 = 132, REG_P2 = 133, REG_MPL0 = 134, REG_MPL1 = 135, REG_MPL2 = 136, REG_ENDING = 137, // mark the end of the list or registers // alias registers REG_ZERO = MIPS.REG_0, REG_AT = MIPS.REG_1, REG_V0 = MIPS.REG_2, REG_V1 = MIPS.REG_3, REG_A0 = MIPS.REG_4, REG_A1 = MIPS.REG_5, REG_A2 = MIPS.REG_6, REG_A3 = MIPS.REG_7, REG_T0 = MIPS.REG_8, REG_T1 = MIPS.REG_9, REG_T2 = MIPS.REG_10, REG_T3 = MIPS.REG_11, REG_T4 = MIPS.REG_12, REG_T5 = MIPS.REG_13, REG_T6 = MIPS.REG_14, REG_T7 = MIPS.REG_15, REG_S0 = MIPS.REG_16, REG_S1 = MIPS.REG_17, REG_S2 = MIPS.REG_18, REG_S3 = MIPS.REG_19, REG_S4 = MIPS.REG_20, REG_S5 = MIPS.REG_21, REG_S6 = MIPS.REG_22, REG_S7 = MIPS.REG_23, REG_T8 = MIPS.REG_24, REG_T9 = MIPS.REG_25, REG_K0 = MIPS.REG_26, REG_K1 = MIPS.REG_27, REG_GP = MIPS.REG_28, REG_SP = MIPS.REG_29, REG_FP = MIPS.REG_30, REG_S8 = MIPS.REG_30, REG_RA = MIPS.REG_31, REG_HI0 = MIPS.REG_AC0, REG_HI1 = MIPS.REG_AC1, REG_HI2 = MIPS.REG_AC2, REG_HI3 = MIPS.REG_AC3, REG_LO0 = MIPS.REG_HI0, REG_LO1 = MIPS.REG_HI1, REG_LO2 = MIPS.REG_HI2, REG_LO3 = MIPS.REG_HI3, // MIPS instruction INS_INVALID = 0, INS_ABSQ_S = 1, INS_ADD = 2, INS_ADDIUPC = 3, INS_ADDIUR1SP = 4, INS_ADDIUR2 = 5, INS_ADDIUS5 = 6, INS_ADDIUSP = 7, INS_ADDQH = 8, INS_ADDQH_R = 9, INS_ADDQ = 10, INS_ADDQ_S = 11, INS_ADDSC = 12, INS_ADDS_A = 13, INS_ADDS_S = 14, INS_ADDS_U = 15, INS_ADDU16 = 16, INS_ADDUH = 17, INS_ADDUH_R = 18, INS_ADDU = 19, INS_ADDU_S = 20, INS_ADDVI = 21, INS_ADDV = 22, INS_ADDWC = 23, INS_ADD_A = 24, INS_ADDI = 25, INS_ADDIU = 26, INS_ALIGN = 27, INS_ALUIPC = 28, INS_AND = 29, INS_AND16 = 30, INS_ANDI16 = 31, INS_ANDI = 32, INS_APPEND = 33, INS_ASUB_S = 34, INS_ASUB_U = 35, INS_AUI = 36, INS_AUIPC = 37, INS_AVER_S = 38, INS_AVER_U = 39, INS_AVE_S = 40, INS_AVE_U = 41, INS_B16 = 42, INS_BADDU = 43, INS_BAL = 44, INS_BALC = 45, INS_BALIGN = 46, INS_BBIT0 = 47, INS_BBIT032 = 48, INS_BBIT1 = 49, INS_BBIT132 = 50, INS_BC = 51, INS_BC0F = 52, INS_BC0FL = 53, INS_BC0T = 54, INS_BC0TL = 55, INS_BC1EQZ = 56, INS_BC1F = 57, INS_BC1FL = 58, INS_BC1NEZ = 59, INS_BC1T = 60, INS_BC1TL = 61, INS_BC2EQZ = 62, INS_BC2F = 63, INS_BC2FL = 64, INS_BC2NEZ = 65, INS_BC2T = 66, INS_BC2TL = 67, INS_BC3F = 68, INS_BC3FL = 69, INS_BC3T = 70, INS_BC3TL = 71, INS_BCLRI = 72, INS_BCLR = 73, INS_BEQ = 74, INS_BEQC = 75, INS_BEQL = 76, INS_BEQZ16 = 77, INS_BEQZALC = 78, INS_BEQZC = 79, INS_BGEC = 80, INS_BGEUC = 81, INS_BGEZ = 82, INS_BGEZAL = 83, INS_BGEZALC = 84, INS_BGEZALL = 85, INS_BGEZALS = 86, INS_BGEZC = 87, INS_BGEZL = 88, INS_BGTZ = 89, INS_BGTZALC = 90, INS_BGTZC = 91, INS_BGTZL = 92, INS_BINSLI = 93, INS_BINSL = 94, INS_BINSRI = 95, INS_BINSR = 96, INS_BITREV = 97, INS_BITSWAP = 98, INS_BLEZ = 99, INS_BLEZALC = 100, INS_BLEZC = 101, INS_BLEZL = 102, INS_BLTC = 103, INS_BLTUC = 104, INS_BLTZ = 105, INS_BLTZAL = 106, INS_BLTZALC = 107, INS_BLTZALL = 108, INS_BLTZALS = 109, INS_BLTZC = 110, INS_BLTZL = 111, INS_BMNZI = 112, INS_BMNZ = 113, INS_BMZI = 114, INS_BMZ = 115, INS_BNE = 116, INS_BNEC = 117, INS_BNEGI = 118, INS_BNEG = 119, INS_BNEL = 120, INS_BNEZ16 = 121, INS_BNEZALC = 122, INS_BNEZC = 123, INS_BNVC = 124, INS_BNZ = 125, INS_BOVC = 126, INS_BPOSGE32 = 127, INS_BREAK = 128, INS_BREAK16 = 129, INS_BSELI = 130, INS_BSEL = 131, INS_BSETI = 132, INS_BSET = 133, INS_BZ = 134, INS_BEQZ = 135, INS_B = 136, INS_BNEZ = 137, INS_BTEQZ = 138, INS_BTNEZ = 139, INS_CACHE = 140, INS_CEIL = 141, INS_CEQI = 142, INS_CEQ = 143, INS_CFC1 = 144, INS_CFCMSA = 145, INS_CINS = 146, INS_CINS32 = 147, INS_CLASS = 148, INS_CLEI_S = 149, INS_CLEI_U = 150, INS_CLE_S = 151, INS_CLE_U = 152, INS_CLO = 153, INS_CLTI_S = 154, INS_CLTI_U = 155, INS_CLT_S = 156, INS_CLT_U = 157, INS_CLZ = 158, INS_CMPGDU = 159, INS_CMPGU = 160, INS_CMPU = 161, INS_CMP = 162, INS_COPY_S = 163, INS_COPY_U = 164, INS_CTC1 = 165, INS_CTCMSA = 166, INS_CVT = 167, INS_C = 168, INS_CMPI = 169, INS_DADD = 170, INS_DADDI = 171, INS_DADDIU = 172, INS_DADDU = 173, INS_DAHI = 174, INS_DALIGN = 175, INS_DATI = 176, INS_DAUI = 177, INS_DBITSWAP = 178, INS_DCLO = 179, INS_DCLZ = 180, INS_DDIV = 181, INS_DDIVU = 182, INS_DERET = 183, INS_DEXT = 184, INS_DEXTM = 185, INS_DEXTU = 186, INS_DI = 187, INS_DINS = 188, INS_DINSM = 189, INS_DINSU = 190, INS_DIV = 191, INS_DIVU = 192, INS_DIV_S = 193, INS_DIV_U = 194, INS_DLSA = 195, INS_DMFC0 = 196, INS_DMFC1 = 197, INS_DMFC2 = 198, INS_DMOD = 199, INS_DMODU = 200, INS_DMTC0 = 201, INS_DMTC1 = 202, INS_DMTC2 = 203, INS_DMUH = 204, INS_DMUHU = 205, INS_DMUL = 206, INS_DMULT = 207, INS_DMULTU = 208, INS_DMULU = 209, INS_DOTP_S = 210, INS_DOTP_U = 211, INS_DPADD_S = 212, INS_DPADD_U = 213, INS_DPAQX_SA = 214, INS_DPAQX_S = 215, INS_DPAQ_SA = 216, INS_DPAQ_S = 217, INS_DPAU = 218, INS_DPAX = 219, INS_DPA = 220, INS_DPOP = 221, INS_DPSQX_SA = 222, INS_DPSQX_S = 223, INS_DPSQ_SA = 224, INS_DPSQ_S = 225, INS_DPSUB_S = 226, INS_DPSUB_U = 227, INS_DPSU = 228, INS_DPSX = 229, INS_DPS = 230, INS_DROTR = 231, INS_DROTR32 = 232, INS_DROTRV = 233, INS_DSBH = 234, INS_DSHD = 235, INS_DSLL = 236, INS_DSLL32 = 237, INS_DSLLV = 238, INS_DSRA = 239, INS_DSRA32 = 240, INS_DSRAV = 241, INS_DSRL = 242, INS_DSRL32 = 243, INS_DSRLV = 244, INS_DSUB = 245, INS_DSUBU = 246, INS_EHB = 247, INS_EI = 248, INS_ERET = 249, INS_EXT = 250, INS_EXTP = 251, INS_EXTPDP = 252, INS_EXTPDPV = 253, INS_EXTPV = 254, INS_EXTRV_RS = 255, INS_EXTRV_R = 256, INS_EXTRV_S = 257, INS_EXTRV = 258, INS_EXTR_RS = 259, INS_EXTR_R = 260, INS_EXTR_S = 261, INS_EXTR = 262, INS_EXTS = 263, INS_EXTS32 = 264, INS_ABS = 265, INS_FADD = 266, INS_FCAF = 267, INS_FCEQ = 268, INS_FCLASS = 269, INS_FCLE = 270, INS_FCLT = 271, INS_FCNE = 272, INS_FCOR = 273, INS_FCUEQ = 274, INS_FCULE = 275, INS_FCULT = 276, INS_FCUNE = 277, INS_FCUN = 278, INS_FDIV = 279, INS_FEXDO = 280, INS_FEXP2 = 281, INS_FEXUPL = 282, INS_FEXUPR = 283, INS_FFINT_S = 284, INS_FFINT_U = 285, INS_FFQL = 286, INS_FFQR = 287, INS_FILL = 288, INS_FLOG2 = 289, INS_FLOOR = 290, INS_FMADD = 291, INS_FMAX_A = 292, INS_FMAX = 293, INS_FMIN_A = 294, INS_FMIN = 295, INS_MOV = 296, INS_FMSUB = 297, INS_FMUL = 298, INS_MUL = 299, INS_NEG = 300, INS_FRCP = 301, INS_FRINT = 302, INS_FRSQRT = 303, INS_FSAF = 304, INS_FSEQ = 305, INS_FSLE = 306, INS_FSLT = 307, INS_FSNE = 308, INS_FSOR = 309, INS_FSQRT = 310, INS_SQRT = 311, INS_FSUB = 312, INS_SUB = 313, INS_FSUEQ = 314, INS_FSULE = 315, INS_FSULT = 316, INS_FSUNE = 317, INS_FSUN = 318, INS_FTINT_S = 319, INS_FTINT_U = 320, INS_FTQ = 321, INS_FTRUNC_S = 322, INS_FTRUNC_U = 323, INS_HADD_S = 324, INS_HADD_U = 325, INS_HSUB_S = 326, INS_HSUB_U = 327, INS_ILVEV = 328, INS_ILVL = 329, INS_ILVOD = 330, INS_ILVR = 331, INS_INS = 332, INS_INSERT = 333, INS_INSV = 334, INS_INSVE = 335, INS_J = 336, INS_JAL = 337, INS_JALR = 338, INS_JALRS16 = 339, INS_JALRS = 340, INS_JALS = 341, INS_JALX = 342, INS_JIALC = 343, INS_JIC = 344, INS_JR = 345, INS_JR16 = 346, INS_JRADDIUSP = 347, INS_JRC = 348, INS_JALRC = 349, INS_LB = 350, INS_LBU16 = 351, INS_LBUX = 352, INS_LBU = 353, INS_LD = 354, INS_LDC1 = 355, INS_LDC2 = 356, INS_LDC3 = 357, INS_LDI = 358, INS_LDL = 359, INS_LDPC = 360, INS_LDR = 361, INS_LDXC1 = 362, INS_LH = 363, INS_LHU16 = 364, INS_LHX = 365, INS_LHU = 366, INS_LI16 = 367, INS_LL = 368, INS_LLD = 369, INS_LSA = 370, INS_LUXC1 = 371, INS_LUI = 372, INS_LW = 373, INS_LW16 = 374, INS_LWC1 = 375, INS_LWC2 = 376, INS_LWC3 = 377, INS_LWL = 378, INS_LWM16 = 379, INS_LWM32 = 380, INS_LWPC = 381, INS_LWP = 382, INS_LWR = 383, INS_LWUPC = 384, INS_LWU = 385, INS_LWX = 386, INS_LWXC1 = 387, INS_LWXS = 388, INS_LI = 389, INS_MADD = 390, INS_MADDF = 391, INS_MADDR_Q = 392, INS_MADDU = 393, INS_MADDV = 394, INS_MADD_Q = 395, INS_MAQ_SA = 396, INS_MAQ_S = 397, INS_MAXA = 398, INS_MAXI_S = 399, INS_MAXI_U = 400, INS_MAX_A = 401, INS_MAX = 402, INS_MAX_S = 403, INS_MAX_U = 404, INS_MFC0 = 405, INS_MFC1 = 406, INS_MFC2 = 407, INS_MFHC1 = 408, INS_MFHI = 409, INS_MFLO = 410, INS_MINA = 411, INS_MINI_S = 412, INS_MINI_U = 413, INS_MIN_A = 414, INS_MIN = 415, INS_MIN_S = 416, INS_MIN_U = 417, INS_MOD = 418, INS_MODSUB = 419, INS_MODU = 420, INS_MOD_S = 421, INS_MOD_U = 422, INS_MOVE = 423, INS_MOVEP = 424, INS_MOVF = 425, INS_MOVN = 426, INS_MOVT = 427, INS_MOVZ = 428, INS_MSUB = 429, INS_MSUBF = 430, INS_MSUBR_Q = 431, INS_MSUBU = 432, INS_MSUBV = 433, INS_MSUB_Q = 434, INS_MTC0 = 435, INS_MTC1 = 436, INS_MTC2 = 437, INS_MTHC1 = 438, INS_MTHI = 439, INS_MTHLIP = 440, INS_MTLO = 441, INS_MTM0 = 442, INS_MTM1 = 443, INS_MTM2 = 444, INS_MTP0 = 445, INS_MTP1 = 446, INS_MTP2 = 447, INS_MUH = 448, INS_MUHU = 449, INS_MULEQ_S = 450, INS_MULEU_S = 451, INS_MULQ_RS = 452, INS_MULQ_S = 453, INS_MULR_Q = 454, INS_MULSAQ_S = 455, INS_MULSA = 456, INS_MULT = 457, INS_MULTU = 458, INS_MULU = 459, INS_MULV = 460, INS_MUL_Q = 461, INS_MUL_S = 462, INS_NLOC = 463, INS_NLZC = 464, INS_NMADD = 465, INS_NMSUB = 466, INS_NOR = 467, INS_NORI = 468, INS_NOT16 = 469, INS_NOT = 470, INS_OR = 471, INS_OR16 = 472, INS_ORI = 473, INS_PACKRL = 474, INS_PAUSE = 475, INS_PCKEV = 476, INS_PCKOD = 477, INS_PCNT = 478, INS_PICK = 479, INS_POP = 480, INS_PRECEQU = 481, INS_PRECEQ = 482, INS_PRECEU = 483, INS_PRECRQU_S = 484, INS_PRECRQ = 485, INS_PRECRQ_RS = 486, INS_PRECR = 487, INS_PRECR_SRA = 488, INS_PRECR_SRA_R = 489, INS_PREF = 490, INS_PREPEND = 491, INS_RADDU = 492, INS_RDDSP = 493, INS_RDHWR = 494, INS_REPLV = 495, INS_REPL = 496, INS_RINT = 497, INS_ROTR = 498, INS_ROTRV = 499, INS_ROUND = 500, INS_SAT_S = 501, INS_SAT_U = 502, INS_SB = 503, INS_SB16 = 504, INS_SC = 505, INS_SCD = 506, INS_SD = 507, INS_SDBBP = 508, INS_SDBBP16 = 509, INS_SDC1 = 510, INS_SDC2 = 511, INS_SDC3 = 512, INS_SDL = 513, INS_SDR = 514, INS_SDXC1 = 515, INS_SEB = 516, INS_SEH = 517, INS_SELEQZ = 518, INS_SELNEZ = 519, INS_SEL = 520, INS_SEQ = 521, INS_SEQI = 522, INS_SH = 523, INS_SH16 = 524, INS_SHF = 525, INS_SHILO = 526, INS_SHILOV = 527, INS_SHLLV = 528, INS_SHLLV_S = 529, INS_SHLL = 530, INS_SHLL_S = 531, INS_SHRAV = 532, INS_SHRAV_R = 533, INS_SHRA = 534, INS_SHRA_R = 535, INS_SHRLV = 536, INS_SHRL = 537, INS_SLDI = 538, INS_SLD = 539, INS_SLL = 540, INS_SLL16 = 541, INS_SLLI = 542, INS_SLLV = 543, INS_SLT = 544, INS_SLTI = 545, INS_SLTIU = 546, INS_SLTU = 547, INS_SNE = 548, INS_SNEI = 549, INS_SPLATI = 550, INS_SPLAT = 551, INS_SRA = 552, INS_SRAI = 553, INS_SRARI = 554, INS_SRAR = 555, INS_SRAV = 556, INS_SRL = 557, INS_SRL16 = 558, INS_SRLI = 559, INS_SRLRI = 560, INS_SRLR = 561, INS_SRLV = 562, INS_SSNOP = 563, INS_ST = 564, INS_SUBQH = 565, INS_SUBQH_R = 566, INS_SUBQ = 567, INS_SUBQ_S = 568, INS_SUBSUS_U = 569, INS_SUBSUU_S = 570, INS_SUBS_S = 571, INS_SUBS_U = 572, INS_SUBU16 = 573, INS_SUBUH = 574, INS_SUBUH_R = 575, INS_SUBU = 576, INS_SUBU_S = 577, INS_SUBVI = 578, INS_SUBV = 579, INS_SUXC1 = 580, INS_SW = 581, INS_SW16 = 582, INS_SWC1 = 583, INS_SWC2 = 584, INS_SWC3 = 585, INS_SWL = 586, INS_SWM16 = 587, INS_SWM32 = 588, INS_SWP = 589, INS_SWR = 590, INS_SWXC1 = 591, INS_SYNC = 592, INS_SYNCI = 593, INS_SYSCALL = 594, INS_TEQ = 595, INS_TEQI = 596, INS_TGE = 597, INS_TGEI = 598, INS_TGEIU = 599, INS_TGEU = 600, INS_TLBP = 601, INS_TLBR = 602, INS_TLBWI = 603, INS_TLBWR = 604, INS_TLT = 605, INS_TLTI = 606, INS_TLTIU = 607, INS_TLTU = 608, INS_TNE = 609, INS_TNEI = 610, INS_TRUNC = 611, INS_V3MULU = 612, INS_VMM0 = 613, INS_VMULU = 614, INS_VSHF = 615, INS_WAIT = 616, INS_WRDSP = 617, INS_WSBH = 618, INS_XOR = 619, INS_XOR16 = 620, INS_XORI = 621, // some alias instructions INS_NOP = 622, INS_NEGU = 623, // special instructions INS_JALR_HB = 624, // jump and link with Hazard Barrier INS_JR_HB = 625, // jump register with Hazard Barrier INS_ENDING = 626, // Group of MIPS instructions MIPS_GRP_INVALID = 0, ///< = CS_GRP_INVALID // Generic groups // all jump instructions (conditional+direct+indirect jumps) GRP_JUMP = 1, // cs.GRP_JUMP // all call instructions GRP_CALL = 2, // cs.GRP_CALL // all return instructions GRP_RET = 3, // cs.GRP_RET // all interrupt instructions (int+syscall) GRP_INT = 4, // cs.GRP_INT // all interrupt return instructions GRP_IRET = 5, // cs.GRP_IRET // all privileged instructions GRP_PRIVILEGE = 6, // cs.GRP_PRIVILEGE // all relative branching instructions GRP_BRANCH_RELATIVE = 7, // cs.GRP_BRANCH_RELATIVE // Architecture-specific groups GRP_BITCOUNT = 128, GRP_DSP = 129, GRP_DSPR2 = 130, GRP_FPIDX = 131, GRP_MSA = 132, GRP_MIPS32R2 = 133, GRP_MIPS64 = 134, GRP_MIPS64R2 = 135, GRP_SEINREG = 136, GRP_STDENC = 137, GRP_SWAP = 138, GRP_MICROMIPS = 139, GRP_MIPS16MODE = 140, GRP_FP64BIT = 141, GRP_NONANSFPMATH = 142, GRP_NOTFP64BIT = 143, GRP_NOTINMICROMIPS = 144, GRP_NOTNACL = 145, GRP_NOTMIPS32R6 = 146, GRP_NOTMIPS64R6 = 147, GRP_CNMIPS = 148, GRP_MIPS32 = 149, GRP_MIPS32R6 = 150, GRP_MIPS64R6 = 151, GRP_MIPS2 = 152, GRP_MIPS3 = 153, GRP_MIPS3_32 = 154, GRP_MIPS3_32R2 = 155, GRP_MIPS4_32 = 156, GRP_MIPS4_32R2 = 157, GRP_MIPS5_32R2 = 158, GRP_GP32BIT = 159, GRP_GP64BIT = 160, GRP_ENDING = 161, } export class cs_mips { public op_count: number; // Number of operands of this instruction, or 0 when instruction has no operand. public operands: cs_mips_op[]; // operands for this instruction. constructor(arch_info_ptr: number, Memory: any) { this.operands = []; this.op_count = Memory.read(arch_info_ptr, 'ubyte'); for (let i = 0; i < this.op_count; i++) { const op: cs_mips_op = {} as cs_mips_op; const op_ptr: number = arch_info_ptr + 8 + i * 24; op.type = Memory.read(op_ptr + 0, 'i32'); switch (op.type) { case MIPS.OP_REG: op.reg = Memory.read(op_ptr + 8, 'i32'); break; case MIPS.OP_IMM: op.imm = Memory.read(op_ptr + 8, 'long'); break; case MIPS.OP_MEM: op.mem = { base: Memory.read(op_ptr + 8, 'i32'), disp: Memory.read(op_ptr + 12, 'long'), }; break; } this.operands[i] = op; } return this; } }