Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/shudo/shujit

Java Just-in-Time Compiler for x86 processors
https://github.com/shudo/shujit

Last synced: about 1 month ago
JSON representation

Java Just-in-Time Compiler for x86 processors

Awesome Lists containing this project

README

        

shuJIT - a JIT compiler for x86
http://www.shudo.net/jit/
Kazuyuki Shudo

* 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

1. Run configure script.
% ./configure
If you want to use SSE2 instructions of Pentium 4 processor, type
% ./configure --enable-sse2
2. Type `make'. You will get libshujit.so
% make
Or, on FreeBSD systems
% gmake
Type `make 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 (compilation on FreeBSD)
Hideaki Takahashi (bug report and debug)
Keishiro Tanaka (test on FreeBSD)
Ryo Neyama (test on Linux)
Toshitaka Miura (preparation of FreeBSD)
Jun'ya Kato (preparation of FreeBSD)
Fuyuhiko Maruyama (discussion and code)
Toshihiko Shimokawa (preparetion of FreeBSD)
Keizo Maeda (porting)
and my deceased wife Mari.

Kazuyuki Shudo/首藤一幸 私をたばねないで あらせいとうの花のように
shudo at computer.org http://www.shudo.net/