[kaffe] kaffe_mips

Kevin D. Kissell kevink at mips.com
Fri Jan 10 07:38:01 PST 2003

> Hi guys,
> does anyone know the latest situation of Kaffe on MIPS platforms
> (I'm sure Dalibor knows:).
> I know Kevin Kissell was working on MIPS Kaffe issues and
> some other guys were working on a PS2 port.
> Kevin, do you know if gcc + Kaffe v1.0.7 has problems running on standard
> MIPS instruction sets like MIPS32, MIPS II, MIPS 16e etc...
> Murat

I put together a relative small patch against the "release" 1.0.7
kaffe sources which got it working quite well on my MIPS32 
(5Kc) Linux system.  It was merged with the development
CVS tree ages ago.  The patch relative to the baseline is at

There are three important caveats here.  One is that the JIT engine
is still somewhat broken.  It runs well enough to do an Embedded
Caffeinemark (and not too badly, for a free JIT) but falls apart
on some of the same complicated parameter passing cases that
I had to fix for the interpreter in the aforementioned patch. So
you need to configure with --with-engine=intrp.

The second caveat is that I did my builds native on the target
MIPS/Linux system.  Some further configuration overrides
and tweaks seem to be necessary to get a functional cross-build,
if the recent messages posted to this list are any clue.

The third caveat is that you should try to use as recent a MIPS/Linux
kernel as possible.  There were bugs in kernel management of floating
point registers during signals that were fixed in some repositories a long
time ago, but which weren't picked up everywhere.  When in doubt,
see www.linux-mips.org

If you've only got a MIPS I ISA, there's a configure flag that
should prevent the MIPS II semaphore instructions from being
used.  Teaching the JIT to emit MIPS16e would be a lot of hassle.
Interfacing with MIPS16e native libraries would be a smaller job,
but not trivial.  Building kaffe itself in MIPS16 shouldn't really
be a problem, if you've actually got an environment which 
supports MIPS16 (which most versions of Linux do not).

I know that Dylan Schell's patches for the PS2 Linux were recently 
checked into the repository.  I don't know if he's published a patch
relative to 1.0.7.  And since my work on kaffe started with my
getting a copy of his earliest PS2 patch, I know that most of the
problems he was dealing with were generic MIPS problems, 
but that the PS2 CPU has some peculiarities relative to all other
MIPS processors.  

Hmm, maybe I better regression test on my MIPS32 box... ;o)
Then again, if I had time to do that, I'd be fixing the JIT...

            Kevin K.

More information about the kaffe mailing list