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. |