JitArm64: Skip SXTW in ComputeRC0(u64)
MOVI2R can set the upper bits to ones for free by using MOVN instead of MOVZ.
This commit is contained in:
parent
3948ac9513
commit
9f0a7c9875
|
@ -351,7 +351,7 @@ protected:
|
|||
void UpdateRoundingMode();
|
||||
|
||||
void ComputeRC0(Arm64Gen::ARM64Reg reg);
|
||||
void ComputeRC0(u64 imm);
|
||||
void ComputeRC0(u32 imm);
|
||||
void ComputeCarry(Arm64Gen::ARM64Reg reg); // reg must contain 0 or 1
|
||||
void ComputeCarry(bool carry);
|
||||
void ComputeCarry();
|
||||
|
|
|
@ -37,12 +37,10 @@ void JitArm64::ComputeRC0(ARM64Reg reg)
|
|||
SXTW(gpr.CR(0), reg);
|
||||
}
|
||||
|
||||
void JitArm64::ComputeRC0(u64 imm)
|
||||
void JitArm64::ComputeRC0(u32 imm)
|
||||
{
|
||||
gpr.BindCRToRegister(0, false);
|
||||
MOVI2R(gpr.CR(0), imm);
|
||||
if (imm & 0x80000000)
|
||||
SXTW(gpr.CR(0), EncodeRegTo32(gpr.CR(0)));
|
||||
MOVI2R(gpr.CR(0), s64(s32(imm)));
|
||||
}
|
||||
|
||||
void JitArm64::ComputeCarry(ARM64Reg reg)
|
||||
|
|
Loading…
Reference in New Issue