[kaffe] [PATCH] JIT on arm

Kiyo Inaba inaba at src.ricoh.co.jp
Wed May 2 01:26:10 PDT 2007


I said,
>Since I don't want to see 'jit on arm every few months', I started
>to work with emulators...

After several days of hastle, I finally make kaffe jit works for
arm with only one modification (sys1 macro definition). It is very
important to use gcc-2.95, and don't specify 'with-staticvm' etc.

The configure command I used is
----------------------------------------------------------------------
CC=gcc-2.95 CXX=g++-2.95 \
../kaffe-snap-070215/configure \
        --with-glibj-zip=/home/kaffe/src/glibj-070215.zip \
        --with-engine=jit \
        --enable-pure-java-math \
        --with-threads=unix-pthreads \
        --with-gc=kaffe-gc \
        --disable-boehm-gc-configuration \
        --disable-sound \
        --without-x \
        --disable-native-awt \
        --disable-gtk-peer \
        --disable-gconf-peer \
        --disable-plugin \
        --disable-Werror
----------------------------------------------------------------------

The mod I did in diff format is
----------------------------------------------------------------------
diff -ur -N -x CVS kaffe/config/arm/linux/md.c /mnt/cdrom/home/kaffe/src/kaffe-snap-070215/config/arm/linux/md.c
--- kaffe/config/arm/linux/md.c 2007-05-02 13:05:18.000000000 +0900
+++ /mnt/cdrom/home/kaffe/src/kaffe-snap-070215/config/arm/linux/md.c   2007-05-02 14:36:57.000000000 +0900
@@ -16,6 +16,7 @@
 #endif
 #include <malloc.h>
 #include <sched.h>
+#define __KERNEL__
 #include <asm/unistd.h>

 void
----------------------------------------------------------------------

I am still not sure whether this is better (to say we are now compiling
kernel code) than something else, so I have not yet committed this.

The 'uname -a' output is
----------------------------------------------------------------------
Linux debian 2.6.18-4-versatile #1 Wed Feb 7 21:07:15 CET 2007 armv5tejl GNU/Linux
----------------------------------------------------------------------

And /proc/cpuinfo tells me
----------------------------------------------------------------------
Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 209.71
Features        : swp half fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-through
Cache clean     : not required
Cache lockdown  : not supported
Cache format    : Harvard
I size          : 4096
I assoc         : 4
I line length   : 32
I sets          : 32
D size          : 65536
D assoc         : 4
D line length   : 32
D sets          : 512

Hardware        : ARM-Versatile PB
Revision        : 0000
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-through
Cache clean     : not required
Cache lockdown  : not supported
Cache format    : Harvard
I size          : 4096
I assoc         : 4
I line length   : 32
I sets          : 32
D size          : 65536
D assoc         : 4
D line length   : 32
D sets          : 512

Hardware        : ARM-Versatile PB
Revision        : 0000
Serial          : 0000000000000000
----------------------------------------------------------------------

So, next TODOs are
1) Why it does not work with newer version of gcc?
2) Why with-staticvm broken?
3) Does X part work?
4) Make jit3 to work.

Kiyo




More information about the kaffe mailing list