This commit is contained in:
parent
13a93f6a86
commit
3cefd01452
@ -2299,6 +2299,27 @@
|
|||||||
static bool is_invoke (Code code) { return (_invokevirtual <= code && code <= _invokedynamic); }
|
static bool is_invoke (Code code) { return (_invokevirtual <= code && code <= _invokedynamic); }
|
||||||
static bool has_receiver (Code code) { assert(is_invoke(code), ""); return code == _invokevirtual ||
|
static bool has_receiver (Code code) { assert(is_invoke(code), ""); return code == _invokevirtual ||
|
||||||
code == _invokespecial ||
|
code == _invokespecial ||
|
||||||
|
--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Thu Oct 23 15:32:14 2014 -0700
|
||||||
|
+++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Wed Dec 17 10:43:38 2014 -0800
|
||||||
|
@@ -398,6 +398,18 @@
|
||||||
|
int handler_bci;
|
||||||
|
int current_bci = bci(thread);
|
||||||
|
|
||||||
|
+ if (thread->frames_to_pop_failed_realloc() > 0) {
|
||||||
|
+ // Allocation of scalar replaced object used in this frame
|
||||||
|
+ // failed. Unconditionally pop the frame.
|
||||||
|
+ thread->dec_frames_to_pop_failed_realloc();
|
||||||
|
+ thread->set_vm_result(h_exception());
|
||||||
|
+ // If the method is synchronized we already unlocked the monitor
|
||||||
|
+ // during deoptimization so the interpreter needs to skip it when
|
||||||
|
+ // the frame is popped.
|
||||||
|
+ thread->set_do_not_unlock_if_synchronized(true);
|
||||||
|
+ return Interpreter::remove_activation_entry();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// Need to do this check first since when _do_not_unlock_if_synchronized
|
||||||
|
// is set, we don't want to trigger any classloading which may make calls
|
||||||
|
// into java, or surprisingly find a matching exception handler for bci 0
|
||||||
--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-06 16:57:27.000000000 +0100
|
--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-06 16:57:27.000000000 +0100
|
||||||
+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-08 21:23:31.164148528 +0100
|
+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-08 21:23:31.164148528 +0100
|
||||||
@@ -183,13 +183,9 @@
|
@@ -183,13 +183,9 @@
|
||||||
|
15
cplusplus-interpreter.patch
Normal file
15
cplusplus-interpreter.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Sat Dec 13 01:24:10 2014 +0300
|
||||||
|
+++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Dec 15 09:36:46 2014 +0100
|
||||||
|
@@ -394,7 +394,11 @@
|
||||||
|
// during deoptimization so the interpreter needs to skip it when
|
||||||
|
// the frame is popped.
|
||||||
|
thread->set_do_not_unlock_if_synchronized(true);
|
||||||
|
+#ifdef CC_INTERP
|
||||||
|
+ return (address) -1;
|
||||||
|
+#else
|
||||||
|
return Interpreter::remove_activation_entry();
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// Need to do this check first since when _do_not_unlock_if_synchronized
|
||||||
|
|
@ -223,6 +223,8 @@ Patch12: adlc-parser.patch
|
|||||||
Patch13: implicit-pointer-decl.patch
|
Patch13: implicit-pointer-decl.patch
|
||||||
# Avoid triggering inactivity timeout while generating javadoc in zero VM
|
# Avoid triggering inactivity timeout while generating javadoc in zero VM
|
||||||
Patch14: zero-javadoc-verbose.patch
|
Patch14: zero-javadoc-verbose.patch
|
||||||
|
# Fix to build the C++ interpreter that does not have Interpreter::remove_activation_entry
|
||||||
|
Patch15: cplusplus-interpreter.patch
|
||||||
#
|
#
|
||||||
# OpenJDK specific patches
|
# OpenJDK specific patches
|
||||||
#
|
#
|
||||||
@ -517,6 +519,8 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
|
|||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%patch15 -p1
|
||||||
|
|
||||||
%patch99 -p1
|
%patch99 -p1
|
||||||
|
|
||||||
# s390 build fixes
|
# s390 build fixes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user