Open claunia opened 9 years ago
Tested on Linux/amd64, JIT there works perfectly.
It also crashes for me.
This is because of this line: https://github.com/sebastianbiallas/pearpc/blob/master/src/cpu/cpu_jitc_x86_64/x86_64asm.cc#L639
I cannot reference to global data from the generated code.
I submitted a patch for this issue. Unfortunately, there are still problems since the stack is sometimes not 16 byte aligned.
If you need any testing or help just tell me. I'm not very proficient in asm but...
So this "not 16 byte aligned" bug will also affect Windows and Linux!? Why not add some platform specific code for MacOS X? May be this not affect Windows and Linux? Thanks
Could be fixed now, but I probably missed a few places. I currently have no computer to test this.
Claunia, did you test it? Is JIT fixed now on OS X?
@cesss @sebastianbiallas nope, still not working:
Console output:
claunia@zeus /Volumes/Musica/OSX/Mac OS X 10.2 (Retail) $ /Development/pearpc/src/ppc_jit pearpc.conf
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as published by
the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
&gMemory: 0x10659c000
GenuineIntel
translation cache: 10a59d000
[CPU/MMU] new pagetable: sdr1 = 0x00300003
[CPU/MMU] new pagetable: sdr1 accepted
[CPU/MMU] number of pages: 2^15 pagetable_start: 0x00300000 size: 2^18
start: 512
start: 32768
getStartBlock: 0 Apple_Driver43
getStartBlock: 1 Apple_Driver43
getStartBlock: 2 Apple_Driver43
getStartBlock: 3 Apple_Driver43
getStartBlock: 4 Apple_Driver43
getStartBlock: 5 Apple_Driver43
getStartBlock: 6 Apple_Driver43
getStartBlock: 7 Apple_Driver43
getStartBlock: 8 Apple_Driver43
getStartBlock: 9 Apple_Driver43
start: 61440
getStartBlock: 0 Apple_Driver43_CD
getStartBlock: 1 Apple_Driver43_CD
getStartBlock: 2 Apple_Driver43_CD
getStartBlock: 3 Apple_Driver43_CD
getStartBlock: 4 Apple_Driver43_CD
getStartBlock: 5 Apple_Driver43_CD
getStartBlock: 6 Apple_Driver43_CD
getStartBlock: 7 Apple_Driver43_CD
getStartBlock: 8 Apple_Driver43_CD
getStartBlock: 9 Apple_Driver43_CD
start: 0
getStartBlock: 0 Apple_Void
getStartBlock: 1 Apple_Void
getStartBlock: 2 Apple_Void
getStartBlock: 3 Apple_Void
getStartBlock: 4 Apple_Void
getStartBlock: 5 Apple_Void
getStartBlock: 6 Apple_Void
getStartBlock: 7 Apple_Void
getStartBlock: 8 Apple_Void
getStartBlock: 9 Apple_Void
start: 133120
getStartBlock: 0 Apple_Driver_ATAPI
getStartBlock: 1 Apple_Driver_ATAPI
getStartBlock: 2 Apple_Driver_ATAPI
getStartBlock: 3 Apple_Driver_ATAPI
getStartBlock: 4 Apple_Driver_ATAPI
getStartBlock: 5 Apple_Driver_ATAPI
getStartBlock: 6 Apple_Driver_ATAPI
getStartBlock: 7 Apple_Driver_ATAPI
getStartBlock: 8 Apple_Driver_ATAPI
getStartBlock: 9 Apple_Driver_ATAPI
start: 161792
getStartBlock: 0 Apple_Driver_ATAPI
getStartBlock: 1 Apple_Driver_ATAPI
getStartBlock: 2 Apple_Driver_ATAPI
getStartBlock: 3 Apple_Driver_ATAPI
getStartBlock: 4 Apple_Driver_ATAPI
getStartBlock: 5 Apple_Driver_ATAPI
getStartBlock: 6 Apple_Driver_ATAPI
getStartBlock: 7 Apple_Driver_ATAPI
getStartBlock: 8 Apple_Driver_ATAPI
getStartBlock: 9 Apple_Driver_ATAPI
start: 233472
getStartBlock: 0 Apple_Patches
getStartBlock: 1 Apple_Patches
getStartBlock: 2 Apple_Patches
getStartBlock: 3 Apple_Patches
getStartBlock: 4 Apple_Patches
getStartBlock: 5 Apple_Patches
getStartBlock: 6 Apple_Patches
getStartBlock: 7 Apple_Patches
getStartBlock: 8 Apple_Patches
getStartBlock: 9 Apple_Patches
start: 0
getStartBlock: 0 Apple_Void
getStartBlock: 1 Apple_Void
getStartBlock: 2 Apple_Void
getStartBlock: 3 Apple_Void
getStartBlock: 4 Apple_Void
getStartBlock: 5 Apple_Void
getStartBlock: 6 Apple_Void
getStartBlock: 7 Apple_Void
getStartBlock: 8 Apple_Void
getStartBlock: 9 Apple_Void
start: 864256
getStartBlock: 0 Apple_HFS
getStartBlock: 1 Apple_HFS
getStartBlock: 2 Apple_HFS
getStartBlock: 3 Apple_HFS
getStartBlock: 4 Apple_HFS
getStartBlock: 5 Apple_HFS
getStartBlock: 6 Apple_HFS
getStartBlock: 7 Apple_HFS
getStartBlock: 8 Apple_HFS
getStartBlock: 9 Apple_HFS
start: 655052800
getStartBlock: 0 Apple_Free
getStartBlock: 1 Apple_Free
getStartBlock: 2 Apple_Free
getStartBlock: 3 Apple_Free
getStartBlock: 4 Apple_Free
getStartBlock: 5 Apple_Free
getStartBlock: 6 Apple_Free
getStartBlock: 7 Apple_Free
getStartBlock: 8 Apple_Free
getStartBlock: 9 Apple_Free
getStartBlock: 0 Apple_HFS
getStartBlock: 1 Apple_HFS
getStartBlock: 2 Apple_HFS
getStartBlock: 3 Apple_HFS
getStartBlock: 4 Apple_HFS
getStartBlock: 5 Apple_HFS
getStartBlock: 6 Apple_HFS
getStartBlock: 7 Apple_HFS
getStartBlock: 8 Apple_HFS
getStartBlock: 9 Apple_HFS
Loading XCOFF...
[CPU/CPU] execution started at 01c00cb0
*** &gCPU: 7f8b90803200, &gJITC: 7f8b90807200
2720
fff
Segmentation fault: 11
Crash log:
Process: ppc_jit [81512]
Path: /Development/*/ppc_jit
Identifier: ppc_jit
Version: 0
Code Type: X86-64 (Native)
Parent Process: bash [1071]
Responsible: iTerm [523]
User ID: 502
Date/Time: 2015-11-01 17:43:22.299 +0000
OS Version: Mac OS X 10.10 (14A389)
Report Version: 11
Anonymous UUID: 53834799-CD1F-3D97-ED91-70536B7FCA4F
Time Awake Since Boot: 340000 seconds
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000063612d0
VM Regions Near 0x63612d0:
-->
__TEXT 00000001062ac000-0000000106345000 [ 612K] r-x/rwx SM=COW /Development/*
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 ??? 0x000000010a59d344 0 + 4468626244
Thread 1:
0 libsystem_kernel.dylib 0x00007fff9038f3f6 __select + 10
1 libxcb.1.dylib 0x0000000106537d9d _xcb_out_send + 68
2 libxcb.1.dylib 0x0000000106537d3e xcb_writev + 68
3 libX11.6.dylib 0x000000010641fb9a _XSend + 326
4 libX11.6.dylib 0x0000000106416207 PutSubImage + 3355
5 libX11.6.dylib 0x0000000106415649 PutSubImage + 349
6 libX11.6.dylib 0x000000010641545c XPutImage + 953
7 ppc_jit 0x00000001062b68f5 X11SystemDisplay::displayShow() + 261
Thread 2:
0 libsystem_kernel.dylib 0x00007fff9038f132 __psynch_cvwait + 10
1 ppc_jit 0x00000001062d93fc cudaEventLoop(void*) + 92
2 libsystem_pthread.dylib 0x00007fff8bacf2fc _pthread_body + 131
3 libsystem_pthread.dylib 0x00007fff8bacf279 _pthread_start + 176
4 libsystem_pthread.dylib 0x00007fff8bacd4b1 thread_start + 13
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x000000000000019c rcx: 0x0000000001cc0000 rdx: 0x0000000000000000
rdi: 0x00007fff59952b68 rsi: 0x0000000000000e7c rbp: 0x0000000001cc012c rsp: 0x00007fff59952b60
r8: 0x0000000000000088 r9: 0x0000000000000000 r10: 0x0000000000000000 r11: 0x000000010a59d399
r12: 0x0000000000000000 r13: 0x0000000001c00d20 r14: 0x0000000001c00d20 r15: 0x0000000001cc015c
rip: 0x000000010a59d344 rfl: 0x0000000000010246 cr2: 0x00000000063612d0
Logical CPU: 2
Error Code: 0x00000004
Trap Number: 14
Binary Images:
0x1062ac000 - 0x106344ff7 +ppc_jit (0) <35A34E47-1C70-339C-B681-56072E59C15E> /Development/*/ppc_jit
0x1063ff000 - 0x106508fff +libX11.6.dylib (10) <87781555-B810-3B19-95D6-C67EB8C7B4A6> /opt/X11/*/libX11.6.dylib
0x106536000 - 0x10654bff7 +libxcb.1.dylib (3) <4C73EEBD-08C6-3C93-9F2C-60CF7D63D6F1> /opt/X11/*/libxcb.1.dylib
0x10655d000 - 0x10655efff +libXau.6.dylib (7) <58D3B6CB-9468-3826-9D52-8F0FCE8CCE3B> /opt/X11/*/libXau.6.dylib
0x106565000 - 0x106568fff +libXdmcp.6.dylib (7) <6DD4CCAD-9891-3039-A7DA-3EA54D85FDF6> /opt/X11/*/libXdmcp.6.dylib
0x7fff6b469000 - 0x7fff6b49f837 dyld (353.2.1) <4696A982-1500-34EC-9777-1EF7A03E2659> /usr/lib/dyld
0x7fff869a8000 - 0x7fff869b0fff libsystem_platform.dylib (63) <64E34079-D712-3D66-9CE2-418624A5C040> /usr/lib/system/libsystem_platform.dylib
0x7fff8754e000 - 0x7fff87552fff libcache.dylib (69) <45E9A2E7-99C4-36B2-BEE3-0C4E11614AD1> /usr/lib/system/libcache.dylib
0x7fff879df000 - 0x7fff879e1ff7 libsystem_coreservices.dylib (9) <41B7C578-5A53-31C8-A96F-C73E030B0938> /usr/lib/system/libsystem_coreservices.dylib
0x7fff87f90000 - 0x7fff8801cfff libsystem_c.dylib (1044.1.2) <C185E862-7424-3210-B528-6B822577A4B8> /usr/lib/system/libsystem_c.dylib
0x7fff88d1d000 - 0x7fff88d25ffb libcopyfile.dylib (118.1.2) <0C68D3A6-ACDD-3EF3-991A-CC82C32AB836> /usr/lib/system/libcopyfile.dylib
0x7fff89a4f000 - 0x7fff89a51ff7 libquarantine.dylib (76) <DC041627-2D92-361C-BABF-A869A5C72293> /usr/lib/system/libquarantine.dylib
0x7fff89ea3000 - 0x7fff89ea3ff7 libunc.dylib (29) <5676F7EA-C1DF-329F-B006-D2C3022B7D70> /usr/lib/system/libunc.dylib
0x7fff8b351000 - 0x7fff8b357fff libsystem_trace.dylib (72.1.3) <A9E6B7D8-C327-3742-AC54-86C94218B1DF> /usr/lib/system/libsystem_trace.dylib
0x7fff8ba34000 - 0x7fff8ba3bff7 libcompiler_rt.dylib (35) <BF8FC133-EE10-3DA6-9B90-92039E28678F> /usr/lib/system/libcompiler_rt.dylib
0x7fff8ba3c000 - 0x7fff8ba4dff7 libsystem_coretls.dylib (35.1.2) <EBBF7EF6-80D8-3F8F-825C-B412BD6D22C0> /usr/lib/system/libsystem_coretls.dylib
0x7fff8bacc000 - 0x7fff8bad5fff libsystem_pthread.dylib (105.1.4) <26B1897F-0CD3-30F3-B55A-37CB45062D73> /usr/lib/system/libsystem_pthread.dylib
0x7fff8bb64000 - 0x7fff8bb8eff7 libdispatch.dylib (442.1.4) <502CF32B-669B-3709-8862-08188225E4F0> /usr/lib/system/libdispatch.dylib
0x7fff8daf9000 - 0x7fff8daf9ff7 liblaunch.dylib (559.1.22) <8A988924-8BE7-35FE-BF7D-322E90EFE49E> /usr/lib/system/liblaunch.dylib
0x7fff8e6ce000 - 0x7fff8e6cffff libDiagnosticMessagesClient.dylib (100) <2EE8E436-5CDC-34C5-9959-5BA218D507FB> /usr/lib/libDiagnosticMessagesClient.dylib
0x7fff8ef38000 - 0x7fff8ef4eff7 libsystem_asl.dylib (267) <F153AC5B-0542-356E-88C8-20A62CA704E2> /usr/lib/system/libsystem_asl.dylib
0x7fff90379000 - 0x7fff90396fff libsystem_kernel.dylib (2782.1.97) <93E0E0A9-75B6-3904-BB4E-4BC7C05F4B6B> /usr/lib/system/libsystem_kernel.dylib
0x7fff90397000 - 0x7fff903bffff libsystem_info.dylib (459) <B85A85D5-8530-3A93-B0C3-4DEC41F79478> /usr/lib/system/libsystem_info.dylib
0x7fff903c0000 - 0x7fff903c5ff7 libmacho.dylib (862) <126CA2ED-DE91-308F-8881-B9DAEC3C63B6> /usr/lib/system/libmacho.dylib
0x7fff908f8000 - 0x7fff90901ff7 libsystem_notify.dylib (133.1.1) <61147800-F320-3DAA-850C-BADF33855F29> /usr/lib/system/libsystem_notify.dylib
0x7fff9093a000 - 0x7fff90945fff libcommonCrypto.dylib (60061) <D381EBC6-69D8-31D3-8084-5A80A32CB748> /usr/lib/system/libcommonCrypto.dylib
0x7fff9167c000 - 0x7fff91861267 libobjc.A.dylib (646) <3B60CD90-74A2-3A5D-9686-B0772159792A> /usr/lib/libobjc.A.dylib
0x7fff9191d000 - 0x7fff9191efff libSystem.B.dylib (1213) <DA954461-EC6A-3DF0-8551-6FC810627627> /usr/lib/libSystem.B.dylib
0x7fff9191f000 - 0x7fff91957ffb libsystem_network.dylib (411) <C0B2313D-47BE-38A9-BEE6-2634A4F5E14B> /usr/lib/system/libsystem_network.dylib
0x7fff91c7c000 - 0x7fff91c98ff7 libsystem_malloc.dylib (53.1.1) <19BCC257-5717-3502-A71F-95D65AFA861B> /usr/lib/system/libsystem_malloc.dylib
0x7fff91ddb000 - 0x7fff91de0ff7 libunwind.dylib (35.3) <BE7E51A0-B6EA-3A54-9CCA-9D88F683A6D6> /usr/lib/system/libunwind.dylib
0x7fff922f8000 - 0x7fff9236efe7 libcorecrypto.dylib (233.1.2) <E1789801-3985-3949-B736-6B3378873301> /usr/lib/system/libcorecrypto.dylib
0x7fff92bde000 - 0x7fff92bdfffb libremovefile.dylib (35) <3485B5F4-6CE8-3C62-8DFD-8736ED6E8531> /usr/lib/system/libremovefile.dylib
0x7fff92c58000 - 0x7fff92c80fff libxpc.dylib (559.1.22) <9437C02E-A07B-38C8-91CB-299FAA63083D> /usr/lib/system/libxpc.dylib
0x7fff92ef5000 - 0x7fff92ef5ff7 libkeymgr.dylib (28) <77845842-DE70-3CC5-BD01-C3D14227CED5> /usr/lib/system/libkeymgr.dylib
0x7fff93372000 - 0x7fff93373ff7 libsystem_blocks.dylib (65) <9615D10A-FCA7-3BE4-AA1A-1B195DACE1A1> /usr/lib/system/libsystem_blocks.dylib
0x7fff9450e000 - 0x7fff9450ffff libsystem_secinit.dylib (18) <581DAD0F-6B63-3A48-B63B-917AF799ABAA> /usr/lib/system/libsystem_secinit.dylib
0x7fff9452f000 - 0x7fff94533fff libsystem_stats.dylib (163.1.4) <1DB04436-5974-3F16-86CC-5FF5F390339C> /usr/lib/system/libsystem_stats.dylib
0x7fff94cb5000 - 0x7fff94cbbff7 libsystem_networkextension.dylib (167.1.10) <29AB225B-D7FB-30ED-9600-65D44B9A9442> /usr/lib/system/libsystem_networkextension.dylib
0x7fff94d19000 - 0x7fff94d1bff7 libsystem_sandbox.dylib (358.1.1) <DB9962EF-8898-31CC-9B87-E01F8CE74C9D> /usr/lib/system/libsystem_sandbox.dylib
0x7fff95230000 - 0x7fff95238fff libsystem_dnssd.dylib (561.1.1) <62B70ECA-E40D-3C63-896E-7F00EC386DDB> /usr/lib/system/libsystem_dnssd.dylib
0x7fff9523d000 - 0x7fff95240ff7 libdyld.dylib (353.2.1) <19FAF435-C165-3374-9DEF-D7BBA7D61DB6> /usr/lib/system/libdyld.dylib
0x7fff953bc000 - 0x7fff95410fff libc++.1.dylib (120) <1B9530FD-989B-3174-BB1C-BDC159501710> /usr/lib/libc++.1.dylib
0x7fff95411000 - 0x7fff95413fff libsystem_configuration.dylib (699.1.5) <9FBA1CE4-97D0-347E-A443-93ED94512E92> /usr/lib/system/libsystem_configuration.dylib
0x7fff95ae5000 - 0x7fff95b2bff7 libauto.dylib (186) <A260789B-D4D8-316A-9490-254767B8A5F1> /usr/lib/libauto.dylib
0x7fff95be6000 - 0x7fff95c16fff libsystem_m.dylib (3086.1) <1E12AB45-6D96-36D0-A226-F24D9FB0D9D6> /usr/lib/system/libsystem_m.dylib
0x7fff95cc0000 - 0x7fff95cebfff libc++abi.dylib (125) <88A22A0F-87C6-3002-BFBA-AC0F2808B8B9> /usr/lib/libc++abi.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 1
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 2052523
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=78.5M resident=32.8M(42%) swapped_out_or_unallocated=45.7M(58%)
Writable regions: Total=212.1M written=42.0M(20%) resident=42.1M(20%) swapped_out=0K(0%) unallocated=170.0M(80%)
REGION TYPE VIRTUAL
=========== =======
Kernel Alloc Once 4K
MALLOC 137.3M
MALLOC (admin) 16K
STACK GUARD 56.0M
Stack 9232K
VM_ALLOCATE 65.5M
__DATA 812K
__LINKEDIT 71.0M
__TEXT 7644K
shared memory 4K
=========== =======
TOTAL 347.1M
Hi. I'm currently watching this in case there are any breakthroughs for running PearPC on Mac OS X.
Tiger was the last version that supported Classic and I would like to try to get this running before I lose my old backups (if I haven't already). Lots of old memories.
I used to know a little PowerPC asm but I think I'm unfortunately not helpful when dealing with i386. If this backend issue was solved I may have the time to spruce up the Mac interface, or at the very least make a convenient bundle for general use.
@sebastianbiallas: do you see any hint about what could be the cause for the last crash report by claunia?
Is there a new wiki anywhere? I'm coming up with more questions than answers.
Running JIT with any host OS results on segmentation fault on Mac OS X 10.10 (x86-64). Generic interpreter works.
Console output:
Crash log: