summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorarchshift <gh@archshift.com>2016-06-09 06:03:49 +0200
committerarchshift <gh@archshift.com>2016-06-09 06:03:49 +0200
commita371744575bcec6a92c3bb8801b980530a4443a5 (patch)
treeb621cbc12e9d1bfda6374a099d4d7e3ff36244b5 /src
parentarm_dyncom_interpreter.cpp: Split by translation and interpreter logic (diff)
downloadyuzu-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
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp6
-rw-r--r--src/core/arm/dyncom/arm_dyncom_trans.cpp78
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;
}