public class org.graalvm.compiler.nodes.memory.ReadNode extends org.graalvm.compiler.nodes.memory.FloatableAccessNode implements org.graalvm.compiler.nodes.spi.LIRLowerable, org.graalvm.compiler.graph.spi.Canonicalizable, org.graalvm.compiler.nodes.spi.Virtualizable, org.graalvm.compiler.nodes.extended.GuardingNode
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.nodes.memory.ReadNode
  super_class: org.graalvm.compiler.nodes.memory.FloatableAccessNode
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.memory.ReadNode> TYPE;
    descriptor: Lorg/graalvm/compiler/graph/NodeClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/nodes/memory/ReadNode;>;

  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 64
            ldc Lorg/graalvm/compiler/nodes/memory/ReadNode;
            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 org.graalvm.compiler.nodes.memory.ReadNode.$assertionsDisabled:Z
         3: .line 66
            ldc Lorg/graalvm/compiler/nodes/memory/ReadNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.nodes.memory.ReadNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.nodes.memory.address.AddressNode, org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        start local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        start local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 4 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
         0: .line 69
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.memory.ReadNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            aload 1 /* address */
            aload 2 /* location */
            aload 3 /* stamp */
            aconst_null
            aload 4 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.memory.FloatableAccessNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
         1: .line 70
            return
        end local 4 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    2     1      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            0    2     2     location  Lorg/graalvm/compiler/core/common/LocationIdentity;
            0    2     3        stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    2     4  barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    MethodParameters:
             Name  Flags
      address      
      location     
      stamp        
      barrierType  

  public void <init>(org.graalvm.compiler.nodes.memory.address.AddressNode, org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.extended.GuardingNode, org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        start local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        start local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 4 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        start local 5 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
         0: .line 73
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.memory.ReadNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            aload 1 /* address */
            aload 2 /* location */
            aload 3 /* stamp */
            aload 4 /* guard */
            aload 5 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.memory.FloatableAccessNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
         1: .line 74
            return
        end local 5 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 4 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        end local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    2     1      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            0    2     2     location  Lorg/graalvm/compiler/core/common/LocationIdentity;
            0    2     3        stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    2     4        guard  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            0    2     5  barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    MethodParameters:
             Name  Flags
      address      
      location     
      stamp        
      guard        
      barrierType  

  public void <init>(org.graalvm.compiler.nodes.memory.address.AddressNode, org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.extended.GuardingNode, org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType, boolean, org.graalvm.compiler.nodes.FrameState);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;ZLorg/graalvm/compiler/nodes/FrameState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=8, args_size=8
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        start local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        start local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 4 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        start local 5 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        start local 6 // boolean nullCheck
        start local 7 // org.graalvm.compiler.nodes.FrameState stateBefore
         0: .line 77
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.memory.ReadNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            aload 1 /* address */
            aload 2 /* location */
            aload 3 /* stamp */
            aload 4 /* guard */
            aload 5 /* barrierType */
            iload 6 /* nullCheck */
            aload 7 /* stateBefore */
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;ZLorg/graalvm/compiler/nodes/FrameState;)V
         1: .line 78
            return
        end local 7 // org.graalvm.compiler.nodes.FrameState stateBefore
        end local 6 // boolean nullCheck
        end local 5 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 4 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        end local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    2     1      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            0    2     2     location  Lorg/graalvm/compiler/core/common/LocationIdentity;
            0    2     3        stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    2     4        guard  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            0    2     5  barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            0    2     6    nullCheck  Z
            0    2     7  stateBefore  Lorg/graalvm/compiler/nodes/FrameState;
    MethodParameters:
             Name  Flags
      address      
      location     
      stamp        
      guard        
      barrierType  
      nullCheck    
      stateBefore  

  protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.nodes.memory.ReadNode>, org.graalvm.compiler.nodes.memory.address.AddressNode, org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.extended.GuardingNode, org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType, boolean, org.graalvm.compiler.nodes.FrameState);
    descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;ZLorg/graalvm/compiler/nodes/FrameState;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=9, args_size=9
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.graph.NodeClass c
        start local 2 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        start local 3 // org.graalvm.compiler.core.common.LocationIdentity location
        start local 4 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 5 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        start local 6 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        start local 7 // boolean nullCheck
        start local 8 // org.graalvm.compiler.nodes.FrameState stateBefore
         0: .line 82
            aload 0 /* this */
            aload 1 /* c */
            aload 2 /* address */
            aload 3 /* location */
            aload 4 /* stamp */
            aload 5 /* guard */
            aload 6 /* barrierType */
            iload 7 /* nullCheck */
            aload 8 /* stateBefore */
            invokespecial org.graalvm.compiler.nodes.memory.FloatableAccessNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;ZLorg/graalvm/compiler/nodes/FrameState;)V
         1: .line 83
            return
        end local 8 // org.graalvm.compiler.nodes.FrameState stateBefore
        end local 7 // boolean nullCheck
        end local 6 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 5 // org.graalvm.compiler.nodes.extended.GuardingNode guard
        end local 4 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 3 // org.graalvm.compiler.core.common.LocationIdentity location
        end local 2 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 1 // org.graalvm.compiler.graph.NodeClass c
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    2     1            c  Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/memory/ReadNode;>;
            0    2     2      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            0    2     3     location  Lorg/graalvm/compiler/core/common/LocationIdentity;
            0    2     4        stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    2     5        guard  Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            0    2     6  barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            0    2     7    nullCheck  Z
            0    2     8  stateBefore  Lorg/graalvm/compiler/nodes/FrameState;
    Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/memory/ReadNode;>;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;ZLorg/graalvm/compiler/nodes/FrameState;)V
    MethodParameters:
             Name  Flags
      c            
      address      
      location     
      stamp        
      guard        
      barrierType  
      nullCheck    
      stateBefore  

  public void <init>(org.graalvm.compiler.nodes.memory.address.AddressNode, org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        start local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        start local 3 // org.graalvm.compiler.nodes.ValueNode guard
        start local 4 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
         0: .line 91
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodes.memory.ReadNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            aload 1 /* address */
            aload 2 /* location */
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forNodeIntrinsic:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* guard */
            checkcast org.graalvm.compiler.nodes.extended.GuardingNode
            aload 4 /* barrierType */
            invokespecial org.graalvm.compiler.nodes.memory.FloatableAccessNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
         1: .line 92
            return
        end local 4 // org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType barrierType
        end local 3 // org.graalvm.compiler.nodes.ValueNode guard
        end local 2 // org.graalvm.compiler.core.common.LocationIdentity location
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    2     1      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            0    2     2     location  Lorg/graalvm/compiler/core/common/LocationIdentity;
            0    2     3        guard  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4  barrierType  Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
    MethodParameters:
             Name  Flags
      address      
      location     
      guard        
      barrierType  

  public void generate(org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool gen
         0: .line 96
            aload 1 /* gen */
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getLIRGeneratorTool:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 2 /* readKind */
        start local 2 // org.graalvm.compiler.core.common.LIRKind readKind
         1: .line 97
            aload 1 /* gen */
            aload 0 /* this */
            aload 1 /* gen */
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getLIRGeneratorTool:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getArithmetic:()Lorg/graalvm/compiler/lir/gen/ArithmeticLIRGeneratorTool;
            aload 2 /* readKind */
            aload 1 /* gen */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.memory.ReadNode.address:Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 1 /* gen */
            aload 0 /* this */
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.state:(Lorg/graalvm/compiler/nodes/DeoptimizingNode;)Lorg/graalvm/compiler/lir/LIRFrameState;
            invokeinterface org.graalvm.compiler.lir.gen.ArithmeticLIRGeneratorTool.emitLoad:(Lorg/graalvm/compiler/core/common/LIRKind;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;)Lorg/graalvm/compiler/lir/Variable;
            invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.setResult:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            pop
         2: .line 98
            return
        end local 2 // org.graalvm.compiler.core.common.LIRKind readKind
        end local 1 // org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool gen
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    3     1       gen  Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;
            1    3     2  readKind  Lorg/graalvm/compiler/core/common/LIRKind;
    MethodParameters:
      Name  Flags
      gen   

  public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
         0: .line 102
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.allUsagesAvailable:()Z
            ifeq 4
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.hasNoUsages:()Z
            ifeq 4
         1: .line 103
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            ifnull 3
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            instanceof org.graalvm.compiler.nodes.FixedNode
            ifne 3
         2: .line 105
            new org.graalvm.compiler.nodes.extended.ValueAnchorNode
            dup
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokespecial org.graalvm.compiler.nodes.extended.ValueAnchorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
            areturn
         3: .line 108
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         4: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 9
         5: .line 112
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            astore 2 /* objAddress */
        start local 2 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode objAddress
         6: .line 113
            aload 2 /* objAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.PiNode
            ifeq 9
            aload 2 /* objAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.PiNode
            invokevirtual org.graalvm.compiler.nodes.PiNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            if_acmpne 9
         7: .line 114
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 2 /* objAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.PiNode
            invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* objAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getOffset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 3 /* newAddress */
        start local 3 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode newAddress
         8: .line 115
            new org.graalvm.compiler.nodes.memory.ReadNode
            dup
            aload 3 /* newAddress */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getNullCheck:()Z
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.stateBefore:()Lorg/graalvm/compiler/nodes/FrameState;
            invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;ZLorg/graalvm/compiler/nodes/FrameState;)V
            areturn
        end local 3 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode newAddress
        end local 2 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode objAddress
         9: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getNullCheck:()Z
            ifne 11
        10: .line 119
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 1 /* tool */
            invokestatic org.graalvm.compiler.nodes.memory.ReadNode.canonicalizeRead:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        11: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0   12     1        tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            6    9     2  objAddress  Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
            8    9     3  newAddress  Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
    MethodParameters:
      Name  Flags
      tool  

  public org.graalvm.compiler.nodes.memory.FloatingAccessNode asFloatingNode(org.graalvm.compiler.nodes.memory.MemoryNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryNode;)Lorg/graalvm/compiler/nodes/memory/FloatingAccessNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
         0: .line 130
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 4 /* position */
        start local 4 // org.graalvm.compiler.debug.DebugCloseable position
         2: .line 131
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.memory.FloatingReadNode
            dup
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getLocationIdentity:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 1 /* lastLocationAccess */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getGuard:()Lorg/graalvm/compiler/nodes/extended/GuardingNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokespecial org.graalvm.compiler.nodes.memory.FloatingReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/nodes/memory/MemoryNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.FloatingAccessNode
         3: .line 132
            aload 4 /* position */
            ifnull 4
            aload 4 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
         4: .line 131
      StackMap locals: org.graalvm.compiler.nodes.memory.ReadNode org.graalvm.compiler.nodes.memory.MemoryNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: org.graalvm.compiler.nodes.memory.FloatingAccessNode
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 132
            aload 4 /* position */
            ifnull 7
            aload 4 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 4 // org.graalvm.compiler.debug.DebugCloseable position
      StackMap locals:
      StackMap stack:
         7: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 2
            ifnonnull 9
            aload 3
            astore 2
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 2
            aload 3
            if_acmpeq 10
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 2
            athrow
        end local 1 // org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0   11     1  lastLocationAccess  Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            2    7     4            position  Lorg/graalvm/compiler/debug/DebugCloseable;
      Exception table:
        from    to  target  type
           2     3       5  any
           1     4       8  any
           5     8       8  any
    MethodParameters:
                    Name  Flags
      lastLocationAccess  

  public boolean isAllowedUsageType(org.graalvm.compiler.nodeinfo.InputType);
    descriptor: (Lorg/graalvm/compiler/nodeinfo/InputType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodeinfo.InputType type
         0: .line 137
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.memory.ReadNode.getNullCheck:()Z
            ifeq 1
            aload 1 /* type */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* type */
            invokespecial org.graalvm.compiler.nodes.memory.FloatableAccessNode.isAllowedUsageType:(Lorg/graalvm/compiler/nodeinfo/InputType;)Z
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.compiler.nodeinfo.InputType type
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    3     1  type  Lorg/graalvm/compiler/nodeinfo/InputType;
    MethodParameters:
      Name  Flags
      type  

  public static org.graalvm.compiler.nodes.ValueNode canonicalizeRead(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.memory.address.AddressNode, org.graalvm.compiler.core.common.LocationIdentity, org.graalvm.compiler.graph.spi.CanonicalizerTool);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/core/common/LocationIdentity;Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // org.graalvm.compiler.nodes.ValueNode read
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        start local 2 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
        start local 3 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
         0: .line 141
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 4 /* metaAccess */
        start local 4 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         1: .line 142
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.canonicalizeReads:()Z
            ifeq 24
            aload 1 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 24
         2: .line 143
            aload 1 /* address */
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            astore 5 /* objAddress */
        start local 5 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode objAddress
         3: .line 144
            aload 5 /* objAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* object */
        start local 6 // org.graalvm.compiler.nodes.ValueNode object
         4: .line 145
            aload 4 /* metaAccess */
            ifnull 14
            aload 6 /* object */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 14
            aload 6 /* object */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isNullConstant:()Z
            ifne 14
            aload 5 /* objAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getOffset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 14
         5: .line 146
            aload 5 /* objAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getOffset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 7 /* displacement */
        start local 7 // long displacement
         6: .line 147
            aload 6 /* object */
            checkcast org.graalvm.compiler.nodes.ConstantNode
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.getStableDimension:()I
            istore 9 /* stableDimension */
        start local 9 // int stableDimension
         7: .line 148
            aload 2 /* locationIdentity */
            invokevirtual org.graalvm.compiler.core.common.LocationIdentity.isImmutable:()Z
            ifne 8
            iload 9 /* stableDimension */
            ifle 14
         8: .line 149
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.core.common.LocationIdentity org.graalvm.compiler.graph.spi.CanonicalizerTool jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.memory.address.OffsetAddressNode org.graalvm.compiler.nodes.ValueNode long int
      StackMap stack:
            aload 0 /* read */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.getMemoryAccessProvider:()Ljdk/vm/ci/meta/MemoryAccessProvider;
            aload 6 /* object */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            lload 7 /* displacement */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.readConstant:(Ljdk/vm/ci/meta/MemoryAccessProvider;Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/Constant;
            astore 10 /* constant */
        start local 10 // jdk.vm.ci.meta.Constant constant
         9: .line 150
            aload 2 /* locationIdentity */
            invokevirtual org.graalvm.compiler.core.common.LocationIdentity.isImmutable:()Z
            ifne 10
            aload 6 /* object */
            checkcast org.graalvm.compiler.nodes.ConstantNode
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.isDefaultStable:()Z
            ifne 10
            iconst_0
            goto 11
      StackMap locals: jdk.vm.ci.meta.Constant
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 11 /* isDefaultStable */
        start local 11 // boolean isDefaultStable
        12: .line 151
            aload 10 /* constant */
            ifnull 14
            iload 11 /* isDefaultStable */
            ifne 13
            aload 10 /* constant */
            invokeinterface jdk.vm.ci.meta.Constant.isDefaultForKind:()Z
            ifne 14
        13: .line 152
      StackMap locals: int
      StackMap stack:
            aload 0 /* read */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 10 /* constant */
            iload 9 /* stableDimension */
            iconst_1
            isub
            iconst_0
            invokestatic java.lang.Math.max:(II)I
            iload 11 /* isDefaultStable */
            aload 4 /* metaAccess */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;IZLjdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
        end local 11 // boolean isDefaultStable
        end local 10 // jdk.vm.ci.meta.Constant constant
        end local 9 // int stableDimension
        end local 7 // long displacement
        14: .line 156
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.core.common.LocationIdentity org.graalvm.compiler.graph.spi.CanonicalizerTool jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.nodes.memory.address.OffsetAddressNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* locationIdentity */
            getstatic org.graalvm.compiler.nodes.NamedLocationIdentity.ARRAY_LENGTH_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 18
        15: .line 157
            aload 6 /* object */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.arrayLength:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* length */
        start local 7 // org.graalvm.compiler.nodes.ValueNode length
        16: .line 158
            aload 7 /* length */
            ifnull 18
        17: .line 160
            aload 7 /* length */
            areturn
        end local 7 // org.graalvm.compiler.nodes.ValueNode length
        18: .line 163
      StackMap locals:
      StackMap stack:
            aload 2 /* locationIdentity */
            instanceof org.graalvm.compiler.nodes.CanonicalizableLocation
            ifeq 24
        19: .line 164
            aload 2 /* locationIdentity */
            checkcast org.graalvm.compiler.nodes.CanonicalizableLocation
            astore 7 /* canonicalize */
        start local 7 // org.graalvm.compiler.nodes.CanonicalizableLocation canonicalize
        20: .line 165
            aload 7 /* canonicalize */
            aload 0 /* read */
            aload 1 /* address */
            aload 6 /* object */
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.CanonicalizableLocation.canonicalizeRead:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* result */
        start local 8 // org.graalvm.compiler.nodes.ValueNode result
        21: .line 166
            getstatic org.graalvm.compiler.nodes.memory.ReadNode.$assertionsDisabled:Z
            ifne 23
            aload 8 /* result */
            ifnull 22
            aload 8 /* result */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* read */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            ifne 23
      StackMap locals: org.graalvm.compiler.nodes.CanonicalizableLocation org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
        22: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 167
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            areturn
        end local 8 // org.graalvm.compiler.nodes.ValueNode result
        end local 7 // org.graalvm.compiler.nodes.CanonicalizableLocation canonicalize
        end local 6 // org.graalvm.compiler.nodes.ValueNode object
        end local 5 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode objAddress
        24: .line 171
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.memory.address.AddressNode org.graalvm.compiler.core.common.LocationIdentity org.graalvm.compiler.graph.spi.CanonicalizerTool jdk.vm.ci.meta.MetaAccessProvider
      StackMap stack:
            aload 0 /* read */
            areturn
        end local 4 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 3 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 2 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 0 // org.graalvm.compiler.nodes.ValueNode read
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0              read  Lorg/graalvm/compiler/nodes/ValueNode;
            0   25     1           address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            0   25     2  locationIdentity  Lorg/graalvm/compiler/core/common/LocationIdentity;
            0   25     3              tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            1   25     4        metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            3   24     5        objAddress  Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
            4   24     6            object  Lorg/graalvm/compiler/nodes/ValueNode;
            6   14     7      displacement  J
            7   14     9   stableDimension  I
            9   14    10          constant  Ljdk/vm/ci/meta/Constant;
           12   14    11   isDefaultStable  Z
           16   18     7            length  Lorg/graalvm/compiler/nodes/ValueNode;
           20   24     7      canonicalize  Lorg/graalvm/compiler/nodes/CanonicalizableLocation;
           21   24     8            result  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                  Name  Flags
      read              
      address           
      locationIdentity  
      tool              

  public void virtualize(org.graalvm.compiler.nodes.spi.VirtualizerTool);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
        start local 1 // org.graalvm.compiler.nodes.spi.VirtualizerTool tool
         0: .line 176
            ldc "unexpected ReadNode before PEA"
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.graalvm.compiler.nodes.spi.VirtualizerTool tool
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
            0    1     1  tool  Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;
    MethodParameters:
      Name  Flags
      tool  

  public boolean canNullCheck();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
         0: .line 181
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.nodes.memory.ReadNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/memory/ReadNode;
}
SourceFile: "ReadNode.java"
InnerClasses:
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public final BarrierType = org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType of org.graalvm.compiler.nodes.memory.HeapAccess
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(nameTemplate = "Read#{p#location/s}", cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_2:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_1:Lorg/graalvm/compiler/nodeinfo/NodeSize;)