public abstract class org.graalvm.compiler.nodes.extended.UnsafeAccessNode extends org.graalvm.compiler.nodes.FixedWithNextNode implements org.graalvm.compiler.graph.spi.Canonicalizable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.nodes.extended.UnsafeAccessNode
  super_class: org.graalvm.compiler.nodes.FixedWithNextNode
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.extended.UnsafeAccessNode> 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/extended/UnsafeAccessNode;>;

  org.graalvm.compiler.nodes.ValueNode object;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$Input()

  org.graalvm.compiler.nodes.ValueNode offset;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$Input()

  protected final jdk.vm.ci.meta.JavaKind accessKind;
    descriptor: Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.internal.vm.compiler.word.LocationIdentity locationIdentity;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final boolean forceAnyLocation;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

  public abstract boolean isVolatile();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.nodes.extended.UnsafeAccessNode>, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind, jdk.internal.vm.compiler.word.LocationIdentity, );
    descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=8, args_size=8
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
        start local 1 // org.graalvm.compiler.graph.NodeClass c
        start local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 3 // org.graalvm.compiler.nodes.ValueNode object
        start local 4 // org.graalvm.compiler.nodes.ValueNode offset
        start local 5 // jdk.vm.ci.meta.JavaKind accessKind
        start local 6 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        start local 7 // boolean forceAnyLocation
         0: .line 65
            aload 0 /* this */
            aload 1 /* c */
            aload 2 /* stamp */
            invokespecial org.graalvm.compiler.nodes.FixedWithNextNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;)V
         1: .line 66
            aload 0 /* this */
            iload 7 /* forceAnyLocation */
            putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.forceAnyLocation:Z
         2: .line 67
            getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
            ifne 3
            aload 5 /* accessKind */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 68
      StackMap locals: org.graalvm.compiler.nodes.extended.UnsafeAccessNode org.graalvm.compiler.graph.NodeClass org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind jdk.internal.vm.compiler.word.LocationIdentity int
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
            ifne 4
            aload 6 /* locationIdentity */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* object */
            putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:Lorg/graalvm/compiler/nodes/ValueNode;
         5: .line 70
            aload 0 /* this */
            aload 4 /* offset */
            putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:Lorg/graalvm/compiler/nodes/ValueNode;
         6: .line 71
            aload 0 /* this */
            aload 5 /* accessKind */
            putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:Ljdk/vm/ci/meta/JavaKind;
         7: .line 72
            aload 0 /* this */
            aload 6 /* locationIdentity */
            putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.locationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
         8: .line 73
            return
        end local 7 // boolean forceAnyLocation
        end local 6 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        end local 5 // jdk.vm.ci.meta.JavaKind accessKind
        end local 4 // org.graalvm.compiler.nodes.ValueNode offset
        end local 3 // org.graalvm.compiler.nodes.ValueNode object
        end local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 1 // org.graalvm.compiler.graph.NodeClass c
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
            0    9     1                 c  Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;>;
            0    9     2             stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    9     3            object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    9     4            offset  Lorg/graalvm/compiler/nodes/ValueNode;
            0    9     5        accessKind  Ljdk/vm/ci/meta/JavaKind;
            0    9     6  locationIdentity  Ljdk/internal/vm/compiler/word/LocationIdentity;
            0    9     7  forceAnyLocation  Z
    Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;>;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;Z)V
    MethodParameters:
                  Name  Flags
      c                 
      stamp             
      object            
      offset            
      accessKind        
      locationIdentity  
      forceAnyLocation  

  public jdk.internal.vm.compiler.word.LocationIdentity getLocationIdentity();
    descriptor: ()Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
         0: .line 76
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.locationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;

  public boolean isAnyLocationForced();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
         0: .line 80
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.forceAnyLocation:Z
            ireturn
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;

  public org.graalvm.compiler.nodes.ValueNode object();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
         0: .line 84
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;

  public org.graalvm.compiler.nodes.ValueNode offset();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
         0: .line 88
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;

  public jdk.vm.ci.meta.JavaKind accessKind();
    descriptor: ()Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
         0: .line 92
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:Ljdk/vm/ci/meta/JavaKind;
            areturn
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;

  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=4, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
         0: .line 97
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.isAnyLocationForced:()Z
            ifne 16
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isAny:()Z
            ifeq 16
         1: .line 98
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 11
         2: .line 99
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()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 2 /* constantOffset */
        start local 2 // long constantOffset
         3: .line 102
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* receiverType */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType receiverType
         4: .line 103
            aload 4 /* receiverType */
            ifnull 11
         5: .line 104
            aload 0 /* this */
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.getStaticFieldUnsafeAccess:(Ljdk/vm/ci/meta/ConstantReflectionProvider;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 5 /* field */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaField field
         6: .line 105
            aload 5 /* field */
            ifnonnull 8
         7: .line 106
            aload 4 /* receiverType */
            lload 2 /* constantOffset */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:()Ljdk/vm/ci/meta/JavaKind;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.findInstanceFieldWithOffset:(JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 5 /* field */
         8: .line 112
      StackMap locals: long jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 5 /* field */
            ifnull 11
            aload 5 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:()Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 11
         9: .line 113
            getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFloatingReadPhase:()Z
            ifeq 10
            new java.lang.AssertionError
            dup
            ldc "cannot add more precise memory location after floating read phase"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
            aload 5 /* field */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.isVolatile:()Z
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.cloneAsFieldAccess:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaField;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 5 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType receiverType
        end local 2 // long constantOffset
        11: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 2 /* receiverType */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType receiverType
        12: .line 120
            aload 2 /* receiverType */
            ifnull 16
            aload 2 /* receiverType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
            ifeq 16
        13: .line 121
            aload 2 /* receiverType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            astore 3 /* identity */
        start local 3 // jdk.internal.vm.compiler.word.LocationIdentity identity
        14: .line 122
            getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
            ifne 15
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFloatingReadPhase:()Z
            ifeq 15
            new java.lang.AssertionError
            dup
            ldc "cannot add more precise memory location after floating read phase"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 123
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.internal.vm.compiler.word.LocationIdentity
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 3 /* identity */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.isVolatile:()Z
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.cloneAsArrayAccess:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 3 // jdk.internal.vm.compiler.word.LocationIdentity identity
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType receiverType
        16: .line 127
      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.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
            0   17     1            tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            3   11     2  constantOffset  J
            4   11     4    receiverType  Ljdk/vm/ci/meta/ResolvedJavaType;
            6   11     5           field  Ljdk/vm/ci/meta/ResolvedJavaField;
           12   16     2    receiverType  Ljdk/vm/ci/meta/ResolvedJavaType;
           14   16     3        identity  Ljdk/internal/vm/compiler/word/LocationIdentity;
    MethodParameters:
      Name  Flags
      tool  

  protected org.graalvm.compiler.nodes.ValueNode cloneAsFieldAccess(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
        start local 1 // jdk.vm.ci.meta.Assumptions assumptions
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 131
            aload 0 /* this */
            aload 1 /* assumptions */
            aload 2 /* field */
            aload 2 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isVolatile:()Z
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.cloneAsFieldAccess:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaField;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 1 // jdk.vm.ci.meta.Assumptions assumptions
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
            0    1     1  assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    1     2        field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
             Name  Flags
      assumptions  
      field        

  protected abstract org.graalvm.compiler.nodes.ValueNode cloneAsFieldAccess(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.ResolvedJavaField, boolean);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaField;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                Name  Flags
      assumptions     
      field           
      volatileAccess  

  protected abstract org.graalvm.compiler.nodes.ValueNode cloneAsArrayAccess(org.graalvm.compiler.nodes.ValueNode, jdk.internal.vm.compiler.word.LocationIdentity, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/internal/vm/compiler/word/LocationIdentity;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                Name  Flags
      location        
      identity        
      volatileAccess  

  private jdk.vm.ci.meta.ResolvedJavaField getStaticFieldUnsafeAccess(jdk.vm.ci.meta.ConstantReflectionProvider);
    descriptor: (Ljdk/vm/ci/meta/ConstantReflectionProvider;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
        start local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         0: .line 146
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 2
         1: .line 147
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isNullConstant:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isNullConstant:()Z
            ifeq 3
         2: .line 148
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         3: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            astore 2 /* objectConstant */
        start local 2 // jdk.vm.ci.meta.JavaConstant objectConstant
         4: .line 151
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            astore 3 /* offsetConstant */
        start local 3 // jdk.vm.ci.meta.JavaConstant offsetConstant
         5: .line 152
            getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
            ifne 7
            aload 2 /* objectConstant */
            ifnull 6
            aload 3 /* offsetConstant */
            ifnonnull 7
      StackMap locals: jdk.vm.ci.meta.JavaConstant jdk.vm.ci.meta.JavaConstant
      StackMap stack:
         6: new java.lang.AssertionError
            dup
            ldc "Verified by the check at the beginning."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* constantReflection */
            aload 2 /* objectConstant */
            invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.asJavaType:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* staticReceiverType */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType staticReceiverType
         8: .line 154
            aload 4 /* staticReceiverType */
            ifnonnull 10
         9: .line 156
            aconst_null
            areturn
        10: .line 158
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            aload 4 /* staticReceiverType */
            aload 3 /* offsetConstant */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.findStaticFieldWithOffset:(Ljdk/vm/ci/meta/ResolvedJavaType;JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
            areturn
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType staticReceiverType
        end local 3 // jdk.vm.ci.meta.JavaConstant offsetConstant
        end local 2 // jdk.vm.ci.meta.JavaConstant objectConstant
        end local 1 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 0 // org.graalvm.compiler.nodes.extended.UnsafeAccessNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
            0   11     1  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            4   11     2      objectConstant  Ljdk/vm/ci/meta/JavaConstant;
            5   11     3      offsetConstant  Ljdk/vm/ci/meta/JavaConstant;
            8   11     4  staticReceiverType  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
                    Name  Flags
      constantReflection  

  private static jdk.vm.ci.meta.ResolvedJavaField findStaticFieldWithOffset(jdk.vm.ci.meta.ResolvedJavaType, long, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // jdk.vm.ci.meta.ResolvedJavaType type
        start local 1 // long offset
        start local 3 // jdk.vm.ci.meta.JavaKind expectedEntryKind
         0: .line 163
            aload 0 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getStaticFields:()[Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 4 /* declaredFields */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaField[] declaredFields
         1: .line 164
            lload 1 /* offset */
            aload 3 /* expectedEntryKind */
            aload 4 /* declaredFields */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.findFieldWithOffset:(JLjdk/vm/ci/meta/JavaKind;[Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
         2: areturn
        end local 4 // jdk.vm.ci.meta.ResolvedJavaField[] declaredFields
         3: .line 165
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
            pop
         4: .line 166
            aconst_null
            areturn
        end local 3 // jdk.vm.ci.meta.JavaKind expectedEntryKind
        end local 1 // long offset
        end local 0 // jdk.vm.ci.meta.ResolvedJavaType type
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               type  Ljdk/vm/ci/meta/ResolvedJavaType;
            0    5     1             offset  J
            0    5     3  expectedEntryKind  Ljdk/vm/ci/meta/JavaKind;
            1    3     4     declaredFields  [Ljdk/vm/ci/meta/ResolvedJavaField;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.UnsupportedOperationException
    MethodParameters:
                   Name  Flags
      type               
      offset             
      expectedEntryKind  

  private static jdk.vm.ci.meta.ResolvedJavaField findFieldWithOffset(long, jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.ResolvedJavaField[]);
    descriptor: (JLjdk/vm/ci/meta/JavaKind;[Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // long offset
        start local 2 // jdk.vm.ci.meta.JavaKind expectedEntryKind
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField[] declaredFields
         0: .line 175
            aload 3 /* declaredFields */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 13
      StackMap locals: long jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ResolvedJavaField[] top int int jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* field */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaField field
         2: .line 176
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getOffset:()I
            i2l
            lstore 8 /* resolvedFieldOffset */
        start local 8 // long resolvedFieldOffset
         3: .line 177
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpne 10
         4: .line 178
            aload 2 /* expectedEntryKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.isPrimitive:()Z
            ifeq 10
         5: .line 179
            aload 2 /* expectedEntryKind */
            getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.equals:(Ljava/lang/Object;)Z
            ifne 10
         6: .line 180
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isPrimitive:()Z
            ifeq 10
         7: .line 181
            lload 8 /* resolvedFieldOffset */
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
         8: .line 182
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
            iconst_4
            aload 2 /* expectedEntryKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
            iadd
            invokestatic java.lang.Math.min:(II)I
         9: .line 181
            isub
            i2l
            ladd
            lstore 8 /* resolvedFieldOffset */
        10: .line 184
      StackMap locals: long jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ResolvedJavaField[] jdk.vm.ci.meta.ResolvedJavaField int int jdk.vm.ci.meta.ResolvedJavaField[] long
      StackMap stack:
            lload 8 /* resolvedFieldOffset */
            lload 0 /* offset */
            lcmp
            ifne 12
        11: .line 185
            aload 4 /* field */
            areturn
        end local 8 // long resolvedFieldOffset
        end local 4 // jdk.vm.ci.meta.ResolvedJavaField field
        12: .line 175
      StackMap locals: long jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.ResolvedJavaField[] top int int jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        13: iload 5
            iload 6
            if_icmplt 1
        14: .line 188
            aconst_null
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField[] declaredFields
        end local 2 // jdk.vm.ci.meta.JavaKind expectedEntryKind
        end local 0 // long offset
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0               offset  J
            0   15     2    expectedEntryKind  Ljdk/vm/ci/meta/JavaKind;
            0   15     3       declaredFields  [Ljdk/vm/ci/meta/ResolvedJavaField;
            2   12     4                field  Ljdk/vm/ci/meta/ResolvedJavaField;
            3   12     8  resolvedFieldOffset  J
    MethodParameters:
                   Name  Flags
      offset             
      expectedEntryKind  
      declaredFields     
}
SourceFile: "UnsafeAccessNode.java"
InnerClasses:
  public abstract Input = org.graalvm.compiler.graph.Node$Input of org.graalvm.compiler.graph.Node
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(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;)