aboutsummaryrefslogtreecommitdiffstats
path: root/hotspot
diff options
context:
space:
mode:
authorIvan Dubrov <idubrov@guidewire.com>2016-04-06 13:37:57 -0700
committerIvan Dubrov <idubrov@guidewire.com>2016-04-06 13:37:57 -0700
commit3da52230cb076d192d2fffff01ed502b78497699 (patch)
tree72cc5c333eabe7d6a6ad57d1825034ca96075316 /hotspot
parente6f053a37d5e3c263f3bf6aa977c596f07af88fe (diff)
downloaddcevm-3da52230cb076d192d2fffff01ed502b78497699.tar.gz
dcevm-3da52230cb076d192d2fffff01ed502b78497699.zip
Need to always clear f1 for invokedynamic/invokehandlelight-jdk8u74+9
Diffstat (limited to 'hotspot')
-rw-r--r--hotspot/.hg/patches/dont-clear-f1.patch30
1 files changed, 21 insertions, 9 deletions
diff --git a/hotspot/.hg/patches/dont-clear-f1.patch b/hotspot/.hg/patches/dont-clear-f1.patch
index 8b6bd0d5..381a0001 100644
--- a/hotspot/.hg/patches/dont-clear-f1.patch
+++ b/hotspot/.hg/patches/dont-clear-f1.patch
@@ -1,21 +1,33 @@
# HG changeset patch
-# Parent 6f6f329e829b021b30ff9d2b21c1308f6427af2f
+# Parent 89c7125da633a3b47b117c4c7ccbc60b6daa7581
-diff -r 6f6f329e829b -r f41a9c701b38 src/share/vm/oops/cpCache.cpp
---- a/src/share/vm/oops/cpCache.cpp Tue Apr 05 11:28:40 2016 -0700
-+++ b/src/share/vm/oops/cpCache.cpp Tue Apr 05 15:31:55 2016 -0700
-@@ -537,7 +537,7 @@
+diff -r 89c7125da633 src/share/vm/oops/cpCache.cpp
+--- a/src/share/vm/oops/cpCache.cpp Wed Apr 06 12:04:17 2016 -0700
++++ b/src/share/vm/oops/cpCache.cpp Wed Apr 06 13:37:24 2016 -0700
+@@ -536,8 +536,9 @@
+ // Enhanced RedefineClasses() API support (DCEVM):
// Clear cached entry, let it be re-resolved
void ConstantPoolCacheEntry::clear_entry() {
++ // Always clear for invokehandle/invokedynamic to re-resolve them
++ bool clearF1 = bytecode_1() == Bytecodes::_invokehandle || bytecode_1() == Bytecodes::_invokedynamic;
_indices = constant_pool_index();
- _f1 = NULL;
-+ //_f1 = NULL;
if (!is_resolved_reference()) {
_f2 = 0;
}
-diff -r 6f6f329e829b -r f41a9c701b38 src/share/vm/oops/cpCache.hpp
---- a/src/share/vm/oops/cpCache.hpp Tue Apr 05 11:28:40 2016 -0700
-+++ b/src/share/vm/oops/cpCache.hpp Tue Apr 05 15:31:55 2016 -0700
+@@ -547,6 +548,9 @@
+ // For example, it's used in TemplateInterpreterGenerator::generate_return_entry_for
+ // Also, we need to keep flag marking entry as one containing resolved_reference
+ _flags &= parameter_size_mask | (1 << is_resolved_ref_shift);
++ if (clearF1) {
++ _f1 = NULL;
++ }
+ }
+ #endif // INCLUDE_JVMTI
+
+diff -r 89c7125da633 src/share/vm/oops/cpCache.hpp
+--- a/src/share/vm/oops/cpCache.hpp Wed Apr 06 12:04:17 2016 -0700
++++ b/src/share/vm/oops/cpCache.hpp Wed Apr 06 13:37:24 2016 -0700
@@ -141,7 +141,7 @@
void set_bytecode_2(Bytecodes::Code code);
void set_f1(Metadata* f1) {