mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 06:39:46 -06:00
Merge pull request #13239 from JosJuice/jitarm64-rlwimix-imm-mask
JitArm64: Use AArch64 imm masks in rlwimix slow case
This commit is contained in:
@ -2266,12 +2266,11 @@ void JitArm64::rlwimix(UGeckoInstruction inst)
|
||||
gpr.BindToRegister(a, true);
|
||||
ARM64Reg RA = gpr.R(a);
|
||||
auto WA = gpr.GetScopedReg();
|
||||
auto WB = a == s ? gpr.GetScopedReg() : Arm64GPRCache::ScopedARM64Reg(RA);
|
||||
const u32 inverted_mask = ~mask;
|
||||
|
||||
MOVI2R(WA, mask);
|
||||
BIC(WB, RA, WA);
|
||||
AND(WA, WA, gpr.R(s), ArithOption(gpr.R(s), ShiftType::ROR, rot_dist));
|
||||
ORR(RA, WB, WA);
|
||||
AND(WA, gpr.R(s), LogicalImm(std::rotl(mask, rot_dist), GPRSize::B32));
|
||||
AND(RA, RA, LogicalImm(inverted_mask, GPRSize::B32));
|
||||
ORR(RA, RA, WA, ArithOption(WA, ShiftType::ROR, rot_dist));
|
||||
}
|
||||
|
||||
if (inst.Rc)
|
||||
|
Reference in New Issue
Block a user