diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp index 5801e5ea57..8812bceb7e 100644 --- a/Source/Core/Common/Arm64Emitter.cpp +++ b/Source/Core/Common/Arm64Emitter.cpp @@ -1754,7 +1754,8 @@ void ARM64FloatEmitter::EmitConversion(bool sf, bool S, u32 type, u32 rmode, u32 void ARM64FloatEmitter::EmitCompare(bool M, bool S, u32 op, u32 opcode2, ARM64Reg Rn, ARM64Reg Rm) { - bool is_double = !IsSingle(Rn); + _assert_msg_(DYNA_REC, IsQuad(Rn), "%s doesn't support vector!", __FUNCTION__); + bool is_double = IsDouble(Rn); Rn = DecodeReg(Rn); Rm = DecodeReg(Rm); @@ -1765,7 +1766,8 @@ void ARM64FloatEmitter::EmitCompare(bool M, bool S, u32 op, u32 opcode2, ARM64Re void ARM64FloatEmitter::EmitCondSelect(bool M, bool S, CCFlags cond, ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm) { - bool is_double = !IsSingle(Rd); + _assert_msg_(DYNA_REC, IsQuad(Rd), "%s doesn't support vector!", __FUNCTION__); + bool is_double = IsDouble(Rd); Rd = DecodeReg(Rd); Rn = DecodeReg(Rn); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp index ef2637503f..e423791cde 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp @@ -321,8 +321,8 @@ void JitArm64::fselx(UGeckoInstruction inst) ARM64Reg VB = fpr.R(inst.FB); ARM64Reg VC = fpr.R(inst.FC); - m_float_emit.FCMPE(VA); - m_float_emit.FCSEL(V0, VC, VB, CC_GE); + m_float_emit.FCMPE(EncodeRegToDouble(VA)); + m_float_emit.FCSEL(EncodeRegToDouble(V0), EncodeRegToDouble(VC), EncodeRegToDouble(VB), CC_GE); m_float_emit.INS(64, VD, 0, V0, 0); fpr.Unlock(V0);