You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
367 lines
19 KiB
367 lines
19 KiB
|
|
// 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 |
|
|
|
|