diff --git a/Core/MIPS/IR/IRCompVFPU.cpp b/Core/MIPS/IR/IRCompVFPU.cpp index f2815afc5b..9256600052 100644 --- a/Core/MIPS/IR/IRCompVFPU.cpp +++ b/Core/MIPS/IR/IRCompVFPU.cpp @@ -1903,7 +1903,7 @@ namespace MIPSComp { u8 tempregs[4]; for (int i = 0; i < n; ++i) { if (!IsOverlapSafe(dregs[i], n, sregs)) { - tempregs[i] = IRVTEMP_0; + tempregs[i] = IRVTEMP_0 + i; } else { tempregs[i] = dregs[i]; } @@ -1930,7 +1930,7 @@ namespace MIPSComp { for (int i = 0; i < n; ++i) { if (tempregs[i] != dregs[i]) - dregs[i] = tempregs[i]; + ir.Write(IROp::FMov, dregs[i], tempregs[i]); } ApplyPrefixD(dregs, sz);