abstract class com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries this
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/runtime/pointer/CommonPointerLibraries;

  static boolean isReadable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 80
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static byte readI8(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 85
            ldc "Cannot read a value of type I8 directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static short readI16(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)S
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 90
            ldc "Cannot read a value of type I16 directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static int readI32(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 95
            ldc "Cannot read a value of type I32 directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static float readFloat(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 100
            ldc "Cannot read a value of type Float directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static long readI64(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 105
            ldc "Cannot read a value of type I64 directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static double readDouble(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 110
            ldc "Cannot read a value of type Double directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static com.oracle.truffle.llvm.runtime.pointer.LLVMPointer readPointer(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 115
            ldc "Cannot read a value of type Pointer directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static java.lang.Object readGenericI64(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
         0: .line 120
            ldc "Cannot read a value of type Object directly from a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    

  static boolean isWritable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 125
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static void writeI8(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, byte);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JB)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // byte value
         0: .line 130
            ldc "Cannot write a value of type I8 directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // byte value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  B
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static void writeI16(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, short);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JS)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // short value
         0: .line 135
            ldc "Cannot write a value of type I16 directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // short value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  S
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static void writeI32(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, int);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JI)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // int value
         0: .line 140
            ldc "Cannot write a value of type I32 directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // int value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static void writeFloat(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, float);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JF)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // float value
         0: .line 145
            ldc "Cannot write a value of type Float directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // float value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  F
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static void writeI64(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JJ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=5, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // long value
         0: .line 150
            ldc "Cannot write a value of type I64 directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // long value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static void writeGenericI64(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JLjava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // java.lang.Object value
         0: .line 155
            ldc "Cannot write a value of type Object directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Object value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static void writeDouble(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, double);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JD)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=5, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // double value
         0: .line 160
            ldc "Cannot write a value of type Double directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // double value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  D
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static void writePointer(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, com.oracle.truffle.llvm.runtime.pointer.LLVMPointer);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JLcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long offset
        start local 3 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer value
         0: .line 165
            ldc "Cannot write a value of type Pointer directly to a pointer. Perhaps a getObject() call is missing."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer value
        end local 1 // long offset
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1    offset  J
            0    1     3     value  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      offset    
      value     

  static boolean hasMembers(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 171
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct
            ireturn
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static java.lang.Object getMembers(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, boolean, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;ZLcom/oracle/truffle/api/profiles/ConditionProfile;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // boolean includeInternal
        start local 2 // com.oracle.truffle.api.profiles.ConditionProfile isObject
         0: .line 182
            aload 2 /* isObject */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 3
         1: .line 183
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            astore 3 /* clazz */
        start local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
         2: .line 184
            new com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$ClassKeys
            dup
            aload 3 /* clazz */
            invokespecial com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$ClassKeys.<init>:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Clazz;)V
            areturn
        end local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
         3: .line 185
      StackMap locals:
      StackMap stack:
            aload 2 /* isObject */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 6
         4: .line 186
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct
            astore 3 /* struct */
        start local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct struct
         5: .line 187
            new com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$Keys
            dup
            aload 3 /* struct */
            invokespecial com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$Keys.<init>:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;)V
            areturn
        end local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct struct
         6: .line 189
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
        end local 2 // com.oracle.truffle.api.profiles.ConditionProfile isObject
        end local 1 // boolean includeInternal
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0         receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    7     1  includeInternal  Z
            0    7     2         isObject  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            2    3     3            clazz  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Clazz;
            5    6     3           struct  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isObject")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                 Name  Flags
      receiver         
      includeInternal  
      isObject         

  static boolean isMemberReadable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, java.lang.String, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Ljava/lang/String;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // java.lang.String ident
        start local 2 // com.oracle.truffle.api.profiles.ConditionProfile isObject
         0: .line 196
            aload 2 /* isObject */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 9
         1: .line 197
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            astore 3 /* clazz */
        start local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
         2: .line 198
            aload 3 /* clazz */
            aload 1 /* ident */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz.findMember:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
            astore 4 /* member */
        start local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember member
         3: .line 199
            aload 4 /* member */
            ifnonnull 7
         4: .line 200
            aload 3 /* clazz */
            aload 1 /* ident */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz.findMethod:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Method;
            astore 5 /* method */
        start local 5 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method method
         5: .line 201
            aload 5 /* method */
            ifnull 6
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method
      StackMap stack:
         6: iconst_0
            ireturn
        end local 5 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method method
         7: .line 203
      StackMap locals:
      StackMap stack:
            aload 4 /* member */
            ifnull 8
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_0
            ireturn
        end local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember member
        end local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
         9: .line 204
      StackMap locals:
      StackMap stack:
            aload 2 /* isObject */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 14
        10: .line 205
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct
            astore 3 /* struct */
        start local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct struct
        11: .line 206
            aload 3 /* struct */
            aload 1 /* ident */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct.findMember:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
            astore 4 /* member */
        start local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember member
        12: .line 207
            aload 4 /* member */
            ifnull 13
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember
      StackMap stack:
        13: iconst_0
            ireturn
        end local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember member
        end local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct struct
        14: .line 209
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.profiles.ConditionProfile isObject
        end local 1 // java.lang.String ident
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0   15     1     ident  Ljava/lang/String;
            0   15     2  isObject  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            2    9     3     clazz  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Clazz;
            3    9     4    member  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
            5    7     5    method  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Method;
           11   14     3    struct  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
           12   14     4    member  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isObject")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
          Name  Flags
      receiver  
      ident     
      isObject  

  static java.lang.Object readMember(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, java.lang.String, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Ljava/lang/String;Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetMemberPointerNode;Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignReadNode;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // java.lang.String ident
        start local 2 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode getElementPointer
        start local 3 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode read
         0: .line 217
            aload 2 /* getElementPointer */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            aload 0 /* receiver */
            aload 1 /* ident */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode.execute:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
            astore 4 /* ptr */
        start local 4 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
         1: .line 218
            aload 3 /* read */
            aload 4 /* ptr */
            aload 4 /* ptr */
            invokeinterface com.oracle.truffle.llvm.runtime.pointer.LLVMPointer.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode.execute:(Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;)Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
        end local 3 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode read
        end local 2 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode getElementPointer
        end local 1 // java.lang.String ident
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0           receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    2     1              ident  Ljava/lang/String;
            0    2     2  getElementPointer  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetMemberPointerNode;
            0    2     3               read  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignReadNode;
            1    2     4                ptr  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.UnknownIdentifierException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getMember")
        com.oracle.truffle.api.dsl.Cached()
      3:
        com.oracle.truffle.api.dsl.Cached$Exclusive()
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                   Name  Flags
      receiver           
      ident              
      getElementPointer  
      read               

  static boolean isMemberModifiable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, java.lang.String, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Ljava/lang/String;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // java.lang.String ident
        start local 2 // com.oracle.truffle.api.profiles.ConditionProfile isObject
         0: .line 224
            aload 2 /* isObject */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 6
         1: .line 229
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct
            astore 3 /* struct */
        start local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct struct
         2: .line 230
            aload 3 /* struct */
            aload 1 /* ident */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct.findMember:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
            astore 4 /* member */
        start local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember member
         3: .line 231
            aload 4 /* member */
            ifnonnull 5
         4: .line 233
            iconst_0
            ireturn
         5: .line 235
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember
      StackMap stack:
            aload 4 /* member */
            getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value
            ireturn
        end local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember member
        end local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct struct
         6: .line 238
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.profiles.ConditionProfile isObject
        end local 1 // java.lang.String ident
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    7     1     ident  Ljava/lang/String;
            0    7     2  isObject  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            2    6     3    struct  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
            3    6     4    member  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isObject")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
          Name  Flags
      receiver  
      ident     
      isObject  

  static boolean isMemberInvocable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // java.lang.String ident
         0: .line 249
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            astore 2 /* type */
        start local 2 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType type
         1: .line 250
            aload 2 /* type */
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            ifeq 5
         2: .line 251
            aload 2 /* type */
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            astore 3 /* clazz */
        start local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
         3: .line 252
            aload 3 /* clazz */
            aload 1 /* ident */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz.findMethod:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Method;
            ifnull 4
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
      StackMap stack:
         4: iconst_0
            ireturn
        end local 3 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
         5: .line 254
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType type
        end local 1 // java.lang.String ident
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    6     1     ident  Ljava/lang/String;
            1    6     2      type  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            3    5     3     clazz  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Clazz;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      ident     

  static com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz asClazz(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Clazz;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 300
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            astore 1 /* type */
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType type
         1: .line 301
            aload 1 /* type */
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            ifne 3
         2: .line 302
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         3: .line 304
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
      StackMap stack:
            aload 1 /* type */
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz
            areturn
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType type
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            1    4     1      type  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
          Name  Flags
      receiver  

  static java.lang.Object[] addSelfObject(java.lang.Object, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.Object receiver
        start local 1 // java.lang.Object[] rawArgs
         0: .line 308
            aload 1 /* rawArgs */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 2 /* newArguments */
        start local 2 // java.lang.Object[] newArguments
         1: .line 309
            aload 2 /* newArguments */
            iconst_0
            aload 0 /* receiver */
            aastore
         2: .line 310
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 311
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 2 /* newArguments */
            iload 3 /* i */
            iconst_1
            iadd
            aload 1 /* rawArgs */
            iload 3 /* i */
            aaload
            aastore
         5: .line 310
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 1 /* rawArgs */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 313
            aload 2 /* newArguments */
            areturn
        end local 2 // java.lang.Object[] newArguments
        end local 1 // java.lang.Object[] rawArgs
        end local 0 // java.lang.Object receiver
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0      receiver  Ljava/lang/Object;
            0    8     1       rawArgs  [Ljava/lang/Object;
            1    8     2  newArguments  [Ljava/lang/Object;
            3    7     3             i  I
    MethodParameters:
          Name  Flags
      receiver  
      rawArgs   

  static com.oracle.truffle.llvm.runtime.LLVMFunction getLLVMFunction(com.oracle.truffle.llvm.runtime.LLVMContext, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMContext;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Method;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Clazz;Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMContext context
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method method
        start local 2 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
        start local 3 // java.lang.String member
         0: .line 317
            aload 1 /* method */
            ifnonnull 2
         1: .line 318
            aload 3 /* member */
            invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
            athrow
         2: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMContext.getGlobalScope:()Lcom/oracle/truffle/llvm/runtime/LLVMScope;
            aload 1 /* method */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method.getLinkageName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMScope.getFunction:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            astore 4 /* llvmFunction */
        start local 4 // com.oracle.truffle.llvm.runtime.LLVMFunction llvmFunction
         3: .line 321
            aload 4 /* llvmFunction */
            ifnonnull 10
         4: .line 322
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         5: .line 323
            aload 2 /* clazz */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz.toString:()Ljava/lang/String;
            ldc "class "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
            aload 2 /* clazz */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz.toString:()Ljava/lang/String;
            bipush 6
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 7
      StackMap locals: com.oracle.truffle.llvm.runtime.LLVMFunction
      StackMap stack:
         6: aload 2 /* clazz */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 5 /* clazzName */
        start local 5 // java.lang.String clazzName
         8: .line 324
            ldc "No implementation of declared method %s::%s (%s) found"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* clazzName */
            aastore
            dup
            iconst_1
            aload 1 /* method */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 1 /* method */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method.getLinkageName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
         9: .line 325
            new com.oracle.truffle.llvm.runtime.except.LLVMLinkerException
            dup
            aload 6 /* msg */
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMLinkerException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String msg
        end local 5 // java.lang.String clazzName
        10: .line 327
      StackMap locals:
      StackMap stack:
            aload 4 /* llvmFunction */
            areturn
        end local 4 // com.oracle.truffle.llvm.runtime.LLVMFunction llvmFunction
        end local 3 // java.lang.String member
        end local 2 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz clazz
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method method
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0       context  Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            0   11     1        method  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Method;
            0   11     2         clazz  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Clazz;
            0   11     3        member  Ljava/lang/String;
            3   11     4  llvmFunction  Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            8   10     5     clazzName  Ljava/lang/String;
            9   10     6           msg  Ljava/lang/String;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnknownIdentifierException
    MethodParameters:
         Name  Flags
      context  
      method   
      clazz    
      member   

  static boolean isMemberInsertable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // java.lang.String ident
         0: .line 337
            iconst_0
            ireturn
        end local 1 // java.lang.String ident
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1     ident  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      ident     

  static void writeMember(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, java.lang.String, java.lang.Object, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetMemberPointerNode;Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignWriteNode;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // java.lang.String ident
        start local 2 // java.lang.Object value
        start local 3 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode getElementPointer
        start local 4 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode write
         0: .line 344
            aload 3 /* getElementPointer */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            aload 0 /* receiver */
            aload 1 /* ident */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode.execute:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
            astore 5 /* ptr */
        start local 5 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
         1: .line 345
            aload 4 /* write */
            aload 5 /* ptr */
            aload 5 /* ptr */
            invokeinterface com.oracle.truffle.llvm.runtime.pointer.LLVMPointer.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            aload 2 /* value */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode.execute:(Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Ljava/lang/Object;)V
         2: .line 346
            return
        end local 5 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
        end local 4 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode write
        end local 3 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetMemberPointerNode getElementPointer
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String ident
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0           receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    3     1              ident  Ljava/lang/String;
            0    3     2              value  Ljava/lang/Object;
            0    3     3  getElementPointer  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetMemberPointerNode;
            0    3     4              write  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignWriteNode;
            1    3     5                ptr  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.UnknownIdentifierException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getMember")
        com.oracle.truffle.api.dsl.Cached()
      4:
        com.oracle.truffle.api.dsl.Cached$Exclusive()
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                   Name  Flags
      receiver           
      ident              
      value              
      getElementPointer  
      write              

  static boolean hasArrayElements(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 350
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array
            ireturn
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static long getArraySize(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Lcom/oracle/truffle/api/profiles/ConditionProfile;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // com.oracle.truffle.api.profiles.ConditionProfile isArray
         0: .line 356
            aload 1 /* isArray */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 2
         1: .line 357
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array
            getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array.length:J
            lreturn
         2: .line 359
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
        end local 1 // com.oracle.truffle.api.profiles.ConditionProfile isArray
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    3     1   isArray  Lcom/oracle/truffle/api/profiles/ConditionProfile;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isArray")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
          Name  Flags
      receiver  
      isArray   

  static boolean isArrayElementReadable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JLcom/oracle/truffle/api/profiles/ConditionProfile;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long idx
        start local 3 // com.oracle.truffle.api.profiles.ConditionProfile isArray
         0: .line 366
            aload 3 /* isArray */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 4
         1: .line 367
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array
            getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array.length:J
            lstore 4 /* length */
        start local 4 // long length
         2: .line 368
            lload 1 /* idx */
            lload 4 /* length */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
            ifge 3
            iconst_1
            ireturn
      StackMap locals: long
      StackMap stack:
         3: iconst_0
            ireturn
        end local 4 // long length
         4: .line 370
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // com.oracle.truffle.api.profiles.ConditionProfile isArray
        end local 1 // long idx
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    5     1       idx  J
            0    5     3   isArray  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            2    4     4    length  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isArray")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
          Name  Flags
      receiver  
      idx       
      isArray   

  static java.lang.Object readArrayElement(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JLcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetIndexPointerNode;Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignReadNode;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long idx
        start local 3 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode getElementPointer
        start local 4 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode read
         0: .line 378
            aload 3 /* getElementPointer */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            aload 0 /* receiver */
            lload 1 /* idx */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode.execute:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;J)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
            astore 5 /* ptr */
        start local 5 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
         1: .line 379
            aload 4 /* read */
            aload 5 /* ptr */
            aload 5 /* ptr */
            invokeinterface com.oracle.truffle.llvm.runtime.pointer.LLVMPointer.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode.execute:(Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;)Ljava/lang/Object;
            areturn
        end local 5 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
        end local 4 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignReadNode read
        end local 3 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode getElementPointer
        end local 1 // long idx
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0           receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    2     1                idx  J
            0    2     3  getElementPointer  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetIndexPointerNode;
            0    2     4               read  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignReadNode;
            1    2     5                ptr  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.InvalidArrayIndexException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getIndex")
        com.oracle.truffle.api.dsl.Cached()
      3:
        com.oracle.truffle.api.dsl.Cached$Exclusive()
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                   Name  Flags
      receiver           
      idx                
      getElementPointer  
      read               

  static boolean isArrayElementModifiable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JLcom/oracle/truffle/api/profiles/ConditionProfile;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long idx
        start local 3 // com.oracle.truffle.api.profiles.ConditionProfile isArray
         0: .line 385
            aload 3 /* isArray */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 7
         1: .line 386
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array
            astore 4 /* arrayType */
        start local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array arrayType
         2: .line 387
            aload 4 /* arrayType */
            getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array.elementType:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value
            ifeq 6
         3: .line 388
            aload 4 /* arrayType */
            getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array.length:J
            lstore 5 /* length */
        start local 5 // long length
         4: .line 389
            lload 1 /* idx */
            lload 5 /* length */
            invokestatic java.lang.Long.compareUnsigned:(JJ)I
            ifge 5
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array long
      StackMap stack:
         5: iconst_0
            ireturn
        end local 5 // long length
         6: .line 392
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array arrayType
         7: .line 395
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // com.oracle.truffle.api.profiles.ConditionProfile isArray
        end local 1 // long idx
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0   receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    8     1        idx  J
            0    8     3    isArray  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            2    7     4  arrayType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Array;
            4    6     5     length  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isArray")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
          Name  Flags
      receiver  
      idx       
      isArray   

  static boolean isArrayElementInsertable(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;J)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long idx
         0: .line 407
            iconst_0
            ireturn
        end local 1 // long idx
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1       idx  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
      idx       

  static void writeArrayElement(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, long, java.lang.Object, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode, com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;JLjava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetIndexPointerNode;Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignWriteNode;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // long idx
        start local 3 // java.lang.Object value
        start local 4 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode getElementPointer
        start local 5 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode write
         0: .line 414
            aload 4 /* getElementPointer */
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            aload 0 /* receiver */
            lload 1 /* idx */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode.execute:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;J)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
            astore 6 /* ptr */
        start local 6 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
         1: .line 415
            aload 5 /* write */
            aload 6 /* ptr */
            aload 6 /* ptr */
            invokeinterface com.oracle.truffle.llvm.runtime.pointer.LLVMPointer.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            aload 3 /* value */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode.execute:(Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Ljava/lang/Object;)V
         2: .line 416
            return
        end local 6 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointer ptr
        end local 5 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignWriteNode write
        end local 4 // com.oracle.truffle.llvm.runtime.interop.export.LLVMForeignGetIndexPointerNode getElementPointer
        end local 3 // java.lang.Object value
        end local 1 // long idx
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0           receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    3     1                idx  J
            0    3     3              value  Ljava/lang/Object;
            0    3     4  getElementPointer  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignGetIndexPointerNode;
            0    3     5              write  Lcom/oracle/truffle/llvm/runtime/interop/export/LLVMForeignWriteNode;
            1    3     6                ptr  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.InvalidArrayIndexException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getIndex")
        com.oracle.truffle.api.dsl.Cached()
      4:
        com.oracle.truffle.api.dsl.Cached$Exclusive()
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                   Name  Flags
      receiver           
      idx                
      value              
      getElementPointer  
      write              

  static boolean hasLanguage(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 519
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> getLanguage(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 524
            ldc Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
            areturn
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    Signature: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static java.lang.String toDisplayString(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl, boolean);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;Z)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
        start local 1 // boolean allowSideEffects
         0: .line 530
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.toString:()Ljava/lang/String;
            areturn
        end local 1 // boolean allowSideEffects
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0          receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            0    1     1  allowSideEffects  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      receiver          
      allowSideEffects  

  static java.lang.Object getMetaObject(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 535
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            astore 1 /* type */
        start local 1 // java.lang.Object type
         1: .line 536
            aload 1 /* type */
            ifnull 3
         2: .line 537
            aload 1 /* type */
            areturn
         3: .line 539
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
        end local 1 // java.lang.Object type
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
            1    4     1      type  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static boolean hasMetaObject(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 544
            aload 0 /* receiver */
            invokevirtual com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl.getExportType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  

  static int identityHashCode(com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
         0: .line 564
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         1: .line 565
            new java.lang.AbstractMethodError
            dup
            invokespecial java.lang.AbstractMethodError.<init>:()V
            athrow
        end local 0 // com.oracle.truffle.llvm.runtime.pointer.LLVMPointerImpl receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  receiver  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
          Name  Flags
      receiver  
}
SourceFile: "CommonPointerLibraries.java"
NestMembers:
  com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$ClassKeys  com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$InvokeMember  com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$IsIdenticalOrUndefined  com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$IsSame  com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$Keys
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract Exclusive = com.oracle.truffle.api.dsl.Cached$Exclusive of com.oracle.truffle.api.dsl.Cached
  public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached
  public abstract Repeat = com.oracle.truffle.api.library.ExportLibrary$Repeat of com.oracle.truffle.api.library.ExportLibrary
  public final Array = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
  public final Clazz = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Clazz of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
  public final Method = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Method of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
  public Struct = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
  public final StructMember = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
  public final Value = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
  public final ClassKeys = com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$ClassKeys of com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries
  InvokeMember = com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$InvokeMember of com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries
  IsIdenticalOrUndefined = com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$IsIdenticalOrUndefined of com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries
  IsSame = com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$IsSame of com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries
  public final Keys = com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries$Keys of com.oracle.truffle.llvm.runtime.pointer.CommonPointerLibraries
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportLibrary$Repeat(value = {com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;, receiverType = Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;), com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMManagedWriteLibrary;, receiverType = Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;), com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMManagedReadLibrary;, receiverType = Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;), com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/llvm/spi/ReferenceLibrary;, receiverType = Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointerImpl;)})