This page describes architectural decisions in the HotSpot VM PPC port. It explains extensions we made to shared code needed for PPC, but which might be also useful for other platforms. Further it gives details of implementations in the PPC part.
Supported operating systems and processor implementations
AIX: The port supports AIX 5.3 and later.
Linux: We build and run the VM on SLES 10.3, but support it on other Linux distributions, too.
We do not support as400 pase.
Processor: The port supports only 64-bit PPC machines. It recognizes Power chips 5 through 7 and generates code optimized for these processors. So far, it lacks an instruction scheduler targeted to Power 6, which is an in-order issueing processor.
Interpreter and Compiler
The port is derived from a VM targeted towards server applications. Therefore it focuses on maximizing peak performance. Thus, it utilizes the high end C2 optimizing compiler of HotSpot. As interpreter performance is less relevant for server applications, we use the C++ interpreter.
Supported HotSpot features
We support a wide range of basic functional flavors of the HotSpot VM. As of garbage collection, we support
- The default GC.
- Concurrent Mark and Sweep (-XX:+UseConcMarkSweepGC).
Support for G1 is also implemented, but we still test and fix issues.
We support biased locking to improve the locking performance, which is essential on PPC, where the lock instructions are expensive. Further we support compressed Oops to reduce memory usage.
The C2 compiler uses implicit null checks, which requires some adaptions to shared code as on AIX the zero page is not protected.
Here you find more detailed informations:
C2 compiler extensions and new optimizations