public class org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins this
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/amd64/AMD64GraphBuilderPlugins;

  public static void register(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins, org.graalvm.compiler.bytecode.BytecodeProvider, jdk.vm.ci.amd64.AMD64, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Ljdk/vm/ci/amd64/AMD64;ZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
        start local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
        start local 2 // jdk.vm.ci.amd64.AMD64 arch
        start local 3 // boolean arithmeticStubs
        start local 4 // boolean explicitUnsafeNullChecks
         0: .line 73
            aload 0 /* plugins */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            astore 5 /* invocationPlugins */
        start local 5 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
         1: .line 74
            aload 5 /* invocationPlugins */
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$1
            dup
            aload 5 /* invocationPlugins */
            aload 2 /* arch */
            aload 1 /* replacementsBytecodeProvider */
            iload 4 /* explicitUnsafeNullChecks */
            iload 3 /* arithmeticStubs */
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$1.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljdk/vm/ci/amd64/AMD64;Lorg/graalvm/compiler/bytecode/BytecodeProvider;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.defer:(Ljava/lang/Runnable;)V
         2: .line 89
            return
        end local 5 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
        end local 4 // boolean explicitUnsafeNullChecks
        end local 3 // boolean arithmeticStubs
        end local 2 // jdk.vm.ci.amd64.AMD64 arch
        end local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    3     0                       plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            0    3     1  replacementsBytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            0    3     2                          arch  Ljdk/vm/ci/amd64/AMD64;
            0    3     3               arithmeticStubs  Z
            0    3     4      explicitUnsafeNullChecks  Z
            1    3     5             invocationPlugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
    MethodParameters:
                              Name  Flags
      plugins                       
      replacementsBytecodeProvider  
      arch                          
      arithmeticStubs               
      explicitUnsafeNullChecks      

  private static void registerIntegerLongPlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, java.lang.Class<?>, jdk.vm.ci.meta.JavaKind, jdk.vm.ci.amd64.AMD64, org.graalvm.compiler.bytecode.BytecodeProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/Class;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/amd64/AMD64;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // java.lang.Class substituteDeclaringClass
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // jdk.vm.ci.amd64.AMD64 arch
        start local 4 // org.graalvm.compiler.bytecode.BytecodeProvider bytecodeProvider
         0: .line 92
            aload 2 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.toBoxedJavaClass:()Ljava/lang/Class;
            astore 5 /* declaringClass */
        start local 5 // java.lang.Class declaringClass
         1: .line 93
            aload 2 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.toJavaClass:()Ljava/lang/Class;
            astore 6 /* type */
        start local 6 // java.lang.Class type
         2: .line 94
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            aload 5 /* declaringClass */
            aload 4 /* bytecodeProvider */
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
            astore 7 /* r */
        start local 7 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         3: .line 95
            aload 3 /* arch */
            invokevirtual jdk.vm.ci.amd64.AMD64.getFeatures:()Ljava/util/EnumSet;
            getstatic jdk.vm.ci.amd64.AMD64$CPUFeature.LZCNT:Ljdk/vm/ci/amd64/AMD64$CPUFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 6
            aload 3 /* arch */
            invokevirtual jdk.vm.ci.amd64.AMD64.getFlags:()Ljava/util/EnumSet;
            getstatic jdk.vm.ci.amd64.AMD64$Flag.UseCountLeadingZerosInstruction:Ljdk/vm/ci/amd64/AMD64$Flag;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 96
            aload 7 /* r */
            ldc "numberOfLeadingZeros"
            aload 6 /* type */
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$2
            dup
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$2.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         5: .line 108
            goto 7
         6: .line 109
      StackMap locals: java.lang.Class java.lang.Class org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
      StackMap stack:
            aload 7 /* r */
            aload 1 /* substituteDeclaringClass */
            ldc "numberOfLeadingZeros"
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            aload 6 /* type */
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
         7: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* arch */
            invokevirtual jdk.vm.ci.amd64.AMD64.getFeatures:()Ljava/util/EnumSet;
            getstatic jdk.vm.ci.amd64.AMD64$CPUFeature.BMI1:Ljdk/vm/ci/amd64/AMD64$CPUFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 10
            aload 3 /* arch */
            invokevirtual jdk.vm.ci.amd64.AMD64.getFlags:()Ljava/util/EnumSet;
            getstatic jdk.vm.ci.amd64.AMD64$Flag.UseCountTrailingZerosInstruction:Ljdk/vm/ci/amd64/AMD64$Flag;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 112
            aload 7 /* r */
            ldc "numberOfTrailingZeros"
            aload 6 /* type */
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$3
            dup
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$3.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         9: .line 124
            goto 11
        10: .line 125
      StackMap locals:
      StackMap stack:
            aload 7 /* r */
            aload 1 /* substituteDeclaringClass */
            ldc "numberOfTrailingZeros"
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            aload 6 /* type */
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
        11: .line 128
      StackMap locals:
      StackMap stack:
            aload 3 /* arch */
            invokevirtual jdk.vm.ci.amd64.AMD64.getFeatures:()Ljava/util/EnumSet;
            getstatic jdk.vm.ci.amd64.AMD64$CPUFeature.POPCNT:Ljdk/vm/ci/amd64/AMD64$CPUFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 129
            aload 7 /* r */
            ldc "bitCount"
            aload 6 /* type */
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$4
            dup
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$4.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
        13: .line 137
      StackMap locals:
      StackMap stack:
            return
        end local 7 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        end local 6 // java.lang.Class type
        end local 5 // java.lang.Class declaringClass
        end local 4 // org.graalvm.compiler.bytecode.BytecodeProvider bytecodeProvider
        end local 3 // jdk.vm.ci.amd64.AMD64 arch
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // java.lang.Class substituteDeclaringClass
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   14     0                   plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0   14     1  substituteDeclaringClass  Ljava/lang/Class<*>;
            0   14     2                      kind  Ljdk/vm/ci/meta/JavaKind;
            0   14     3                      arch  Ljdk/vm/ci/amd64/AMD64;
            0   14     4          bytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            1   14     5            declaringClass  Ljava/lang/Class<*>;
            2   14     6                      type  Ljava/lang/Class<*>;
            3   14     7                         r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/Class<*>;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/amd64/AMD64;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
    MethodParameters:
                          Name  Flags
      plugins                   
      substituteDeclaringClass  
      kind                      
      arch                      
      bytecodeProvider          

  private static void registerMathPlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, jdk.vm.ci.amd64.AMD64, boolean, org.graalvm.compiler.bytecode.BytecodeProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljdk/vm/ci/amd64/AMD64;ZLorg/graalvm/compiler/bytecode/BytecodeProvider;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // jdk.vm.ci.amd64.AMD64 arch
        start local 2 // boolean arithmeticStubs
        start local 3 // org.graalvm.compiler.bytecode.BytecodeProvider bytecodeProvider
         0: .line 140
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            ldc Ljava/lang/Math;
            aload 3 /* bytecodeProvider */
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
            astore 4 /* r */
        start local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         1: .line 141
            aload 4 /* r */
            ldc "log"
            getstatic org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.LOG:Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnaryMath:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
         2: .line 142
            aload 4 /* r */
            ldc "log10"
            getstatic org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.LOG10:Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnaryMath:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
         3: .line 143
            aload 4 /* r */
            ldc "exp"
            getstatic org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.EXP:Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnaryMath:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
         4: .line 144
            aload 4 /* r */
            ldc "pow"
            getstatic org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation.POW:Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode$BinaryOperation;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerBinaryMath:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode$BinaryOperation;)V
         5: .line 145
            iload 2 /* arithmeticStubs */
            ifeq 10
         6: .line 146
            aload 4 /* r */
            ldc "sin"
            getstatic org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.SIN:Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnaryMath:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
         7: .line 147
            aload 4 /* r */
            ldc "cos"
            getstatic org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.COS:Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnaryMath:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
         8: .line 148
            aload 4 /* r */
            ldc "tan"
            getstatic org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation.TAN:Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnaryMath:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
         9: .line 149
            goto 13
        10: .line 150
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
      StackMap stack:
            aload 4 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64MathSubstitutions;
            ldc "sin"
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
        11: .line 151
            aload 4 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64MathSubstitutions;
            ldc "cos"
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
        12: .line 152
            aload 4 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64MathSubstitutions;
            ldc "tan"
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
        13: .line 155
      StackMap locals:
      StackMap stack:
            aload 1 /* arch */
            invokevirtual jdk.vm.ci.amd64.AMD64.getFeatures:()Ljava/util/EnumSet;
            getstatic jdk.vm.ci.amd64.AMD64$CPUFeature.SSE4_1:Ljdk/vm/ci/amd64/AMD64$CPUFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 17
        14: .line 156
            aload 4 /* r */
            ldc "rint"
            getstatic org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool$RoundingMode.NEAREST:Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerRound:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;)V
        15: .line 157
            aload 4 /* r */
            ldc "ceil"
            getstatic org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool$RoundingMode.UP:Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerRound:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;)V
        16: .line 158
            aload 4 /* r */
            ldc "floor"
            getstatic org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool$RoundingMode.DOWN:Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerRound:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;)V
        17: .line 160
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        end local 3 // org.graalvm.compiler.bytecode.BytecodeProvider bytecodeProvider
        end local 2 // boolean arithmeticStubs
        end local 1 // jdk.vm.ci.amd64.AMD64 arch
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0           plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0   18     1              arch  Ljdk/vm/ci/amd64/AMD64;
            0   18     2   arithmeticStubs  Z
            0   18     3  bytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            1   18     4                 r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
                  Name  Flags
      plugins           
      arch              
      arithmeticStubs   
      bytecodeProvider  

  private static void registerUnaryMath(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration, java.lang.String, org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        start local 1 // java.lang.String name
        start local 2 // org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation operation
         0: .line 163
            aload 0 /* r */
            aload 1 /* name */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$5
            dup
            aload 2 /* operation */
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$5.<init>:(Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         1: .line 170
            return
        end local 2 // org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation operation
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0          r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            0    2     1       name  Ljava/lang/String;
            0    2     2  operation  Lorg/graalvm/compiler/replacements/nodes/UnaryMathIntrinsicNode$UnaryOperation;
    MethodParameters:
           Name  Flags
      r          
      name       
      operation  

  private static void registerBinaryMath(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration, java.lang.String, org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode$BinaryOperation;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        start local 1 // java.lang.String name
        start local 2 // org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation operation
         0: .line 173
            aload 0 /* r */
            aload 1 /* name */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$6
            dup
            aload 2 /* operation */
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$6.<init>:(Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode$BinaryOperation;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         1: .line 180
            return
        end local 2 // org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation operation
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0          r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            0    2     1       name  Ljava/lang/String;
            0    2     2  operation  Lorg/graalvm/compiler/replacements/nodes/BinaryMathIntrinsicNode$BinaryOperation;
    MethodParameters:
           Name  Flags
      r          
      name       
      operation  

  private static void registerRound(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration, java.lang.String, org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool$RoundingMode);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/String;Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        start local 1 // java.lang.String name
        start local 2 // org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool$RoundingMode mode
         0: .line 183
            aload 0 /* r */
            aload 1 /* name */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$7
            dup
            aload 2 /* mode */
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$7.<init>:(Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         1: .line 190
            return
        end local 2 // org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool$RoundingMode mode
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            0    2     1  name  Ljava/lang/String;
            0    2     2  mode  Lorg/graalvm/compiler/lir/amd64/AMD64ArithmeticLIRGeneratorTool$RoundingMode;
    MethodParameters:
      Name  Flags
      r     
      name  
      mode  

  private static void registerStringPlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, jdk.vm.ci.amd64.AMD64, org.graalvm.compiler.bytecode.BytecodeProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljdk/vm/ci/amd64/AMD64;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // jdk.vm.ci.amd64.AMD64 arch
        start local 2 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
         0: .line 193
            getstatic org.graalvm.compiler.serviceprovider.GraalServices.Java8OrEarlier:Z
            ifeq 8
         1: .line 195
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            ldc Ljava/lang/String;
            aload 2 /* replacementsBytecodeProvider */
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
            astore 3 /* r */
        start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         2: .line 196
            aload 3 /* r */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.setAllowOverwrite:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            pop
         3: .line 197
            aload 1 /* arch */
            invokevirtual jdk.vm.ci.amd64.AMD64.getFeatures:()Ljava/util/EnumSet;
            getstatic jdk.vm.ci.amd64.AMD64$CPUFeature.SSE4_2:Ljdk/vm/ci/amd64/AMD64$CPUFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 198
            aload 3 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64StringSubstitutions;
            ldc "indexOf"
            bipush 7
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc [C
            aastore
            dup
            iconst_1
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
         5: .line 199
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_3
            ldc [C
            aastore
            dup
            iconst_4
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_5
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            bipush 6
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
         6: .line 198
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
         7: .line 201
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
      StackMap stack:
            aload 3 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64StringSubstitutions;
            ldc "compareTo"
            iconst_2
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
        end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         8: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
        end local 1 // jdk.vm.ci.amd64.AMD64 arch
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    9     0                       plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    9     1                          arch  Ljdk/vm/ci/amd64/AMD64;
            0    9     2  replacementsBytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            2    8     3                             r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
                              Name  Flags
      plugins                       
      arch                          
      replacementsBytecodeProvider  

  private static void registerStringLatin1Plugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, org.graalvm.compiler.bytecode.BytecodeProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
         0: .line 206
            getstatic org.graalvm.compiler.serviceprovider.GraalServices.JAVA_SPECIFICATION_VERSION:I
            bipush 9
            if_icmplt 5
         1: .line 207
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            ldc "java.lang.StringLatin1"
            aload 1 /* replacementsBytecodeProvider */
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/String;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
            astore 2 /* r */
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         2: .line 208
            aload 2 /* r */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.setAllowOverwrite:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            pop
         3: .line 209
            aload 2 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64StringLatin1Substitutions;
            ldc "compareTo"
            iconst_2
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc [B
            aastore
            dup
            iconst_1
            ldc [B
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
         4: .line 210
            aload 2 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64StringLatin1Substitutions;
            ldc "compareToUTF16"
            iconst_2
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc [B
            aastore
            dup
            iconst_1
            ldc [B
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         5: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    6     0                       plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    6     1  replacementsBytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            2    5     2                             r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
                              Name  Flags
      plugins                       
      replacementsBytecodeProvider  

  private static void registerStringUTF16Plugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, org.graalvm.compiler.bytecode.BytecodeProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
         0: .line 215
            getstatic org.graalvm.compiler.serviceprovider.GraalServices.JAVA_SPECIFICATION_VERSION:I
            bipush 9
            if_icmplt 5
         1: .line 216
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            ldc "java.lang.StringUTF16"
            aload 1 /* replacementsBytecodeProvider */
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/String;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
            astore 2 /* r */
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         2: .line 217
            aload 2 /* r */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.setAllowOverwrite:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            pop
         3: .line 218
            aload 2 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64StringUTF16Substitutions;
            ldc "compareTo"
            iconst_2
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc [B
            aastore
            dup
            iconst_1
            ldc [B
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
         4: .line 219
            aload 2 /* r */
            ldc Lorg/graalvm/compiler/replacements/amd64/AMD64StringUTF16Substitutions;
            ldc "compareToLatin1"
            iconst_2
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc [B
            aastore
            dup
            iconst_1
            ldc [B
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         5: .line 221
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    6     0                       plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    6     1  replacementsBytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            2    5     2                             r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
                              Name  Flags
      plugins                       
      replacementsBytecodeProvider  

  private static void registerUnsafePlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, org.graalvm.compiler.bytecode.BytecodeProvider, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/bytecode/BytecodeProvider;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
        start local 2 // boolean explicitUnsafeNullChecks
         0: .line 224
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            ldc Lsun/misc/Unsafe;
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
            iload 2 /* explicitUnsafeNullChecks */
            iconst_3
            anewarray jdk.vm.ci.meta.JavaKind
            dup
            iconst_0
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_1
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_2
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            aastore
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnsafePlugins:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Z[Ljdk/vm/ci/meta/JavaKind;)V
         1: .line 225
            getstatic org.graalvm.compiler.serviceprovider.GraalServices.Java8OrEarlier:Z
            ifne 5
         2: .line 226
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            ldc "jdk.internal.misc.Unsafe"
            aload 1 /* replacementsBytecodeProvider */
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/String;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
            iload 2 /* explicitUnsafeNullChecks */
         3: .line 227
            bipush 7
            anewarray jdk.vm.ci.meta.JavaKind
            dup
            iconst_0
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_1
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_2
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_3
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_4
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_5
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            bipush 6
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            aastore
         4: .line 226
            invokestatic org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins.registerUnsafePlugins:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Z[Ljdk/vm/ci/meta/JavaKind;)V
         5: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean explicitUnsafeNullChecks
        end local 1 // org.graalvm.compiler.bytecode.BytecodeProvider replacementsBytecodeProvider
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    6     0                       plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    6     1  replacementsBytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            0    6     2      explicitUnsafeNullChecks  Z
    MethodParameters:
                              Name  Flags
      plugins                       
      replacementsBytecodeProvider  
      explicitUnsafeNullChecks      

  private static void registerUnsafePlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration, boolean, jdk.vm.ci.meta.JavaKind[]);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Z[Ljdk/vm/ci/meta/JavaKind;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=8, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        start local 1 // boolean explicitUnsafeNullChecks
        start local 2 // jdk.vm.ci.meta.JavaKind[] unsafeJavaKinds
         0: .line 232
            aload 2 /* unsafeJavaKinds */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration int jdk.vm.ci.meta.JavaKind[] top int int jdk.vm.ci.meta.JavaKind[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* kind */
        start local 3 // jdk.vm.ci.meta.JavaKind kind
         2: .line 233
            aload 3 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 3
            ldc Ljava/lang/Object;
            goto 4
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration int jdk.vm.ci.meta.JavaKind[] jdk.vm.ci.meta.JavaKind int int jdk.vm.ci.meta.JavaKind[]
      StackMap stack:
         3: aload 3 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.toJavaClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         4: astore 7 /* javaClass */
        start local 7 // java.lang.Class javaClass
         5: .line 235
            aload 0 /* r */
            new java.lang.StringBuilder
            dup
            ldc "getAndSet"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/Object;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aload 7 /* javaClass */
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$8
            dup
            aload 3 /* kind */
            iload 1 /* explicitUnsafeNullChecks */
            aload 3 /* kind */
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$8.<init>:(Ljdk/vm/ci/meta/JavaKind;ZLjdk/vm/ci/meta/JavaKind;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register4:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         6: .line 244
            aload 3 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 8
            aload 3 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 8
         7: .line 245
            aload 0 /* r */
            new java.lang.StringBuilder
            dup
            ldc "getAndAdd"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/Object;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aload 7 /* javaClass */
            new org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$9
            dup
            aload 3 /* kind */
            iload 1 /* explicitUnsafeNullChecks */
            aload 3 /* kind */
            invokespecial org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$9.<init>:(Ljdk/vm/ci/meta/JavaKind;ZLjdk/vm/ci/meta/JavaKind;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register4:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
        end local 7 // java.lang.Class javaClass
        end local 3 // jdk.vm.ci.meta.JavaKind kind
         8: .line 232
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration int jdk.vm.ci.meta.JavaKind[] top int int jdk.vm.ci.meta.JavaKind[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 1
        10: .line 257
            iconst_4
            anewarray jdk.vm.ci.meta.JavaKind
            dup
            iconst_0
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_1
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_2
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_3
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 16
      StackMap locals:
      StackMap stack:
        11: aload 6
            iload 4
            aaload
            astore 3 /* kind */
        start local 3 // jdk.vm.ci.meta.JavaKind kind
        12: .line 258
            aload 3 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.toJavaClass:()Ljava/lang/Class;
            astore 7 /* javaClass */
        start local 7 // java.lang.Class javaClass
        13: .line 259
            aload 0 /* r */
            new java.lang.StringBuilder
            dup
            ldc "get"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Unaligned"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/Object;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            new org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$UnsafeGetPlugin
            dup
            aload 3 /* kind */
            iload 1 /* explicitUnsafeNullChecks */
            invokespecial org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$UnsafeGetPlugin.<init>:(Ljdk/vm/ci/meta/JavaKind;Z)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerOptional3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
        14: .line 260
            aload 0 /* r */
            new java.lang.StringBuilder
            dup
            ldc "put"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Unaligned"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/Object;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aload 7 /* javaClass */
            new org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$UnsafePutPlugin
            dup
            aload 3 /* kind */
            iload 1 /* explicitUnsafeNullChecks */
            invokespecial org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$UnsafePutPlugin.<init>:(Ljdk/vm/ci/meta/JavaKind;Z)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerOptional4:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
        end local 7 // java.lang.Class javaClass
        end local 3 // jdk.vm.ci.meta.JavaKind kind
        15: .line 257
            iinc 4 1
      StackMap locals:
      StackMap stack:
        16: iload 4
            iload 5
            if_icmplt 11
        17: .line 262
            return
        end local 2 // jdk.vm.ci.meta.JavaKind[] unsafeJavaKinds
        end local 1 // boolean explicitUnsafeNullChecks
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   18     0                         r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            0   18     1  explicitUnsafeNullChecks  Z
            0   18     2           unsafeJavaKinds  [Ljdk/vm/ci/meta/JavaKind;
            2    8     3                      kind  Ljdk/vm/ci/meta/JavaKind;
            5    8     7                 javaClass  Ljava/lang/Class<*>;
           12   15     3                      kind  Ljdk/vm/ci/meta/JavaKind;
           13   15     7                 javaClass  Ljava/lang/Class<*>;
    MethodParameters:
                          Name  Flags
      r                         
      explicitUnsafeNullChecks  
      unsafeJavaKinds           

  private static void registerArraysEqualsPlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, org.graalvm.compiler.bytecode.BytecodeProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // org.graalvm.compiler.bytecode.BytecodeProvider bytecodeProvider
         0: .line 265
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 0 /* plugins */
            ldc Ljava/util/Arrays;
            aload 1 /* bytecodeProvider */
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/bytecode/BytecodeProvider;)V
            astore 2 /* r */
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         1: .line 266
            aload 2 /* r */
            ldc Lorg/graalvm/compiler/replacements/ArraysSubstitutions;
            ldc "equals"
            iconst_2
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc [F
            aastore
            dup
            iconst_1
            ldc [F
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
         2: .line 267
            aload 2 /* r */
            ldc Lorg/graalvm/compiler/replacements/ArraysSubstitutions;
            ldc "equals"
            iconst_2
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc [D
            aastore
            dup
            iconst_1
            ldc [D
            aastore
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerMethodSubstitution:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/reflect/Type;)V
         3: .line 268
            return
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        end local 1 // org.graalvm.compiler.bytecode.BytecodeProvider bytecodeProvider
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0           plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    4     1  bytecodeProvider  Lorg/graalvm/compiler/bytecode/BytecodeProvider;
            1    4     2                 r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
                  Name  Flags
      plugins           
      bytecodeProvider  
}
SourceFile: "AMD64GraphBuilderPlugins.java"
NestMembers:
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$1  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$2  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$3  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$4  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$5  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$6  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$7  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$8  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$9
InnerClasses:
  public final CPUFeature = jdk.vm.ci.amd64.AMD64$CPUFeature of jdk.vm.ci.amd64.AMD64
  public final Flag = jdk.vm.ci.amd64.AMD64$Flag of jdk.vm.ci.amd64.AMD64
  public final RoundingMode = org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool$RoundingMode of org.graalvm.compiler.lir.amd64.AMD64ArithmeticLIRGeneratorTool
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
  public abstract Receiver = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
  public Registration = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
  public UnsafeGetPlugin = org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$UnsafeGetPlugin of org.graalvm.compiler.replacements.StandardGraphBuilderPlugins
  public UnsafePutPlugin = org.graalvm.compiler.replacements.StandardGraphBuilderPlugins$UnsafePutPlugin of org.graalvm.compiler.replacements.StandardGraphBuilderPlugins
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$1
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$2
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$3
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$4
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$5
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$6
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$7
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$8
  org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins$9
  public final BinaryOperation = org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode$BinaryOperation of org.graalvm.compiler.replacements.nodes.BinaryMathIntrinsicNode
  public final UnaryOperation = org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode$UnaryOperation of org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode