JitArm64: Fix jit clearing

We have to reset m_lastCacheFlushEnd on clearing.
This commit is contained in:
degasus 2015-08-15 10:26:59 +02:00
parent 70e91af405
commit 9bfff0d461
3 changed files with 11 additions and 6 deletions

View File

@ -268,11 +268,15 @@ bool IsImmLogical(uint64_t value, unsigned int width, unsigned int *n, unsigned
return true;
}
void ARM64XEmitter::SetCodePtr(u8* ptr)
void ARM64XEmitter::SetCodePtrUnsafe(u8* ptr)
{
m_code = ptr;
if (!m_lastCacheFlushEnd)
m_lastCacheFlushEnd = ptr;
}
void ARM64XEmitter::SetCodePtr(u8* ptr)
{
SetCodePtrUnsafe(ptr);
m_lastCacheFlushEnd = ptr;
}
const u8* ARM64XEmitter::GetCodePtr() const

View File

@ -378,6 +378,7 @@ public:
}
void SetCodePtr(u8* ptr);
void SetCodePtrUnsafe(u8* ptr);
void ReserveCodeSpace(u32 bytes);
const u8* AlignCode16();
const u8* AlignCodePage();

View File

@ -227,13 +227,13 @@ private:
void SwitchToFarCode()
{
nearcode = GetWritableCodePtr();
SetCodePtr(farcode.GetWritableCodePtr());
SetCodePtrUnsafe(farcode.GetWritableCodePtr());
}
void SwitchToNearCode()
{
farcode.SetCodePtr(GetWritableCodePtr());
SetCodePtr(nearcode);
farcode.SetCodePtrUnsafe(GetWritableCodePtr());
SetCodePtrUnsafe(nearcode);
}
// Dump a memory range of code