[ANDROID] Fix ARM JIT. Is due to Android using softfp instead of hardfp.
This commit is contained in:
parent
6fc2117503
commit
452fd84bbd
|
@ -307,8 +307,13 @@ void JitArm::stfd(UGeckoInstruction inst)
|
||||||
|
|
||||||
MOVI2R(rA, (u32)&Memory::Write_F64);
|
MOVI2R(rA, (u32)&Memory::Write_F64);
|
||||||
PUSH(4, R0, R1, R2, R3);
|
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);
|
VMOV(D0, v0);
|
||||||
MOV(R0, rB);
|
MOV(R0, rB);
|
||||||
|
#endif
|
||||||
|
|
||||||
BL(rA);
|
BL(rA);
|
||||||
|
|
||||||
|
@ -321,7 +326,6 @@ void JitArm::stfdu(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
JITDISABLE(bJITLoadStoreFloatingOff)
|
JITDISABLE(bJITLoadStoreFloatingOff)
|
||||||
|
|
||||||
ARMReg RA = gpr.R(inst.RA);
|
ARMReg RA = gpr.R(inst.RA);
|
||||||
ARMReg rA = gpr.GetReg();
|
ARMReg rA = gpr.GetReg();
|
||||||
ARMReg rB = gpr.GetReg();
|
ARMReg rB = gpr.GetReg();
|
||||||
|
@ -339,8 +343,13 @@ void JitArm::stfdu(UGeckoInstruction inst)
|
||||||
|
|
||||||
MOVI2R(rA, (u32)&Memory::Write_F64);
|
MOVI2R(rA, (u32)&Memory::Write_F64);
|
||||||
PUSH(4, R0, R1, R2, R3);
|
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);
|
VMOV(D0, v0);
|
||||||
MOV(R0, rB);
|
MOV(R0, rB);
|
||||||
|
#endif
|
||||||
|
|
||||||
BL(rA);
|
BL(rA);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue