/hg/icedtea8-forest/hotspot: 26 new changesets

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

/hg/icedtea8-forest/hotspot: 26 new changesets

andrew-127
changeset bed72f56b47d in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=bed72f56b47d
author: aph
date: Fri Jul 22 17:05:08 2016 +0100

        8161190, PR3488: AArch64: Fix overflow in immediate cmp instruction
        Summary: Use subs instead of cmp to compare BlockZeroingLowLimit. Subs can check and handle immediate out of range correctly.
        Reviewed-by: aph
        Contributed-by: [hidden email]


changeset e2d13b496321 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=e2d13b496321
author: fyang
date: Tue Sep 05 19:09:18 2017 +0800

        8187224, PR3488: aarch64: some inconsistency between aarch64_ad.m4 and aarch64.ad
        Summary: fix ROL_INSN and ROR_INSN definition in aarch64_ad.m4
        Reviewed-by: aph


changeset f7ae197522b1 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=f7ae197522b1
author: bdelsart
date: Mon Feb 24 12:49:21 2014 +0100

        8035496, PR3487: G1 ARM: missing remset entry noticed by VerifyAfterGC for vm/gc/concurrent/lp50yp10rp70mr30st0
        Summary: release_store used when registering a PerRegionTable. Also reviewed-by: [hidden email]
        Reviewed-by: jmasa, tschatzl, brutisso


changeset bfa3989eb8d3 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=bfa3989eb8d3
author: asaha
date: Fri Jul 21 20:31:41 2017 -0700

        Added tag jdk8u144-b01 for changeset db36f4d498b1


changeset 02d5e7b64b28 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=02d5e7b64b28
author: asaha
date: Tue Dec 13 12:51:17 2016 -0800

        Added tag jdk8u151-b00 for changeset 2d5100bddeb8


changeset 0fbba64c6b6e in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=0fbba64c6b6e
author: asaha
date: Thu Jun 08 13:40:41 2017 -0700

        Merge


changeset 596b584c68b7 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=596b584c68b7
author: asaha
date: Tue Jun 13 10:29:37 2017 -0700

        Merge


changeset 1f6f436360d5 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=1f6f436360d5
author: asaha
date: Tue Jun 13 16:28:55 2017 -0700

        Added tag jdk8u151-b01 for changeset 596b584c68b7


changeset 34080bc63481 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=34080bc63481
author: asaha
date: Mon Jun 19 14:49:58 2017 -0700

        Added tag jdk8u151-b02 for changeset 1f6f436360d5


changeset 0aaeb48ae39e in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=0aaeb48ae39e
author: asaha
date: Mon Jun 26 14:49:58 2017 -0700

        Merge


changeset e48302d521d5 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=e48302d521d5
author: asaha
date: Mon Jul 03 12:22:36 2017 -0700

        Added tag jdk8u151-b03 for changeset 0aaeb48ae39e


changeset b3774d4e63b0 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=b3774d4e63b0
author: asaha
date: Mon Jul 10 15:29:33 2017 -0700

        Added tag jdk8u151-b04 for changeset e48302d521d5


changeset 507af6ef977a in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=507af6ef977a
author: asaha
date: Fri Jul 14 10:42:03 2017 -0700

        Merge


changeset 203e6e89c188 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=203e6e89c188
author: asaha
date: Mon Jul 17 13:41:24 2017 -0700

        Added tag jdk8u151-b05 for changeset 507af6ef977a


changeset e1dc36cddcbc in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=e1dc36cddcbc
author: asaha
date: Sun Jul 23 23:18:32 2017 -0700

        Merge


changeset 68128d1398fc in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=68128d1398fc
author: asaha
date: Tue Jul 25 12:17:40 2017 -0700

        Added tag jdk8u151-b06 for changeset e1dc36cddcbc


changeset e2a930243efa in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=e2a930243efa
author: dholmes
date: Fri Apr 28 21:14:37 2017 -0400

        8179084: HotSpot VM fails to start when AggressiveHeap is set
        Reviewed-by: kbarrett, stefank


changeset 1ce0f165155c in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=1ce0f165155c
author: asaha
date: Tue Aug 01 11:59:37 2017 -0700

        Added tag jdk8u151-b07 for changeset e2a930243efa


changeset 158904fa31b2 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=158904fa31b2
author: hseigel
date: Tue Aug 01 09:47:45 2017 -0400

        8180711: Better invokespecial checks
        Reviewed-by: acorn, ahgross, rhalade
        Contributed-by: [hidden email]


changeset 689fd6652737 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=689fd6652737
author: asaha
date: Tue Aug 08 09:42:02 2017 -0700

        Added tag jdk8u151-b08 for changeset 158904fa31b2


changeset 8b0169692abb in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=8b0169692abb
author: coffeys
date: Tue Aug 08 12:02:01 2017 +0100

        8184682: Upgrade compression library
        Reviewed-by: alanb, sherman, ahgross, jeff


changeset e352e5438292 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=e352e5438292
author: asaha
date: Tue Aug 15 13:18:57 2017 -0700

        Added tag jdk8u151-b09 for changeset 8b0169692abb


changeset 0f06584f52ff in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=0f06584f52ff
author: asaha
date: Wed Aug 23 13:01:57 2017 -0700

        Added tag jdk8u151-b10 for changeset e352e5438292


changeset 856e341587d5 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=856e341587d5
author: asaha
date: Tue Aug 29 10:30:04 2017 -0700

        Added tag jdk8u151-b11 for changeset 0f06584f52ff


changeset 9bad7d4825fb in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=9bad7d4825fb
author: andrew
date: Mon Oct 30 17:28:38 2017 +0000

        Merge jdk8u151-b12


changeset d0f3d468da21 in /hg/icedtea8-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea8-forest/hotspot?cmd=changeset;node=d0f3d468da21
author: andrew
date: Thu Nov 02 06:16:13 2017 +0000

        Added tag icedtea-3.6.0 for changeset 9bad7d4825fb


diffstat:

 .hgtags                                                |   14 ++
 THIRD_PARTY_README                                     |    4 +-
 src/cpu/aarch64/vm/aarch64_ad.m4                       |    8 +-
 src/cpu/aarch64/vm/macroAssembler_aarch64.cpp          |    2 +-
 src/cpu/aarch64/vm/stubGenerator_aarch64.cpp           |    2 +-
 src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp |   10 +-
 src/share/vm/interpreter/linkResolver.cpp              |  102 +++++++---------
 src/share/vm/interpreter/linkResolver.hpp              |    5 +-
 8 files changed, 79 insertions(+), 68 deletions(-)

diffs (265 lines):

diff -r 88712267e7cb -r d0f3d468da21 .hgtags
--- a/.hgtags Mon Oct 30 14:54:02 2017 +0000
+++ b/.hgtags Thu Nov 02 06:16:13 2017 +0000
@@ -1022,3 +1022,17 @@
 24ab92601b895b36ffc66e50e634cb962f8f6c1e icedtea-3.6.0pre00
 ecaa25cbc662396ad7ea422bf43e23098af2100e icedtea-3.6.0pre01
 542f4e30fdffc87e5e098d81d69e7aa52d3c763c icedtea-3.6.0pre02
+db36f4d498b1bde975700a800b5ce732941c04b7 jdk8u144-b01
+2d5100bddeb80cf767485b787fc3051311e3d7b9 jdk8u151-b00
+596b584c68b73ec635347807571463580deb955f jdk8u151-b01
+1f6f436360d5cd375b806aec1c78abb8fcb4e5f6 jdk8u151-b02
+0aaeb48ae39e4fc558caf1b0c7ee504a49fec441 jdk8u151-b03
+e48302d521d59c2fe62f874f1f5d34bc46517da7 jdk8u151-b04
+507af6ef977a5d0306a8723dec66e34befc1ae81 jdk8u151-b05
+e1dc36cddcbc36b78e3d0558f87bbf459191e479 jdk8u151-b06
+e2a930243efa63b0a789e85a523e69574d53ac92 jdk8u151-b07
+158904fa31b28f1e027dc5b5a833ee673e89a84b jdk8u151-b08
+8b0169692abbf8fb7972920cd79cee7dcab959c3 jdk8u151-b09
+e352e54382928eb8d5ec70455ef251973c332ccb jdk8u151-b10
+0f06584f52ffc8627b78f4d461a3eba2b703a8f7 jdk8u151-b11
+9bad7d4825fb14efb65fc7bad625bbeaf135339e icedtea-3.6.0
diff -r 88712267e7cb -r d0f3d468da21 THIRD_PARTY_README
--- a/THIRD_PARTY_README Mon Oct 30 14:54:02 2017 +0000
+++ b/THIRD_PARTY_README Thu Nov 02 06:16:13 2017 +0000
@@ -2808,12 +2808,12 @@
 
 -------------------------------------------------------------------------------
 
