public class org.graalvm.compiler.replacements.test.DerivedOopTest extends org.graalvm.compiler.core.test.GraalCompilerTest implements org.graalvm.compiler.replacements.Snippets
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.replacements.test.DerivedOopTest
  super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
  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 47
            ldc Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
            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.replacements.test.DerivedOopTest.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
         0: .line 47
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/test/DerivedOopTest;

  public void testFieldOffset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
         0: .line 101
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tTest cannot be resolved to a type\n\tAssert cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
    RuntimeInvisibleAnnotations: 
      Test()

  static long getRawPointer(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 114
            aload 0 /* obj */
            invokevirtual java.lang.Object.hashCode:()I
            i2l
            lreturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  static long getRawPointerIntrinsic(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 118
            aload 0 /* obj */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Pointer;
            invokeinterface org.graalvm.compiler.word.Pointer.rawValue:()J
            lreturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public static org.graalvm.compiler.replacements.test.DerivedOopTest$Result fieldOffsetSnippet(org.graalvm.compiler.replacements.test.DerivedOopTest$Result, long);
    descriptor: (Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;J)Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest$Result obj
        start local 1 // long offset
         0: .line 122
            aload 0 /* obj */
            invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
            lload 1 /* offset */
            ladd
            lstore 3 /* internalPointer */
        start local 3 // long internalPointer
         1: .line 125
            lload 3 /* internalPointer */
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.blackhole:(J)V
         2: .line 127
            aload 0 /* obj */
            getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
            aload 0 /* obj */
            invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
            putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
         3: .line 128
            aload 0 /* obj */
            getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
            lload 3 /* internalPointer */
            putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
         4: .line 130
            invokestatic java.lang.System.gc:()V
         5: .line 132
            aload 0 /* obj */
            getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
            aload 0 /* obj */
            invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
            putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
         6: .line 133
            aload 0 /* obj */
            getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
            lload 3 /* internalPointer */
            putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
         7: .line 135
            aload 0 /* obj */
            areturn
        end local 3 // long internalPointer
        end local 1 // long offset
        end local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest$Result obj
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0              obj  Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
            0    8     1           offset  J
            1    8     3  internalPointer  J
    MethodParameters:
        Name  Flags
      obj     
      offset  

  protected org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins getDefaultGraphBuilderPlugins();
    descriptor: ()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
         0: .line 140
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.getDefaultGraphBuilderPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            astore 1 /* plugins */
        start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
         1: .line 141
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 1 /* plugins */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            ldc Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
            astore 2 /* r */
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         2: .line 143
            aload 0 /* this */
            ldc "getRawPointerIntrinsic"
            invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.getResolvedJavaMethod:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 3 /* intrinsic */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod intrinsic
         3: .line 144
            aload 2 /* r */
            ldc "getRawPointer"
            ldc Ljava/lang/Object;
            new org.graalvm.compiler.replacements.test.DerivedOopTest$1
            dup
            aload 0 /* this */
            aload 3 /* intrinsic */
            invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$1.<init>:(Lorg/graalvm/compiler/replacements/test/DerivedOopTest;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         4: .line 151
            aload 1 /* plugins */
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod intrinsic
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
        end local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
            1    5     1    plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            2    5     2          r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
            3    5     3  intrinsic  Ljdk/vm/ci/meta/ResolvedJavaMethod;

  protected boolean checkHighTierGraph(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 156
            getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.$assertionsDisabled:Z
            ifne 1
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/word/nodes/WordCastNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            ifgt 1
            new java.lang.AssertionError
            dup
            ldc "DerivedOopTest.toLong should be intrinsified"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* graph */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.checkHighTierGraph:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
            ireturn
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.replacements.test.DerivedOopTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
            0    2     1  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
    MethodParameters:
       Name  Flags
      graph  

  static org.graalvm.compiler.nodes.spi.Replacements access$0(org.graalvm.compiler.replacements.test.DerivedOopTest);
    descriptor: (Lorg/graalvm/compiler/replacements/test/DerivedOopTest;)Lorg/graalvm/compiler/nodes/spi/Replacements;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "DerivedOopTest.java"
NestMembers:
  org.graalvm.compiler.replacements.test.DerivedOopTest$1  org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers  org.graalvm.compiler.replacements.test.DerivedOopTest$Result
InnerClasses:
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
  public Registration = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
  org.graalvm.compiler.replacements.test.DerivedOopTest$1
  private Pointers = org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers of org.graalvm.compiler.replacements.test.DerivedOopTest
  private Result = org.graalvm.compiler.replacements.test.DerivedOopTest$Result of org.graalvm.compiler.replacements.test.DerivedOopTest