Hotspot on PPC

Paul Hohensee - Java SE Paul.Hohensee at Sun.COM
Fri Jun 1 08:15:07 PDT 2007

CC_INTERP must be set to build the C++ interpreter, but you also need
some machine-dependent assembly code glue to make it work.  We haven't open
sourced the latter since we don't support the former.

You can build a vm without the compilers.  Use one of the 'core' targets 

We supported ia64 in 1.4.2, but dropped it in 5.0, so yes, we have old ia64
sources.  The ia64 vm was a server-only 64-bit vm, which means it 
the server optimizing compiler.  It used a C++ interpreter instead of what
we call a template interpreter, which latter is an interpreter written 
in assembly
code.  The other platforms we support (sparc32, sparc64, x86 and x64) all
use template interpreters for performance.  We used a C++ interpreter
for ia64 for time-to-market reasons (as Bob said): it already existed as a
skunk works project and correct ia64 assembly is 'interesting' to write.

I'm not aware of any plans to open source the PPC 5.0 port.


Gary Benson wrote:
> Bob Vandette wrote:
>> When we did the original IA64 port of Hotspot, we decided to use
>> a "C" interpreter in order to get the port done quicker.  On
>> architectures with many CPU registers, the "C" interpreter is
>> actually just as fast or even faster than the generated assembly
>> version.  We use the GCC computed goto in order to avoid the typical
>> dispatching overhead of switch statements.  This interpreter is in
>> hotspot/src/share/vm/interpreter/cInterpretMethod.hpp.  The problem
>> is that the only architecture that uses the cInterpreter is IA64 and
>> as far as I know, this code isn't open sourced.  You'd need to see
>> the glue logic that exists in the CPU directory to use this
>> interpreter.
> That's interesting.  I found an environment variable that seems to
> switch it on, CC_INTERP, but it's still trying to suck in machine-
> dependent stuff.  Am I missing something, or is it simply that the
> build system is not set up to build without the JITs?
> Also, does this mean you have a working IA64 JDK internally?  Does
> it exclusively use the C interpreter or was a JIT written later?
> If it's possible to run OpenJDK with a C interpreter then of course
> I'd love to know :)
>> I don't know if you are aware of a Java 5 version of PowerPC that
>> is on our Java SE Embedded site.  It is a hotspot implementation
>> of Java SE 5.0 for Linux platforms.  It uses the Hotspot client
>> JIT compiler and is only 32 bit but it has passed the fully JCK
>> certification.
> Interesting.  Are there any plans to open source it?
> Cheers,
> Gary

More information about the hotspot-dev mailing list