History for bemu/bemu.cpp
Commits on Mar 10, 2015
The big difference here is that OS X runs with a small-code PIC code model, which doesn't place code in the low 4G of RAM. So we need to switch everything to be PC-relative, and do some shenanigans to try to get a code allocation near our .text segment -- in particular, since the allocator just starts at the binary and works upwards, we need to make sure that we allocate the buffer *before* we do the 4G map for the image's address space.
Commits on Aug 5, 2012
Instead of using a segment register, map an entire 4G memory image as PROT_NONE, and map the image into the beginning. Then do the address calculation explicitly. The 4G map, and the 32-bit offset, ensures that any illegal acceses will land into the unmapped space and fault.
Commits on Nov 29, 2010