--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java Wed Jun 24 11:55:18 2015 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -357,12 +357,6 @@
// FIXME: avoiding implementing this for now if possible
// public void interpreter_frame_set_monitor_end(BasicObjectLock* value);
// public void interpreter_frame_verify_monitor(BasicObjectLock* value) const;
- //
- // Tells whether the current interpreter_frame frame pointer
- // corresponds to the old compiled/deoptimized fp
- // The receiver used to be a top level frame
- // public boolean interpreter_frame_equals_unpacked_fp(intptr_t* fp);
-
//--------------------------------------------------------------------------------
// Method and constant pool cache:
//
--- a/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp Wed Jun 24 11:55:18 2015 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -526,16 +526,6 @@
return frame(sender_sp(), link(), sender_pc());
}
-bool frame::interpreter_frame_equals_unpacked_fp(intptr_t* fp) {
- assert(is_interpreted_frame(), "must be interpreter frame");
- Method* method = interpreter_frame_method();
- // When unpacking an optimized frame the frame pointer is
- // adjusted with:
- int diff = (method->max_locals() - method->size_of_parameters()) *
- Interpreter::stackElementWords;
- return _fp == (fp - diff);
-}
-
bool frame::is_interpreted_frame_valid(JavaThread* thread) const {
// QQQ
#ifdef CC_INTERP
--- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp Wed Jun 24 11:55:18 2015 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -599,12 +599,6 @@
return next_younger_sp_or_null(valid_sp, sp) != NULL;
}
-
-bool frame::interpreter_frame_equals_unpacked_fp(intptr_t* fp) {
- assert(is_interpreted_frame(), "must be interpreter frame");
- return this->fp() == fp;
-}
-
bool frame::is_interpreted_frame_valid(JavaThread* thread) const {
#ifdef CC_INTERP
// Is there anything to do?
--- a/hotspot/src/cpu/x86/vm/frame_x86.cpp Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp Wed Jun 24 11:55:18 2015 +0200
@@ -524,17 +524,6 @@
return frame(sender_sp(), link(), sender_pc());
}
-
-bool frame::interpreter_frame_equals_unpacked_fp(intptr_t* fp) {
- assert(is_interpreted_frame(), "must be interpreter frame");
- Method* method = interpreter_frame_method();
- // When unpacking an optimized frame the frame pointer is
- // adjusted with:
- int diff = (method->max_locals() - method->size_of_parameters()) *
- Interpreter::stackElementWords;
- return _fp == (fp - diff);
-}
-
bool frame::is_interpreted_frame_valid(JavaThread* thread) const {
// QQQ
#ifdef CC_INTERP
--- a/hotspot/src/share/vm/interpreter/templateInterpreter.hpp Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/src/share/vm/interpreter/templateInterpreter.hpp Wed Jun 24 11:55:18 2015 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -102,7 +102,6 @@
static address _throw_ArrayStoreException_entry;
static address _throw_ArithmeticException_entry;
static address _throw_ClassCastException_entry;
- static address _throw_WrongMethodType_entry;
static address _throw_NullPointerException_entry;
static address _throw_exception_entry;
@@ -148,7 +147,6 @@
static address remove_activation_entry() { return _remove_activation_entry; }
static address throw_exception_entry() { return _throw_exception_entry; }
static address throw_ArithmeticException_entry() { return _throw_ArithmeticException_entry; }
- static address throw_WrongMethodType_entry() { return _throw_WrongMethodType_entry; }
static address throw_NullPointerException_entry() { return _throw_NullPointerException_entry; }
static address throw_StackOverflowError_entry() { return _throw_StackOverflowError_entry; }
--- a/hotspot/src/share/vm/runtime/arguments.cpp Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Wed Jun 24 11:55:18 2015 +0200
@@ -1535,7 +1535,11 @@
if (should_auto_select_low_pause_collector()) {
FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true);
} else {
+#if defined(JAVASE_EMBEDDED)
FLAG_SET_ERGO(bool, UseParallelGC, true);
+#else
+ FLAG_SET_ERGO(bool, UseG1GC, true);
+#endif
}
} else {
FLAG_SET_ERGO(bool, UseSerialGC, true);
--- a/hotspot/src/share/vm/runtime/frame.hpp Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/src/share/vm/runtime/frame.hpp Wed Jun 24 11:55:18 2015 +0200
@@ -307,11 +307,6 @@
void interpreter_frame_verify_monitor(BasicObjectLock* value) const;
- // Tells whether the current interpreter_frame frame pointer
- // corresponds to the old compiled/deoptimized fp
- // The receiver used to be a top level frame
- bool interpreter_frame_equals_unpacked_fp(intptr_t* fp);
-
// Return/result value from this interpreter frame
// If the method return type is T_OBJECT or T_ARRAY populates oop_result
// For other (non-T_VOID) the appropriate field in the jvalue is populated
--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp Wed Jun 24 11:55:18 2015 +0200
@@ -2335,15 +2335,6 @@
// and a single writer: this could be fixed if it becomes a
// problem).
- // Get the address of the ic_miss handlers before we grab the
- // AdapterHandlerLibrary_lock. This fixes bug 6236259 which
- // was caused by the initialization of the stubs happening
- // while we held the lock and then notifying jvmti while
- // holding it. This just forces the initialization to be a little
- // earlier.
- address ic_miss = SharedRuntime::get_ic_miss_stub();
- assert(ic_miss != NULL, "must have handler");
-
ResourceMark rm;
NOT_PRODUCT(int insts_size);
--- a/hotspot/test/gc/arguments/TestSelectDefaultGC.java Wed Jun 24 09:42:45 2015 +0200
+++ b/hotspot/test/gc/arguments/TestSelectDefaultGC.java Wed Jun 24 11:55:18 2015 +0200
@@ -36,11 +36,6 @@
import java.util.regex.*;
public class TestSelectDefaultGC {
- public static boolean versionStringContains(OutputAnalyzer output, String pattern) {
- Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(output.getStderr());
- return matcher.find();
- }
-
public static void assertVMOption(OutputAnalyzer output, String option, boolean value) {
output.shouldMatch(" " + option + " .*=.* " + value + " ");
}
@@ -51,14 +46,18 @@
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldHaveExitValue(0);
- boolean isServerVM = versionStringContains(output, "Server VM");
+ boolean isServerVM = Platform.isServer();
+ boolean isEmbeddedVM = Platform.isEmbedded();
// Verify GC selection
- assertVMOption(output, "UseParallelGC", isServerVM);
- assertVMOption(output, "UseParallelOldGC", isServerVM);
+ // G1 is default for non-embedded server VMs
+ assertVMOption(output, "UseG1GC", isServerVM && !isEmbeddedVM);
+ // Parallel is default for embedded server VMs
+ assertVMOption(output, "UseParallelGC", isServerVM && isEmbeddedVM);
+ assertVMOption(output, "UseParallelOldGC", isServerVM && isEmbeddedVM);
+ // Serial is default for non-server VMs
assertVMOption(output, "UseSerialGC", !isServerVM);
assertVMOption(output, "UseConcMarkSweepGC", false);
- assertVMOption(output, "UseG1GC", false);
assertVMOption(output, "UseParNewGC", false);
}
}