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 has_receiver (Code code) { assert(is_invoke(code), ""); return code == _invokevirtual ||
|
||||
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-08 21:23:31.164148528 +0100
|
||||
@@ -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
|
||||
# Avoid triggering inactivity timeout while generating javadoc in zero VM
|
||||
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
|
||||
#
|
||||
@ -517,6 +519,8 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
|
||||
%patch14 -p1
|
||||
%endif
|
||||
|
||||
%patch15 -p1
|
||||
|
||||
%patch99 -p1
|
||||
|
||||
# s390 build fixes
|
||||
|
Loading…
x
Reference in New Issue
Block a user