| |
| // These temporary defines keep the following table short and handy. |
| #define NOG M680X_GRP_INVALID |
| #define NOR M680X_REG_INVALID |
| |
| static const insn_props g_insn_props[] = { |
| { NOG, uuuu, NOR, NOR, false, false }, // INVLD |
| { NOG, rmmm, M680X_REG_B, M680X_REG_A, true, false }, // ABA |
| { NOG, rmmm, M680X_REG_B, M680X_REG_X, false, false }, // ABX |
| { NOG, rmmm, M680X_REG_B, M680X_REG_Y, false, false }, // ABY |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADC |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADCA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ADCB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ADCD |
| { NOG, rmmm, NOR, NOR, true, false }, // ADCR |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADD |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ADDA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ADDB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ADDD |
| { NOG, mrrr, M680X_REG_E, NOR, true, false }, // ADDE |
| { NOG, mrrr, M680X_REG_F, NOR, true, false }, // ADDF |
| { NOG, rmmm, NOR, NOR, true, false }, // ADDR |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // ADDW |
| { NOG, rmmm, NOR, NOR, true, false }, // AIM |
| { NOG, mrrr, M680X_REG_S, NOR, false, false }, // AIS |
| { NOG, mrrr, M680X_REG_HX, NOR, false, false }, // AIX |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // AND |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ANDA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ANDB |
| { NOG, mrrr, M680X_REG_CC, NOR, true, false }, // ANDCC |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ANDD |
| { NOG, rmmm, NOR, NOR, true, false }, // ANDR |
| { NOG, mrrr, NOR, NOR, true, false }, // ASL |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ASLA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ASLB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ASLD |
| { NOG, mrrr, NOR, NOR, true, false }, // ASR |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ASRA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ASRB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ASRD |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // ASRX |
| { NOG, mrrr, NOR, NOR, false, false }, // BAND |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BCC |
| { NOG, mrrr, NOR, NOR, true, false }, // BCLR |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BCS |
| { NOG, mrrr, NOR, NOR, false, false }, // BEOR |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BEQ |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BGE |
| { NOG, uuuu, NOR, NOR, false, false }, // BGND |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BGT |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BHCC |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BHCS |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BHI |
| { NOG, mrrr, NOR, NOR, false, false }, // BIAND |
| { NOG, mrrr, NOR, NOR, false, false }, // BIEOR |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BIH |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BIL |
| { NOG, mrrr, NOR, NOR, false, false }, // BIOR |
| { NOG, rrrr, M680X_REG_A, NOR, true, false }, // BIT |
| { NOG, rrrr, M680X_REG_A, NOR, true, false }, // BITA |
| { NOG, rrrr, M680X_REG_B, NOR, true, false }, // BITB |
| { NOG, rrrr, M680X_REG_D, NOR, true, false }, // BITD |
| { NOG, rrrr, M680X_REG_MD, NOR, true, false }, // BITMD |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BLE |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BLS |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BLT |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BMC |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BMI |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BMS |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BNE |
| { NOG, mrrr, NOR, NOR, false, false }, // BOR |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BPL |
| { M680X_GRP_JUMP, rruu, NOR, NOR, false, false }, // BRCLR |
| { M680X_GRP_JUMP, rruu, NOR, NOR, false, false }, // BRSET |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BRA |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BRN never branches |
| { NOG, mrrr, NOR, NOR, true, false }, // BSET |
| { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // BSR |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BVC |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // BVS |
| { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // CALL |
| { NOG, rrrr, M680X_REG_B, M680X_REG_A, true, false }, // CBA |
| { M680X_GRP_JUMP, rruu, M680X_REG_A, NOR, false, false }, // CBEQ |
| { M680X_GRP_JUMP, rruu, M680X_REG_A, NOR, false, false }, // CBEQA |
| { M680X_GRP_JUMP, rruu, M680X_REG_X, NOR, false, false }, // CBEQX |
| { NOG, uuuu, NOR, NOR, true, false }, // CLC |
| { NOG, uuuu, NOR, NOR, true, false }, // CLI |
| { NOG, wrrr, NOR, NOR, true, false }, // CLR |
| { NOG, wrrr, M680X_REG_A, NOR, true, false }, // CLRA |
| { NOG, wrrr, M680X_REG_B, NOR, true, false }, // CLRB |
| { NOG, wrrr, M680X_REG_D, NOR, true, false }, // CLRD |
| { NOG, wrrr, M680X_REG_E, NOR, true, false }, // CLRE |
| { NOG, wrrr, M680X_REG_F, NOR, true, false }, // CLRF |
| { NOG, wrrr, M680X_REG_H, NOR, true, false }, // CLRH |
| { NOG, wrrr, M680X_REG_W, NOR, true, false }, // CLRW |
| { NOG, wrrr, M680X_REG_X, NOR, true, false }, // CLRX |
| { NOG, uuuu, NOR, NOR, true, false }, // CLV |
| { NOG, rrrr, M680X_REG_A, NOR, true, false }, // CMP |
| { NOG, rrrr, M680X_REG_A, NOR, true, false }, // CMPA |
| { NOG, rrrr, M680X_REG_B, NOR, true, false }, // CMPB |
| { NOG, rrrr, M680X_REG_D, NOR, true, false }, // CMPD |
| { NOG, rrrr, M680X_REG_E, NOR, true, false }, // CMPE |
| { NOG, rrrr, M680X_REG_F, NOR, true, false }, // CMPF |
| { NOG, rrrr, NOR, NOR, true, false }, // CMPR |
| { NOG, rrrr, M680X_REG_S, NOR, true, false }, // CMPS |
| { NOG, rrrr, M680X_REG_U, NOR, true, false }, // CMPU |
| { NOG, rrrr, M680X_REG_W, NOR, true, false }, // CMPW |
| { NOG, rrrr, M680X_REG_X, NOR, true, false }, // CMPX |
| { NOG, rrrr, M680X_REG_Y, NOR, true, false }, // CMPY |
| { NOG, mrrr, NOR, NOR, true, false }, // COM |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // COMA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // COMB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // COMD |
| { NOG, mrrr, M680X_REG_E, NOR, true, false }, // COME |
| { NOG, mrrr, M680X_REG_F, NOR, true, false }, // COMF |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // COMW |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // COMX |
| { NOG, rrrr, M680X_REG_D, NOR, true, false }, // CPD |
| { NOG, rrrr, M680X_REG_HX, NOR, true, false }, // CPHX |
| { NOG, rrrr, M680X_REG_S, NOR, true, false }, // CPS |
| { NOG, rrrr, M680X_REG_X, NOR, true, false }, // CPX |
| { NOG, rrrr, M680X_REG_Y, NOR, true, false }, // CPY |
| { NOG, mrrr, NOR, NOR, true, true }, // CWAI |
| { NOG, mrrr, NOR, NOR, true, true }, // DAA |
| { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // DBEQ |
| { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // DBNE |
| { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // DBNZ |
| { M680X_GRP_JUMP, muuu, M680X_REG_A, NOR, false, false }, // DBNZA |
| { M680X_GRP_JUMP, muuu, M680X_REG_X, NOR, false, false }, // DBNZX |
| { NOG, mrrr, NOR, NOR, true, false }, // DEC |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // DECA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // DECB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // DECD |
| { NOG, mrrr, M680X_REG_E, NOR, true, false }, // DECE |
| { NOG, mrrr, M680X_REG_F, NOR, true, false }, // DECF |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // DECW |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // DECX |
| { NOG, mrrr, M680X_REG_S, NOR, false, false }, // DES |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // DEX |
| { NOG, mrrr, M680X_REG_Y, NOR, true, false }, // DEY |
| { NOG, mmrr, NOR, NOR, true, true }, // DIV |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // DIVD |
| { NOG, mrrr, M680X_REG_Q, NOR, true, false }, // DIVQ |
| { NOG, mmrr, NOR, NOR, true, true }, // EDIV |
| { NOG, mmrr, NOR, NOR, true, true }, // EDIVS |
| { NOG, rmmm, NOR, NOR, true, false }, // EIM |
| { NOG, mrrr, NOR, NOR, true, true }, // EMACS |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // EMAXD |
| { NOG, mrrr, NOR, NOR, true, true }, // EMAXM |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // EMIND |
| { NOG, mrrr, NOR, NOR, true, true }, // EMINM |
| { NOG, mmrr, NOR, NOR, true, true }, // EMUL |
| { NOG, mmrr, NOR, NOR, true, true }, // EMULS |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // EOR |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // EORA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // EORB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // EORD |
| { NOG, rmmm, NOR, NOR, true, false }, // EORR |
| { NOG, rmmm, NOR, NOR, true, true }, // ETBL |
| { NOG, mmmm, NOR, NOR, false, false }, // EXG |
| { NOG, mmmm, NOR, NOR, true, true }, // FDIV |
| { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // IBEQ |
| { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // IBNE |
| { NOG, mmmm, NOR, NOR, true, true }, // IDIV |
| { NOG, mmmm, NOR, NOR, true, true }, // IDIVS |
| { NOG, uuuu, NOR, NOR, false, false }, // ILLGL |
| { NOG, mrrr, NOR, NOR, true, false }, // INC |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // INCA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // INCB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // INCD |
| { NOG, mrrr, M680X_REG_E, NOR, true, false }, // INCE |
| { NOG, mrrr, M680X_REG_F, NOR, true, false }, // INCF |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // INCW |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // INCX |
| { NOG, mrrr, M680X_REG_S, NOR, false, false }, // INS |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // INX |
| { NOG, mrrr, M680X_REG_Y, NOR, true, false }, // INY |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // JMP |
| { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // JSR |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBCC |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBCS |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBEQ |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBGE |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBGT |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBHI |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBLE |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBLS |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBLT |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBMI |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBNE |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBPL |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBRA |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBRN never branches |
| { M680X_GRP_CALL, uuuu, NOR, NOR, false, true }, // LBSR |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBVC |
| { M680X_GRP_JUMP, uuuu, NOR, NOR, false, false }, // LBVS |
| { NOG, wrrr, M680X_REG_A, NOR, true, false }, // LDA |
| { NOG, wrrr, M680X_REG_A, NOR, true, false }, // LDAA |
| { NOG, wrrr, M680X_REG_B, NOR, true, false }, // LDAB |
| { NOG, wrrr, M680X_REG_B, NOR, true, false }, // LDB |
| { NOG, mrrr, NOR, NOR, false, false }, // LDBT |
| { NOG, wrrr, M680X_REG_D, NOR, true, false }, // LDD |
| { NOG, wrrr, M680X_REG_E, NOR, true, false }, // LDE |
| { NOG, wrrr, M680X_REG_F, NOR, true, false }, // LDF |
| { NOG, wrrr, M680X_REG_HX, NOR, true, false }, // LDHX |
| { NOG, mrrr, M680X_REG_MD, NOR, false, false }, // LDMD |
| { NOG, wrrr, M680X_REG_Q, NOR, true, false }, // LDQ |
| { NOG, wrrr, M680X_REG_S, NOR, true, false }, // LDS |
| { NOG, wrrr, M680X_REG_U, NOR, true, false }, // LDU |
| { NOG, wrrr, M680X_REG_W, NOR, true, false }, // LDW |
| { NOG, wrrr, M680X_REG_X, NOR, true, false }, // LDX |
| { NOG, wrrr, M680X_REG_Y, NOR, true, false }, // LDY |
| { NOG, wrrr, M680X_REG_S, NOR, false, false }, // LEAS |
| { NOG, wrrr, M680X_REG_U, NOR, false, false }, // LEAU |
| { NOG, wrrr, M680X_REG_X, NOR, false, false }, // LEAX |
| { NOG, wrrr, M680X_REG_Y, NOR, false, false }, // LEAY |
| { NOG, mrrr, NOR, NOR, true, false }, // LSL |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // LSLA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // LSLB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // LSLD |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // LSLX |
| { NOG, mrrr, NOR, NOR, true, false }, // LSR |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // LSRA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // LSRB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // LSRD |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // LSRW |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // LSRX |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // MAXA |
| { NOG, mrrr, NOR, NOR, true, true }, // MAXM |
| { NOG, mmrr, NOR, NOR, true, true }, // MEM |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // MINA |
| { NOG, mrrr, NOR, NOR, true, true }, // MINM |
| { NOG, rwww, NOR, NOR, true, false }, // MOV |
| { NOG, rwww, NOR, NOR, false, false }, // MOVB |
| { NOG, rwww, NOR, NOR, false, false }, // MOVW |
| { NOG, mmmm, NOR, NOR, true, true }, // MUL |
| { NOG, mwrr, M680X_REG_D, NOR, true, true }, // MULD |
| { NOG, mrrr, NOR, NOR, true, false }, // NEG |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // NEGA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // NEGB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // NEGD |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // NEGX |
| { NOG, uuuu, NOR, NOR, false, false }, // NOP |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // NSA |
| { NOG, rmmm, NOR, NOR, true, false }, // OIM |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ORA |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ORAA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ORAB |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ORB |
| { NOG, mrrr, M680X_REG_CC, NOR, true, false }, // ORCC |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ORD |
| { NOG, rmmm, NOR, NOR, true, false }, // ORR |
| { NOG, rmmm, M680X_REG_A, NOR, false, true }, // PSHA |
| { NOG, rmmm, M680X_REG_B, NOR, false, true }, // PSHB |
| { NOG, rmmm, M680X_REG_CC, NOR, false, true }, // PSHC |
| { NOG, rmmm, M680X_REG_D, NOR, false, true }, // PSHD |
| { NOG, rmmm, M680X_REG_H, NOR, false, true }, // PSHH |
| { NOG, mrrr, M680X_REG_S, NOR, false, false }, // PSHS |
| { NOG, mrrr, M680X_REG_S, M680X_REG_W, false, false }, // PSHSW |
| { NOG, mrrr, M680X_REG_U, NOR, false, false }, // PSHU |
| { NOG, mrrr, M680X_REG_U, M680X_REG_W, false, false }, // PSHUW |
| { NOG, rmmm, M680X_REG_X, NOR, false, true }, // PSHX |
| { NOG, rmmm, M680X_REG_Y, NOR, false, true }, // PSHY |
| { NOG, wmmm, M680X_REG_A, NOR, false, true }, // PULA |
| { NOG, wmmm, M680X_REG_B, NOR, false, true }, // PULB |
| { NOG, wmmm, M680X_REG_CC, NOR, false, true }, // PULC |
| { NOG, wmmm, M680X_REG_D, NOR, false, true }, // PULD |
| { NOG, wmmm, M680X_REG_H, NOR, false, true }, // PULH |
| { NOG, mwww, M680X_REG_S, NOR, false, false }, // PULS |
| { NOG, mwww, M680X_REG_S, M680X_REG_W, false, false }, // PULSW |
| { NOG, mwww, M680X_REG_U, NOR, false, false }, // PULU |
| { NOG, mwww, M680X_REG_U, M680X_REG_W, false, false }, // PULUW |
| { NOG, wmmm, M680X_REG_X, NOR, false, true }, // PULX |
| { NOG, wmmm, M680X_REG_Y, NOR, false, true }, // PULY |
| { NOG, mmrr, NOR, NOR, true, true }, // REV |
| { NOG, mmmm, NOR, NOR, true, true }, // REVW |
| { NOG, mrrr, NOR, NOR, true, false }, // ROL |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // ROLA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // ROLB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // ROLD |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // ROLW |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // ROLX |
| { NOG, mrrr, NOR, NOR, true, false }, // ROR |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // RORA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // RORB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // RORD |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // RORW |
| { NOG, mrrr, M680X_REG_X, NOR, true, false }, // RORX |
| { NOG, wrrr, M680X_REG_S, NOR, false, false }, // RSP |
| { M680X_GRP_RET, mwww, NOR, NOR, false, true }, // RTC |
| { M680X_GRP_IRET, mwww, NOR, NOR, false, true }, // RTI |
| { M680X_GRP_RET, mwww, NOR, NOR, false, true }, // RTS |
| { NOG, rmmm, M680X_REG_B, M680X_REG_A, true, false }, // SBA |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SBC |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SBCA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // SBCB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // SBCD |
| { NOG, rmmm, NOR, NOR, true, false }, // SBCR |
| { NOG, uuuu, NOR, NOR, true, false }, // SEC |
| { NOG, uuuu, NOR, NOR, true, false }, // SEI |
| { NOG, uuuu, NOR, NOR, true, false }, // SEV |
| { NOG, wrrr, NOR, NOR, true, true }, // SEX |
| { NOG, rwww, M680X_REG_W, NOR, true, true }, // SEXW |
| { NOG, uuuu, NOR, NOR, false, false }, // SLP |
| { NOG, rwww, M680X_REG_A, NOR, true, false }, // STA |
| { NOG, rwww, M680X_REG_A, NOR, true, false }, // STAA |
| { NOG, rwww, M680X_REG_B, NOR, true, false }, // STAB |
| { NOG, rwww, M680X_REG_B, NOR, true, false }, // STB |
| { NOG, rrrm, NOR, NOR, false, false }, // STBT |
| { NOG, rwww, M680X_REG_D, NOR, true, false }, // STD |
| { NOG, rwww, M680X_REG_E, NOR, true, false }, // STE |
| { NOG, rwww, M680X_REG_F, NOR, true, false }, // STF |
| { NOG, uuuu, NOR, NOR, false, false }, // STOP |
| { NOG, rwww, M680X_REG_HX, NOR, true, false }, // STHX |
| { NOG, rwww, M680X_REG_Q, NOR, true, false }, // STQ |
| { NOG, rwww, M680X_REG_S, NOR, true, false }, // STS |
| { NOG, rwww, M680X_REG_U, NOR, true, false }, // STU |
| { NOG, rwww, M680X_REG_W, NOR, true, false }, // STW |
| { NOG, rwww, M680X_REG_X, NOR, true, false }, // STX |
| { NOG, rwww, M680X_REG_Y, NOR, true, false }, // STY |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SUB |
| { NOG, mrrr, M680X_REG_A, NOR, true, false }, // SUBA |
| { NOG, mrrr, M680X_REG_B, NOR, true, false }, // SUBB |
| { NOG, mrrr, M680X_REG_D, NOR, true, false }, // SUBD |
| { NOG, mrrr, M680X_REG_E, NOR, true, false }, // SUBE |
| { NOG, mrrr, M680X_REG_F, NOR, true, false }, // SUBF |
| { NOG, rmmm, NOR, NOR, true, false }, // SUBR |
| { NOG, mrrr, M680X_REG_W, NOR, true, false }, // SUBW |
| { M680X_GRP_INT, mmrr, NOR, NOR, true, true }, // SWI |
| { M680X_GRP_INT, mmrr, NOR, NOR, true, true }, // SWI2 |
| { M680X_GRP_INT, mmrr, NOR, NOR, true, true }, // SWI3 |
| { NOG, uuuu, NOR, NOR, false, false }, // SYNC |
| { NOG, rwww, M680X_REG_A, M680X_REG_B, true, false }, // TAB |
| { NOG, rwww, M680X_REG_A, M680X_REG_CC, false, false }, // TAP |
| { NOG, rwww, M680X_REG_A, M680X_REG_X, false, false }, // TAX |
| { NOG, rwww, M680X_REG_B, M680X_REG_A, true, false }, // TBA |
| { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // TBEQ |
| { NOG, rmmm, NOR, NOR, true, true }, // TBL |
| { M680X_GRP_JUMP, muuu, NOR, NOR, false, false }, // TBNE |
| { NOG, uuuu, NOR, NOR, false, false }, // TEST |
| { NOG, rwww, NOR, NOR, false, false }, // TFM |
| { NOG, rwww, NOR, NOR, false, false }, // TFR |
| { NOG, rrrr, NOR, NOR, true, false }, // TIM |
| { NOG, rwww, M680X_REG_CC, M680X_REG_A, false, false }, // TPA |
| { NOG, rrrr, NOR, NOR, true, false }, // TST |
| { NOG, rrrr, M680X_REG_A, NOR, true, false }, // TSTA |
| { NOG, rrrr, M680X_REG_B, NOR, true, false }, // TSTB |
| { NOG, rrrr, M680X_REG_D, NOR, true, false }, // TSTD |
| { NOG, rrrr, M680X_REG_E, NOR, true, false }, // TSTE |
| { NOG, rrrr, M680X_REG_F, NOR, true, false }, // TSTF |
| { NOG, rrrr, M680X_REG_W, NOR, true, false }, // TSTW |
| { NOG, rrrr, M680X_REG_X, NOR, true, false }, // TSTX |
| { NOG, rwww, M680X_REG_S, M680X_REG_HX, false, false }, // TSX |
| { NOG, rwww, M680X_REG_S, M680X_REG_Y, false, false }, // TSY |
| { NOG, rwww, M680X_REG_X, M680X_REG_A, false, false }, // TXA |
| { NOG, rwww, M680X_REG_HX, M680X_REG_S, false, false }, // TXS |
| { NOG, rwww, M680X_REG_Y, M680X_REG_S, false, false }, // TYS |
| { NOG, mrrr, NOR, NOR, true, true }, // WAI |
| { NOG, uuuu, NOR, NOR, true, false }, // WAIT |
| { NOG, uuuu, NOR, NOR, true, true }, // WAV |
| { NOG, uuuu, NOR, NOR, true, true }, // WAVR |
| { NOG, mmmm, M680X_REG_D, M680X_REG_X, false, false }, // XGDX |
| { NOG, mmmm, M680X_REG_D, M680X_REG_Y, false, false }, // XGDY |
| }; |
| #undef NOR |
| #undef NOG |
| |