From 452fd84bbdfa37b16dc3da3f022ad397baf6eb5d Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Wed, 18 Sep 2013 17:21:08 -0500 Subject: [PATCH] [ANDROID] Fix ARM JIT. Is due to Android using softfp instead of hardfp. --- .../Src/PowerPC/JitArm32/JitArm_LoadStoreFloating.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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);