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