Thu, 22 Aug 2013 09:39:54 -0700
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
1.1 --- a/src/os/posix/vm/os_posix.cpp Fri Jul 26 00:59:18 2013 +0200 1.2 +++ b/src/os/posix/vm/os_posix.cpp Thu Aug 22 09:39:54 2013 -0700 1.3 @@ -165,7 +165,7 @@ 1.4 else st->print("%uk", rlim.rlim_cur >> 10); 1.5 1.6 // Isn't there on solaris 1.7 -#ifndef TARGET_OS_FAMILY_solaris 1.8 +#if! defined(TARGET_OS_FAMILY_solaris) && !defined(TARGET_OS_FAMILY_aix) 1.9 st->print(", NPROC "); 1.10 getrlimit(RLIMIT_NPROC, &rlim); 1.11 if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity"); 1.12 @@ -487,7 +487,7 @@ 1.13 #define NUM_IMPORTANT_SIGS 32 1.14 // Returns one-line short description of a signal set in a user provided buffer. 1.15 const char* os::Posix::describe_signal_set_short(const sigset_t* set, char* buffer, size_t buf_size) { 1.16 - assert(buf_size = (NUM_IMPORTANT_SIGS + 1), "wrong buffer size"); 1.17 + assert(buf_size == (NUM_IMPORTANT_SIGS + 1), "wrong buffer size"); 1.18 // Note: for shortness, just print out the first 32. That should 1.19 // cover most of the useful ones, apart from realtime signals. 1.20 for (int sig = 1; sig <= NUM_IMPORTANT_SIGS; sig++) {
2.1 --- a/src/share/vm/c1/c1_globals.hpp Fri Jul 26 00:59:18 2013 +0200 2.2 +++ b/src/share/vm/c1/c1_globals.hpp Thu Aug 22 09:39:54 2013 -0700 2.3 @@ -47,6 +47,9 @@ 2.4 #ifdef TARGET_OS_FAMILY_windows 2.5 # include "c1_globals_windows.hpp" 2.6 #endif 2.7 +#ifdef TARGET_OS_FAMILY_aix 2.8 +# include "c1_globals_aix.hpp" 2.9 +#endif 2.10 #ifdef TARGET_OS_FAMILY_bsd 2.11 # include "c1_globals_bsd.hpp" 2.12 #endif
3.1 --- a/src/share/vm/classfile/classLoader.cpp Fri Jul 26 00:59:18 2013 +0200 3.2 +++ b/src/share/vm/classfile/classLoader.cpp Thu Aug 22 09:39:54 2013 -0700 3.3 @@ -68,6 +68,9 @@ 3.4 #ifdef TARGET_OS_FAMILY_windows 3.5 # include "os_windows.inline.hpp" 3.6 #endif 3.7 +#ifdef TARGET_OS_FAMILY_aix 3.8 +# include "os_aix.inline.hpp" 3.9 +#endif 3.10 #ifdef TARGET_OS_FAMILY_bsd 3.11 # include "os_bsd.inline.hpp" 3.12 #endif
4.1 --- a/src/share/vm/code/nmethod.cpp Fri Jul 26 00:59:18 2013 +0200 4.2 +++ b/src/share/vm/code/nmethod.cpp Thu Aug 22 09:39:54 2013 -0700 4.3 @@ -799,7 +799,7 @@ 4.4 } 4.5 #endif // def HAVE_DTRACE_H 4.6 4.7 -void* nmethod::operator new(size_t size, int nmethod_size) throw () { 4.8 +void* nmethod::operator new(size_t size, int nmethod_size) { 4.9 // Not critical, may return null if there is too little continuous memory 4.10 return CodeCache::allocate(nmethod_size); 4.11 }
5.1 --- a/src/share/vm/code/relocInfo.hpp Fri Jul 26 00:59:18 2013 +0200 5.2 +++ b/src/share/vm/code/relocInfo.hpp Thu Aug 22 09:39:54 2013 -0700 5.3 @@ -365,7 +365,7 @@ 5.4 // "immediate" in the prefix header word itself. This optimization 5.5 // is invisible outside this module.) 5.6 5.7 - inline friend relocInfo prefix_relocInfo(int datalen = 0); 5.8 + inline friend relocInfo prefix_relocInfo(int datalen); 5.9 5.10 protected: 5.11 // an immediate relocInfo optimizes a prefix with one 10-bit unsigned value 5.12 @@ -460,7 +460,7 @@ 5.13 return relocInfo(relocInfo::none, relocInfo::offset_limit() - relocInfo::offset_unit); 5.14 } 5.15 5.16 -inline relocInfo prefix_relocInfo(int datalen) { 5.17 +inline relocInfo prefix_relocInfo(int datalen = 0) { 5.18 assert(relocInfo::fits_into_immediate(datalen), "datalen in limits"); 5.19 return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen); 5.20 }
6.1 --- a/src/share/vm/code/stubs.hpp Fri Jul 26 00:59:18 2013 +0200 6.2 +++ b/src/share/vm/code/stubs.hpp Thu Aug 22 09:39:54 2013 -0700 6.3 @@ -36,6 +36,9 @@ 6.4 #ifdef TARGET_OS_FAMILY_windows 6.5 # include "os_windows.inline.hpp" 6.6 #endif 6.7 +#ifdef TARGET_OS_FAMILY_aix 6.8 +# include "os_aix.inline.hpp" 6.9 +#endif 6.10 #ifdef TARGET_OS_FAMILY_bsd 6.11 # include "os_bsd.inline.hpp" 6.12 #endif
7.1 --- a/src/share/vm/code/vmreg.hpp Fri Jul 26 00:59:18 2013 +0200 7.2 +++ b/src/share/vm/code/vmreg.hpp Thu Aug 22 09:39:54 2013 -0700 7.3 @@ -73,7 +73,7 @@ 7.4 // friend class Location; 7.5 private: 7.6 enum { 7.7 - BAD = -1 7.8 + BAD_REG = -1 7.9 }; 7.10 7.11 7.12 @@ -86,7 +86,7 @@ 7.13 7.14 public: 7.15 7.16 - static VMReg as_VMReg(int val, bool bad_ok = false) { assert(val > BAD || bad_ok, "invalid"); return (VMReg) (intptr_t) val; } 7.17 + static VMReg as_VMReg(int val, bool bad_ok = false) { assert(val > BAD_REG || bad_ok, "invalid"); return (VMReg) (intptr_t) val; } 7.18 7.19 const char* name() { 7.20 if (is_reg()) { 7.21 @@ -98,8 +98,8 @@ 7.22 return "STACKED REG"; 7.23 } 7.24 } 7.25 - static VMReg Bad() { return (VMReg) (intptr_t) BAD; } 7.26 - bool is_valid() const { return ((intptr_t) this) != BAD; } 7.27 + static VMReg Bad() { return (VMReg) (intptr_t) BAD_REG; } 7.28 + bool is_valid() const { return ((intptr_t) this) != BAD_REG; } 7.29 bool is_stack() const { return (intptr_t) this >= (intptr_t) stack0; } 7.30 bool is_reg() const { return is_valid() && !is_stack(); } 7.31
8.1 --- a/src/share/vm/compiler/disassembler.hpp Fri Jul 26 00:59:18 2013 +0200 8.2 +++ b/src/share/vm/compiler/disassembler.hpp Thu Aug 22 09:39:54 2013 -0700 8.3 @@ -36,6 +36,9 @@ 8.4 #ifdef TARGET_OS_FAMILY_windows 8.5 # include "os_windows.inline.hpp" 8.6 #endif 8.7 +#ifdef TARGET_OS_FAMILY_aix 8.8 +# include "os_aix.inline.hpp" 8.9 +#endif 8.10 #ifdef TARGET_OS_FAMILY_bsd 8.11 # include "os_bsd.inline.hpp" 8.12 #endif
9.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp Fri Jul 26 00:59:18 2013 +0200 9.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp Thu Aug 22 09:39:54 2013 -0700 9.3 @@ -122,7 +122,7 @@ 9.4 9.5 template <class Chunk> 9.6 void AdaptiveFreeList<Chunk>::return_chunk_at_tail(Chunk* chunk) { 9.7 - return_chunk_at_tail(chunk, true); 9.8 + AdaptiveFreeList<Chunk>::return_chunk_at_tail(chunk, true); 9.9 } 9.10 9.11 template <class Chunk>
10.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp Fri Jul 26 00:59:18 2013 +0200 10.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp Thu Aug 22 09:39:54 2013 -0700 10.3 @@ -37,6 +37,9 @@ 10.4 #ifdef TARGET_OS_FAMILY_windows 10.5 # include "os_windows.inline.hpp" 10.6 #endif 10.7 +#ifdef TARGET_OS_FAMILY_aix 10.8 +# include "os_aix.inline.hpp" 10.9 +#endif 10.10 #ifdef TARGET_OS_FAMILY_bsd 10.11 # include "os_bsd.inline.hpp" 10.12 #endif
11.1 --- a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Fri Jul 26 00:59:18 2013 +0200 11.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Thu Aug 22 09:39:54 2013 -0700 11.3 @@ -38,6 +38,9 @@ 11.4 #ifdef TARGET_OS_FAMILY_windows 11.5 # include "os_windows.inline.hpp" 11.6 #endif 11.7 +#ifdef TARGET_OS_FAMILY_aix 11.8 +# include "os_aix.inline.hpp" 11.9 +#endif 11.10 #ifdef TARGET_OS_FAMILY_bsd 11.11 # include "os_bsd.inline.hpp" 11.12 #endif
12.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Fri Jul 26 00:59:18 2013 +0200 12.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp Thu Aug 22 09:39:54 2013 -0700 12.3 @@ -35,6 +35,9 @@ 12.4 #ifdef TARGET_OS_FAMILY_windows 12.5 # include "os_windows.inline.hpp" 12.6 #endif 12.7 +#ifdef TARGET_OS_FAMILY_aix 12.8 +# include "os_aix.inline.hpp" 12.9 +#endif 12.10 #ifdef TARGET_OS_FAMILY_bsd 12.11 # include "os_bsd.inline.hpp" 12.12 #endif
13.1 --- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Fri Jul 26 00:59:18 2013 +0200 13.2 +++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp Thu Aug 22 09:39:54 2013 -0700 13.3 @@ -67,6 +67,9 @@ 13.4 #ifdef TARGET_OS_ARCH_linux_ppc 13.5 # include "orderAccess_linux_ppc.inline.hpp" 13.6 #endif 13.7 +#ifdef TARGET_OS_ARCH_aix_ppc 13.8 +# include "orderAccess_aix_ppc.inline.hpp" 13.9 +#endif 13.10 #ifdef TARGET_OS_ARCH_bsd_x86 13.11 # include "orderAccess_bsd_x86.inline.hpp" 13.12 #endif
14.1 --- a/src/share/vm/libadt/port.hpp Fri Jul 26 00:59:18 2013 +0200 14.2 +++ b/src/share/vm/libadt/port.hpp Thu Aug 22 09:39:54 2013 -0700 14.3 @@ -91,8 +91,6 @@ 14.4 #define IMPLEMENTATION 14.5 #include <stdlib.h> 14.6 #include <memory.h> 14.7 -inline int min( int a, int b) { return a < b ? a : b; } 14.8 -inline int max( int a, int b) { return a > b ? a : b; } 14.9 14.10 #elif defined(_MSC_VER) 14.11 // Microsoft Visual C++
15.1 --- a/src/share/vm/memory/allocation.cpp Fri Jul 26 00:59:18 2013 +0200 15.2 +++ b/src/share/vm/memory/allocation.cpp Thu Aug 22 09:39:54 2013 -0700 15.3 @@ -45,6 +45,9 @@ 15.4 #ifdef TARGET_OS_FAMILY_windows 15.5 # include "os_windows.inline.hpp" 15.6 #endif 15.7 +#ifdef TARGET_OS_FAMILY_aix 15.8 +# include "os_aix.inline.hpp" 15.9 +#endif 15.10 #ifdef TARGET_OS_FAMILY_bsd 15.11 # include "os_bsd.inline.hpp" 15.12 #endif
16.1 --- a/src/share/vm/memory/allocation.hpp Fri Jul 26 00:59:18 2013 +0200 16.2 +++ b/src/share/vm/memory/allocation.hpp Thu Aug 22 09:39:54 2013 -0700 16.3 @@ -220,8 +220,11 @@ 16.4 class StackObj ALLOCATION_SUPER_CLASS_SPEC { 16.5 private: 16.6 void* operator new(size_t size); 16.7 + void* operator new [](size_t size); 16.8 +#ifdef __IBMCPP__ 16.9 + public: 16.10 +#endif 16.11 void operator delete(void* p); 16.12 - void* operator new [](size_t size); 16.13 void operator delete [](void* p); 16.14 }; 16.15
17.1 --- a/src/share/vm/memory/space.hpp Fri Jul 26 00:59:18 2013 +0200 17.2 +++ b/src/share/vm/memory/space.hpp Thu Aug 22 09:39:54 2013 -0700 17.3 @@ -45,6 +45,9 @@ 17.4 #ifdef TARGET_OS_FAMILY_windows 17.5 # include "os_windows.inline.hpp" 17.6 #endif 17.7 +#ifdef TARGET_OS_FAMILY_aix 17.8 +# include "os_aix.inline.hpp" 17.9 +#endif 17.10 #ifdef TARGET_OS_FAMILY_bsd 17.11 # include "os_bsd.inline.hpp" 17.12 #endif
18.1 --- a/src/share/vm/memory/universe.cpp Fri Jul 26 00:59:18 2013 +0200 18.2 +++ b/src/share/vm/memory/universe.cpp Thu Aug 22 09:39:54 2013 -0700 18.3 @@ -747,7 +747,7 @@ 18.4 // the correct no-access prefix. 18.5 // The final value will be set in initialize_heap() below. 18.6 Universe::set_narrow_oop_base((address)NarrowOopHeapMax); 18.7 -#ifdef _WIN64 18.8 +#if defined(_WIN64) || defined(AIX) 18.9 if (UseLargePages) { 18.10 // Cannot allocate guard pages for implicit checks in indexed 18.11 // addressing mode when large pages are specified on windows. 18.12 @@ -825,6 +825,11 @@ 18.13 // Can't reserve heap below 32Gb. 18.14 // keep the Universe::narrow_oop_base() set in Universe::reserve_heap() 18.15 Universe::set_narrow_oop_shift(LogMinObjAlignmentInBytes); 18.16 +#ifdef AIX 18.17 + // There is no protected page before the heap. This assures all oops 18.18 + // are decoded so that NULL is preserved, so this page will not be accessed. 18.19 + Universe::set_narrow_oop_use_implicit_null_checks(false); 18.20 +#endif 18.21 if (verbose) { 18.22 tty->print(", %s: "PTR_FORMAT, 18.23 narrow_oop_mode_to_string(HeapBasedNarrowOop),
19.1 --- a/src/share/vm/oops/typeArrayOop.hpp Fri Jul 26 00:59:18 2013 +0200 19.2 +++ b/src/share/vm/oops/typeArrayOop.hpp Thu Aug 22 09:39:54 2013 -0700 19.3 @@ -51,6 +51,9 @@ 19.4 #ifdef TARGET_OS_ARCH_linux_ppc 19.5 # include "orderAccess_linux_ppc.inline.hpp" 19.6 #endif 19.7 +#ifdef TARGET_OS_ARCH_aix_ppc 19.8 +# include "orderAccess_aix_ppc.inline.hpp" 19.9 +#endif 19.10 #ifdef TARGET_OS_ARCH_bsd_x86 19.11 # include "orderAccess_bsd_x86.inline.hpp" 19.12 #endif
20.1 --- a/src/share/vm/opto/c2_globals.hpp Fri Jul 26 00:59:18 2013 +0200 20.2 +++ b/src/share/vm/opto/c2_globals.hpp Thu Aug 22 09:39:54 2013 -0700 20.3 @@ -47,6 +47,9 @@ 20.4 #ifdef TARGET_OS_FAMILY_windows 20.5 # include "c2_globals_windows.hpp" 20.6 #endif 20.7 +#ifdef TARGET_OS_FAMILY_aix 20.8 +# include "c2_globals_aix.hpp" 20.9 +#endif 20.10 #ifdef TARGET_OS_FAMILY_bsd 20.11 # include "c2_globals_bsd.hpp" 20.12 #endif
21.1 --- a/src/share/vm/prims/jvm.cpp Fri Jul 26 00:59:18 2013 +0200 21.2 +++ b/src/share/vm/prims/jvm.cpp Thu Aug 22 09:39:54 2013 -0700 21.3 @@ -76,6 +76,9 @@ 21.4 #ifdef TARGET_OS_FAMILY_windows 21.5 # include "jvm_windows.h" 21.6 #endif 21.7 +#ifdef TARGET_OS_FAMILY_aix 21.8 +# include "jvm_aix.h" 21.9 +#endif 21.10 #ifdef TARGET_OS_FAMILY_bsd 21.11 # include "jvm_bsd.h" 21.12 #endif
22.1 --- a/src/share/vm/prims/jvm.h Fri Jul 26 00:59:18 2013 +0200 22.2 +++ b/src/share/vm/prims/jvm.h Thu Aug 22 09:39:54 2013 -0700 22.3 @@ -35,6 +35,9 @@ 22.4 #ifdef TARGET_OS_FAMILY_windows 22.5 # include "jvm_windows.h" 22.6 #endif 22.7 +#ifdef TARGET_OS_FAMILY_aix 22.8 +# include "jvm_aix.h" 22.9 +#endif 22.10 #ifdef TARGET_OS_FAMILY_bsd 22.11 # include "jvm_bsd.h" 22.12 #endif
23.1 --- a/src/share/vm/prims/nativeLookup.cpp Fri Jul 26 00:59:18 2013 +0200 23.2 +++ b/src/share/vm/prims/nativeLookup.cpp Thu Aug 22 09:39:54 2013 -0700 23.3 @@ -50,6 +50,9 @@ 23.4 #ifdef TARGET_OS_FAMILY_windows 23.5 # include "os_windows.inline.hpp" 23.6 #endif 23.7 +#ifdef TARGET_OS_FAMILY_aix 23.8 +# include "os_aix.inline.hpp" 23.9 +#endif 23.10 #ifdef TARGET_OS_FAMILY_bsd 23.11 # include "os_bsd.inline.hpp" 23.12 #endif
24.1 --- a/src/share/vm/runtime/arguments.cpp Fri Jul 26 00:59:18 2013 +0200 24.2 +++ b/src/share/vm/runtime/arguments.cpp Thu Aug 22 09:39:54 2013 -0700 24.3 @@ -49,6 +49,9 @@ 24.4 #ifdef TARGET_OS_FAMILY_windows 24.5 # include "os_windows.inline.hpp" 24.6 #endif 24.7 +#ifdef TARGET_OS_FAMILY_aix 24.8 +# include "os_aix.inline.hpp" 24.9 +#endif 24.10 #ifdef TARGET_OS_FAMILY_bsd 24.11 # include "os_bsd.inline.hpp" 24.12 #endif
25.1 --- a/src/share/vm/runtime/atomic.cpp Fri Jul 26 00:59:18 2013 +0200 25.2 +++ b/src/share/vm/runtime/atomic.cpp Thu Aug 22 09:39:54 2013 -0700 25.3 @@ -33,6 +33,9 @@ 25.4 #ifdef TARGET_OS_FAMILY_windows 25.5 # include "os_windows.inline.hpp" 25.6 #endif 25.7 +#ifdef TARGET_OS_FAMILY_aix 25.8 +# include "os_aix.inline.hpp" 25.9 +#endif 25.10 #ifdef TARGET_OS_FAMILY_bsd 25.11 # include "os_bsd.inline.hpp" 25.12 #endif
26.1 --- a/src/share/vm/runtime/atomic.inline.hpp Fri Jul 26 00:59:18 2013 +0200 26.2 +++ b/src/share/vm/runtime/atomic.inline.hpp Thu Aug 22 09:39:54 2013 -0700 26.3 @@ -57,6 +57,11 @@ 26.4 # include "atomic_windows_x86.inline.hpp" 26.5 #endif 26.6 26.7 +// AIX 26.8 +#ifdef TARGET_OS_ARCH_aix_ppc 26.9 +# include "atomic_aix_ppc.inline.hpp" 26.10 +#endif 26.11 + 26.12 // BSD 26.13 #ifdef TARGET_OS_ARCH_bsd_x86 26.14 # include "atomic_bsd_x86.inline.hpp"
27.1 --- a/src/share/vm/runtime/globals.hpp Fri Jul 26 00:59:18 2013 +0200 27.2 +++ b/src/share/vm/runtime/globals.hpp Thu Aug 22 09:39:54 2013 -0700 27.3 @@ -61,6 +61,9 @@ 27.4 #ifdef TARGET_OS_FAMILY_windows 27.5 # include "globals_windows.hpp" 27.6 #endif 27.7 +#ifdef TARGET_OS_FAMILY_aix 27.8 +# include "globals_aix.hpp" 27.9 +#endif 27.10 #ifdef TARGET_OS_FAMILY_bsd 27.11 # include "globals_bsd.hpp" 27.12 #endif 27.13 @@ -88,6 +91,9 @@ 27.14 #ifdef TARGET_OS_ARCH_linux_ppc 27.15 # include "globals_linux_ppc.hpp" 27.16 #endif 27.17 +#ifdef TARGET_OS_ARCH_aix_ppc 27.18 +# include "globals_aix_ppc.hpp" 27.19 +#endif 27.20 #ifdef TARGET_OS_ARCH_bsd_x86 27.21 # include "globals_bsd_x86.hpp" 27.22 #endif 27.23 @@ -116,6 +122,9 @@ 27.24 #ifdef TARGET_OS_FAMILY_windows 27.25 # include "c1_globals_windows.hpp" 27.26 #endif 27.27 +#ifdef TARGET_OS_FAMILY_aix 27.28 +# include "c1_globals_aix.hpp" 27.29 +#endif 27.30 #ifdef TARGET_OS_FAMILY_bsd 27.31 # include "c1_globals_bsd.hpp" 27.32 #endif 27.33 @@ -130,6 +139,9 @@ 27.34 #ifdef TARGET_ARCH_arm 27.35 # include "c2_globals_arm.hpp" 27.36 #endif 27.37 +#ifdef TARGET_ARCH_ppc 27.38 +# include "c2_globals_ppc.hpp" 27.39 +#endif 27.40 #ifdef TARGET_OS_FAMILY_linux 27.41 # include "c2_globals_linux.hpp" 27.42 #endif 27.43 @@ -139,6 +151,9 @@ 27.44 #ifdef TARGET_OS_FAMILY_windows 27.45 # include "c2_globals_windows.hpp" 27.46 #endif 27.47 +#ifdef TARGET_OS_FAMILY_aix 27.48 +# include "c2_globals_aix.hpp" 27.49 +#endif 27.50 #ifdef TARGET_OS_FAMILY_bsd 27.51 # include "c2_globals_bsd.hpp" 27.52 #endif
28.1 --- a/src/share/vm/runtime/interfaceSupport.hpp Fri Jul 26 00:59:18 2013 +0200 28.2 +++ b/src/share/vm/runtime/interfaceSupport.hpp Thu Aug 22 09:39:54 2013 -0700 28.3 @@ -107,6 +107,9 @@ 28.4 #ifdef TARGET_OS_FAMILY_windows 28.5 # include "interfaceSupport_windows.hpp" 28.6 #endif 28.7 +#ifdef TARGET_OS_FAMILY_aix 28.8 +# include "interfaceSupport_aix.hpp" 28.9 +#endif 28.10 #ifdef TARGET_OS_FAMILY_bsd 28.11 # include "interfaceSupport_bsd.hpp" 28.12 #endif
29.1 --- a/src/share/vm/runtime/javaFrameAnchor.hpp Fri Jul 26 00:59:18 2013 +0200 29.2 +++ b/src/share/vm/runtime/javaFrameAnchor.hpp Thu Aug 22 09:39:54 2013 -0700 29.3 @@ -50,6 +50,9 @@ 29.4 #ifdef TARGET_OS_ARCH_linux_ppc 29.5 # include "orderAccess_linux_ppc.inline.hpp" 29.6 #endif 29.7 +#ifdef TARGET_OS_ARCH_aix_ppc 29.8 +# include "orderAccess_aix_ppc.inline.hpp" 29.9 +#endif 29.10 #ifdef TARGET_OS_ARCH_bsd_x86 29.11 # include "orderAccess_bsd_x86.inline.hpp" 29.12 #endif
30.1 --- a/src/share/vm/runtime/mutexLocker.hpp Fri Jul 26 00:59:18 2013 +0200 30.2 +++ b/src/share/vm/runtime/mutexLocker.hpp Thu Aug 22 09:39:54 2013 -0700 30.3 @@ -36,6 +36,9 @@ 30.4 #ifdef TARGET_OS_FAMILY_windows 30.5 # include "os_windows.inline.hpp" 30.6 #endif 30.7 +#ifdef TARGET_OS_FAMILY_aix 30.8 +# include "os_aix.inline.hpp" 30.9 +#endif 30.10 #ifdef TARGET_OS_FAMILY_bsd 30.11 # include "os_bsd.inline.hpp" 30.12 #endif
31.1 --- a/src/share/vm/runtime/os.hpp Fri Jul 26 00:59:18 2013 +0200 31.2 +++ b/src/share/vm/runtime/os.hpp Thu Aug 22 09:39:54 2013 -0700 31.3 @@ -41,6 +41,10 @@ 31.4 #ifdef TARGET_OS_FAMILY_windows 31.5 # include "jvm_windows.h" 31.6 #endif 31.7 +#ifdef TARGET_OS_FAMILY_aix 31.8 +# include "jvm_aix.h" 31.9 +# include <setjmp.h> 31.10 +#endif 31.11 #ifdef TARGET_OS_FAMILY_bsd 31.12 # include "jvm_bsd.h" 31.13 # include <setjmp.h> 31.14 @@ -750,6 +754,10 @@ 31.15 #ifdef TARGET_OS_FAMILY_windows 31.16 # include "os_windows.hpp" 31.17 #endif 31.18 +#ifdef TARGET_OS_FAMILY_aix 31.19 +# include "os_aix.hpp" 31.20 +# include "os_posix.hpp" 31.21 +#endif 31.22 #ifdef TARGET_OS_FAMILY_bsd 31.23 # include "os_posix.hpp" 31.24 # include "os_bsd.hpp" 31.25 @@ -778,6 +786,9 @@ 31.26 #ifdef TARGET_OS_ARCH_linux_ppc 31.27 # include "os_linux_ppc.hpp" 31.28 #endif 31.29 +#ifdef TARGET_OS_ARCH_aix_ppc 31.30 +# include "os_aix_ppc.hpp" 31.31 +#endif 31.32 #ifdef TARGET_OS_ARCH_bsd_x86 31.33 # include "os_bsd_x86.hpp" 31.34 #endif
32.1 --- a/src/share/vm/runtime/osThread.hpp Fri Jul 26 00:59:18 2013 +0200 32.2 +++ b/src/share/vm/runtime/osThread.hpp Thu Aug 22 09:39:54 2013 -0700 32.3 @@ -105,6 +105,9 @@ 32.4 #ifdef TARGET_OS_FAMILY_windows 32.5 # include "osThread_windows.hpp" 32.6 #endif 32.7 +#ifdef TARGET_OS_FAMILY_aix 32.8 +# include "osThread_aix.hpp" 32.9 +#endif 32.10 #ifdef TARGET_OS_FAMILY_bsd 32.11 # include "osThread_bsd.hpp" 32.12 #endif
33.1 --- a/src/share/vm/runtime/sharedRuntimeTrans.cpp Fri Jul 26 00:59:18 2013 +0200 33.2 +++ b/src/share/vm/runtime/sharedRuntimeTrans.cpp Thu Aug 22 09:39:54 2013 -0700 33.3 @@ -56,10 +56,12 @@ 33.4 # define __LO(x) *(1+(int*)&x) 33.5 #endif 33.6 33.7 +#if !defined(AIX) 33.8 double copysign(double x, double y) { 33.9 __HI(x) = (__HI(x)&0x7fffffff)|(__HI(y)&0x80000000); 33.10 return x; 33.11 } 33.12 +#endif 33.13 33.14 /* 33.15 * ==================================================== 33.16 @@ -85,6 +87,7 @@ 33.17 hugeX = 1.0e+300, 33.18 tiny = 1.0e-300; 33.19 33.20 +#if !defined(AIX) 33.21 double scalbn (double x, int n) { 33.22 int k,hx,lx; 33.23 hx = __HI(x); 33.24 @@ -111,6 +114,7 @@ 33.25 __HI(x) = (hx&0x800fffff)|(k<<20); 33.26 return x*twom54; 33.27 } 33.28 +#endif 33.29 33.30 /* __ieee754_log(x) 33.31 * Return the logrithm of x
34.1 --- a/src/share/vm/runtime/sharedRuntimeTrig.cpp Fri Jul 26 00:59:18 2013 +0200 34.2 +++ b/src/share/vm/runtime/sharedRuntimeTrig.cpp Thu Aug 22 09:39:54 2013 -0700 34.3 @@ -658,7 +658,7 @@ 34.4 34.5 static double __kernel_cos(double x, double y) 34.6 { 34.7 - double a,hz,z,r,qx; 34.8 + double a,h,z,r,qx; 34.9 int ix; 34.10 ix = __HI(x)&0x7fffffff; /* ix = |x|'s high word*/ 34.11 if(ix<0x3e400000) { /* if x < 2**27 */ 34.12 @@ -675,9 +675,9 @@ 34.13 __HI(qx) = ix-0x00200000; /* x/4 */ 34.14 __LO(qx) = 0; 34.15 } 34.16 - hz = 0.5*z-qx; 34.17 - a = one-qx; 34.18 - return a - (hz - (z*r-x*y)); 34.19 + h = 0.5*z-qx; 34.20 + a = one-qx; 34.21 + return a - (h - (z*r-x*y)); 34.22 } 34.23 } 34.24
35.1 --- a/src/share/vm/runtime/thread.hpp Fri Jul 26 00:59:18 2013 +0200 35.2 +++ b/src/share/vm/runtime/thread.hpp Thu Aug 22 09:39:54 2013 -0700 35.3 @@ -1730,6 +1730,9 @@ 35.4 #ifdef TARGET_OS_ARCH_linux_ppc 35.5 # include "thread_linux_ppc.hpp" 35.6 #endif 35.7 +#ifdef TARGET_OS_ARCH_aix_ppc 35.8 +# include "thread_aix_ppc.hpp" 35.9 +#endif 35.10 #ifdef TARGET_OS_ARCH_bsd_x86 35.11 # include "thread_bsd_x86.hpp" 35.12 #endif
36.1 --- a/src/share/vm/runtime/thread.inline.hpp Fri Jul 26 00:59:18 2013 +0200 36.2 +++ b/src/share/vm/runtime/thread.inline.hpp Thu Aug 22 09:39:54 2013 -0700 36.3 @@ -37,6 +37,9 @@ 36.4 #ifdef TARGET_OS_FAMILY_windows 36.5 # include "thread_windows.inline.hpp" 36.6 #endif 36.7 +#ifdef TARGET_OS_FAMILY_aix 36.8 +# include "thread_aix.inline.hpp" 36.9 +#endif 36.10 #ifdef TARGET_OS_FAMILY_bsd 36.11 # include "thread_bsd.inline.hpp" 36.12 #endif
37.1 --- a/src/share/vm/runtime/threadLocalStorage.hpp Fri Jul 26 00:59:18 2013 +0200 37.2 +++ b/src/share/vm/runtime/threadLocalStorage.hpp Thu Aug 22 09:39:54 2013 -0700 37.3 @@ -68,6 +68,9 @@ 37.4 #ifdef TARGET_OS_ARCH_linux_ppc 37.5 # include "threadLS_linux_ppc.hpp" 37.6 #endif 37.7 +#ifdef TARGET_OS_ARCH_aix_ppc 37.8 +# include "threadLS_aix_ppc.hpp" 37.9 +#endif 37.10 #ifdef TARGET_OS_ARCH_bsd_x86 37.11 # include "threadLS_bsd_x86.hpp" 37.12 #endif
38.1 --- a/src/share/vm/runtime/timer.cpp Fri Jul 26 00:59:18 2013 +0200 38.2 +++ b/src/share/vm/runtime/timer.cpp Thu Aug 22 09:39:54 2013 -0700 38.3 @@ -35,6 +35,9 @@ 38.4 #ifdef TARGET_OS_FAMILY_windows 38.5 # include "os_windows.inline.hpp" 38.6 #endif 38.7 +#ifdef TARGET_OS_FAMILY_aix 38.8 +# include "os_aix.inline.hpp" 38.9 +#endif 38.10 #ifdef TARGET_OS_FAMILY_bsd 38.11 # include "os_bsd.inline.hpp" 38.12 #endif
39.1 --- a/src/share/vm/runtime/virtualspace.cpp Fri Jul 26 00:59:18 2013 +0200 39.2 +++ b/src/share/vm/runtime/virtualspace.cpp Thu Aug 22 09:39:54 2013 -0700 39.3 @@ -36,6 +36,9 @@ 39.4 #ifdef TARGET_OS_FAMILY_windows 39.5 # include "os_windows.inline.hpp" 39.6 #endif 39.7 +#ifdef TARGET_OS_FAMILY_aix 39.8 +# include "os_aix.inline.hpp" 39.9 +#endif 39.10 #ifdef TARGET_OS_FAMILY_bsd 39.11 # include "os_bsd.inline.hpp" 39.12 #endif
40.1 --- a/src/share/vm/runtime/vmStructs.cpp Fri Jul 26 00:59:18 2013 +0200 40.2 +++ b/src/share/vm/runtime/vmStructs.cpp Thu Aug 22 09:39:54 2013 -0700 40.3 @@ -143,6 +143,9 @@ 40.4 #ifdef TARGET_OS_ARCH_linux_ppc 40.5 # include "vmStructs_linux_ppc.hpp" 40.6 #endif 40.7 +#ifdef TARGET_OS_ARCH_aix_ppc 40.8 +# include "vmStructs_aix_ppc.hpp" 40.9 +#endif 40.10 #ifdef TARGET_OS_ARCH_bsd_x86 40.11 # include "vmStructs_bsd_x86.hpp" 40.12 #endif
41.1 --- a/src/share/vm/runtime/vm_version.cpp Fri Jul 26 00:59:18 2013 +0200 41.2 +++ b/src/share/vm/runtime/vm_version.cpp Thu Aug 22 09:39:54 2013 -0700 41.3 @@ -177,6 +177,7 @@ 41.4 #define OS LINUX_ONLY("linux") \ 41.5 WINDOWS_ONLY("windows") \ 41.6 SOLARIS_ONLY("solaris") \ 41.7 + AIX_ONLY("aix") \ 41.8 BSD_ONLY("bsd") 41.9 41.10 #ifdef ZERO 41.11 @@ -237,6 +238,9 @@ 41.12 #endif 41.13 #elif defined(__GNUC__) 41.14 #define HOTSPOT_BUILD_COMPILER "gcc " __VERSION__ 41.15 + #elif defined(__IBMCPP__) 41.16 + #define HOTSPOT_BUILD_COMPILER "xlC " XSTR(__IBMCPP__) 41.17 + 41.18 #else 41.19 #define HOTSPOT_BUILD_COMPILER "unknown compiler" 41.20 #endif
42.1 --- a/src/share/vm/utilities/accessFlags.cpp Fri Jul 26 00:59:18 2013 +0200 42.2 +++ b/src/share/vm/utilities/accessFlags.cpp Thu Aug 22 09:39:54 2013 -0700 42.3 @@ -34,6 +34,9 @@ 42.4 #ifdef TARGET_OS_FAMILY_windows 42.5 # include "os_windows.inline.hpp" 42.6 #endif 42.7 +#ifdef TARGET_OS_FAMILY_aix 42.8 +# include "os_aix.inline.hpp" 42.9 +#endif 42.10 #ifdef TARGET_OS_FAMILY_bsd 42.11 # include "os_bsd.inline.hpp" 42.12 #endif
43.1 --- a/src/share/vm/utilities/bitMap.cpp Fri Jul 26 00:59:18 2013 +0200 43.2 +++ b/src/share/vm/utilities/bitMap.cpp Thu Aug 22 09:39:54 2013 -0700 43.3 @@ -35,6 +35,9 @@ 43.4 #ifdef TARGET_OS_FAMILY_windows 43.5 # include "os_windows.inline.hpp" 43.6 #endif 43.7 +#ifdef TARGET_OS_FAMILY_aix 43.8 +# include "os_aix.inline.hpp" 43.9 +#endif 43.10 #ifdef TARGET_OS_FAMILY_bsd 43.11 # include "os_bsd.inline.hpp" 43.12 #endif
44.1 --- a/src/share/vm/utilities/debug.hpp Fri Jul 26 00:59:18 2013 +0200 44.2 +++ b/src/share/vm/utilities/debug.hpp Thu Aug 22 09:39:54 2013 -0700 44.3 @@ -25,8 +25,8 @@ 44.4 #ifndef SHARE_VM_UTILITIES_DEBUG_HPP 44.5 #define SHARE_VM_UTILITIES_DEBUG_HPP 44.6 44.7 +#include "utilities/globalDefinitions.hpp" 44.8 #include "prims/jvm.h" 44.9 -#include "utilities/globalDefinitions.hpp" 44.10 44.11 #include <stdarg.h> 44.12
45.1 --- a/src/share/vm/utilities/decoder.cpp Fri Jul 26 00:59:18 2013 +0200 45.2 +++ b/src/share/vm/utilities/decoder.cpp Thu Aug 22 09:39:54 2013 -0700 45.3 @@ -33,6 +33,8 @@ 45.4 #include "decoder_windows.hpp" 45.5 #elif defined(__APPLE__) 45.6 #include "decoder_machO.hpp" 45.7 +#elif defined(AIX) 45.8 + #include "decoder_aix.hpp" 45.9 #else 45.10 #include "decoder_elf.hpp" 45.11 #endif 45.12 @@ -67,6 +69,8 @@ 45.13 decoder = new (std::nothrow) WindowsDecoder(); 45.14 #elif defined (__APPLE__) 45.15 decoder = new (std::nothrow)MachODecoder(); 45.16 +#elif defined(AIX) 45.17 + decoder = new (std::nothrow)AIXDecoder(); 45.18 #else 45.19 decoder = new (std::nothrow)ElfDecoder(); 45.20 #endif
46.1 --- a/src/share/vm/utilities/globalDefinitions.hpp Fri Jul 26 00:59:18 2013 +0200 46.2 +++ b/src/share/vm/utilities/globalDefinitions.hpp Thu Aug 22 09:39:54 2013 -0700 46.3 @@ -38,6 +38,9 @@ 46.4 #ifdef TARGET_COMPILER_sparcWorks 46.5 # include "utilities/globalDefinitions_sparcWorks.hpp" 46.6 #endif 46.7 +#ifdef TARGET_COMPILER_xlc 46.8 +# include "utilities/globalDefinitions_xlc.hpp" 46.9 +#endif 46.10 46.11 #include "utilities/macros.hpp" 46.12
47.1 --- a/src/share/vm/utilities/histogram.hpp Fri Jul 26 00:59:18 2013 +0200 47.2 +++ b/src/share/vm/utilities/histogram.hpp Thu Aug 22 09:39:54 2013 -0700 47.3 @@ -37,6 +37,9 @@ 47.4 #ifdef TARGET_OS_FAMILY_windows 47.5 # include "os_windows.inline.hpp" 47.6 #endif 47.7 +#ifdef TARGET_OS_FAMILY_aix 47.8 +# include "os_aix.inline.hpp" 47.9 +#endif 47.10 #ifdef TARGET_OS_FAMILY_bsd 47.11 # include "os_bsd.inline.hpp" 47.12 #endif
48.1 --- a/src/share/vm/utilities/macros.hpp Fri Jul 26 00:59:18 2013 +0200 48.2 +++ b/src/share/vm/utilities/macros.hpp Thu Aug 22 09:39:54 2013 -0700 48.3 @@ -254,6 +254,14 @@ 48.4 #define NOT_LINUX(code) code 48.5 #endif 48.6 48.7 +#ifdef AIX 48.8 +#define AIX_ONLY(code) code 48.9 +#define NOT_AIX(code) 48.10 +#else 48.11 +#define AIX_ONLY(code) 48.12 +#define NOT_AIX(code) code 48.13 +#endif 48.14 + 48.15 #ifdef SOLARIS 48.16 #define SOLARIS_ONLY(code) code 48.17 #define NOT_SOLARIS(code)
49.1 --- a/src/share/vm/utilities/ostream.cpp Fri Jul 26 00:59:18 2013 +0200 49.2 +++ b/src/share/vm/utilities/ostream.cpp Thu Aug 22 09:39:54 2013 -0700 49.3 @@ -39,6 +39,9 @@ 49.4 #ifdef TARGET_OS_FAMILY_windows 49.5 # include "os_windows.inline.hpp" 49.6 #endif 49.7 +#ifdef TARGET_OS_FAMILY_aix 49.8 +# include "os_aix.inline.hpp" 49.9 +#endif 49.10 #ifdef TARGET_OS_FAMILY_bsd 49.11 # include "os_bsd.inline.hpp" 49.12 #endif 49.13 @@ -1040,7 +1043,7 @@ 49.14 49.15 #ifndef PRODUCT 49.16 49.17 -#if defined(SOLARIS) || defined(LINUX) || defined(_ALLBSD_SOURCE) 49.18 +#if defined(SOLARIS) || defined(LINUX) || defined(AIX) || defined(_ALLBSD_SOURCE) 49.19 #include <sys/types.h> 49.20 #include <sys/socket.h> 49.21 #include <netinet/in.h>
50.1 --- a/src/share/vm/utilities/resourceHash.hpp Fri Jul 26 00:59:18 2013 +0200 50.2 +++ b/src/share/vm/utilities/resourceHash.hpp Thu Aug 22 09:39:54 2013 -0700 50.3 @@ -44,8 +44,12 @@ 50.4 50.5 template< 50.6 typename K, typename V, 50.7 - typename ResourceHashtableFns<K>::hash_fn HASH = primitive_hash<K>, 50.8 - typename ResourceHashtableFns<K>::equals_fn EQUALS = primitive_equals<K>, 50.9 + // xlC does not compile this: 50.10 + // http://stackoverflow.com/questions/8532961/template-argument-of-type-that-is-defined-by-inner-typedef-from-other-template-c 50.11 + //typename ResourceHashtableFns<K>::hash_fn HASH = primitive_hash<K>, 50.12 + //typename ResourceHashtableFns<K>::equals_fn EQUALS = primitive_equals<K>, 50.13 + unsigned (*HASH) (K const&) = primitive_hash<K>, 50.14 + bool (*EQUALS)(K const&, K const&) = primitive_equals<K>, 50.15 unsigned SIZE = 256 50.16 > 50.17 class ResourceHashtable : public ResourceObj {
51.1 --- a/src/share/vm/utilities/taskqueue.hpp Fri Jul 26 00:59:18 2013 +0200 51.2 +++ b/src/share/vm/utilities/taskqueue.hpp Thu Aug 22 09:39:54 2013 -0700 51.3 @@ -53,6 +53,9 @@ 51.4 #ifdef TARGET_OS_ARCH_linux_ppc 51.5 # include "orderAccess_linux_ppc.inline.hpp" 51.6 #endif 51.7 +#ifdef TARGET_OS_ARCH_aix_ppc 51.8 +# include "orderAccess_aix_ppc.inline.hpp" 51.9 +#endif 51.10 #ifdef TARGET_OS_ARCH_bsd_x86 51.11 # include "orderAccess_bsd_x86.inline.hpp" 51.12 #endif