mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
arm64jit: Free up W23 for static alloc.
We shouldn't always reserve W23 for this uncommon case.
This commit is contained in:
parent
e7ac672522
commit
89cbf36611
2 changed files with 5 additions and 4 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue