src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java
changeset 48861 47f19ff9903c
parent 48398 79afa4c434f6
child 49873 26ebfe8ce852
equal deleted inserted replaced
48860:5bce1b7e7800 48861:47f19ff9903c
    30 import java.util.List;
    30 import java.util.List;
    31 import java.util.Set;
    31 import java.util.Set;
    32 import java.util.TreeSet;
    32 import java.util.TreeSet;
    33 import java.util.stream.Collectors;
    33 import java.util.stream.Collectors;
    34 
    34 
       
    35 import org.graalvm.collections.EconomicMap;
       
    36 import org.graalvm.collections.MapCursor;
    35 import org.graalvm.compiler.api.test.Graal;
    37 import org.graalvm.compiler.api.test.Graal;
    36 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
    38 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
    37 import org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider;
    39 import org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider;
    38 import org.graalvm.compiler.hotspot.meta.HotSpotProviders;
    40 import org.graalvm.compiler.hotspot.meta.HotSpotProviders;
    39 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
    41 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
    41 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
    43 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
    42 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Binding;
    44 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Binding;
    43 import org.graalvm.compiler.runtime.RuntimeProvider;
    45 import org.graalvm.compiler.runtime.RuntimeProvider;
    44 import org.graalvm.compiler.serviceprovider.JDK9Method;
    46 import org.graalvm.compiler.serviceprovider.JDK9Method;
    45 import org.graalvm.compiler.test.GraalTest;
    47 import org.graalvm.compiler.test.GraalTest;
    46 import org.graalvm.util.EconomicMap;
       
    47 import org.graalvm.util.MapCursor;
       
    48 import org.junit.Test;
    48 import org.junit.Test;
    49 
    49 
    50 import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
    50 import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
    51 import jdk.vm.ci.hotspot.VMIntrinsicMethod;
    51 import jdk.vm.ci.hotspot.VMIntrinsicMethod;
    52 import jdk.vm.ci.meta.MetaAccessProvider;
    52 import jdk.vm.ci.meta.MetaAccessProvider;
   414                             "java/lang/StringUTF16.indexOfLatin1([B[B)I",
   414                             "java/lang/StringUTF16.indexOfLatin1([B[B)I",
   415                             "java/lang/StringUTF16.putChar([BII)V",
   415                             "java/lang/StringUTF16.putChar([BII)V",
   416                             "java/lang/StringUTF16.toBytes([CII)[B");
   416                             "java/lang/StringUTF16.toBytes([CII)[B");
   417         }
   417         }
   418 
   418 
       
   419         if (isJDK10OrHigher()) {
       
   420             add(TO_BE_INVESTIGATED,
       
   421                             "java/lang/Math.multiplyHigh(JJ)J",
       
   422                             "jdk/internal/util/ArraysSupport.vectorizedMismatch(Ljava/lang/Object;JLjava/lang/Object;JII)I");
       
   423         }
       
   424 
   419         if (!getHostArchitectureName().equals("amd64")) {
   425         if (!getHostArchitectureName().equals("amd64")) {
   420             // Can we implement these on non-AMD64 platforms? C2 seems to.
   426             // Can we implement these on non-AMD64 platforms? C2 seems to.
   421             add(TO_BE_INVESTIGATED,
   427             add(TO_BE_INVESTIGATED,
   422                             "sun/misc/Unsafe.getAndAddInt(Ljava/lang/Object;JI)I",
   428                             "sun/misc/Unsafe.getAndAddInt(Ljava/lang/Object;JI)I",
   423                             "sun/misc/Unsafe.getAndAddLong(Ljava/lang/Object;JJ)J",
   429                             "sun/misc/Unsafe.getAndAddLong(Ljava/lang/Object;JJ)J",
   535         }
   541         }
   536     }
   542     }
   537 
   543 
   538     private static boolean isJDK9OrHigher() {
   544     private static boolean isJDK9OrHigher() {
   539         return JDK9Method.JAVA_SPECIFICATION_VERSION >= 9;
   545         return JDK9Method.JAVA_SPECIFICATION_VERSION >= 9;
       
   546     }
       
   547 
       
   548     private static boolean isJDK10OrHigher() {
       
   549         return JDK9Method.JAVA_SPECIFICATION_VERSION >= 10;
   540     }
   550     }
   541 
   551 
   542     private static String getHostArchitectureName() {
   552     private static String getHostArchitectureName() {
   543         String arch = System.getProperty("os.arch");
   553         String arch = System.getProperty("os.arch");
   544         if (arch.equals("x86_64")) {
   554         if (arch.equals("x86_64")) {