diff options
author | archshift <gh@archshift.com> | 2016-06-09 06:03:49 +0200 |
---|---|---|
committer | archshift <gh@archshift.com> | 2016-06-09 06:03:49 +0200 |
commit | a371744575bcec6a92c3bb8801b980530a4443a5 (patch) | |
tree | b621cbc12e9d1bfda6374a099d4d7e3ff36244b5 | |
parent | arm_dyncom_interpreter.cpp: Split by translation and interpreter logic (diff) | |
download | yuzu-a371744575bcec6a92c3bb8801b980530a4443a5.tar yuzu-a371744575bcec6a92c3bb8801b980530a4443a5.tar.gz yuzu-a371744575bcec6a92c3bb8801b980530a4443a5.tar.bz2 yuzu-a371744575bcec6a92c3bb8801b980530a4443a5.tar.lz yuzu-a371744575bcec6a92c3bb8801b980530a4443a5.tar.xz yuzu-a371744575bcec6a92c3bb8801b980530a4443a5.tar.zst yuzu-a371744575bcec6a92c3bb8801b980530a4443a5.zip |
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom_interpreter.cpp | 6 | ||||
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom_trans.cpp | 78 |
2 files changed, 42 insertions, 42 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp index 5f61b0ebb..01d5d478e 100644 --- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp +++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp @@ -649,7 +649,7 @@ static void LnSWoUB(ScaledRegisterOffset)(ARMul_State* cpu, unsigned int inst, u virt_addr = addr; } -shtop_fp_t get_shifter_op(unsigned int inst) { +shtop_fp_t GetShifterOp(unsigned int inst) { if (BIT(inst, 25)) { return DPO(Immediate); } else if (BITS(inst, 4, 11) == 0) { @@ -674,7 +674,7 @@ shtop_fp_t get_shifter_op(unsigned int inst) { return nullptr; } -get_addr_fp_t get_calc_addr_op(unsigned int inst) { +get_addr_fp_t GetAddressingOp(unsigned int inst) { if (BITS(inst, 24, 27) == 5 && BIT(inst, 21) == 0) { return LnSWoUB(ImmediateOffset); } else if (BITS(inst, 24, 27) == 7 && BIT(inst, 21) == 0 && BITS(inst, 4, 11) == 0) { @@ -718,7 +718,7 @@ get_addr_fp_t get_calc_addr_op(unsigned int inst) { } // Specialized for LDRT, LDRBT, STRT, and STRBT, which have specific addressing mode requirements -get_addr_fp_t get_calc_addr_op_loadstoret(unsigned int inst) { +get_addr_fp_t GetAddressingOpLoadStoreT(unsigned int inst) { if (BITS(inst, 25, 27) == 2) { return LnSWoUB(ImmediatePostIndexed); } else if (BITS(inst, 25, 27) == 3) { diff --git a/src/core/arm/dyncom/arm_dyncom_trans.cpp b/src/core/arm/dyncom/arm_dyncom_trans.cpp index 8a0146531..7f13ff836 100644 --- a/src/core/arm/dyncom/arm_dyncom_trans.cpp +++ b/src/core/arm/dyncom/arm_dyncom_trans.cpp @@ -23,9 +23,9 @@ static FORCE_INLINE void* AllocBuffer(size_t size) { #define glue(x, y) x ## y #define INTERPRETER_TRANSLATE(s) glue(InterpreterTranslate_, s) -shtop_fp_t get_shifter_op(unsigned int inst); -get_addr_fp_t get_calc_addr_op(unsigned int inst); -get_addr_fp_t get_calc_addr_op_loadstoret(unsigned int inst); +shtop_fp_t GetShifterOp(unsigned int inst); +get_addr_fp_t GetAddressingOp(unsigned int inst); +get_addr_fp_t GetAddressingOpLoadStoreT(unsigned int inst); static ARM_INST_PTR INTERPRETER_TRANSLATE(adc)(unsigned int inst, int index) { @@ -41,7 +41,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(adc)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -62,7 +62,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(add)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -83,7 +83,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(and)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -126,7 +126,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bic)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -237,7 +237,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cmn)(unsigned int inst, int index) inst_cream->I = BIT(inst, 25); inst_cream->Rn = BITS(inst, 16, 19); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); return inst_base; } @@ -253,7 +253,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cmp)(unsigned int inst, int index) inst_cream->I = BIT(inst, 25); inst_cream->Rn = BITS(inst, 16, 19); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); return inst_base; } @@ -289,7 +289,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(cpy)(unsigned int inst, int index) inst_cream->S = BIT(inst, 20); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) { inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -310,7 +310,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(eor)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -336,7 +336,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldm)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); if (BIT(inst, 15)) { inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -368,7 +368,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldr)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); if (BITS(inst, 12, 15) == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -386,7 +386,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrcond)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); if (BITS(inst, 12, 15) == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -435,7 +435,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrb)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -449,7 +449,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrbt)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op_loadstoret(inst); + inst_cream->get_addr = GetAddressingOpLoadStoreT(inst); return inst_base; } @@ -463,7 +463,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrd)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -503,7 +503,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrh)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -517,7 +517,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrsb)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -531,7 +531,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrsh)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -545,7 +545,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(ldrt)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op_loadstoret(inst); + inst_cream->get_addr = GetAddressingOpLoadStoreT(inst); if (BITS(inst, 12, 15) == 15) { inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -618,7 +618,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mov)(unsigned int inst, int index) inst_cream->S = BIT(inst, 20); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) { inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -706,7 +706,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(mvn)(unsigned int inst, int index) inst_cream->S = BIT(inst, 20); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) { inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -728,7 +728,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(orr)(unsigned int inst, int index) inst_cream->Rd = BITS(inst, 12, 15); inst_cream->Rn = BITS(inst, 16, 19); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -883,7 +883,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rfe)(unsigned int inst, int index) inst_base->br = TransExtData::INDIRECT_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -902,7 +902,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rsb)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -923,7 +923,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(rsc)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -982,7 +982,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sbc)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -1292,7 +1292,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(srs)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -1349,7 +1349,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(stm)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } static ARM_INST_PTR INTERPRETER_TRANSLATE(sxtb)(unsigned int inst, int index) @@ -1377,7 +1377,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(str)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -1422,7 +1422,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strb)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -1436,7 +1436,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strbt)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op_loadstoret(inst); + inst_cream->get_addr = GetAddressingOpLoadStoreT(inst); return inst_base; } @@ -1449,7 +1449,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strd)(unsigned int inst, int index){ inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -1490,7 +1490,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strh)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op(inst); + inst_cream->get_addr = GetAddressingOp(inst); return inst_base; } @@ -1504,7 +1504,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(strt)(unsigned int inst, int index) inst_base->br = TransExtData::NON_BRANCH; inst_cream->inst = inst; - inst_cream->get_addr = get_calc_addr_op_loadstoret(inst); + inst_cream->get_addr = GetAddressingOpLoadStoreT(inst); return inst_base; } @@ -1522,7 +1522,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(sub)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); if (inst_cream->Rd == 15) inst_base->br = TransExtData::INDIRECT_BRANCH; @@ -1635,7 +1635,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(teq)(unsigned int inst, int index) inst_cream->I = BIT(inst, 25); inst_cream->Rn = BITS(inst, 16, 19); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); return inst_base; } @@ -1653,7 +1653,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(tst)(unsigned int inst, int index) inst_cream->Rn = BITS(inst, 16, 19); inst_cream->Rd = BITS(inst, 12, 15); inst_cream->shifter_operand = BITS(inst, 0, 11); - inst_cream->shtop_func = get_shifter_op(inst); + inst_cream->shtop_func = GetShifterOp(inst); return inst_base; } |