8016586: PPC64 (part 3): basic changes for PPC64
Summary: added #includes needed for ppc64 port. Renamed _MODEL_ppc to _MODEL_ppc_32 and renamed corresponding old _ppc files to _ppc_32.
Reviewed-by: dholmes, kvn
--- a/hotspot/agent/src/os/linux/libproc.h Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/agent/src/os/linux/libproc.h Thu Jun 20 16:30:44 2013 -0700
@@ -80,7 +80,7 @@
*************************************************************************************/
-#if defined(sparc) || defined(sparcv9)
+#if defined(sparc) || defined(sparcv9) || defined(ppc64)
#define user_regs_struct pt_regs
#endif
--- a/hotspot/make/linux/platform_ppc Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/make/linux/platform_ppc Thu Jun 20 16:30:44 2013 -0700
@@ -2,11 +2,11 @@
arch = ppc
-arch_model = ppc
+arch_model = ppc_32
os_arch = linux_ppc
-os_arch_model = linux_ppc
+os_arch_model = linux_ppc_32
lib_arch = ppc
--- a/hotspot/src/os/linux/vm/os_linux.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/os/linux/vm/os_linux.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -132,7 +132,7 @@
// For diagnostics to print a message once. see run_periodic_checks
static sigset_t check_signal_done;
-static bool check_signals = true;;
+static bool check_signals = true;
static pid_t _initial_pid = 0;
@@ -249,6 +249,8 @@
static char cpu_arch[] = "arm";
#elif defined(PPC32)
static char cpu_arch[] = "ppc";
+#elif defined(PPC64)
+static char cpu_arch[] = "ppc64";
#elif defined(SPARC)
# ifdef _LP64
static char cpu_arch[] = "sparcv9";
@@ -4402,7 +4404,7 @@
// the future if the appropriate cleanup code can be added to the
// VM_Exit VMOperation's doit method.
if (atexit(perfMemory_exit_helper) != 0) {
- warning("os::init2 atexit(perfMemory_exit_helper) failed");
+ warning("os::init_2 atexit(perfMemory_exit_helper) failed");
}
}
@@ -4413,8 +4415,7 @@
}
// this is called at the end of vm_initialization
-void os::init_3(void)
-{
+void os::init_3(void) {
#ifdef JAVASE_EMBEDDED
// Start the MemNotifyThread
if (LowMemoryProtection) {
--- a/hotspot/src/share/vm/adlc/main.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/adlc/main.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -243,6 +243,11 @@
AD.addInclude(AD._CPP_file, "nativeInst_arm.hpp");
AD.addInclude(AD._CPP_file, "vmreg_arm.inline.hpp");
#endif
+#ifdef TARGET_ARCH_ppc
+ AD.addInclude(AD._CPP_file, "assembler_ppc.inline.hpp");
+ AD.addInclude(AD._CPP_file, "nativeInst_ppc.hpp");
+ AD.addInclude(AD._CPP_file, "vmreg_ppc.inline.hpp");
+#endif
AD.addInclude(AD._HPP_file, "memory/allocation.hpp");
AD.addInclude(AD._HPP_file, "opto/machnode.hpp");
AD.addInclude(AD._HPP_file, "opto/node.hpp");
--- a/hotspot/src/share/vm/code/vmreg.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/code/vmreg.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -47,8 +47,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/adGlobals_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/adGlobals_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/adGlobals_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/adGlobals_ppc_64.hpp"
#endif
#endif
--- a/hotspot/src/share/vm/compiler/compileBroker.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -958,7 +958,7 @@
// Initialize the compilation queue
void CompileBroker::init_compiler_threads(int c1_compiler_count, int c2_compiler_count) {
EXCEPTION_MARK;
-#if !defined(ZERO) && !defined(SHARK)
+#if !defined(ZERO) && !defined(SHARK) && !defined(PPC64)
assert(c2_compiler_count > 0 || c1_compiler_count > 0, "No compilers?");
#endif // !ZERO && !SHARK
if (c2_compiler_count > 0) {
--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -29,6 +29,7 @@
#include "gc_implementation/g1/g1CollectedHeap.hpp"
#include "gc_implementation/g1/g1OopClosures.hpp"
#include "gc_implementation/g1/g1RemSet.hpp"
+#include "gc_implementation/g1/g1RemSet.inline.hpp"
#include "gc_implementation/g1/heapRegionRemSet.hpp"
/*
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -28,6 +28,7 @@
#include "gc_implementation/parallelScavenge/psOldGen.hpp"
#include "gc_implementation/parallelScavenge/psPromotionManager.hpp"
#include "gc_implementation/parallelScavenge/psScavenge.hpp"
+#include "oops/oop.psgc.inline.hpp"
inline PSPromotionManager* PSPromotionManager::manager_array(int index) {
assert(_manager_array != NULL, "access of NULL manager_array");
--- a/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -45,8 +45,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "interp_masm_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "interp_masm_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "interp_masm_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "interp_masm_ppc_64.hpp"
#endif
// This file contains the platform-independent parts
--- a/hotspot/src/share/vm/interpreter/templateTable.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/interpreter/templateTable.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -43,8 +43,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "interp_masm_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "interp_masm_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "interp_masm_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "interp_masm_ppc_64.hpp"
#endif
#ifndef CC_INTERP
@@ -373,8 +376,8 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "templateTable_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "templateTable_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "templateTable_ppc_32.hpp"
#endif
};
--- a/hotspot/src/share/vm/opto/c2_globals.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/c2_globals.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -35,6 +35,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
--- a/hotspot/src/share/vm/opto/c2compiler.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/c2compiler.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -40,8 +40,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
--- a/hotspot/src/share/vm/opto/compile.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/compile.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -79,8 +79,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
--- a/hotspot/src/share/vm/opto/gcm.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/gcm.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -50,9 +50,13 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
+#endif
+
// Portions of code courtesy of Clifford Click
--- a/hotspot/src/share/vm/opto/lcm.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/lcm.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -45,8 +45,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
// Optimization - Graph Style
--- a/hotspot/src/share/vm/opto/locknode.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/locknode.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -43,8 +43,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
//------------------------------BoxLockNode------------------------------------
--- a/hotspot/src/share/vm/opto/matcher.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/matcher.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -53,8 +53,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
OptoReg::Name OptoReg::c_frame_pointer;
--- a/hotspot/src/share/vm/opto/output.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/output.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -42,8 +42,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
class Arena;
--- a/hotspot/src/share/vm/opto/regmask.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/regmask.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -40,8 +40,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
#define RM_SIZE _RM_SIZE /* a constant private to the class RegMask */
--- a/hotspot/src/share/vm/opto/regmask.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/regmask.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -43,8 +43,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/adGlobals_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/adGlobals_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/adGlobals_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/adGlobals_ppc_64.hpp"
#endif
// Some fun naming (textual) substitutions:
--- a/hotspot/src/share/vm/opto/runtime.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/opto/runtime.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -83,8 +83,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
@@ -977,7 +980,7 @@
nm = CodeCache::find_nmethod(pc);
assert(nm != NULL, "No NMethod found");
if (nm->is_native_method()) {
- fatal("Native mathod should not have path to exception handling");
+ fatal("Native method should not have path to exception handling");
} else {
// we are switching to old paradigm: search for exception handler in caller_frame
// instead in exception handler of caller_frame.sender()
@@ -1006,7 +1009,7 @@
}
// If we are forcing an unwind because of stack overflow then deopt is
- // irrelevant sice we are throwing the frame away anyway.
+ // irrelevant since we are throwing the frame away anyway.
if (deopting && !force_unwind) {
handler_address = SharedRuntime::deopt_blob()->unpack_with_exception();
@@ -1049,7 +1052,7 @@
// Note we enter without the usual JRT wrapper. We will call a helper routine that
// will do the normal VM entry. We do it this way so that we can see if the nmethod
// we looked up the handler for has been deoptimized in the meantime. If it has been
-// we must not use the handler and instread return the deopt blob.
+// we must not use the handler and instead return the deopt blob.
address OptoRuntime::handle_exception_C(JavaThread* thread) {
//
// We are in Java not VM and in debug mode we have a NoHandleMark
--- a/hotspot/src/share/vm/runtime/deoptimization.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/runtime/deoptimization.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -81,10 +81,13 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
+#endif // COMPILER2
bool DeoptimizationMarker::_is_active = false;
--- a/hotspot/src/share/vm/runtime/frame.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/runtime/frame.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -46,10 +46,13 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/adGlobals_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/adGlobals_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/adGlobals_ppc_32.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/adGlobals_ppc_64.hpp"
#endif
+#endif // COMPILER2
#ifdef ZERO
#ifdef TARGET_ARCH_zero
# include "stack_zero.hpp"
--- a/hotspot/src/share/vm/runtime/globals.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/runtime/globals.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -167,7 +167,6 @@
define_pd_global(intx, OnStackReplacePercentage, 0);
define_pd_global(bool, ResizeTLAB, false);
define_pd_global(intx, FreqInlineSize, 0);
-define_pd_global(intx, InlineSmallCode, 0);
define_pd_global(intx, NewSizeThreadIncrease, 4*K);
define_pd_global(intx, InlineClassNatives, true);
define_pd_global(intx, InlineUnsafeOps, true);
@@ -3143,7 +3142,8 @@
"disable this feature") \
\
/* code cache parameters */ \
- develop(uintx, CodeCacheSegmentSize, 64, \
+ /* ppc64 has large code-entry alignment. */ \
+ develop(uintx, CodeCacheSegmentSize, 64 PPC64_ONLY(+64), \
"Code cache segment size (in bytes) - smallest unit of " \
"allocation") \
\
@@ -3605,7 +3605,7 @@
NOT_LP64(LINUX_ONLY(2*G) NOT_LINUX(0)), \
"Address to allocate shared memory region for class data") \
\
- diagnostic(bool, EnableInvokeDynamic, true, \
+ diagnostic(bool, EnableInvokeDynamic, true PPC64_ONLY(&& false), \
"support JSR 292 (method handles, invokedynamic, " \
"anonymous classes") \
\
--- a/hotspot/src/share/vm/runtime/stubRoutines.hpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/runtime/stubRoutines.hpp Thu Jun 20 16:30:44 2013 -0700
@@ -114,8 +114,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "stubRoutines_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "stubRoutines_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "stubRoutines_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "stubRoutines_ppc_64.hpp"
#endif
--- a/hotspot/src/share/vm/runtime/vmStructs.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/runtime/vmStructs.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -197,10 +197,13 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/adGlobals_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/adGlobals_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/adGlobals_ppc_32.hpp"
#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/adGlobals_ppc_64.hpp"
#endif
+#endif // COMPILER2
// Note: the cross-product of (c1, c2, product, nonproduct, ...),
// (nonstatic, static), and (unchecked, checked) has not been taken.
--- a/hotspot/src/share/vm/runtime/vm_version.cpp Wed Jun 19 12:29:30 2013 +0200
+++ b/hotspot/src/share/vm/runtime/vm_version.cpp Thu Jun 20 16:30:44 2013 -0700
@@ -187,6 +187,7 @@
AMD64_ONLY("amd64") \
ARM_ONLY("arm") \
PPC32_ONLY("ppc") \
+ PPC64_ONLY("ppc64") \
SPARC_ONLY("sparc")
#endif // ZERO