Shujit
Java Just-in-Time Compiler for x86 processors
Install / Use
/learn @shudo/ShujitREADME
shuJIT - a JIT compiler for x86 http://www.shudo.net/jit/ Kazuyuki Shudo shudo@computer.org
- What this is
ShuJIT is a Java Just-in-Time compiler for Sun Microsystems' Classic VM (i.e. JDK, Java 2 SDK, JRE) and Intel x86 processors. It supports FreeBSD, Linux and NetBSD.
- Platforms
Working on the following platforms is confirmed.
-
FreeBSD
- JDK 1.3.1 patchlevel 8, GCC 2.95.4 and FreeBSD 4.9-STABLE
- JDK 1.1.8 (ELF, V1999-11-9), GCC 2.95.4 and FreeBSD 4.9-STABLE
-
Linux
- Blackdown JDK 1.3.1_02b, GCC 3.3.2 20031022, glibc 2.3.2 and Linux 2.6.0-test9
- JDK 1.1.8v3, GCC 3.3.2 20031022, glibc 2.3.2 and Linux 2.6.0-test9
- JDK 1.1.7v1a, egcs 1.1.2, libc 5.4.38 and Linux 2.0.35
- Installation
With Java 2, you have to place the libshujit.so in jdk1.X.X/jre/lib/i386/ or make a symbolic link in the path.
With JDK 1.1.X, copy the libshujit.so to a path in LD_LIBRARY_PATH variable or the path on which libjava.so exists (ex. /usr/local/jdk1.1.8/lib/i686/green_threads/).
- Run Java programs with shuJIT
Type instead of usual java command % java -Djava.compiler=shujit ...
or set JAVA_COMPILER variable to `shujit'. If you use C shell compatible shells, type % setenv JAVA_COMPILER shujit If you use bourne shell compatible shells, type % export JAVA_COMPILER=shujit
- Compilation
You need the following tools to compile shuJIT.
-
JDK 1.3.X, 1.2.X or 1.1.X Classic VM ShuJIT works with Sun's Classic VM which these JDKs contain. Other JVMs, i.e. IBM JDK and HotSpot VMs, are not supported.
-
GCC 3.X, 2.9X or egcs You can examine the version number of your GCC with -v option. % gcc -v GCC 2.7.X cannot compile shuJIT correctly.
-
objdump (in GNU binutils) Most Linux distributions and ELF FreeBSD systems have this.
-
Ruby A script which generate some tables is written in Ruby. See http://www.ruby-lang.org/
-
GNU make
- Run configure script. % ./configure If you want to use SSE2 instructions of Pentium 4 processor, type % ./configure --enable-sse2
- Type
make'. You will get libshujit.so % make Or, on FreeBSD systems % gmake Typemake debug' to obtain libshujit_g.so, which is for debugging.
- Bugs and Problems
Any comments and bug reports are welcome. Please feel easy to write to me.
- Copying
This software is a free software which is copyrighted by Kazuyuki Shudo. You may redistribute and modify it under the terms of GNU Lesser General Public License; either version 2.1 of the License, or any later version. See LGPL.txt for more details.
- Thanks
Thanks all folks around me and especially the following people:
Takuzo O'hara <takuzo at sm.sony.co.jp> (compilation on FreeBSD) Hideaki Takahashi <htaka at nalgo.co.jp> (bug report and debug) Keishiro Tanaka <ksr at lp.nm.fujitsu.co.jp> (test on FreeBSD) Ryo Neyama <neyama at jp.ibm.com> (test on Linux) Toshitaka Miura <miura at computer.org> (preparation of FreeBSD) Jun'ya Kato <kato at goto.info.waseda.ac.jp> (preparation of FreeBSD) Fuyuhiko Maruyama <fuyuhik8 at is.titech.ac.jp> (discussion and code) Toshihiko Shimokawa <toshi at csce.kyushu-u.ac.jp> (preparetion of FreeBSD) Keizo Maeda <keizo at toolhouse.jp> (porting) and my deceased wife Mari.
Kazuyuki Shudo/首藤一幸 私をたばねないで あらせいとうの花のように shudo at computer.org http://www.shudo.net/
