|
From: Jean-Pierre <cho...@fr...> - 2009-10-27 22:34:08
|
Hi,
Le 25 oct. 2009 à 23:37, Jean-Pierre a écrit :
> Here's a dyngen patch for Snow Leopard x86_64 compatibility. This
> work is mostly based on the unofficial and incomplete x86_64 mach-o
> patch of qemu.
> The JIT compiler seems to be ok in 64 bit mode, since I have the
> 'happy mac' at boot time, but the application crashes later...
When cleaning the dyngen code, I broke the x86_64 ELF part, It won't
compile because of the lines 2283-2285:
if (rel->r_offset >= start_offset &&
int slide;
rel->r_offset < start_offset + copy_size) {
that should be:
if (rel->r_offset >= start_offset &&
rel->r_offset < start_offset + copy_size) {
int slide;
Sorry about this.
The JIT compiler still crashes when using the code generated by
Apple's gcc on ppc-dyngen-ops.cpp.
I'm not sure why the resulting assembly code is so different from a
Linux 64-bit gcc install. I used otool on Mac and dumpobj on Linux to
compare these, and many functions are using different opcodes.
if I replace the ppc-dyngen-ops.hpp file by one built on a Linux 64-
bit machine, then SheepShaver runs fine in 64-bit mode with the JIT
compiler on Snow Leopard.
Best regards,
- Jean-Pierre. |