diff options
| author | 2015-06-12 10:43:59 -0400 | |
|---|---|---|
| committer | 2015-06-12 10:43:59 -0400 | |
| commit | 2a435aa0ccd0369a3e1d941f092cd6dc3887bb1f (patch) | |
| tree | 9a1ec0d390245e280ea23b7315d3b14e0f60fbff /src | |
| parent | Merge pull request #835 from tfarley/hw-renderer-fixes (diff) | |
| parent | vfp: Implement VMOVBCR/VMOVBRC (diff) | |
| download | yuzu-2a435aa0ccd0369a3e1d941f092cd6dc3887bb1f.tar.gz yuzu-2a435aa0ccd0369a3e1d941f092cd6dc3887bb1f.tar.xz yuzu-2a435aa0ccd0369a3e1d941f092cd6dc3887bb1f.zip | |
Merge pull request #856 from lioncash/vfp
vfp: Implement VMOVBCR/VMOVBRC
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/arm/skyeye_common/vfp/vfp.h | 1 | ||||
| -rw-r--r-- | src/core/arm/skyeye_common/vfp/vfpinstr.cpp | 12 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/core/arm/skyeye_common/vfp/vfp.h b/src/core/arm/skyeye_common/vfp/vfp.h index 727350f14..acefae9bb 100644 --- a/src/core/arm/skyeye_common/vfp/vfp.h +++ b/src/core/arm/skyeye_common/vfp/vfp.h | |||
| @@ -22,7 +22,6 @@ | |||
| 22 | 22 | ||
| 23 | #include "core/arm/skyeye_common/vfp/vfp_helper.h" /* for references to cdp SoftFloat functions */ | 23 | #include "core/arm/skyeye_common/vfp/vfp_helper.h" /* for references to cdp SoftFloat functions */ |
| 24 | 24 | ||
| 25 | #define VFP_DEBUG_UNIMPLEMENTED(x) LOG_ERROR(Core_ARM11, "in func %s, " #x " unimplemented\n", __FUNCTION__); exit(-1); | ||
| 26 | #define VFP_DEBUG_UNTESTED(x) LOG_TRACE(Core_ARM11, "in func %s, " #x " untested\n", __FUNCTION__); | 25 | #define VFP_DEBUG_UNTESTED(x) LOG_TRACE(Core_ARM11, "in func %s, " #x " untested\n", __FUNCTION__); |
| 27 | #define CHECK_VFP_ENABLED | 26 | #define CHECK_VFP_ENABLED |
| 28 | #define CHECK_VFP_CDP_RET vfp_raise_exceptions(cpu, ret, inst_cream->instr, cpu->VFP[VFP_FPSCR]); | 27 | #define CHECK_VFP_CDP_RET vfp_raise_exceptions(cpu, ret, inst_cream->instr, cpu->VFP[VFP_FPSCR]); |
diff --git a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp index 3ed918a93..d4060b791 100644 --- a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp +++ b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp | |||
| @@ -1068,10 +1068,12 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrc)(unsigned int inst, int index) | |||
| 1068 | #ifdef VFP_INTERPRETER_IMPL | 1068 | #ifdef VFP_INTERPRETER_IMPL |
| 1069 | VMOVBRC_INST: | 1069 | VMOVBRC_INST: |
| 1070 | { | 1070 | { |
| 1071 | if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { | 1071 | if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { |
| 1072 | CHECK_VFP_ENABLED; | 1072 | CHECK_VFP_ENABLED; |
| 1073 | 1073 | ||
| 1074 | VFP_DEBUG_UNIMPLEMENTED(VMOVBRC); | 1074 | vmovbrc_inst* const inst_cream = (vmovbrc_inst*)inst_base->component; |
| 1075 | |||
| 1076 | cpu->ExtReg[(2 * inst_cream->d) + inst_cream->index] = cpu->Reg[inst_cream->t]; | ||
| 1075 | } | 1077 | } |
| 1076 | cpu->Reg[15] += GET_INST_SIZE(cpu); | 1078 | cpu->Reg[15] += GET_INST_SIZE(cpu); |
| 1077 | INC_PC(sizeof(vmovbrc_inst)); | 1079 | INC_PC(sizeof(vmovbrc_inst)); |
| @@ -1195,10 +1197,12 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbcr)(unsigned int inst, int index) | |||
| 1195 | #ifdef VFP_INTERPRETER_IMPL | 1197 | #ifdef VFP_INTERPRETER_IMPL |
| 1196 | VMOVBCR_INST: | 1198 | VMOVBCR_INST: |
| 1197 | { | 1199 | { |
| 1198 | if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { | 1200 | if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { |
| 1199 | CHECK_VFP_ENABLED; | 1201 | CHECK_VFP_ENABLED; |
| 1200 | 1202 | ||
| 1201 | VFP_DEBUG_UNIMPLEMENTED(VMOVBCR); | 1203 | vmovbcr_inst* const inst_cream = (vmovbcr_inst*) inst_base->component; |
| 1204 | |||
| 1205 | cpu->Reg[inst_cream->t] = cpu->ExtReg[(2 * inst_cream->d) + inst_cream->index]; | ||
| 1202 | } | 1206 | } |
| 1203 | cpu->Reg[15] += GET_INST_SIZE(cpu); | 1207 | cpu->Reg[15] += GET_INST_SIZE(cpu); |
| 1204 | INC_PC(sizeof(vmovbcr_inst)); | 1208 | INC_PC(sizeof(vmovbcr_inst)); |