JitArm64: Remove FLUSH_INTERPRETER
It seems to be broken for some instructions, and there is no need for it any more.
This commit is contained in:
parent
1773f6a2df
commit
baa28e13f4
|
@ -68,8 +68,8 @@ void JitArm64::Shutdown()
|
||||||
|
|
||||||
void JitArm64::FallBackToInterpreter(UGeckoInstruction inst)
|
void JitArm64::FallBackToInterpreter(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
gpr.Flush(FlushMode::FLUSH_INTERPRETER, js.op);
|
gpr.Flush(FlushMode::FLUSH_ALL, js.op);
|
||||||
fpr.Flush(FlushMode::FLUSH_INTERPRETER, js.op);
|
fpr.Flush(FlushMode::FLUSH_ALL, js.op);
|
||||||
|
|
||||||
if (js.op->opinfo->flags & FL_ENDBLOCK)
|
if (js.op->opinfo->flags & FL_ENDBLOCK)
|
||||||
{
|
{
|
||||||
|
|
|
@ -167,15 +167,6 @@ void Arm64GPRCache::Flush(FlushMode mode, PPCAnalyst::CodeOp* op)
|
||||||
for (int i = 0; i < 32; ++i)
|
for (int i = 0; i < 32; ++i)
|
||||||
{
|
{
|
||||||
bool flush = true;
|
bool flush = true;
|
||||||
if (mode == FLUSH_INTERPRETER)
|
|
||||||
{
|
|
||||||
if (!(op->regsOut[i] || op->regsIn[i]))
|
|
||||||
{
|
|
||||||
// This interpreted instruction doesn't use this register
|
|
||||||
flush = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_guest_registers[i].GetType() == REG_REG)
|
if (m_guest_registers[i].GetType() == REG_REG)
|
||||||
{
|
{
|
||||||
// Has to be flushed if it isn't in a callee saved register
|
// Has to be flushed if it isn't in a callee saved register
|
||||||
|
|
|
@ -31,8 +31,6 @@ enum FlushMode
|
||||||
// Flushes registers in a conditional branch
|
// Flushes registers in a conditional branch
|
||||||
// Doesn't wipe the state of the registers from the cache
|
// Doesn't wipe the state of the registers from the cache
|
||||||
FLUSH_MAINTAIN_STATE,
|
FLUSH_MAINTAIN_STATE,
|
||||||
// Flushes only the required registers for an interpreter call
|
|
||||||
FLUSH_INTERPRETER,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class OpArg
|
class OpArg
|
||||||
|
|
Loading…
Reference in New Issue