Merge pull request #8363 from unknownbrackets/jit-alloc

Jit: Properly re-allocate when jit is freed a lot
This commit is contained in:
Henrik Rydgård 2016-01-03 18:55:12 +01:00
commit b29f46f9ac

View File

@ -177,6 +177,12 @@ void *AllocateExecutableMemory(size_t size, bool exec) {
else if (exec && (uintptr_t)map_hint <= 0xFFFFFFFF) {
// Round up if we're below 32-bit mark, probably allocating sequentially.
map_hint += round_page(size);
// If we moved ahead too far, skip backwards and recalculate.
// When we free, we keep moving forward and eventually move too far.
if ((uintptr_t)map_hint - (uintptr_t) &hint_location >= 0x70000000) {
map_hint = 0;
}
}
#endif