diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-09-18 17:21:08 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-09-18 17:21:22 -0500 |
| commit | 452fd84bbdfa37b16dc3da3f022ad397baf6eb5d (patch) | |
| tree | e3d83edee10f6e28a6f1da35066fb17b07b39970 /Source/Core | |
| parent | 6fc21175035b91047857fa68f4cc93e2ae9dc276 (diff) | |
[ANDROID] Fix ARM JIT. Is due to Android using softfp instead of hardfp.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStoreFloating.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStoreFloating.cpp b/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStoreFloating.cpp index 7b607adeb0..c9f42ebd36 100644 --- a/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStoreFloating.cpp +++ b/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStoreFloating.cpp @@ -307,8 +307,13 @@ void JitArm::stfd(UGeckoInstruction inst) MOVI2R(rA, (u32)&Memory::Write_F64); PUSH(4, R0, R1, R2, R3); +#if !defined(__ARM_PCS_VFP) // SoftFP returns in R0 and R1 + VMOV(R0, v0); + MOV(R2, rB); +#else VMOV(D0, v0); MOV(R0, rB); +#endif BL(rA); @@ -321,7 +326,6 @@ void JitArm::stfdu(UGeckoInstruction inst) { INSTRUCTION_START JITDISABLE(bJITLoadStoreFloatingOff) - ARMReg RA = gpr.R(inst.RA); ARMReg rA = gpr.GetReg(); ARMReg rB = gpr.GetReg(); @@ -339,8 +343,13 @@ void JitArm::stfdu(UGeckoInstruction inst) MOVI2R(rA, (u32)&Memory::Write_F64); PUSH(4, R0, R1, R2, R3); +#if !defined(__ARM_PCS_VFP) // SoftFP returns in R0 and R1 + VMOV(R0, v0); + MOV(R2, rB); +#else VMOV(D0, v0); MOV(R0, rB); +#endif BL(rA); |
