# HG changeset patch # User goetz # Date 1377189594 25200 # Node ID bdd155477289345686f9afc4de1f5fdead2689ef # Parent f42f2e2a151826e0001eebb462c3374ab8b2c546 8023033: PPC64 (part 13): basic changes for AIX Summary: Added AIX includes alpha-sorted before BSD. Fix compilation issues with xlC in shared code. Basic shared platform dependend adaption (vm_version etc.). Reviewed-by: kvn, dholmes, stefank diff -r f42f2e2a1518 -r bdd155477289 src/os/posix/vm/os_posix.cpp --- a/src/os/posix/vm/os_posix.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/os/posix/vm/os_posix.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -165,7 +165,7 @@ else st->print("%uk", rlim.rlim_cur >> 10); // Isn't there on solaris -#ifndef TARGET_OS_FAMILY_solaris +#if! defined(TARGET_OS_FAMILY_solaris) && !defined(TARGET_OS_FAMILY_aix) st->print(", NPROC "); getrlimit(RLIMIT_NPROC, &rlim); if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); @@ -487,7 +487,7 @@ #define NUM_IMPORTANT_SIGS 32 // Returns one-line short description of a signal set in a user provided buffer. const char* os::Posix::describe_signal_set_short(const sigset_t* set, char* buffer, size_t buf_size) { - assert(buf_size = (NUM_IMPORTANT_SIGS + 1), "wrong buffer size"); + assert(buf_size == (NUM_IMPORTANT_SIGS + 1), "wrong buffer size"); // Note: for shortness, just print out the first 32. That should // cover most of the useful ones, apart from realtime signals. for (int sig = 1; sig <= NUM_IMPORTANT_SIGS; sig++) { diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/c1/c1_globals.hpp --- a/src/share/vm/c1/c1_globals.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/c1/c1_globals.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -47,6 +47,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "c1_globals_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "c1_globals_aix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "c1_globals_bsd.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/classfile/classLoader.cpp --- a/src/share/vm/classfile/classLoader.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/classfile/classLoader.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -68,6 +68,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/code/nmethod.cpp --- a/src/share/vm/code/nmethod.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/code/nmethod.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -799,7 +799,7 @@ } #endif // def HAVE_DTRACE_H -void* nmethod::operator new(size_t size, int nmethod_size) throw () { +void* nmethod::operator new(size_t size, int nmethod_size) { // Not critical, may return null if there is too little continuous memory return CodeCache::allocate(nmethod_size); } diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/code/relocInfo.hpp --- a/src/share/vm/code/relocInfo.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/code/relocInfo.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -365,7 +365,7 @@ // "immediate" in the prefix header word itself. This optimization // is invisible outside this module.) - inline friend relocInfo prefix_relocInfo(int datalen = 0); + inline friend relocInfo prefix_relocInfo(int datalen); protected: // an immediate relocInfo optimizes a prefix with one 10-bit unsigned value @@ -460,7 +460,7 @@ return relocInfo(relocInfo::none, relocInfo::offset_limit() - relocInfo::offset_unit); } -inline relocInfo prefix_relocInfo(int datalen) { +inline relocInfo prefix_relocInfo(int datalen = 0) { assert(relocInfo::fits_into_immediate(datalen), "datalen in limits"); return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen); } diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/code/stubs.hpp --- a/src/share/vm/code/stubs.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/code/stubs.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -36,6 +36,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/code/vmreg.hpp --- a/src/share/vm/code/vmreg.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/code/vmreg.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -73,7 +73,7 @@ // friend class Location; private: enum { - BAD = -1 + BAD_REG = -1 }; @@ -86,7 +86,7 @@ public: - static VMReg as_VMReg(int val, bool bad_ok = false) { assert(val > BAD || bad_ok, "invalid"); return (VMReg) (intptr_t) val; } + static VMReg as_VMReg(int val, bool bad_ok = false) { assert(val > BAD_REG || bad_ok, "invalid"); return (VMReg) (intptr_t) val; } const char* name() { if (is_reg()) { @@ -98,8 +98,8 @@ return "STACKED REG"; } } - static VMReg Bad() { return (VMReg) (intptr_t) BAD; } - bool is_valid() const { return ((intptr_t) this) != BAD; } + static VMReg Bad() { return (VMReg) (intptr_t) BAD_REG; } + bool is_valid() const { return ((intptr_t) this) != BAD_REG; } bool is_stack() const { return (intptr_t) this >= (intptr_t) stack0; } bool is_reg() const { return is_valid() && !is_stack(); } diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/compiler/disassembler.hpp --- a/src/share/vm/compiler/disassembler.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/compiler/disassembler.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -36,6 +36,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -122,7 +122,7 @@ template void AdaptiveFreeList::return_chunk_at_tail(Chunk* chunk) { - return_chunk_at_tail(chunk, true); + AdaptiveFreeList::return_chunk_at_tail(chunk, true); } template diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -37,6 +37,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -38,6 +38,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -35,6 +35,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/interpreter/bytecodeInterpreter.cpp --- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -67,6 +67,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "orderAccess_linux_ppc.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "orderAccess_aix_ppc.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "orderAccess_bsd_x86.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/libadt/port.hpp --- a/src/share/vm/libadt/port.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/libadt/port.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -91,8 +91,6 @@ #define IMPLEMENTATION #include #include -inline int min( int a, int b) { return a < b ? a : b; } -inline int max( int a, int b) { return a > b ? a : b; } #elif defined(_MSC_VER) // Microsoft Visual C++ diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/memory/allocation.cpp --- a/src/share/vm/memory/allocation.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/memory/allocation.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -45,6 +45,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/memory/allocation.hpp --- a/src/share/vm/memory/allocation.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/memory/allocation.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -220,8 +220,11 @@ class StackObj ALLOCATION_SUPER_CLASS_SPEC { private: void* operator new(size_t size); + void* operator new [](size_t size); +#ifdef __IBMCPP__ + public: +#endif void operator delete(void* p); - void* operator new [](size_t size); void operator delete [](void* p); }; diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/memory/space.hpp --- a/src/share/vm/memory/space.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/memory/space.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -45,6 +45,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/memory/universe.cpp --- a/src/share/vm/memory/universe.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/memory/universe.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -747,7 +747,7 @@ // the correct no-access prefix. // The final value will be set in initialize_heap() below. Universe::set_narrow_oop_base((address)NarrowOopHeapMax); -#ifdef _WIN64 +#if defined(_WIN64) || defined(AIX) if (UseLargePages) { // Cannot allocate guard pages for implicit checks in indexed // addressing mode when large pages are specified on windows. @@ -825,6 +825,11 @@ // Can't reserve heap below 32Gb. // keep the Universe::narrow_oop_base() set in Universe::reserve_heap() Universe::set_narrow_oop_shift(LogMinObjAlignmentInBytes); +#ifdef AIX + // There is no protected page before the heap. This assures all oops + // are decoded so that NULL is preserved, so this page will not be accessed. + Universe::set_narrow_oop_use_implicit_null_checks(false); +#endif if (verbose) { tty->print(", %s: "PTR_FORMAT, narrow_oop_mode_to_string(HeapBasedNarrowOop), diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/oops/typeArrayOop.hpp --- a/src/share/vm/oops/typeArrayOop.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/oops/typeArrayOop.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -51,6 +51,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "orderAccess_linux_ppc.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "orderAccess_aix_ppc.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "orderAccess_bsd_x86.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/opto/c2_globals.hpp --- a/src/share/vm/opto/c2_globals.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/opto/c2_globals.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -47,6 +47,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "c2_globals_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "c2_globals_aix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "c2_globals_bsd.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/prims/jvm.cpp --- a/src/share/vm/prims/jvm.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/prims/jvm.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -76,6 +76,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "jvm_windows.h" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "jvm_aix.h" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "jvm_bsd.h" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/prims/jvm.h --- a/src/share/vm/prims/jvm.h Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/prims/jvm.h Thu Aug 22 09:39:54 2013 -0700 @@ -35,6 +35,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "jvm_windows.h" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "jvm_aix.h" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "jvm_bsd.h" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/prims/nativeLookup.cpp --- a/src/share/vm/prims/nativeLookup.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/prims/nativeLookup.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -50,6 +50,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/arguments.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -49,6 +49,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/atomic.cpp --- a/src/share/vm/runtime/atomic.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/atomic.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -33,6 +33,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/atomic.inline.hpp --- a/src/share/vm/runtime/atomic.inline.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/atomic.inline.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -57,6 +57,11 @@ # include "atomic_windows_x86.inline.hpp" #endif +// AIX +#ifdef TARGET_OS_ARCH_aix_ppc +# include "atomic_aix_ppc.inline.hpp" +#endif + // BSD #ifdef TARGET_OS_ARCH_bsd_x86 # include "atomic_bsd_x86.inline.hpp" diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/globals.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -61,6 +61,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "globals_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "globals_aix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "globals_bsd.hpp" #endif @@ -88,6 +91,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "globals_linux_ppc.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "globals_aix_ppc.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "globals_bsd_x86.hpp" #endif @@ -116,6 +122,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "c1_globals_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "c1_globals_aix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "c1_globals_bsd.hpp" #endif @@ -130,6 +139,9 @@ #ifdef TARGET_ARCH_arm # include "c2_globals_arm.hpp" #endif +#ifdef TARGET_ARCH_ppc +# include "c2_globals_ppc.hpp" +#endif #ifdef TARGET_OS_FAMILY_linux # include "c2_globals_linux.hpp" #endif @@ -139,6 +151,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "c2_globals_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "c2_globals_aix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "c2_globals_bsd.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/interfaceSupport.hpp --- a/src/share/vm/runtime/interfaceSupport.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/interfaceSupport.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -107,6 +107,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "interfaceSupport_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "interfaceSupport_aix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "interfaceSupport_bsd.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/javaFrameAnchor.hpp --- a/src/share/vm/runtime/javaFrameAnchor.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/javaFrameAnchor.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -50,6 +50,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "orderAccess_linux_ppc.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "orderAccess_aix_ppc.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "orderAccess_bsd_x86.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/mutexLocker.hpp --- a/src/share/vm/runtime/mutexLocker.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/mutexLocker.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -36,6 +36,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/os.hpp --- a/src/share/vm/runtime/os.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/os.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -41,6 +41,10 @@ #ifdef TARGET_OS_FAMILY_windows # include "jvm_windows.h" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "jvm_aix.h" +# include +#endif #ifdef TARGET_OS_FAMILY_bsd # include "jvm_bsd.h" # include @@ -750,6 +754,10 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.hpp" +# include "os_posix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_posix.hpp" # include "os_bsd.hpp" @@ -778,6 +786,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "os_linux_ppc.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "os_aix_ppc.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "os_bsd_x86.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/osThread.hpp --- a/src/share/vm/runtime/osThread.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/osThread.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -105,6 +105,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "osThread_windows.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "osThread_aix.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "osThread_bsd.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/sharedRuntimeTrans.cpp --- a/src/share/vm/runtime/sharedRuntimeTrans.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/sharedRuntimeTrans.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -56,10 +56,12 @@ # define __LO(x) *(1+(int*)&x) #endif +#if !defined(AIX) double copysign(double x, double y) { __HI(x) = (__HI(x)&0x7fffffff)|(__HI(y)&0x80000000); return x; } +#endif /* * ==================================================== @@ -85,6 +87,7 @@ hugeX = 1.0e+300, tiny = 1.0e-300; +#if !defined(AIX) double scalbn (double x, int n) { int k,hx,lx; hx = __HI(x); @@ -111,6 +114,7 @@ __HI(x) = (hx&0x800fffff)|(k<<20); return x*twom54; } +#endif /* __ieee754_log(x) * Return the logrithm of x diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/sharedRuntimeTrig.cpp --- a/src/share/vm/runtime/sharedRuntimeTrig.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/sharedRuntimeTrig.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -658,7 +658,7 @@ static double __kernel_cos(double x, double y) { - double a,hz,z,r,qx; + double a,h,z,r,qx; int ix; ix = __HI(x)&0x7fffffff; /* ix = |x|'s high word*/ if(ix<0x3e400000) { /* if x < 2**27 */ @@ -675,9 +675,9 @@ __HI(qx) = ix-0x00200000; /* x/4 */ __LO(qx) = 0; } - hz = 0.5*z-qx; - a = one-qx; - return a - (hz - (z*r-x*y)); + h = 0.5*z-qx; + a = one-qx; + return a - (h - (z*r-x*y)); } } diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/thread.hpp --- a/src/share/vm/runtime/thread.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/thread.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -1730,6 +1730,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "thread_linux_ppc.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "thread_aix_ppc.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "thread_bsd_x86.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/thread.inline.hpp --- a/src/share/vm/runtime/thread.inline.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/thread.inline.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -37,6 +37,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "thread_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "thread_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "thread_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/threadLocalStorage.hpp --- a/src/share/vm/runtime/threadLocalStorage.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/threadLocalStorage.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -68,6 +68,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "threadLS_linux_ppc.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "threadLS_aix_ppc.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "threadLS_bsd_x86.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/timer.cpp --- a/src/share/vm/runtime/timer.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/timer.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -35,6 +35,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/virtualspace.cpp --- a/src/share/vm/runtime/virtualspace.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/virtualspace.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -36,6 +36,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/vmStructs.cpp --- a/src/share/vm/runtime/vmStructs.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/vmStructs.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -143,6 +143,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "vmStructs_linux_ppc.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "vmStructs_aix_ppc.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "vmStructs_bsd_x86.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/runtime/vm_version.cpp --- a/src/share/vm/runtime/vm_version.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/runtime/vm_version.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -177,6 +177,7 @@ #define OS LINUX_ONLY("linux") \ WINDOWS_ONLY("windows") \ SOLARIS_ONLY("solaris") \ + AIX_ONLY("aix") \ BSD_ONLY("bsd") #ifdef ZERO @@ -237,6 +238,9 @@ #endif #elif defined(__GNUC__) #define HOTSPOT_BUILD_COMPILER "gcc " __VERSION__ + #elif defined(__IBMCPP__) + #define HOTSPOT_BUILD_COMPILER "xlC " XSTR(__IBMCPP__) + #else #define HOTSPOT_BUILD_COMPILER "unknown compiler" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/accessFlags.cpp --- a/src/share/vm/utilities/accessFlags.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/accessFlags.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -34,6 +34,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/bitMap.cpp --- a/src/share/vm/utilities/bitMap.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/bitMap.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -35,6 +35,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/debug.hpp --- a/src/share/vm/utilities/debug.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/debug.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -25,8 +25,8 @@ #ifndef SHARE_VM_UTILITIES_DEBUG_HPP #define SHARE_VM_UTILITIES_DEBUG_HPP +#include "utilities/globalDefinitions.hpp" #include "prims/jvm.h" -#include "utilities/globalDefinitions.hpp" #include diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/decoder.cpp --- a/src/share/vm/utilities/decoder.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/decoder.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -33,6 +33,8 @@ #include "decoder_windows.hpp" #elif defined(__APPLE__) #include "decoder_machO.hpp" +#elif defined(AIX) + #include "decoder_aix.hpp" #else #include "decoder_elf.hpp" #endif @@ -67,6 +69,8 @@ decoder = new (std::nothrow) WindowsDecoder(); #elif defined (__APPLE__) decoder = new (std::nothrow)MachODecoder(); +#elif defined(AIX) + decoder = new (std::nothrow)AIXDecoder(); #else decoder = new (std::nothrow)ElfDecoder(); #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/globalDefinitions.hpp --- a/src/share/vm/utilities/globalDefinitions.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/globalDefinitions.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -38,6 +38,9 @@ #ifdef TARGET_COMPILER_sparcWorks # include "utilities/globalDefinitions_sparcWorks.hpp" #endif +#ifdef TARGET_COMPILER_xlc +# include "utilities/globalDefinitions_xlc.hpp" +#endif #include "utilities/macros.hpp" diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/histogram.hpp --- a/src/share/vm/utilities/histogram.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/histogram.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -37,6 +37,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/macros.hpp --- a/src/share/vm/utilities/macros.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/macros.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -254,6 +254,14 @@ #define NOT_LINUX(code) code #endif +#ifdef AIX +#define AIX_ONLY(code) code +#define NOT_AIX(code) +#else +#define AIX_ONLY(code) +#define NOT_AIX(code) code +#endif + #ifdef SOLARIS #define SOLARIS_ONLY(code) code #define NOT_SOLARIS(code) diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/ostream.cpp --- a/src/share/vm/utilities/ostream.cpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/ostream.cpp Thu Aug 22 09:39:54 2013 -0700 @@ -39,6 +39,9 @@ #ifdef TARGET_OS_FAMILY_windows # include "os_windows.inline.hpp" #endif +#ifdef TARGET_OS_FAMILY_aix +# include "os_aix.inline.hpp" +#endif #ifdef TARGET_OS_FAMILY_bsd # include "os_bsd.inline.hpp" #endif @@ -1040,7 +1043,7 @@ #ifndef PRODUCT -#if defined(SOLARIS) || defined(LINUX) || defined(_ALLBSD_SOURCE) +#if defined(SOLARIS) || defined(LINUX) || defined(AIX) || defined(_ALLBSD_SOURCE) #include #include #include diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/resourceHash.hpp --- a/src/share/vm/utilities/resourceHash.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/resourceHash.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -44,8 +44,12 @@ template< typename K, typename V, - typename ResourceHashtableFns::hash_fn HASH = primitive_hash, - typename ResourceHashtableFns::equals_fn EQUALS = primitive_equals, + // xlC does not compile this: + // http://stackoverflow.com/questions/8532961/template-argument-of-type-that-is-defined-by-inner-typedef-from-other-template-c + //typename ResourceHashtableFns::hash_fn HASH = primitive_hash, + //typename ResourceHashtableFns::equals_fn EQUALS = primitive_equals, + unsigned (*HASH) (K const&) = primitive_hash, + bool (*EQUALS)(K const&, K const&) = primitive_equals, unsigned SIZE = 256 > class ResourceHashtable : public ResourceObj { diff -r f42f2e2a1518 -r bdd155477289 src/share/vm/utilities/taskqueue.hpp --- a/src/share/vm/utilities/taskqueue.hpp Fri Jul 26 00:59:18 2013 +0200 +++ b/src/share/vm/utilities/taskqueue.hpp Thu Aug 22 09:39:54 2013 -0700 @@ -53,6 +53,9 @@ #ifdef TARGET_OS_ARCH_linux_ppc # include "orderAccess_linux_ppc.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_aix_ppc +# include "orderAccess_aix_ppc.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_bsd_x86 # include "orderAccess_bsd_x86.inline.hpp" #endif