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,10 +268,14 @@ bool IsImmLogical(uint64_t value, unsigned int width, unsigned int *n, unsigned
return true; return true;
} }
void ARM64XEmitter::SetCodePtr(u8* ptr) void ARM64XEmitter::SetCodePtrUnsafe(u8* ptr)
{ {
m_code = ptr; m_code = ptr;
if (!m_lastCacheFlushEnd) }
void ARM64XEmitter::SetCodePtr(u8* ptr)
{
SetCodePtrUnsafe(ptr);
m_lastCacheFlushEnd = ptr; m_lastCacheFlushEnd = ptr;
} }

View File

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

View File

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