Some words about Cibyl (MIPS to Java bytecode binary translation)
simon.kagstrom at gmail.com
Mon Mar 17 13:38:24 PDT 2008
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.
More information about the mlvm-dev