PPU LLVM: paradigm shift

For now, compile only one block at time
Use tail calls to move between blocks
Fully write PPU context (except CIA)

This fixes many compatibility problems
This commit is contained in:
Nekotekina 2017-06-23 00:52:09 +03:00 committed by Ivan
parent a29d7d3962
commit aea094730b
13 changed files with 1076 additions and 856 deletions

View file

@ -348,7 +348,8 @@ namespace vm
}
}
void* real_addr = vm::base(addr);
void* real_addr = g_base_addr + addr;
void* exec_addr = g_exec_addr + addr;
#ifdef _WIN32
auto protection = flags & page_writable ? PAGE_READWRITE : (flags & page_readable ? PAGE_READONLY : PAGE_NOACCESS);
@ -455,7 +456,8 @@ namespace vm
}
}
void* real_addr = vm::base(addr);
void* real_addr = g_base_addr + addr;
void* exec_addr = g_exec_addr + addr;
#ifdef _WIN32
verify(__func__), ::VirtualFree(real_addr, size, MEM_DECOMMIT);