public class com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase extends com.oracle.truffle.llvm.tests.interop.InteropTestBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase
  super_class: com.oracle.truffle.llvm.tests.interop.InteropTestBase
{
  protected static java.lang.Object testLibrary;
    descriptor: Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static java.lang.Object[] types;
    descriptor: [Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase this
         0: .line 40
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.tests.interop.InteropTestBase.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/tests/interop/ManagedMemAccessTestBase;

  protected static java.lang.Object getTypeID(com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType);
    descriptor: (Lcom/oracle/truffle/llvm/tests/interop/ManagedMemAccessTestBase$TestType;)Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType type
         0: .line 96
            getstatic com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase.types:[Ljava/lang/Object;
            aload 0 /* type */
            invokevirtual com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType.ordinal:()I
            aaload
            areturn
        end local 0 // com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Lcom/oracle/truffle/llvm/tests/interop/ManagedMemAccessTestBase$TestType;
    MethodParameters:
      Name  Flags
      type  

  public static void loadTestBitcode();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=2, args_size=0
         0: .line 101
            ldc "managedMemmove.c"
            invokestatic com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase.loadTestBitcodeInternal:(Ljava/lang/String;)Ljava/lang/Object;
            putstatic com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase.testLibrary:Ljava/lang/Object;
         1: .line 103
            getstatic com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase.runWithPolyglot:Lcom/oracle/truffle/tck/TruffleRunner$RunWithPolyglotRule;
            invokevirtual com.oracle.truffle.tck.TruffleRunner$RunWithPolyglotRule.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
            getstatic com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase.testLibrary:Ljava/lang/Object;
            invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 0 /* lib */
        start local 0 // org.graalvm.polyglot.Value lib
         2: .line 104
            aload 0 /* lib */
            ldc "get_types"
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            astore 1 /* getTypes */
        start local 1 // org.graalvm.polyglot.Value getTypes
         3: .line 106
            invokestatic com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType.values:()[Lcom/oracle/truffle/llvm/tests/interop/ManagedMemAccessTestBase$TestType;
            arraylength
            anewarray java.lang.Object
            putstatic com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase.types:[Ljava/lang/Object;
         4: .line 107
            aload 1 /* getTypes */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.values.TestCallback
            dup
            iconst_1
            new com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$1
            dup
            invokespecial com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$1.<init>:()V
            invokespecial com.oracle.truffle.llvm.tests.interop.values.TestCallback.<init>:(ILcom/oracle/truffle/llvm/tests/interop/values/TestCallback$Function;)V
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            pop
         5: .line 117
            return
        end local 1 // org.graalvm.polyglot.Value getTypes
        end local 0 // org.graalvm.polyglot.Value lib
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            2    6     0       lib  Lorg/graalvm/polyglot/Value;
            3    6     1  getTypes  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.BeforeClass()

  protected static byte[] serialize(com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/llvm/tests/interop/ManagedMemAccessTestBase$TestType;Ljava/lang/Object;)[B
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType type
        start local 1 // java.lang.Object array
         0: .line 120
            aload 1 /* array */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            aload 0 /* type */
            getfield com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType.elementSize:I
            imul
            istore 2 /* size */
        start local 2 // int size
         1: .line 121
            iload 2 /* size */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            astore 3 /* buffer */
        start local 3 // java.nio.ByteBuffer buffer
         2: .line 122
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 123
      StackMap locals: int java.nio.ByteBuffer int
      StackMap stack:
            aload 0 /* type */
            aload 3 /* buffer */
            aload 1 /* array */
            iload 4 /* i */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType.serialize:(Ljava/nio/ByteBuffer;Ljava/lang/Object;)V
         5: .line 122
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 1 /* array */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            if_icmplt 4
        end local 4 // int i
         7: .line 125
            aload 3 /* buffer */
            invokevirtual java.nio.ByteBuffer.array:()[B
            areturn
        end local 3 // java.nio.ByteBuffer buffer
        end local 2 // int size
        end local 1 // java.lang.Object array
        end local 0 // com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType type
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    type  Lcom/oracle/truffle/llvm/tests/interop/ManagedMemAccessTestBase$TestType;
            0    8     1   array  Ljava/lang/Object;
            1    8     2    size  I
            2    8     3  buffer  Ljava/nio/ByteBuffer;
            3    7     4       i  I
    MethodParameters:
       Name  Flags
      type   
      array  
}
SourceFile: "ManagedMemAccessTestBase.java"
NestMembers:
  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$1  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType$1  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType$2  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType$3  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType$4  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType$5  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType$6
InnerClasses:
  com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$1
  protected abstract TestType = com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase$TestType of com.oracle.truffle.llvm.tests.interop.ManagedMemAccessTestBase
  public abstract Function = com.oracle.truffle.llvm.tests.interop.values.TestCallback$Function of com.oracle.truffle.llvm.tests.interop.values.TestCallback
  public final RunWithPolyglotRule = com.oracle.truffle.tck.TruffleRunner$RunWithPolyglotRule of com.oracle.truffle.tck.TruffleRunner