< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64GraphBuilderPlugins.java

Print this page
rev 56282 : [mq]: graal


  28 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.COS;
  29 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.EXP;
  30 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.LOG;
  31 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.LOG10;
  32 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.SIN;
  33 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.TAN;
  34 
  35 import org.graalvm.compiler.bytecode.BytecodeProvider;
  36 import org.graalvm.compiler.lir.aarch64.AArch64ArithmeticLIRGeneratorTool.RoundingMode;
  37 import org.graalvm.compiler.nodes.ValueNode;
  38 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
  39 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
  40 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin;
  41 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.Receiver;
  42 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
  43 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Registration;
  44 import org.graalvm.compiler.nodes.java.AtomicReadAndAddNode;
  45 import org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode;
  46 import org.graalvm.compiler.nodes.memory.address.AddressNode;
  47 import org.graalvm.compiler.nodes.memory.address.OffsetAddressNode;

  48 import org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode;
  49 import org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode;
  50 import org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation;
  51 import org.graalvm.compiler.serviceprovider.JavaVersionUtil;
  52 import jdk.internal.vm.compiler.word.LocationIdentity;
  53 

  54 import jdk.vm.ci.meta.JavaKind;
  55 import jdk.vm.ci.meta.ResolvedJavaMethod;
  56 import sun.misc.Unsafe;
  57 
  58 public class AArch64GraphBuilderPlugins {





  59 
  60     public static void register(Plugins plugins, BytecodeProvider bytecodeProvider, boolean explicitUnsafeNullChecks,
  61                     boolean registerMathPlugins) {
  62         register(plugins, bytecodeProvider, explicitUnsafeNullChecks, registerMathPlugins, true);
  63     }
  64 
  65     public static void register(Plugins plugins, BytecodeProvider bytecodeProvider, boolean explicitUnsafeNullChecks,
  66                     boolean registerMathPlugins, boolean emitJDK9StringSubstitutions) {
  67         InvocationPlugins invocationPlugins = plugins.getInvocationPlugins();
  68         invocationPlugins.defer(new Runnable() {
  69             @Override
  70             public void run() {
  71                 registerIntegerLongPlugins(invocationPlugins, JavaKind.Int, bytecodeProvider);
  72                 registerIntegerLongPlugins(invocationPlugins, JavaKind.Long, bytecodeProvider);
  73                 if (registerMathPlugins) {
  74                     registerMathPlugins(invocationPlugins);
  75                 }
  76                 if (emitJDK9StringSubstitutions) {
  77                     registerStringLatin1Plugins(invocationPlugins, bytecodeProvider);
  78                     registerStringUTF16Plugins(invocationPlugins, bytecodeProvider);




  28 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.COS;
  29 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.EXP;
  30 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.LOG;
  31 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.LOG10;
  32 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.SIN;
  33 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.TAN;
  34 
  35 import org.graalvm.compiler.bytecode.BytecodeProvider;
  36 import org.graalvm.compiler.lir.aarch64.AArch64ArithmeticLIRGeneratorTool.RoundingMode;
  37 import org.graalvm.compiler.nodes.ValueNode;
  38 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
  39 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
  40 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin;
  41 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.Receiver;
  42 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
  43 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Registration;
  44 import org.graalvm.compiler.nodes.java.AtomicReadAndAddNode;
  45 import org.graalvm.compiler.nodes.java.AtomicReadAndWriteNode;
  46 import org.graalvm.compiler.nodes.memory.address.AddressNode;
  47 import org.graalvm.compiler.nodes.memory.address.OffsetAddressNode;
  48 import org.graalvm.compiler.replacements.TargetGraphBuilderPlugins;
  49 import org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode;
  50 import org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode;
  51 import org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation;
  52 import org.graalvm.compiler.serviceprovider.JavaVersionUtil;
  53 import jdk.internal.vm.compiler.word.LocationIdentity;
  54 
  55 import jdk.vm.ci.code.Architecture;
  56 import jdk.vm.ci.meta.JavaKind;
  57 import jdk.vm.ci.meta.ResolvedJavaMethod;
  58 import sun.misc.Unsafe;
  59 
  60 public class AArch64GraphBuilderPlugins implements TargetGraphBuilderPlugins {
  61     @Override
  62     public void register(Plugins plugins, BytecodeProvider replacementsBytecodeProvider, Architecture arch, boolean explicitUnsafeNullChecks, boolean registerMathPlugins,
  63                     boolean emitJDK9StringSubstitutions, boolean useFMAIntrinsics) {
  64         register(plugins, replacementsBytecodeProvider, explicitUnsafeNullChecks, registerMathPlugins, emitJDK9StringSubstitutions);
  65     }
  66 
  67     public static void register(Plugins plugins, BytecodeProvider bytecodeProvider, boolean explicitUnsafeNullChecks,
  68                     boolean registerMathPlugins) {
  69         register(plugins, bytecodeProvider, explicitUnsafeNullChecks, registerMathPlugins, true);
  70     }
  71 
  72     public static void register(Plugins plugins, BytecodeProvider bytecodeProvider, boolean explicitUnsafeNullChecks,
  73                     boolean registerMathPlugins, boolean emitJDK9StringSubstitutions) {
  74         InvocationPlugins invocationPlugins = plugins.getInvocationPlugins();
  75         invocationPlugins.defer(new Runnable() {
  76             @Override
  77             public void run() {
  78                 registerIntegerLongPlugins(invocationPlugins, JavaKind.Int, bytecodeProvider);
  79                 registerIntegerLongPlugins(invocationPlugins, JavaKind.Long, bytecodeProvider);
  80                 if (registerMathPlugins) {
  81                     registerMathPlugins(invocationPlugins);
  82                 }
  83                 if (emitJDK9StringSubstitutions) {
  84                     registerStringLatin1Plugins(invocationPlugins, bytecodeProvider);
  85                     registerStringUTF16Plugins(invocationPlugins, bytecodeProvider);


< prev index next >