mirror of https://github.com/mgba-emu/mgba.git
LR35902: Implement more LD A memory instructions
This commit is contained in:
parent
9a4db4b03d
commit
7c989fd818
|
@ -20,23 +20,23 @@
|
|||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDA_BC), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECBC), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, INCC), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECC), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDC_), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDDE), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDDE_A), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, INCDE), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, INCD), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECD), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDD_), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, JR), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDA_DE), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECDE), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, INCE), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECE), \
|
||||
|
@ -52,7 +52,7 @@
|
|||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, JRZ), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDA_IHL), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECHL), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, INCL), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECL), \
|
||||
|
@ -68,7 +68,7 @@
|
|||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, JRC), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, STUB), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, LDA_DHL), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECSP), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, INCA), \
|
||||
DECLARE_INSTRUCTION_LR35902(EMITTER, DECA), \
|
||||
|
|
|
@ -207,12 +207,15 @@ DEFINE_INSTRUCTION_LR35902(LDHL_, \
|
|||
cpu->executionState = LR35902_CORE_READ_PC; \
|
||||
cpu->instruction = _LR35902InstructionLDHL_Bus;)
|
||||
|
||||
#define DEFINE_ALU_INSTRUCTION_LR35902_MEM(NAME, REG) \
|
||||
DEFINE_INSTRUCTION_LR35902(NAME ## REG, \
|
||||
cpu->executionState = LR35902_CORE_MEMORY_LOAD; \
|
||||
cpu->index = LR35902Read ## REG (cpu); \
|
||||
cpu->instruction = _LR35902Instruction ## NAME ## Bus;)
|
||||
|
||||
#define DEFINE_ALU_INSTRUCTION_LR35902(NAME) \
|
||||
DEFINE_ ## NAME ## _INSTRUCTION_LR35902(Bus, cpu->bus); \
|
||||
DEFINE_INSTRUCTION_LR35902(NAME ## HL, \
|
||||
cpu->executionState = LR35902_CORE_MEMORY_LOAD; \
|
||||
cpu->index = LR35902ReadHL(cpu); \
|
||||
cpu->instruction = _LR35902Instruction ## NAME ## Bus;) \
|
||||
DEFINE_ALU_INSTRUCTION_LR35902_MEM(NAME, HL) \
|
||||
DEFINE_INSTRUCTION_LR35902(NAME, \
|
||||
cpu->executionState = LR35902_CORE_READ_PC; \
|
||||
cpu->instruction = _LR35902Instruction ## NAME ## Bus;) \
|
||||
|
@ -240,6 +243,8 @@ DEFINE_ALU_INSTRUCTION_LR35902(LDH_);
|
|||
DEFINE_ALU_INSTRUCTION_LR35902(LDL_);
|
||||
DEFINE_ALU_INSTRUCTION_LR35902_NOHL(LDHL_);
|
||||
DEFINE_ALU_INSTRUCTION_LR35902(LDA_);
|
||||
DEFINE_ALU_INSTRUCTION_LR35902_MEM(LDA_, BC);
|
||||
DEFINE_ALU_INSTRUCTION_LR35902_MEM(LDA_, DE);
|
||||
|
||||
DEFINE_INSTRUCTION_LR35902(LDBCDelay, \
|
||||
cpu->c = cpu->bus; \
|
||||
|
@ -305,6 +310,18 @@ DEFINE_INSTRUCTION_LR35902(LDDHLA, \
|
|||
cpu->executionState = LR35902_CORE_MEMORY_STORE; \
|
||||
cpu->instruction = _LR35902InstructionNOP;)
|
||||
|
||||
DEFINE_INSTRUCTION_LR35902(LDA_IHL, \
|
||||
cpu->index = LR35902ReadHL(cpu); \
|
||||
LR35902WriteHL(cpu, cpu->index + 1); \
|
||||
cpu->executionState = LR35902_CORE_MEMORY_LOAD; \
|
||||
cpu->instruction = _LR35902InstructionLDA_Bus;)
|
||||
|
||||
DEFINE_INSTRUCTION_LR35902(LDA_DHL, \
|
||||
cpu->index = LR35902ReadHL(cpu); \
|
||||
LR35902WriteHL(cpu, cpu->index - 1); \
|
||||
cpu->executionState = LR35902_CORE_MEMORY_LOAD; \
|
||||
cpu->instruction = _LR35902InstructionLDA_Bus;)
|
||||
|
||||
DEFINE_INSTRUCTION_LR35902(LDIAFinish, \
|
||||
cpu->index |= cpu->bus << 8;
|
||||
cpu->bus = cpu->a; \
|
||||
|
|
Loading…
Reference in New Issue