-%% This notice is provided with respect to zlib v1.2.8, which may be included
+%% This notice is provided with respect to zlib v1.2.11, which may be included
 with JRE 8, JDK 8, and OpenJDK 8.
 
 --- begin of LICENSE ---
 
-  version 1.2.8, April 28th, 2013
+  version 1.2.11, January 15th, 2017
 
   Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
 
diff -r 88712267e7cb -r d0f3d468da21 src/cpu/aarch64/vm/aarch64_ad.m4
--- a/src/cpu/aarch64/vm/aarch64_ad.m4 Mon Oct 30 14:54:02 2017 +0000
+++ b/src/cpu/aarch64/vm/aarch64_ad.m4 Thu Nov 02 06:16:13 2017 +0000
@@ -268,21 +268,21 @@
   ins_pipe(ialu_reg_reg_vshift);
 %}')dnl
 define(ROL_INSN, `
-instruct $3$1_rReg_Var_C$2(iRegLNoSp dst, iRegL src, iRegI shift, immI$2 c$2, rFlagsReg cr)
+instruct $3$1_rReg_Var_C$2(iReg$1NoSp dst, iReg$1 src, iRegI shift, immI$2 c$2, rFlagsReg cr)
 %{
   match(Set dst (Or$1 (LShift$1 src shift) (URShift$1 src (SubI c$2 shift))));
 
   expand %{
-    $3L_rReg(dst, src, shift, cr);
+    $3$1_rReg(dst, src, shift, cr);
   %}
 %}')dnl
 define(ROR_INSN, `
-instruct $3$1_rReg_Var_C$2(iRegLNoSp dst, iRegL src, iRegI shift, immI$2 c$2, rFlagsReg cr)
+instruct $3$1_rReg_Var_C$2(iReg$1NoSp dst, iReg$1 src, iRegI shift, immI$2 c$2, rFlagsReg cr)
 %{
   match(Set dst (Or$1 (URShift$1 src shift) (LShift$1 src (SubI c$2 shift))));
 
   expand %{
-    $3L_rReg(dst, src, shift, cr);
+    $3$1_rReg(dst, src, shift, cr);
   %}
 %}')dnl
 ROL_EXPAND(L, rol, rorv)
diff -r 88712267e7cb -r d0f3d468da21 src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Mon Oct 30 14:54:02 2017 +0000
+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Thu Nov 02 06:16:13 2017 +0000
@@ -4651,7 +4651,7 @@
   // alignment.
   if (!is_large || !(BlockZeroingLowLimit >= zva_length * 2)) {
     int low_limit = MAX2(zva_length * 2, (int)BlockZeroingLowLimit);
-    cmp(cnt, low_limit >> 3);
+    subs(tmp, cnt, low_limit >> 3);
     br(Assembler::LT, small);
   }
 
diff -r 88712267e7cb -r d0f3d468da21 src/cpu/aarch64/vm/stubGenerator_aarch64.cpp
--- a/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp Mon Oct 30 14:54:02 2017 +0000
+++ b/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp Thu Nov 02 06:16:13 2017 +0000
@@ -2024,7 +2024,7 @@
     if (UseBlockZeroing) {
       Label non_block_zeroing, rest;
       // count >= BlockZeroingLowLimit && value == 0
-      __ cmp(cnt_words, BlockZeroingLowLimit >> 3);
+      __ subs(rscratch1, cnt_words, BlockZeroingLowLimit >> 3);
       __ ccmp(value, 0 /* comparing value */, 0 /* NZCV */, Assembler::GE);
       __ br(Assembler::NE, non_block_zeroing);
       __ mov(bz_base, to);
diff -r 88712267e7cb -r d0f3d468da21 src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
--- a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Mon Oct 30 14:54:02 2017 +0000
+++ b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Thu Nov 02 06:16:13 2017 +0000
@@ -514,7 +514,15 @@
 
       PerRegionTable* first_prt = _fine_grain_regions[ind];
       prt->set_collision_list_next(first_prt);
-      _fine_grain_regions[ind] = prt;
+      // The assignment into _fine_grain_regions allows the prt to
+      // start being used concurrently. In addition to
+      // collision_list_next which must be visible (else concurrent
+      // parsing of the list, if any, may fail to see other entries),
+      // the content of the prt must be visible (else for instance
+      // some mark bits may not yet seem cleared or a 'later' update
+      // performed by a concurrent thread could be undone when the
+      // zeroing becomes visible). This requires store ordering.
+      OrderAccess::release_store_ptr((volatile PerRegionTable*)&_fine_grain_regions[ind], prt);
       _n_fine_entries++;
 
       if (G1HRRSUseSparseTable) {
diff -r 88712267e7cb -r d0f3d468da21 src/share/vm/interpreter/linkResolver.cpp
--- a/src/share/vm/interpreter/linkResolver.cpp Mon Oct 30 14:54:02 2017 +0000
+++ b/src/share/vm/interpreter/linkResolver.cpp Thu Nov 02 06:16:13 2017 +0000
@@ -538,6 +538,42 @@
   }
 }
 
+void LinkResolver::check_method_loader_constraints(methodHandle& resolved_method,
+                                                   KlassHandle resolved_klass,
+                                                   Symbol* method_name,
+                                                   Symbol* method_signature,
+                                                   KlassHandle current_klass,
+                                                   const char* method_type, TRAPS) {
+  Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader());
+  Handle class_loader (THREAD, resolved_method->method_holder()->class_loader());
+  {
+    ResourceMark rm(THREAD);
+    Symbol* failed_type_symbol =
+      SystemDictionary::check_signature_loaders(method_signature, loader,
+                                                class_loader, true, CHECK);
+    if (failed_type_symbol != NULL) {
+      const char* msg = "loader constraint violation: when resolving %s"
+        " \"%s\" the class loader (instance of %s) of the current class, %s,"
+        " and the class loader (instance of %s) for the method's defining class, %s, have"
+        " different Class objects for the type %s used in the signature";
+      char* sig = Method::name_and_sig_as_C_string(resolved_klass(), method_name, method_signature);
+      const char* loader1 = SystemDictionary::loader_name(loader());
+      char* current = InstanceKlass::cast(current_klass())->name()->as_C_string();
+      const char* loader2 = SystemDictionary::loader_name(class_loader());
+      char* target = InstanceKlass::cast(resolved_method->method_holder())
+                     ->name()->as_C_string();
+      char* failed_type_name = failed_type_symbol->as_C_string();
+      size_t buflen = strlen(msg) + strlen(sig) + strlen(loader1) +
+        strlen(current) + strlen(loader2) + strlen(target) +
+        strlen(failed_type_name) + strlen(method_type) + 1;
+      char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
+      jio_snprintf(buf, buflen, msg, method_type, sig, loader1, current, loader2,
+                   target, failed_type_name);
+      THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
+    }
+  }
+}
+
 void LinkResolver::resolve_method(methodHandle& resolved_method, KlassHandle resolved_klass,
                                   Symbol* method_name, Symbol* method_signature,
                                   KlassHandle current_klass, bool check_access,
@@ -594,34 +630,8 @@
                                CHECK);
 
     // check loader constraints
-    Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader());
-    Handle class_loader (THREAD, resolved_method->method_holder()->class_loader());
-    {
-      ResourceMark rm(THREAD);
-      Symbol* failed_type_symbol =
-        SystemDictionary::check_signature_loaders(method_signature, loader,
-                                                  class_loader, true, CHECK);
-      if (failed_type_symbol != NULL) {
-        const char* msg = "loader constraint violation: when resolving method"
-          " \"%s\" the class loader (instance of %s) of the current class, %s,"
-          " and the class loader (instance of %s) for the method's defining class, %s, have"
-          " different Class objects for the type %s used in the signature";
-        char* sig = Method::name_and_sig_as_C_string(resolved_klass(),method_name,method_signature);
-        const char* loader1 = SystemDictionary::loader_name(loader());
-        char* current = InstanceKlass::cast(current_klass())->name()->as_C_string();
-        const char* loader2 = SystemDictionary::loader_name(class_loader());
-        char* target = InstanceKlass::cast(resolved_method->method_holder())
-                       ->name()->as_C_string();
-        char* failed_type_name = failed_type_symbol->as_C_string();
-        size_t buflen = strlen(msg) + strlen(sig) + strlen(loader1) +
-          strlen(current) + strlen(loader2) + strlen(target) +
-          strlen(failed_type_name) + 1;
-        char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
-        jio_snprintf(buf, buflen, msg, sig, loader1, current, loader2,
-                     target, failed_type_name);
-        THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
-      }
-    }
+    check_method_loader_constraints(resolved_method, resolved_klass, method_name,
+                                    method_signature, current_klass, "method", CHECK);
   }
 }
 
