Foundations of the House
To show some progress I checked in a massive changeset into the SourceForge SVN that represents the implementation of the following features:
- Macroblock collection and handling
- Code generation from the macroblock buffer
- Macroblocks for many basic high level instructions that are used for the code translation intermediate representation
- Temporary register allocation/freeing, flushing
- Emulated 68k register mapping to temporary registers, automatic loading/saving from/to the interpretive emulator Regs structure
- Compiling of pre- and post-code for the translated block
- Temporary PPC register, emulated M68k register and flag flow-tracking for macroblocks
- Basic functions for flag emulation implementation
Sounds quite a big chunk of work, and to tell you the truth it really was. As it seems so far my initial plansare working, the macroblocks are the implementation of the Microcode-VLIW-like approach I explained previously.
What is still missing for your happiness: there is no addressing mode and instruction implementation yet. So, basically this is still not too useful for the average users, thus there is no binary release yet.
But all of these are the foundations of the house and now I can go on with building the walls, which will be much more perceptive: addressing modes and instructions.
Unfortunately, I wasn't able to find the bug that blocks the Kickstart from running, maybe an other Kickstart file might help, we will see.
In the meanwhile enjoy this beautiful diagram of the (oversimplified) method of compiling in this implementation:
Code translation flow diagram |