Merge
authorduke
Wed, 05 Jul 2017 20:44:31 +0200
changeset 31999 4f01e169ea9b
parent 31998 f057c3f8e4d2 (current diff)
parent 31952 05020a092c0f (diff)
child 32044 a955c84dace6
Merge
--- a/.hgtags-top-repo	Thu Aug 06 11:18:59 2015 -0700
+++ b/.hgtags-top-repo	Wed Jul 05 20:44:31 2017 +0200
@@ -318,3 +318,4 @@
 4c2cbaae528bce970dabbb5676005d379357f4b6 jdk9-b73
 57f3134853ecdd4a3ee2d4d26f22ba981d653d79 jdk9-b74
 8fd6eeb878606e39c908f12535f34ebbfd225a4a jdk9-b75
+d82072b699b880a1f647a5e2d7c0f86cec958941 jdk9-b76
--- a/make/Main.gmk	Thu Aug 06 11:18:59 2015 -0700
+++ b/make/Main.gmk	Wed Jul 05 20:44:31 2017 +0200
@@ -78,11 +78,14 @@
 interim-rmic:
 	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk)
 
+interim-cldrconverter:
+	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimCLDRConverter.gmk)
+
 buildtools-jdk:
 	+($(CD) $(JDK_TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Tools.gmk java-tools)
 
 ALL_TARGETS += buildtools-langtools interim-langtools interim-corba \
-    interim-rmic buildtools-jdk
+    interim-rmic interim-cldrconverter buildtools-jdk
 
 ################################################################################
 # Special targets for certain modules
@@ -345,7 +348,7 @@
 
   interim-langtools: $(LANGTOOLS_GENSRC_TARGETS)
 
-  buildtools-jdk: interim-langtools
+  buildtools-jdk: interim-langtools interim-cldrconverter
 
   $(CORBA_GENSRC_TARGETS): interim-langtools
 
--- a/test/lib/sun/hotspot/WhiteBox.java	Thu Aug 06 11:18:59 2015 -0700
+++ b/test/lib/sun/hotspot/WhiteBox.java	Wed Jul 05 20:44:31 2017 +0200
@@ -182,6 +182,30 @@
     Objects.requireNonNull(method);
     return isMethodQueuedForCompilation0(method);
   }
+  // Determine if the compiler corresponding to the compilation level 'compLevel'
+  // and to the compilation context 'compilation_context' provides an intrinsic
+  // for the method 'method'. An intrinsic is available for method 'method' if:
+  //  - the intrinsic is enabled (by using the appropriate command-line flag) and
+  //  - the platform on which the VM is running provides the instructions necessary
+  //    for the compiler to generate the intrinsic code.
+  //
+  // The compilation context is related to using the DisableIntrinsic flag on a
+  // per-method level, see hotspot/src/share/vm/compiler/abstractCompiler.hpp
+  // for more details.
+  public boolean isIntrinsicAvailable(Executable method,
+                                      Executable compilationContext,
+                                      int compLevel) {
+      Objects.requireNonNull(method);
+      return isIntrinsicAvailable0(method, compilationContext, compLevel);
+  }
+  // If usage of the DisableIntrinsic flag is not expected (or the usage can be ignored),
+  // use the below method that does not require the compilation context as argument.
+  public boolean isIntrinsicAvailable(Executable method, int compLevel) {
+      return isIntrinsicAvailable(method, null, compLevel);
+  }
+  private native boolean isIntrinsicAvailable0(Executable method,
+                                               Executable compilationContext,
+                                               int compLevel);
   public        int     deoptimizeMethod(Executable method) {
     return deoptimizeMethod(method, false /*not osr*/);
   }