more shit! some start of ALU emulation

This commit is contained in:
StapleButter
2016-11-25 00:08:53 +01:00
parent f74fb2dd27
commit 97ec988dae
9 changed files with 733 additions and 80 deletions

126
ARMInterpreter_ALU.h Normal file
View File

@ -0,0 +1,126 @@
#ifndef ARMINTERPRETER_ALU_H
#define ARMINTERPRETER_ALU_H
namespace ARMInterpreter
{
s32 A_TST_IMM(ARM* cpu);
s32 A_TST_REG_LSL_IMM(ARM* cpu);
s32 A_TST_REG_LSR_IMM(ARM* cpu);
s32 A_TST_REG_ASR_IMM(ARM* cpu);
s32 A_TST_REG_ROR_IMM(ARM* cpu);
s32 A_TST_REG_LSL_REG(ARM* cpu);
s32 A_TST_REG_LSR_REG(ARM* cpu);
s32 A_TST_REG_ASR_REG(ARM* cpu);
s32 A_TST_REG_ROR_REG(ARM* cpu);
s32 A_TEQ_IMM(ARM* cpu);
s32 A_TEQ_REG_LSL_IMM(ARM* cpu);
s32 A_TEQ_REG_LSR_IMM(ARM* cpu);
s32 A_TEQ_REG_ASR_IMM(ARM* cpu);
s32 A_TEQ_REG_ROR_IMM(ARM* cpu);
s32 A_TEQ_REG_LSL_REG(ARM* cpu);
s32 A_TEQ_REG_LSR_REG(ARM* cpu);
s32 A_TEQ_REG_ASR_REG(ARM* cpu);
s32 A_TEQ_REG_ROR_REG(ARM* cpu);
s32 A_CMP_IMM(ARM* cpu);
s32 A_CMP_REG_LSL_IMM(ARM* cpu);
s32 A_CMP_REG_LSR_IMM(ARM* cpu);
s32 A_CMP_REG_ASR_IMM(ARM* cpu);
s32 A_CMP_REG_ROR_IMM(ARM* cpu);
s32 A_CMP_REG_LSL_REG(ARM* cpu);
s32 A_CMP_REG_LSR_REG(ARM* cpu);
s32 A_CMP_REG_ASR_REG(ARM* cpu);
s32 A_CMP_REG_ROR_REG(ARM* cpu);
s32 A_CMN_IMM(ARM* cpu);
s32 A_CMN_REG_LSL_IMM(ARM* cpu);
s32 A_CMN_REG_LSR_IMM(ARM* cpu);
s32 A_CMN_REG_ASR_IMM(ARM* cpu);
s32 A_CMN_REG_ROR_IMM(ARM* cpu);
s32 A_CMN_REG_LSL_REG(ARM* cpu);
s32 A_CMN_REG_LSR_REG(ARM* cpu);
s32 A_CMN_REG_ASR_REG(ARM* cpu);
s32 A_CMN_REG_ROR_REG(ARM* cpu);
s32 A_ORR_IMM(ARM* cpu);
s32 A_ORR_REG_LSL_IMM(ARM* cpu);
s32 A_ORR_REG_LSR_IMM(ARM* cpu);
s32 A_ORR_REG_ASR_IMM(ARM* cpu);
s32 A_ORR_REG_ROR_IMM(ARM* cpu);
s32 A_ORR_REG_LSL_REG(ARM* cpu);
s32 A_ORR_REG_LSR_REG(ARM* cpu);
s32 A_ORR_REG_ASR_REG(ARM* cpu);
s32 A_ORR_REG_ROR_REG(ARM* cpu);
s32 A_ORR_IMM_S(ARM* cpu);
s32 A_ORR_REG_LSL_IMM_S(ARM* cpu);
s32 A_ORR_REG_LSR_IMM_S(ARM* cpu);
s32 A_ORR_REG_ASR_IMM_S(ARM* cpu);
s32 A_ORR_REG_ROR_IMM_S(ARM* cpu);
s32 A_ORR_REG_LSL_REG_S(ARM* cpu);
s32 A_ORR_REG_LSR_REG_S(ARM* cpu);
s32 A_ORR_REG_ASR_REG_S(ARM* cpu);
s32 A_ORR_REG_ROR_REG_S(ARM* cpu);
s32 A_MOV_IMM(ARM* cpu);
s32 A_MOV_REG_LSL_IMM(ARM* cpu);
s32 A_MOV_REG_LSR_IMM(ARM* cpu);
s32 A_MOV_REG_ASR_IMM(ARM* cpu);
s32 A_MOV_REG_ROR_IMM(ARM* cpu);
s32 A_MOV_REG_LSL_REG(ARM* cpu);
s32 A_MOV_REG_LSR_REG(ARM* cpu);
s32 A_MOV_REG_ASR_REG(ARM* cpu);
s32 A_MOV_REG_ROR_REG(ARM* cpu);
s32 A_MOV_IMM_S(ARM* cpu);
s32 A_MOV_REG_LSL_IMM_S(ARM* cpu);
s32 A_MOV_REG_LSR_IMM_S(ARM* cpu);
s32 A_MOV_REG_ASR_IMM_S(ARM* cpu);
s32 A_MOV_REG_ROR_IMM_S(ARM* cpu);
s32 A_MOV_REG_LSL_REG_S(ARM* cpu);
s32 A_MOV_REG_LSR_REG_S(ARM* cpu);
s32 A_MOV_REG_ASR_REG_S(ARM* cpu);
s32 A_MOV_REG_ROR_REG_S(ARM* cpu);
s32 A_BIC_IMM(ARM* cpu);
s32 A_BIC_REG_LSL_IMM(ARM* cpu);
s32 A_BIC_REG_LSR_IMM(ARM* cpu);
s32 A_BIC_REG_ASR_IMM(ARM* cpu);
s32 A_BIC_REG_ROR_IMM(ARM* cpu);
s32 A_BIC_REG_LSL_REG(ARM* cpu);
s32 A_BIC_REG_LSR_REG(ARM* cpu);
s32 A_BIC_REG_ASR_REG(ARM* cpu);
s32 A_BIC_REG_ROR_REG(ARM* cpu);
s32 A_BIC_IMM_S(ARM* cpu);
s32 A_BIC_REG_LSL_IMM_S(ARM* cpu);
s32 A_BIC_REG_LSR_IMM_S(ARM* cpu);
s32 A_BIC_REG_ASR_IMM_S(ARM* cpu);
s32 A_BIC_REG_ROR_IMM_S(ARM* cpu);
s32 A_BIC_REG_LSL_REG_S(ARM* cpu);
s32 A_BIC_REG_LSR_REG_S(ARM* cpu);
s32 A_BIC_REG_ASR_REG_S(ARM* cpu);
s32 A_BIC_REG_ROR_REG_S(ARM* cpu);
s32 A_MVN_IMM(ARM* cpu);
s32 A_MVN_REG_LSL_IMM(ARM* cpu);
s32 A_MVN_REG_LSR_IMM(ARM* cpu);
s32 A_MVN_REG_ASR_IMM(ARM* cpu);
s32 A_MVN_REG_ROR_IMM(ARM* cpu);
s32 A_MVN_REG_LSL_REG(ARM* cpu);
s32 A_MVN_REG_LSR_REG(ARM* cpu);
s32 A_MVN_REG_ASR_REG(ARM* cpu);
s32 A_MVN_REG_ROR_REG(ARM* cpu);
s32 A_MVN_IMM_S(ARM* cpu);
s32 A_MVN_REG_LSL_IMM_S(ARM* cpu);
s32 A_MVN_REG_LSR_IMM_S(ARM* cpu);
s32 A_MVN_REG_ASR_IMM_S(ARM* cpu);
s32 A_MVN_REG_ROR_IMM_S(ARM* cpu);
s32 A_MVN_REG_LSL_REG_S(ARM* cpu);
s32 A_MVN_REG_LSR_REG_S(ARM* cpu);
s32 A_MVN_REG_ASR_REG_S(ARM* cpu);
s32 A_MVN_REG_ROR_REG_S(ARM* cpu);
}
#endif