View Single Post
Old 12 November 2019, 18:48   #22
Registered User

Join Date: Nov 2018
Location: Germany
Posts: 14
Originally Posted by skan View Post
This is damn cool! I'm eager to see how this project evolves.
I hope it will get to a point where I can transparently run entire m68k AROS on it, without user or developer notifying any difference. The feeling should be to have RasPi with damn fast m68k CPU (at the moment about 1400 SysInfo MIPS on RasPi4)

Originally Posted by skan View Post
In simple words, how does it compare to this ?
Bloodline's project is bare metal Amiga hardware emulator using open source CPU emulation (no JIT, though). He aims at running unmodified OS3.x on it. The CPU core out there attempts to emulate different m68k models with better precision.

My project is pure bare metal m68k JIT emulator with speed in mind. It translates entire blocks of m68k code into ARM opcode stream and executes it. The main goal and highest priority is the raw CPU speed, therefore it unrolls loops if possible, attempts to avoid branches to subroutines by inlining them directly, uses dynamic register mapping etc. There are some reductions of emulation precision though. For example, the m68k condition codes are calculated only if the subsequent instruction does not modify them. The fpu will be only 64bit too. There is no emulation of specific m68k model, I just attempt to translate as many opcodes as possible. Besides, the m68k emulation does not create any special m68k address space, e.g. the instruction

movea.l 4.w, a0
will be most likely translated to something like

mov r0,#4
ldr r1,[r0]
provided the dynamic register allocator selected r0 to be a temporary register and r1 to be a mapped m68k's A0 register.
mschulz is offline  
Page generated in 0.04181 seconds with 11 queries