1*9a0e4156SSadaf Ebrahimi 2*9a0e4156SSadaf Ebrahimi// These temporary defines keep the following table short and handy. 3*9a0e4156SSadaf Ebrahimi#define NOG M680X_GRP_INVALID 4*9a0e4156SSadaf Ebrahimi#define NOR M680X_REG_INVALID 5*9a0e4156SSadaf Ebrahimi 6*9a0e4156SSadaf Ebrahimistatic const insn_props g_insn_props[] = { 7*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // INVLD 8*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_B, M680X_REG_A, true, false }, // ABA 9*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_B, M680X_REG_X, false, false }, // ABX 10*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_B, M680X_REG_Y, false, false }, // ABY 11*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADC 12*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADCA 13*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ADCB 14*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ADCD 15*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // ADCR 16*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADD 17*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADDA 18*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ADDB 19*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ADDD 20*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_E, NOR, true, false }, // ADDE 21*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_F, NOR, true, false }, // ADDF 22*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // ADDR 23*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // ADDW 24*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // AIM 25*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_S, NOR, false, false }, // AIS 26*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_HX, NOR, false, false }, // AIX 27*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // AND 28*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ANDA 29*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ANDB 30*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_CC, NOR, true, false }, // ANDCC 31*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ANDD 32*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // ANDR 33*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // ASL 34*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ASLA 35*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ASLB 36*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ASLD 37*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // ASR 38*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ASRA 39*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ASRB 40*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ASRD 41*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // ASRX 42*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, false, false }, // BAND 43*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BCC 44*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // BCLR 45*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BCS 46*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, false, false }, // BEOR 47*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BEQ 48*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BGE 49*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // BGND 50*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BGT 51*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BHCC 52*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BHCS 53*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BHI 54*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, false, false }, // BIAND 55*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, false, false }, // BIEOR 56*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BIH 57*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BIL 58*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, false, false }, // BIOR 59*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_A, NOR, true, false }, // BIT 60*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_A, NOR, true, false }, // BITA 61*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_B, NOR, true, false }, // BITB 62*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_D, NOR, true, false }, // BITD 63*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_MD, NOR, true, false }, // BITMD 64*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BLE 65*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BLS 66*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BLT 67*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BMC 68*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BMI 69*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BMS 70*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BNE 71*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, false, false }, // BOR 72*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BPL 73*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, rruu, NOR, NOR, false, false }, // BRCLR 74*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, rruu, NOR, NOR, false, false }, // BRSET 75*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BRA 76*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BRN never branches 77*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // BSET 78*9a0e4156SSadaf Ebrahimi { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // BSR 79*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BVC 80*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BVS 81*9a0e4156SSadaf Ebrahimi { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // CALL 82*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_B, M680X_REG_A, true, false }, // CBA 83*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, rruu, M680X_REG_A, NOR, false, false }, // CBEQ 84*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, rruu, M680X_REG_A, NOR, false, false }, // CBEQA 85*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, rruu, M680X_REG_X, NOR, false, false }, // CBEQX 86*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, false }, // CLC 87*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, false }, // CLI 88*9a0e4156SSadaf Ebrahimi { NOG, wrrr, NOR, NOR, true, false }, // CLR 89*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_A, NOR, true, false }, // CLRA 90*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_B, NOR, true, false }, // CLRB 91*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_D, NOR, true, false }, // CLRD 92*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_E, NOR, true, false }, // CLRE 93*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_F, NOR, true, false }, // CLRF 94*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_H, NOR, true, false }, // CLRH 95*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_W, NOR, true, false }, // CLRW 96*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_X, NOR, true, false }, // CLRX 97*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, false }, // CLV 98*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_A, NOR, true, false }, // CMP 99*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_A, NOR, true, false }, // CMPA 100*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_B, NOR, true, false }, // CMPB 101*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_D, NOR, true, false }, // CMPD 102*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_E, NOR, true, false }, // CMPE 103*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_F, NOR, true, false }, // CMPF 104*9a0e4156SSadaf Ebrahimi { NOG, rrrr, NOR, NOR, true, false }, // CMPR 105*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_S, NOR, true, false }, // CMPS 106*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_U, NOR, true, false }, // CMPU 107*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_W, NOR, true, false }, // CMPW 108*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_X, NOR, true, false }, // CMPX 109*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_Y, NOR, true, false }, // CMPY 110*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // COM 111*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // COMA 112*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // COMB 113*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // COMD 114*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_E, NOR, true, false }, // COME 115*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_F, NOR, true, false }, // COMF 116*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // COMW 117*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // COMX 118*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_D, NOR, true, false }, // CPD 119*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_HX, NOR, true, false }, // CPHX 120*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_S, NOR, true, false }, // CPS 121*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_X, NOR, true, false }, // CPX 122*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_Y, NOR, true, false }, // CPY 123*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // CWAI 124*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // DAA 125*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // DBEQ 126*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // DBNE 127*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // DBNZ 128*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, M680X_REG_A, NOR, false, false }, // DBNZA 129*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, M680X_REG_X, NOR, false, false }, // DBNZX 130*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // DEC 131*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // DECA 132*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // DECB 133*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // DECD 134*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_E, NOR, true, false }, // DECE 135*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_F, NOR, true, false }, // DECF 136*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // DECW 137*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // DECX 138*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_S, NOR, false, false }, // DES 139*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // DEX 140*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_Y, NOR, true, false }, // DEY 141*9a0e4156SSadaf Ebrahimi { NOG, mmrr, NOR, NOR, true, true }, // DIV 142*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // DIVD 143*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_Q, NOR, true, false }, // DIVQ 144*9a0e4156SSadaf Ebrahimi { NOG, mmrr, NOR, NOR, true, true }, // EDIV 145*9a0e4156SSadaf Ebrahimi { NOG, mmrr, NOR, NOR, true, true }, // EDIVS 146*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // EIM 147*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // EMACS 148*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // EMAXD 149*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // EMAXM 150*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // EMIND 151*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // EMINM 152*9a0e4156SSadaf Ebrahimi { NOG, mmrr, NOR, NOR, true, true }, // EMUL 153*9a0e4156SSadaf Ebrahimi { NOG, mmrr, NOR, NOR, true, true }, // EMULS 154*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // EOR 155*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // EORA 156*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // EORB 157*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // EORD 158*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // EORR 159*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, true }, // ETBL 160*9a0e4156SSadaf Ebrahimi { NOG, mmmm, NOR, NOR, false, false }, // EXG 161*9a0e4156SSadaf Ebrahimi { NOG, mmmm, NOR, NOR, true, true }, // FDIV 162*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // IBEQ 163*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // IBNE 164*9a0e4156SSadaf Ebrahimi { NOG, mmmm, NOR, NOR, true, true }, // IDIV 165*9a0e4156SSadaf Ebrahimi { NOG, mmmm, NOR, NOR, true, true }, // IDIVS 166*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // ILLGL 167*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // INC 168*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // INCA 169*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // INCB 170*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // INCD 171*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_E, NOR, true, false }, // INCE 172*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_F, NOR, true, false }, // INCF 173*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // INCW 174*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // INCX 175*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_S, NOR, false, false }, // INS 176*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // INX 177*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_Y, NOR, true, false }, // INY 178*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // JMP 179*9a0e4156SSadaf Ebrahimi { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // JSR 180*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBCC 181*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBCS 182*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBEQ 183*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBGE 184*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBGT 185*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBHI 186*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBLE 187*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBLS 188*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBLT 189*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBMI 190*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBNE 191*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBPL 192*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBRA 193*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBRN never branches 194*9a0e4156SSadaf Ebrahimi { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // LBSR 195*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBVC 196*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBVS 197*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_A, NOR, true, false }, // LDA 198*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_A, NOR, true, false }, // LDAA 199*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_B, NOR, true, false }, // LDAB 200*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_B, NOR, true, false }, // LDB 201*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, false, false }, // LDBT 202*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_D, NOR, true, false }, // LDD 203*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_E, NOR, true, false }, // LDE 204*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_F, NOR, true, false }, // LDF 205*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_HX, NOR, true, false }, // LDHX 206*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_MD, NOR, false, false }, // LDMD 207*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_Q, NOR, true, false }, // LDQ 208*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_S, NOR, true, false }, // LDS 209*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_U, NOR, true, false }, // LDU 210*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_W, NOR, true, false }, // LDW 211*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_X, NOR, true, false }, // LDX 212*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_Y, NOR, true, false }, // LDY 213*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_S, NOR, false, false }, // LEAS 214*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_U, NOR, false, false }, // LEAU 215*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_X, NOR, false, false }, // LEAX 216*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_Y, NOR, false, false }, // LEAY 217*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // LSL 218*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // LSLA 219*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // LSLB 220*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // LSLD 221*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // LSLX 222*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // LSR 223*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // LSRA 224*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // LSRB 225*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // LSRD 226*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // LSRW 227*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // LSRX 228*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // MAXA 229*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // MAXM 230*9a0e4156SSadaf Ebrahimi { NOG, mmrr, NOR, NOR, true, true }, // MEM 231*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // MINA 232*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // MINM 233*9a0e4156SSadaf Ebrahimi { NOG, rwww, NOR, NOR, true, false }, // MOV 234*9a0e4156SSadaf Ebrahimi { NOG, rwww, NOR, NOR, false, false }, // MOVB 235*9a0e4156SSadaf Ebrahimi { NOG, rwww, NOR, NOR, false, false }, // MOVW 236*9a0e4156SSadaf Ebrahimi { NOG, mmmm, NOR, NOR, true, true }, // MUL 237*9a0e4156SSadaf Ebrahimi { NOG, mwrr, M680X_REG_D, NOR, true, true }, // MULD 238*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // NEG 239*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // NEGA 240*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // NEGB 241*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // NEGD 242*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // NEGX 243*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // NOP 244*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // NSA 245*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // OIM 246*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ORA 247*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ORAA 248*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ORAB 249*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ORB 250*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_CC, NOR, true, false }, // ORCC 251*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ORD 252*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // ORR 253*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_A, NOR, false, true }, // PSHA 254*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_B, NOR, false, true }, // PSHB 255*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_CC, NOR, false, true }, // PSHC 256*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_D, NOR, false, true }, // PSHD 257*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_H, NOR, false, true }, // PSHH 258*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_S, NOR, false, false }, // PSHS 259*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_S, M680X_REG_W, false, false }, // PSHSW 260*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_U, NOR, false, false }, // PSHU 261*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_U, M680X_REG_W, false, false }, // PSHUW 262*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_X, NOR, false, true }, // PSHX 263*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_Y, NOR, false, true }, // PSHY 264*9a0e4156SSadaf Ebrahimi { NOG, wmmm, M680X_REG_A, NOR, false, true }, // PULA 265*9a0e4156SSadaf Ebrahimi { NOG, wmmm, M680X_REG_B, NOR, false, true }, // PULB 266*9a0e4156SSadaf Ebrahimi { NOG, wmmm, M680X_REG_CC, NOR, false, true }, // PULC 267*9a0e4156SSadaf Ebrahimi { NOG, wmmm, M680X_REG_D, NOR, false, true }, // PULD 268*9a0e4156SSadaf Ebrahimi { NOG, wmmm, M680X_REG_H, NOR, false, true }, // PULH 269*9a0e4156SSadaf Ebrahimi { NOG, mwww, M680X_REG_S, NOR, false, false }, // PULS 270*9a0e4156SSadaf Ebrahimi { NOG, mwww, M680X_REG_S, M680X_REG_W, false, false }, // PULSW 271*9a0e4156SSadaf Ebrahimi { NOG, mwww, M680X_REG_U, NOR, false, false }, // PULU 272*9a0e4156SSadaf Ebrahimi { NOG, mwww, M680X_REG_U, M680X_REG_W, false, false }, // PULUW 273*9a0e4156SSadaf Ebrahimi { NOG, wmmm, M680X_REG_X, NOR, false, true }, // PULX 274*9a0e4156SSadaf Ebrahimi { NOG, wmmm, M680X_REG_Y, NOR, false, true }, // PULY 275*9a0e4156SSadaf Ebrahimi { NOG, mmrr, NOR, NOR, true, true }, // REV 276*9a0e4156SSadaf Ebrahimi { NOG, mmmm, NOR, NOR, true, true }, // REVW 277*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // ROL 278*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ROLA 279*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ROLB 280*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ROLD 281*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // ROLW 282*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // ROLX 283*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, false }, // ROR 284*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // RORA 285*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // RORB 286*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // RORD 287*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // RORW 288*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_X, NOR, true, false }, // RORX 289*9a0e4156SSadaf Ebrahimi { NOG, wrrr, M680X_REG_S, NOR, false, false }, // RSP 290*9a0e4156SSadaf Ebrahimi { M680X_GRP_RET, mwww, NOR, NOR, false, true }, // RTC 291*9a0e4156SSadaf Ebrahimi { M680X_GRP_IRET, mwww, NOR, NOR, false, true }, // RTI 292*9a0e4156SSadaf Ebrahimi { M680X_GRP_RET, mwww, NOR, NOR, false, true }, // RTS 293*9a0e4156SSadaf Ebrahimi { NOG, rmmm, M680X_REG_B, M680X_REG_A, true, false }, // SBA 294*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SBC 295*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SBCA 296*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // SBCB 297*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // SBCD 298*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // SBCR 299*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, false }, // SEC 300*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, false }, // SEI 301*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, false }, // SEV 302*9a0e4156SSadaf Ebrahimi { NOG, wrrr, NOR, NOR, true, true }, // SEX 303*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_W, NOR, true, true }, // SEXW 304*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // SLP 305*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_A, NOR, true, false }, // STA 306*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_A, NOR, true, false }, // STAA 307*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_B, NOR, true, false }, // STAB 308*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_B, NOR, true, false }, // STB 309*9a0e4156SSadaf Ebrahimi { NOG, rrrm, NOR, NOR, false, false }, // STBT 310*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_D, NOR, true, false }, // STD 311*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_E, NOR, true, false }, // STE 312*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_F, NOR, true, false }, // STF 313*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // STOP 314*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_HX, NOR, true, false }, // STHX 315*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_Q, NOR, true, false }, // STQ 316*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_S, NOR, true, false }, // STS 317*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_U, NOR, true, false }, // STU 318*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_W, NOR, true, false }, // STW 319*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_X, NOR, true, false }, // STX 320*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_Y, NOR, true, false }, // STY 321*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SUB 322*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SUBA 323*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_B, NOR, true, false }, // SUBB 324*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_D, NOR, true, false }, // SUBD 325*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_E, NOR, true, false }, // SUBE 326*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_F, NOR, true, false }, // SUBF 327*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, false }, // SUBR 328*9a0e4156SSadaf Ebrahimi { NOG, mrrr, M680X_REG_W, NOR, true, false }, // SUBW 329*9a0e4156SSadaf Ebrahimi { M680X_GRP_INT, mmrr, NOR, NOR, true, true }, // SWI 330*9a0e4156SSadaf Ebrahimi { M680X_GRP_INT, mmrr, NOR, NOR, true, true }, // SWI2 331*9a0e4156SSadaf Ebrahimi { M680X_GRP_INT, mmrr, NOR, NOR, true, true }, // SWI3 332*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // SYNC 333*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_A, M680X_REG_B, true, false }, // TAB 334*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_A, M680X_REG_CC, false, false }, // TAP 335*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_A, M680X_REG_X, false, false }, // TAX 336*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_B, M680X_REG_A, true, false }, // TBA 337*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // TBEQ 338*9a0e4156SSadaf Ebrahimi { NOG, rmmm, NOR, NOR, true, true }, // TBL 339*9a0e4156SSadaf Ebrahimi { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // TBNE 340*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, false, false }, // TEST 341*9a0e4156SSadaf Ebrahimi { NOG, rwww, NOR, NOR, false, false }, // TFM 342*9a0e4156SSadaf Ebrahimi { NOG, rwww, NOR, NOR, false, false }, // TFR 343*9a0e4156SSadaf Ebrahimi { NOG, rrrr, NOR, NOR, true, false }, // TIM 344*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_CC, M680X_REG_A, false, false }, // TPA 345*9a0e4156SSadaf Ebrahimi { NOG, rrrr, NOR, NOR, true, false }, // TST 346*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_A, NOR, true, false }, // TSTA 347*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_B, NOR, true, false }, // TSTB 348*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_D, NOR, true, false }, // TSTD 349*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_E, NOR, true, false }, // TSTE 350*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_F, NOR, true, false }, // TSTF 351*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_W, NOR, true, false }, // TSTW 352*9a0e4156SSadaf Ebrahimi { NOG, rrrr, M680X_REG_X, NOR, true, false }, // TSTX 353*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_S, M680X_REG_HX, false, false }, // TSX 354*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_S, M680X_REG_Y, false, false }, // TSY 355*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_X, M680X_REG_A, false, false }, // TXA 356*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_HX, M680X_REG_S, false, false }, // TXS 357*9a0e4156SSadaf Ebrahimi { NOG, rwww, M680X_REG_Y, M680X_REG_S, false, false }, // TYS 358*9a0e4156SSadaf Ebrahimi { NOG, mrrr, NOR, NOR, true, true }, // WAI 359*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, false }, // WAIT 360*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, true }, // WAV 361*9a0e4156SSadaf Ebrahimi { NOG, uuuu, NOR, NOR, true, true }, // WAVR 362*9a0e4156SSadaf Ebrahimi { NOG, mmmm, M680X_REG_D, M680X_REG_X, false, false }, // XGDX 363*9a0e4156SSadaf Ebrahimi { NOG, mmmm, M680X_REG_D, M680X_REG_Y, false, false }, // XGDY 364*9a0e4156SSadaf Ebrahimi}; 365*9a0e4156SSadaf Ebrahimi#undef NOR 366*9a0e4156SSadaf Ebrahimi#undef NOG 367*9a0e4156SSadaf Ebrahimi 368