public final class com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder extends org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder implements com.oracle.svm.core.graal.code.SubstrateNodeLIRBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder
  super_class: org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder
{
  final com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend this$0;
    descriptor: Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 589
            ldc Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend, org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.lir.gen.LIRGeneratorTool, org.graalvm.compiler.core.amd64.AMD64NodeMatchRules);
    descriptor: (Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 3 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
        start local 4 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules nodeMatchRules
         0: .line 591
            aload 0 /* this */
            aload 1
            putfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.this$0:Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
         1: .line 592
            aload 0 /* this */
            aload 2 /* graph */
            aload 3 /* gen */
            aload 4 /* nodeMatchRules */
            invokespecial org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;)V
         2: .line 593
            return
        end local 4 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules nodeMatchRules
        end local 3 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    3     2           graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    3     3             gen  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            0    3     4  nodeMatchRules  Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
    MethodParameters:
                Name  Flags
      this$0          final
      graph           
      gen             
      nodeMatchRules  

  public void visitSafepointNode(org.graalvm.compiler.nodes.SafepointNode);
    descriptor: (Lorg/graalvm/compiler/nodes/SafepointNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.SafepointNode node
         0: .line 597
            ldc "handled by lowering"
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.graalvm.compiler.nodes.SafepointNode node
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    1     1  node  Lorg/graalvm/compiler/nodes/SafepointNode;
    MethodParameters:
      Name  Flags
      node  

  public void visitBreakpointNode(org.graalvm.compiler.nodes.BreakpointNode);
    descriptor: (Lorg/graalvm/compiler/nodes/BreakpointNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.BreakpointNode node
         0: .line 602
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.BreakpointNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            anewarray jdk.vm.ci.meta.JavaType
            astore 2 /* sig */
        start local 2 // jdk.vm.ci.meta.JavaType[] sig
         1: .line 603
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 604
      StackMap locals: jdk.vm.ci.meta.JavaType[] int
      StackMap stack:
            aload 2 /* sig */
            iload 3 /* i */
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.BreakpointNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            iload 3 /* i */
            invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.javaType:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aastore
         4: .line 603
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 2 /* sig */
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 607
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
            getstatic com.oracle.svm.core.graal.code.SubstrateCallingConventionType.JavaCall:Lcom/oracle/svm/core/graal/code/SubstrateCallingConventionType;
            aconst_null
            aload 2 /* sig */
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            invokeinterface jdk.vm.ci.code.RegisterConfig.getCallingConvention:(Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
            astore 3 /* convention */
        start local 3 // jdk.vm.ci.code.CallingConvention convention
         7: .line 608
            aload 0 /* this */
            new org.graalvm.compiler.lir.amd64.AMD64BreakpointOp
            dup
            aload 0 /* this */
            aload 3 /* convention */
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.BreakpointNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.visitInvokeArguments:(Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection;)[Ljdk/vm/ci/meta/Value;
            invokespecial org.graalvm.compiler.lir.amd64.AMD64BreakpointOp.<init>:([Ljdk/vm/ci/meta/Value;)V
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
         8: .line 609
            return
        end local 3 // jdk.vm.ci.code.CallingConvention convention
        end local 2 // jdk.vm.ci.meta.JavaType[] sig
        end local 1 // org.graalvm.compiler.nodes.BreakpointNode node
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    9     1        node  Lorg/graalvm/compiler/nodes/BreakpointNode;
            1    9     2         sig  [Ljdk/vm/ci/meta/JavaType;
            2    6     3           i  I
            7    9     3  convention  Ljdk/vm/ci/code/CallingConvention;
    MethodParameters:
      Name  Flags
      node  

  protected org.graalvm.compiler.core.gen.DebugInfoBuilder createDebugInfoBuilder(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.spi.NodeValueMap);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Lorg/graalvm/compiler/core/gen/DebugInfoBuilder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.nodes.spi.NodeValueMap nodeValueMap
         0: .line 613
            new com.oracle.svm.core.graal.code.SubstrateDebugInfoBuilder
            dup
            aload 1 /* graph */
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getProviders:()Lorg/graalvm/compiler/core/common/spi/CodeGenProviders;
            invokeinterface org.graalvm.compiler.core.common.spi.CodeGenProviders.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
            aload 2 /* nodeValueMap */
            invokespecial com.oracle.svm.core.graal.code.SubstrateDebugInfoBuilder.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)V
            areturn
        end local 2 // org.graalvm.compiler.nodes.spi.NodeValueMap nodeValueMap
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    1     1         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    1     2  nodeValueMap  Lorg/graalvm/compiler/nodes/spi/NodeValueMap;
    MethodParameters:
              Name  Flags
      graph         
      nodeValueMap  

  public jdk.vm.ci.meta.Value[] visitInvokeArguments(jdk.vm.ci.code.CallingConvention, java.util.Collection<org.graalvm.compiler.nodes.ValueNode>);
    descriptor: (Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection;)[Ljdk/vm/ci/meta/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // jdk.vm.ci.code.CallingConvention invokeCc
        start local 2 // java.util.Collection arguments
         0: .line 618
            aload 0 /* this */
            aload 1 /* invokeCc */
            aload 2 /* arguments */
            invokespecial org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.visitInvokeArguments:(Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection;)[Ljdk/vm/ci/meta/Value;
            astore 3 /* values */
        start local 3 // jdk.vm.ci.meta.Value[] values
         1: .line 620
            aload 1 /* invokeCc */
            checkcast com.oracle.svm.core.graal.code.SubstrateCallingConvention
            invokevirtual com.oracle.svm.core.graal.code.SubstrateCallingConvention.getType:()Ljdk/vm/ci/code/CallingConvention$Type;
            checkcast com.oracle.svm.core.graal.code.SubstrateCallingConventionType
            astore 4 /* type */
        start local 4 // com.oracle.svm.core.graal.code.SubstrateCallingConventionType type
         2: .line 621
            aload 4 /* type */
            getfield com.oracle.svm.core.graal.code.SubstrateCallingConventionType.nativeABI:Z
            ifeq 13
         3: .line 624
            iconst_0
            istore 5 /* xmmCount */
        start local 5 // int xmmCount
         4: .line 625
            aload 3 /* values */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 9
      StackMap locals: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder jdk.vm.ci.code.CallingConvention java.util.Collection jdk.vm.ci.meta.Value[] com.oracle.svm.core.graal.code.SubstrateCallingConventionType int top int int jdk.vm.ci.meta.Value[]
      StackMap stack:
         5: aload 9
            iload 7
            aaload
            astore 6 /* v */
        start local 6 // jdk.vm.ci.meta.Value v
         6: .line 626
            aload 6 /* v */
            invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 8
            aload 6 /* v */
            invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.getRegisterCategory:()Ljdk/vm/ci/code/Register$RegisterCategory;
            getstatic jdk.vm.ci.amd64.AMD64.XMM:Ljdk/vm/ci/code/Register$RegisterCategory;
            invokevirtual jdk.vm.ci.code.Register$RegisterCategory.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 627
            iinc 5 /* xmmCount */ 1
        end local 6 // jdk.vm.ci.meta.Value v
         8: .line 625
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 5
        10: .line 630
            getstatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.$assertionsDisabled:Z
            ifne 11
            iload 5 /* xmmCount */
            bipush 8
            if_icmple 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 631
      StackMap locals: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder jdk.vm.ci.code.CallingConvention java.util.Collection jdk.vm.ci.meta.Value[] com.oracle.svm.core.graal.code.SubstrateCallingConventionType int
      StackMap stack:
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            getstatic jdk.vm.ci.amd64.AMD64Kind.DWORD:Ljdk/vm/ci/amd64/AMD64Kind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 6 /* xmmCountRegister */
        start local 6 // jdk.vm.ci.meta.AllocatableValue xmmCountRegister
        12: .line 632
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            aload 6 /* xmmCountRegister */
            iload 5 /* xmmCount */
            invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMoveConstant:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)V
        end local 6 // jdk.vm.ci.meta.AllocatableValue xmmCountRegister
        end local 5 // int xmmCount
        13: .line 634
      StackMap locals:
      StackMap stack:
            aload 3 /* values */
            areturn
        end local 4 // com.oracle.svm.core.graal.code.SubstrateCallingConventionType type
        end local 3 // jdk.vm.ci.meta.Value[] values
        end local 2 // java.util.Collection arguments
        end local 1 // jdk.vm.ci.code.CallingConvention invokeCc
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0   14     1          invokeCc  Ljdk/vm/ci/code/CallingConvention;
            0   14     2         arguments  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/ValueNode;>;
            1   14     3            values  [Ljdk/vm/ci/meta/Value;
            2   14     4              type  Lcom/oracle/svm/core/graal/code/SubstrateCallingConventionType;
            4   13     5          xmmCount  I
            6    8     6                 v  Ljdk/vm/ci/meta/Value;
           12   13     6  xmmCountRegister  Ljdk/vm/ci/meta/AllocatableValue;
    Signature: (Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection<Lorg/graalvm/compiler/nodes/ValueNode;>;)[Ljdk/vm/ci/meta/Value;
    MethodParameters:
           Name  Flags
      invokeCc   
      arguments  

  private boolean getDestroysCallerSavedRegisters(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
         0: .line 638
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            checkcast com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64LIRGenerator
            aload 1 /* targetMethod */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64LIRGenerator.getDestroysCallerSavedRegisters:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    1     1  targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
              Name  Flags
      targetMethod  

  private jdk.vm.ci.meta.Value getExceptionTemp(org.graalvm.compiler.nodes.CallTargetNode);
    descriptor: (Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.CallTargetNode callTarget
         0: .line 648
            aload 1 /* callTarget */
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
            instanceof org.graalvm.compiler.nodes.InvokeWithExceptionNode
            ifeq 2
         1: .line 649
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokeinterface jdk.vm.ci.code.RegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
            invokevirtual jdk.vm.ci.code.Register.asValue:()Ljdk/vm/ci/code/RegisterValue;
            areturn
         2: .line 651
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            areturn
        end local 1 // org.graalvm.compiler.nodes.CallTargetNode callTarget
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    3     1  callTarget  Lorg/graalvm/compiler/nodes/CallTargetNode;
    MethodParameters:
            Name  Flags
      callTarget  

  protected void emitDirectCall(org.graalvm.compiler.nodes.DirectCallTargetNode, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value[], jdk.vm.ci.meta.Value[], org.graalvm.compiler.lir.LIRFrameState);
    descriptor: (Lorg/graalvm/compiler/nodes/DirectCallTargetNode;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=15, locals=7, args_size=6
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.DirectCallTargetNode callTarget
        start local 2 // jdk.vm.ci.meta.Value result
        start local 3 // jdk.vm.ci.meta.Value[] parameters
        start local 4 // jdk.vm.ci.meta.Value[] temps
        start local 5 // org.graalvm.compiler.lir.LIRFrameState callState
         0: .line 657
            aload 1 /* callTarget */
            invokevirtual org.graalvm.compiler.nodes.DirectCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 6 /* targetMethod */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
         1: .line 658
            aload 0 /* this */
            new com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64DirectCallOp
            dup
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.this$0:Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getRuntimeConfiguration:()Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
            aload 6 /* targetMethod */
            aload 2 /* result */
            aload 3 /* parameters */
            aload 4 /* temps */
            aload 5 /* callState */
         2: .line 659
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchorTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
            aload 1 /* callTarget */
            invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getNewThreadStatus:(Lorg/graalvm/compiler/nodes/CallTargetNode;)I
         3: .line 660
            aload 0 /* this */
            aload 6 /* targetMethod */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getDestroysCallerSavedRegisters:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getExceptionTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/Value;
            invokespecial com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64DirectCallOp.<init>:(Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;IZLjdk/vm/ci/meta/Value;)V
         4: .line 658
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
         5: .line 661
            return
        end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 5 // org.graalvm.compiler.lir.LIRFrameState callState
        end local 4 // jdk.vm.ci.meta.Value[] temps
        end local 3 // jdk.vm.ci.meta.Value[] parameters
        end local 2 // jdk.vm.ci.meta.Value result
        end local 1 // org.graalvm.compiler.nodes.DirectCallTargetNode callTarget
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    6     1    callTarget  Lorg/graalvm/compiler/nodes/DirectCallTargetNode;
            0    6     2        result  Ljdk/vm/ci/meta/Value;
            0    6     3    parameters  [Ljdk/vm/ci/meta/Value;
            0    6     4         temps  [Ljdk/vm/ci/meta/Value;
            0    6     5     callState  Lorg/graalvm/compiler/lir/LIRFrameState;
            1    6     6  targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
            Name  Flags
      callTarget  
      result      
      parameters  
      temps       
      callState   

  protected void emitIndirectCall(org.graalvm.compiler.nodes.IndirectCallTargetNode, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value[], jdk.vm.ci.meta.Value[], org.graalvm.compiler.lir.LIRFrameState);
    descriptor: (Lorg/graalvm/compiler/nodes/IndirectCallTargetNode;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=16, locals=9, args_size=6
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.IndirectCallTargetNode callTarget
        start local 2 // jdk.vm.ci.meta.Value result
        start local 3 // jdk.vm.ci.meta.Value[] parameters
        start local 4 // jdk.vm.ci.meta.Value[] temps
        start local 5 // org.graalvm.compiler.lir.LIRFrameState callState
         0: .line 666
            getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
            astore 6 /* targetRegister */
        start local 6 // jdk.vm.ci.code.Register targetRegister
         1: .line 667
            aload 1 /* callTarget */
            invokevirtual org.graalvm.compiler.nodes.IndirectCallTargetNode.callType:()Ljdk/vm/ci/code/CallingConvention$Type;
            checkcast com.oracle.svm.core.graal.code.SubstrateCallingConventionType
            getfield com.oracle.svm.core.graal.code.SubstrateCallingConventionType.nativeABI:Z
            ifeq 3
         2: .line 669
            getstatic jdk.vm.ci.amd64.AMD64.r10:Ljdk/vm/ci/code/Register;
            astore 6 /* targetRegister */
         3: .line 671
      StackMap locals: jdk.vm.ci.code.Register
      StackMap stack:
            aload 6 /* targetRegister */
            invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getLIRKind:(Lorg/graalvm/compiler/core/common/spi/LIRKindTool;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 7 /* targetAddress */
        start local 7 // jdk.vm.ci.meta.AllocatableValue targetAddress
         4: .line 672
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            aload 7 /* targetAddress */
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual org.graalvm.compiler.nodes.IndirectCallTargetNode.computedAddress:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
         5: .line 673
            aload 1 /* callTarget */
            invokevirtual org.graalvm.compiler.nodes.IndirectCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 8 /* targetMethod */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
         6: .line 674
            aload 0 /* this */
            new com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64IndirectCallOp
            dup
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.this$0:Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getRuntimeConfiguration:()Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
            aload 8 /* targetMethod */
            aload 2 /* result */
            aload 3 /* parameters */
            aload 4 /* temps */
            aload 7 /* targetAddress */
            aload 5 /* callState */
         7: .line 675
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchorTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
            aload 1 /* callTarget */
            invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getNewThreadStatus:(Lorg/graalvm/compiler/nodes/CallTargetNode;)I
         8: .line 676
            aload 0 /* this */
            aload 8 /* targetMethod */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getDestroysCallerSavedRegisters:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            aload 0 /* this */
            aload 1 /* callTarget */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getExceptionTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/Value;
            invokespecial com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64IndirectCallOp.<init>:(Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;IZLjdk/vm/ci/meta/Value;)V
         9: .line 674
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
        10: .line 677
            return
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 7 // jdk.vm.ci.meta.AllocatableValue targetAddress
        end local 6 // jdk.vm.ci.code.Register targetRegister
        end local 5 // org.graalvm.compiler.lir.LIRFrameState callState
        end local 4 // jdk.vm.ci.meta.Value[] temps
        end local 3 // jdk.vm.ci.meta.Value[] parameters
        end local 2 // jdk.vm.ci.meta.Value result
        end local 1 // org.graalvm.compiler.nodes.IndirectCallTargetNode callTarget
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0   11     1      callTarget  Lorg/graalvm/compiler/nodes/IndirectCallTargetNode;
            0   11     2          result  Ljdk/vm/ci/meta/Value;
            0   11     3      parameters  [Ljdk/vm/ci/meta/Value;
            0   11     4           temps  [Ljdk/vm/ci/meta/Value;
            0   11     5       callState  Lorg/graalvm/compiler/lir/LIRFrameState;
            1   11     6  targetRegister  Ljdk/vm/ci/code/Register;
            4   11     7   targetAddress  Ljdk/vm/ci/meta/AllocatableValue;
            6   11     8    targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
            Name  Flags
      callTarget  
      result      
      parameters  
      temps       
      callState   

  private jdk.vm.ci.meta.AllocatableValue setupJavaFrameAnchor(org.graalvm.compiler.nodes.CallTargetNode);
    descriptor: (Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.CallTargetNode callTarget
         0: .line 680
            aload 1 /* callTarget */
            invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.hasJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Z
            ifne 2
         1: .line 681
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            areturn
         2: .line 685
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.amd64.AMD64.r13:Ljdk/vm/ci/code/Register;
            astore 2 /* frameAnchorRegister */
        start local 2 // jdk.vm.ci.code.Register frameAnchorRegister
         3: .line 686
            aload 2 /* frameAnchorRegister */
            invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getLIRKind:(Lorg/graalvm/compiler/core/common/spi/LIRKindTool;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 3 /* frameAnchor */
        start local 3 // jdk.vm.ci.meta.AllocatableValue frameAnchor
         4: .line 687
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            aload 3 /* frameAnchor */
            aload 0 /* this */
            aload 1 /* callTarget */
            invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
         5: .line 688
            aload 3 /* frameAnchor */
            areturn
        end local 3 // jdk.vm.ci.meta.AllocatableValue frameAnchor
        end local 2 // jdk.vm.ci.code.Register frameAnchorRegister
        end local 1 // org.graalvm.compiler.nodes.CallTargetNode callTarget
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    6     1           callTarget  Lorg/graalvm/compiler/nodes/CallTargetNode;
            3    6     2  frameAnchorRegister  Ljdk/vm/ci/code/Register;
            4    6     3          frameAnchor  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
            Name  Flags
      callTarget  

  private jdk.vm.ci.meta.AllocatableValue setupJavaFrameAnchorTemp(org.graalvm.compiler.nodes.CallTargetNode);
    descriptor: (Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.CallTargetNode callTarget
         0: .line 692
            aload 1 /* callTarget */
            invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.hasJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Z
            ifne 2
         1: .line 693
            getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
            areturn
         2: .line 697
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.amd64.AMD64.r12:Ljdk/vm/ci/code/Register;
            invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getLIRKind:(Lorg/graalvm/compiler/core/common/spi/LIRKindTool;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            areturn
        end local 1 // org.graalvm.compiler.nodes.CallTargetNode callTarget
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    3     1  callTarget  Lorg/graalvm/compiler/nodes/CallTargetNode;
    MethodParameters:
            Name  Flags
      callTarget  

  public void emitBranch(org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.lir.LabelRef, org.graalvm.compiler.lir.LabelRef, double);
    descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=5
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // org.graalvm.compiler.nodes.LogicNode node
        start local 2 // org.graalvm.compiler.lir.LabelRef trueSuccessor
        start local 3 // org.graalvm.compiler.lir.LabelRef falseSuccessor
        start local 4 // double trueSuccessorProbability
         0: .line 702
            aload 1 /* node */
            instanceof com.oracle.svm.core.nodes.SafepointCheckNode
            ifeq 5
         1: .line 703
            new com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp
            dup
            invokespecial com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp.<init>:()V
            astore 6 /* op */
        start local 6 // com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp op
         2: .line 704
            aload 0 /* this */
            aload 6 /* op */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
         3: .line 705
            aload 0 /* this */
            new org.graalvm.compiler.lir.amd64.AMD64ControlFlow$BranchOp
            dup
            aload 6 /* op */
            invokevirtual com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp.getConditionFlag:()Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
            aload 2 /* trueSuccessor */
            aload 3 /* falseSuccessor */
            dload 4 /* trueSuccessorProbability */
            invokespecial org.graalvm.compiler.lir.amd64.AMD64ControlFlow$BranchOp.<init>:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;D)V
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
        end local 6 // com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp op
         4: .line 706
            goto 6
         5: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* trueSuccessor */
            aload 3 /* falseSuccessor */
            dload 4 /* trueSuccessorProbability */
            invokespecial org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.emitBranch:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;D)V
         6: .line 709
      StackMap locals:
      StackMap stack:
            return
        end local 4 // double trueSuccessorProbability
        end local 3 // org.graalvm.compiler.lir.LabelRef falseSuccessor
        end local 2 // org.graalvm.compiler.lir.LabelRef trueSuccessor
        end local 1 // org.graalvm.compiler.nodes.LogicNode node
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    7     0                      this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    7     1                      node  Lorg/graalvm/compiler/nodes/LogicNode;
            0    7     2             trueSuccessor  Lorg/graalvm/compiler/lir/LabelRef;
            0    7     3            falseSuccessor  Lorg/graalvm/compiler/lir/LabelRef;
            0    7     4  trueSuccessorProbability  D
            2    4     6                        op  Lcom/oracle/svm/core/graal/amd64/AMD64SafepointCheckOp;
    MethodParameters:
                          Name  Flags
      node                      
      trueSuccessor             
      falseSuccessor            
      trueSuccessorProbability  

  public void emitCGlobalDataLoadAddress(com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode);
    descriptor: (Lcom/oracle/svm/core/graal/nodes/CGlobalDataLoadAddressNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
        start local 1 // com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode node
         0: .line 713
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            aload 0 /* this */
            getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
            invokeinterface org.graalvm.compiler.core.common.spi.LIRKindTool.getWordKind:()Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 2 /* result */
        start local 2 // org.graalvm.compiler.lir.Variable result
         1: .line 714
            aload 0 /* this */
            new com.oracle.svm.core.graal.amd64.AMD64CGlobalDataLoadAddressOp
            dup
            aload 1 /* node */
            invokevirtual com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode.getDataInfo:()Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;
            aload 2 /* result */
            invokespecial com.oracle.svm.core.graal.amd64.AMD64CGlobalDataLoadAddressOp.<init>:(Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;Ljdk/vm/ci/meta/AllocatableValue;)V
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
         2: .line 715
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* result */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setResult:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            pop
         3: .line 716
            return
        end local 2 // org.graalvm.compiler.lir.Variable result
        end local 1 // com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode node
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
            0    4     1    node  Lcom/oracle/svm/core/graal/nodes/CGlobalDataLoadAddressNode;
            1    4     2  result  Lorg/graalvm/compiler/lir/Variable;
    MethodParameters:
      Name  Flags
      node  

  public org.graalvm.compiler.lir.Variable emitReadReturnAddress();
    descriptor: ()Lorg/graalvm/compiler/lir/Variable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
         0: .line 720
            getstatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.$assertionsDisabled:Z
            ifne 1
            invokestatic com.oracle.svm.core.FrameAccess.returnAddressSize:()I
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
            invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokestatic com.oracle.svm.core.FrameAccess.returnAddressSize:()I
            ineg
            iconst_1
            invokestatic jdk.vm.ci.code.StackSlot.get:(Ljdk/vm/ci/meta/ValueKind;IZ)Ljdk/vm/ci/code/StackSlot;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.emitMove:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
            areturn
        end local 0 // com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
}
SourceFile: "SubstrateAMD64Backend.java"
NestHost: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
InnerClasses:
  public SubstrateAMD64DirectCallOp = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64DirectCallOp of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
  public SubstrateAMD64IndirectCallOp = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64IndirectCallOp of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
  protected SubstrateAMD64LIRGenerator = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64LIRGenerator of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
  public final SubstrateAMD64NodeLIRBuilder = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
  public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
  public RegisterCategory = jdk.vm.ci.code.Register$RegisterCategory of jdk.vm.ci.code.Register
  public final ConditionFlag = org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag of org.graalvm.compiler.asm.amd64.AMD64Assembler
  public BranchOp = org.graalvm.compiler.lir.amd64.AMD64ControlFlow$BranchOp of org.graalvm.compiler.lir.amd64.AMD64ControlFlow