From 4c6006190fcd5cd25e456b7347148a26f9924555 Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Sat, 10 Aug 2013 23:32:12 +0200 Subject: [PATCH] Of course, found the real bug causing #3117 immediately after the revert. Fixed. --- Core/MIPS/MIPSTables.cpp | 4 ++-- Core/MIPS/x86/CompVFPU.cpp | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Core/MIPS/MIPSTables.cpp b/Core/MIPS/MIPSTables.cpp index f389a05f1f..3f2c9d4a66 100644 --- a/Core/MIPS/MIPSTables.cpp +++ b/Core/MIPS/MIPSTables.cpp @@ -506,8 +506,8 @@ const MIPSInstruction tableVFPU3[8] = //011011 xxx INSTR("vmax",&Jit::Comp_VecDo3, Dis_VectorSet3, Int_Vminmax, IS_VFPU|OUT_EAT_PREFIX), {-2}, INSTR("vscmp",&Jit::Comp_Generic, Dis_VectorSet3, Int_Vscmp, IS_VFPU|OUT_EAT_PREFIX), - INSTR("vsge",&Jit::Comp_Generic, Dis_VectorSet3, Int_Vsge, IS_VFPU|OUT_EAT_PREFIX), - INSTR("vslt",&Jit::Comp_Generic, Dis_VectorSet3, Int_Vslt, IS_VFPU|OUT_EAT_PREFIX), + INSTR("vsge",&Jit::Comp_VecDo3, Dis_VectorSet3, Int_Vsge, IS_VFPU|OUT_EAT_PREFIX), + INSTR("vslt",&Jit::Comp_VecDo3, Dis_VectorSet3, Int_Vslt, IS_VFPU|OUT_EAT_PREFIX), }; const MIPSInstruction tableVFPU4Jump[32] = //110100 xxxxx diff --git a/Core/MIPS/x86/CompVFPU.cpp b/Core/MIPS/x86/CompVFPU.cpp index f50ae71eed..9ba153051e 100644 --- a/Core/MIPS/x86/CompVFPU.cpp +++ b/Core/MIPS/x86/CompVFPU.cpp @@ -679,13 +679,12 @@ void Jit::Comp_VecDo3(u32 op) { } break; case 27: //VFPU3 - switch ((op >> 23) & 3) { + switch ((op >> 23) & 7) { case 2: // vmin case 3: // vmax break; case 6: // vsge case 7: // vslt - DISABLE; // Something is wrong :/ MOVSS(XMM0, M((void *)&one)); break; default: @@ -759,7 +758,7 @@ void Jit::Comp_VecDo3(u32 op) { } break; case 27: //VFPU3 - switch ((op >> 23) & 3) + switch ((op >> 23) & 7) { case 2: // vmin MINSS(tempxregs[i], fpr.V(tregs[i]));