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
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
> 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
> Interesting. Are there any plans to open source it?
More information about the hotspot-dev