mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-24 15:01:16 +01:00
[AArch64] Fix AArch64 instruction encoding.
This commit is contained in:
parent
e4e08b0596
commit
f24c466e7e
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user