Some of you have shown interest in my work on the 68k JIT, so I thought I’d share a quick update. I’ve been integrating it into my AArch64 AROS port, and the results are quite promising.
I’m building a bridge compiler that parses the AROS library definitions and headers, then generates the code needed to translate function calls, structures, pointers and tag lists between the classic 68k ABI and native AArch64 AROS. The goal is to describe the rules once instead of discovering and implementing every library function manually as programs encounter them.
The screenshot shows an unmodified classic 68k LhA running directly from the AROS console: it creates an archive, lists it and extracts it byte-for-byte. The same test session also launches a hardware-dependent program, which is safely rejected with an explanation rather than crashing or silently behaving incorrectly.
Current status:
• 68k programs run through the JIT from the normal AROS shell.
• 126 native library crossings are generated.
• Structure and TagItem translation is now policy-driven.
• Third-party 68k libraries can run inside the guest environment; an unmodified XPK program successfully loads
xpkmaster.library
and its 68k compressor library.
• Unsupported OS calls and direct hardware access fail closed with useful diagnostics.
• Library loading, initialization, dependency cycles, closing, expunging and reloading are covered by regression tests.
The next major steps are broader structure and tag coverage, proxies for native AROS objects that 68k programs expect to inspect, native-to-68k callbacks, and testing a much larger collection of legacy applications.
There is still plenty to do, but don't hesitate if you have any comments, or advices or anything.