diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2020-11-20 15:10:24 -0500 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2020-11-20 15:10:24 -0500 |
commit | 83ce1151ee1f06ae6b1c5c1018cc2489494e5ea4 (patch) | |
tree | ba4edade46c57ec5119d01ab8a7ad9f7943c6804 /tables.h | |
parent | dc7ebb9d424bb39d59f09b8498746beb871c46f4 (diff) |
- Implemented support for Sux's base extension.
This is the biggest milestone I've reached for this
project, since the base extension changes alot about
what Sux can do by default, and now makes it a viable
instruction set for modern day use, when compared
with other instruction sets.
Diffstat (limited to 'tables.h')
-rw-r--r-- | tables.h | 168 |
1 files changed, 167 insertions, 1 deletions
@@ -104,7 +104,7 @@ static const uint8_t optype[0x100] = { [XOR_B ] = BREG, [CMP_B ] = BREG, [DEB_IMP ] = IMPL, - [TXS_IMM ] = IMM, + [TXS_IMP ] = IMPL, [STY_IN ] = IND, [PLA_IMP ] = IMPL, [BCC_REL ] = REL, @@ -171,3 +171,169 @@ static const uint8_t optype[0x100] = { [CPB_IY ] = INDY, [PLX_IMP ] = IMPL }; + +static const uint8_t ext_optype[0x100] = { + [LEA_AY ] = ABSY, + [ADD_IMM] = IMM, + [LEA_Z ] = ZM, + [CPE_IMM] = IMM, + [CLZ_Z ] = ZM, + [ADD_Z ] = ZM, + [STB_E ] = EIND, + [CPE_Z ] = ZM, + [LNG_IMM] = IMM, + [LNG_E ] = EIND, + [JMP_E ] = EIND, + [ADC_E ] = EIND, + [ROR_E ] = EIND, + [LEA_AB ] = ABS, + [CLZ_AB ] = ABS, + [ADD_AB ] = ABS, + [LEA_ZY ] = ZMY, + [CPE_AB ] = ABS, + [CLZ_E ] = EIND, + [ADD_E ] = EIND, + [LDX_E ] = EIND, + [SNG_E ] = EIND, + [PEA_AY ] = ABSY, + [SUB_IMM] = IMM, + [PEA_Z ] = ZM, + [CLO_Z ] = ZM, + [SUB_Z ] = ZM, + [STX_E ] = EIND, + [ICE_Z ] = ZM, + [LPO_IMM] = IMM, + [LPO_E ] = EIND, + [JSR_E ] = EIND, + [SBC_E ] = EIND, + [MUL_E ] = EIND, + [PEA_AB ] = ABS, + [CLO_AB ] = ABS, + [SUB_AB ] = ABS, + [PEA_ZY ] = ZMY, + [ICE_AB ] = ABS, + [CLO_E ] = EIND, + [SUB_E ] = EIND, + [CPB_E ] = EIND, + [ICE_E ] = EIND, + [SPO_E ] = EIND, + [LDS_IMM] = IMM, + [LEA_AI ] = AIND, + [LDS_Z ] = ZM, + [ADE_IMM] = IMM, + [LEA_IN ] = IND, + [BIT_Z ] = ZM, + [ADE_Z ] = ZM, + [CPX_E ] = EIND, + [LLM_Z ] = ZM, + [LCS_IMM] = IMM, + [LCS_E ] = EIND, + [LDS_AB ] = ABS, + [AND_E ] = EIND, + [DIV_E ] = EIND, + [LEA_AX ] = ABSX, + [LDS_E ] = EIND, + [BIT_AB ] = ABS, + [ADE_AB ] = ABS, + [LEA_ZX ] = ZMX, + [LLM_AB ] = ABS, + [BIT_E ] = EIND, + [CPY_E ] = EIND, + [LLM_E ] = EIND, + [SCS_E ] = EIND, + [SCO_IMM] = IMM, + [PEA_AI ] = AIND, + [SCO_Z ] = ZM, + [SBE_IMM] = IMM, + [PEA_IN ] = IND, + [SBE_Z ] = ZM, + [PHE_IMP] = IMPL, + [LRM_Z ] = ZM, + [LCC_IMM] = IMM, + [LCC_E ] = EIND, + [SCO_AB ] = ABS, + [ORA_E ] = EIND, + [ASR_E ] = EIND, + [PEA_AX ] = ABSX, + [SCO_E ] = EIND, + [SBE_AB ] = ABS, + [PEA_ZX ] = ZMX, + [LRM_AB ] = ABS, + [PLE_IMP] = IMPL, + [LRM_E ] = EIND, + [SCC_E ] = EIND, + [ECO_IMM] = IMM, + [DEC_E ] = EIND, + [LEA_AIY] = AINDY, + [ECO_Z ] = ZM, + [ADS_IMM] = IMM, + [LEA_IY ] = INDY, + [ADS_Z ] = ZM, + [DEE_IMP] = IMPL, + [RLM_Z ] = ZM, + [LEQ_IMM] = IMM, + [LEQ_E ] = EIND, + [ECO_AB ] = ABS, + [XOR_E ] = EIND, + [CMP_E ] = EIND, + [LEA_AIX] = AINDX, + [ECO_E ] = EIND, + [ADS_AB ] = ABS, + [LEA_IX ] = INDX, + [RLM_AB ] = ABS, + [ADS_E ] = EIND, + [INE_IMP] = IMPL, + [RLM_E ] = EIND, + [SEQ_E ] = EIND, + [INC_E ] = EIND, + [PEA_AIY] = AINDY, + [STS_Z ] = ZM, + [SBS_IMM] = IMM, + [PEA_IY ] = INDY, + [SBS_Z ] = ZM, + [DES_IMP] = IMPL, + [RRM_Z ] = ZM, + [LNE_IMM] = IMM, + [LNE_E ] = EIND, + [STS_AB ] = ABS, + [LSL_E ] = EIND, + [LDY_E ] = EIND, + [PEA_AIX] = AINDX, + [STS_E ] = EIND, + [SBS_AB ] = ABS, + [PEA_IX ] = INDX, + [RRM_AB ] = ABS, + [SBS_E ] = EIND, + [INS_IMP] = IMPL, + [RRM_E ] = EIND, + [REP_REL] = REL, + [SNE_E ] = EIND, + [STY_E ] = EIND, + [STE_Z ] = ZM, + [NOT_A ] = IMPL, + [NOT_Z ] = ZM, + [MMV_IMP] = IMPL, + [ARM_Z ] = ZM, + [REQ_REL] = REL, + [STE_AB ] = ABS, + [LSR_E ] = EIND, + [LDA_E ] = EIND, + [NOT_AB ] = ABS, + [ARM_AB ] = ABS, + [NOT_E ] = EIND, + [ARM_E ] = EIND, + [RNE_REL] = REL, + [STA_E ] = EIND, + [STZ_Z ] = ZM, + [SWP_A ] = IMPL, + [SWP_Z ] = ZM, + [PCN_Z ] = ZM, + [STZ_AB ] = ABS, + [ROL_E ] = EIND, + [LDB_E ] = EIND, + [STZ_E ] = EIND, + [SWP_AB ] = ABS, + [PCN_AB ] = ABS, + [SWP_E ] = EIND, + [PCN_E ] = EIND +}; |