Some words about Cibyl (MIPS to Java bytecode binary translation)

Simon Kagstrom simon.kagstrom at gmail.com
Mon Mar 17 13:38:24 PDT 2008


Hi again,

On Sun, 16 Mar 2008 23:02:37 -0700
John Rose <John.Rose at Sun.COM> wrote:

> > * Untyped memory, which I also saw you took up. In Cibyl, I've used
> >   a big int-array as the "memory" representation. This fits MIPS
> >   quite well, since unaligned memory access is limited to special
> >   instructions, and most accesses tend to be 32-bit accesses.
> >   However, when 8- or 16-bit loads and stores are done there is a
> >   significant performance hit because of this.
> Yes, that is a nice fit.  It's an amazing application of a (very)  
> RISC ISA, to an execution platform realized in software not silicon.

Yes, this was the main reason why I selected MIPS for this. It's a
beautiful instruction set :-)


I actually forgot one obstacle which requires some trickery in Cibyl:
Register-indirect branches and calls. Since Java bytecode doesn't allow
computed gotos, I use a generated "call table" for method calls and a
method-local jump table for local computed gotos.

// Simon



More information about the mlvm-dev mailing list