Core: Update Map_MemoryStack to pass gp by reference
This commit is contained in:
parent
440894992a
commit
885d31f275
|
@ -610,7 +610,7 @@ asmjit::x86::Gp CX86RegInfo::Get_MemoryStack() const
|
|||
return x86Reg_Unknown;
|
||||
}
|
||||
|
||||
asmjit::x86::Gp CX86RegInfo::Map_MemoryStack(asmjit::x86::Gp Reg, bool bMapRegister, bool LoadValue)
|
||||
asmjit::x86::Gp CX86RegInfo::Map_MemoryStack(const asmjit::x86::Gp & Reg, bool bMapRegister, bool LoadValue)
|
||||
{
|
||||
asmjit::x86::Gp CurrentMap = Get_MemoryStack();
|
||||
if (!bMapRegister)
|
||||
|
@ -631,19 +631,19 @@ asmjit::x86::Gp CX86RegInfo::Map_MemoryStack(asmjit::x86::Gp Reg, bool bMapRegis
|
|||
{
|
||||
return CurrentMap;
|
||||
}
|
||||
Reg = FreeX86Reg();
|
||||
if (!Reg.isValid())
|
||||
asmjit::x86::Gp MemoryStackReg = FreeX86Reg();
|
||||
if (!MemoryStackReg.isValid())
|
||||
{
|
||||
g_Notify->DisplayError("Map_MemoryStack\n\nOut of registers");
|
||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
||||
}
|
||||
SetX86Mapped(GetIndexFromX86Reg(Reg), CX86RegInfo::Stack_Mapped);
|
||||
m_CodeBlock.Log(" regcache: allocate %s as Memory Stack", CX86Ops::x86_Name(Reg));
|
||||
SetX86Mapped(GetIndexFromX86Reg(MemoryStackReg), CX86RegInfo::Stack_Mapped);
|
||||
m_CodeBlock.Log(" regcache: allocate %s as Memory Stack", CX86Ops::x86_Name(MemoryStackReg));
|
||||
if (LoadValue)
|
||||
{
|
||||
m_Assembler.MoveVariableToX86reg(Reg, &g_Recompiler->MemoryStackPos(), "MemoryStack");
|
||||
m_Assembler.MoveVariableToX86reg(MemoryStackReg, &g_Recompiler->MemoryStackPos(), "MemoryStack");
|
||||
}
|
||||
return Reg;
|
||||
return MemoryStackReg;
|
||||
}
|
||||
|
||||
// Move to a register/allocate register
|
||||
|
|
|
@ -97,7 +97,7 @@ public:
|
|||
void Map_GPR_64bit(int32_t MipsReg, int32_t MipsRegToLoad);
|
||||
asmjit::x86::Gp Map_FPStatusReg();
|
||||
asmjit::x86::Gp Get_MemoryStack() const;
|
||||
asmjit::x86::Gp Map_MemoryStack(asmjit::x86::Gp Reg, bool bMapRegister, bool LoadValue = true);
|
||||
asmjit::x86::Gp Map_MemoryStack(const asmjit::x86::Gp & Reg, bool bMapRegister, bool LoadValue = true);
|
||||
asmjit::x86::Gp Map_TempReg(asmjit::x86::Gp Reg, int32_t MipsReg, bool LoadHiWord, bool Reg8Bit);
|
||||
void ProtectGPR(uint32_t MipsReg);
|
||||
void UnProtectGPR(uint32_t MipsReg);
|
||||
|
@ -108,11 +108,11 @@ public:
|
|||
bool UnMap_X86reg(const asmjit::x86::Gp & Reg);
|
||||
void WriteBackRegisters();
|
||||
|
||||
asmjit::x86::Gp GetMipsRegMapLo(int32_t Reg) const
|
||||
const asmjit::x86::Gp & GetMipsRegMapLo(int32_t Reg) const
|
||||
{
|
||||
return m_RegMapLo[Reg];
|
||||
}
|
||||
asmjit::x86::Gp GetMipsRegMapHi(int32_t Reg) const
|
||||
const asmjit::x86::Gp & GetMipsRegMapHi(int32_t Reg) const
|
||||
{
|
||||
return m_RegMapHi[Reg];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue