mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-16 07:50:28 +02:00
arm64jit: Free up W23 for static alloc.
We shouldn't always reserve W23 for this uncommon case.
This commit is contained in:
1 parent
e7ac672522
commit
89cbf36611
2 files changed
+5
-4
No files matched your search
@@ -536,7 +536,7 @@ void Arm64Jit::Comp_JumpReg(MIPSOpcode op)
|
||||
delaySlotIsNice = false;
|
||||
CONDITIONAL_NICE_DELAYSLOT;
|
||||
|
||||
ARM64Reg destReg = OTHERTEMPREG;
|
||||
ARM64Reg destReg = INVALID_REG;
|
||||
if (IsSyscall(delaySlotOp)) {
|
||||
gpr.MapReg(rs);
|
||||
MovToPC(gpr.R(rs)); // For syscall to be able to return.
|
||||
@@ -574,7 +574,9 @@ void Arm64Jit::Comp_JumpReg(MIPSOpcode op)
|
||||
destReg = gpr.R(rs); // Safe because FlushAll doesn't change any regs
|
||||
FlushAll();
|
||||
} else {
|
||||
// Delay slot - this case is very rare, might be able to free up W24.
|
||||
// Since we can't be in a delay slot, should be safe to steal FLAGTEMPREG for a temp reg.
|
||||
// It will be saved, even if a function is called.
|
||||
destReg = FLAGTEMPREG;
|
||||
gpr.MapReg(rs);
|
||||
MOV(destReg, gpr.R(rs));
|
||||
if (andLink)
|
||||
|
||||
@@ -23,8 +23,7 @@
|
||||
|
||||
namespace Arm64JitConstants {
|
||||
|
||||
const Arm64Gen::ARM64Reg DOWNCOUNTREG = Arm64Gen::W23;
|
||||
const Arm64Gen::ARM64Reg OTHERTEMPREG = Arm64Gen::W24;
|
||||
const Arm64Gen::ARM64Reg DOWNCOUNTREG = Arm64Gen::W24;
|
||||
const Arm64Gen::ARM64Reg FLAGTEMPREG = Arm64Gen::X25;
|
||||
const Arm64Gen::ARM64Reg JITBASEREG = Arm64Gen::X26;
|
||||
const Arm64Gen::ARM64Reg CTXREG = Arm64Gen::X27;
|
||||
|
||||
Reference in new issue
Block a user