mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
JitRegCache: Add RegistersInUse
This commit is contained in:
@ -967,15 +967,8 @@ BitSet8 Jit64::ComputeStaticGQRs(const PPCAnalyst::CodeBlock& cb) const
|
|||||||
|
|
||||||
BitSet32 Jit64::CallerSavedRegistersInUse() const
|
BitSet32 Jit64::CallerSavedRegistersInUse() const
|
||||||
{
|
{
|
||||||
BitSet32 result;
|
BitSet32 in_use = gpr.RegistersInUse() | (fpr.RegistersInUse() << 16);
|
||||||
for (size_t i = 0; i < NUM_XREGS; i++)
|
return in_use & ABI_ALL_CALLER_SAVED;
|
||||||
{
|
|
||||||
if (!gpr.IsFreeX(i))
|
|
||||||
result[i] = true;
|
|
||||||
if (!fpr.IsFreeX(i))
|
|
||||||
result[16 + i] = true;
|
|
||||||
}
|
|
||||||
return result & ABI_ALL_CALLER_SAVED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Jit64::EnableBlockLink()
|
void Jit64::EnableBlockLink()
|
||||||
|
@ -677,6 +677,17 @@ void RegCache::PreloadRegisters(BitSet32 to_preload)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BitSet32 RegCache::RegistersInUse() const
|
||||||
|
{
|
||||||
|
BitSet32 result;
|
||||||
|
for (size_t i = 0; i < m_xregs.size(); i++)
|
||||||
|
{
|
||||||
|
if (!m_xregs[i].IsFree())
|
||||||
|
result[i] = true;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void RegCache::NewLock(preg_t preg)
|
void RegCache::NewLock(preg_t preg)
|
||||||
{
|
{
|
||||||
m_regs[preg].Lock();
|
m_regs[preg].Lock();
|
||||||
|
@ -247,6 +247,7 @@ public:
|
|||||||
bool IsAllUnlocked() const;
|
bool IsAllUnlocked() const;
|
||||||
|
|
||||||
void PreloadRegisters(BitSet32 regs);
|
void PreloadRegisters(BitSet32 regs);
|
||||||
|
BitSet32 RegistersInUse() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
friend class RCOpArg;
|
friend class RCOpArg;
|
||||||
|
Reference in New Issue
Block a user