Next: IA32 Assembler
Up: Experiences Porting the Jikes
A central aim of the functional port was to achieve a clean
decomposition of the RVM into architecture-independent and
architecture-specific pieces. The RVM was designed to be a family of virtual machines with different variants incorporating
different memory management and compilation schemes as well as more
minor peculiarities. It uses three mechanisms to achieve this variety:
static final variables called controls, subdirectories of
the file system, and a minimal preprocessor that allows limited
conditional exclusion of blocks of source text.5 The port uses these mechanisms to support
variants that run on Linux/IA32.
The remainder of this section discusses the specific issues that
needed to be addressed to construct such variants.