@@ -670,36 +680,8 @@
                                resolved_method,
                                CHECK);
 
-    HandleMark hm(THREAD);
-    Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader());
-    Handle class_loader (THREAD, resolved_method->method_holder()->class_loader());
-    {
-      ResourceMark rm(THREAD);
-      Symbol* failed_type_symbol =
-        SystemDictionary::check_signature_loaders(method_signature, loader,
-                                                  class_loader, true, CHECK);
-      if (failed_type_symbol != NULL) {
-        const char* msg = "loader constraint violation: when resolving "
-          "interface method \"%s\" the class loader (instance of %s) of the "
-          "current class, %s, and the class loader (instance of %s) for "
-          "the method's defining class, %s, have different Class objects for the type %s "
-          "used in the signature";
-        char* sig = Method::name_and_sig_as_C_string(resolved_klass(),method_name,method_signature);
-        const char* loader1 = SystemDictionary::loader_name(loader());
-        char* current = InstanceKlass::cast(current_klass())->name()->as_C_string();
-        const char* loader2 = SystemDictionary::loader_name(class_loader());
-        char* target = InstanceKlass::cast(resolved_method->method_holder())
-                       ->name()->as_C_string();
-        char* failed_type_name = failed_type_symbol->as_C_string();
-        size_t buflen = strlen(msg) + strlen(sig) + strlen(loader1) +
-          strlen(current) + strlen(loader2) + strlen(target) +
-          strlen(failed_type_name) + 1;
-        char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
-        jio_snprintf(buf, buflen, msg, sig, loader1, current, loader2,
-                     target, failed_type_name);
-        THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
-      }
-    }
+    check_method_loader_constraints(resolved_method, resolved_klass, method_name,
+                                    method_signature, current_klass, "interface method", CHECK);
   }
 
   if (nostatics && resolved_method->is_static()) {
@@ -1049,6 +1031,10 @@
                   Method::name_and_sig_as_C_string(resolved_klass(),
                                             resolved_method->name(),
                                             resolved_method->signature()));
+      } else if (sel_method() != resolved_method()) {
+        check_method_loader_constraints(sel_method, resolved_klass,
+                                        sel_method->name(), sel_method->signature(),
+                                        current_klass, "method", CHECK);
       }
     }
 
diff -r 88712267e7cb -r d0f3d468da21 src/share/vm/interpreter/linkResolver.hpp
--- a/src/share/vm/interpreter/linkResolver.hpp Mon Oct 30 14:54:02 2017 +0000
+++ b/src/share/vm/interpreter/linkResolver.hpp Thu Nov 02 06:16:13 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, 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
@@ -135,6 +135,9 @@
   static void resolve_pool  (KlassHandle& resolved_klass, Symbol*& method_name, Symbol*& method_signature, KlassHandle& current_klass, constantPoolHandle pool, int index, TRAPS);
 
   static void resolve_interface_method(methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, bool nostatics, TRAPS);
+  static void check_method_loader_constraints(methodHandle& resolved_method, KlassHandle resolved_klass,
+                                              Symbol* method_name, Symbol* method_signature,
+                                              KlassHandle current_klass, const char* method_type, TRAPS);
   static void resolve_method          (methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, bool require_methodref, TRAPS);
 
   static void linktime_resolve_static_method    (methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, TRAPS);