abstract class com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$ReadValue extends com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$ReadValue
  super_class: com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$ReadValue this
         0: .line 122
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$ReadValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM$ReadValue;

  protected abstract java.lang.Object execute(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
              Name  Flags
      value         
      incomingType  

  static boolean doI1(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 129
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isBoolean:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 130
            getstatic com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.REWRITE:Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 132
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asBoolean:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0         value  Ljava/lang/Object;
            0    3     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    3     2       interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "3", guards = {"incomingType.kind == I1"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "value")
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      interop       

  static byte doI8(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/api/interop/InteropLibrary;)B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 138
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInByte:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 139
            getstatic com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.REWRITE:Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 141
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asByte:(Ljava/lang/Object;)B
            ireturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0         value  Ljava/lang/Object;
            0    3     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    3     2       interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "3", guards = {"incomingType.kind == I8"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "value")
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      interop       

  static short doI16(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/api/interop/InteropLibrary;)S
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 147
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInShort:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 148
            getstatic com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.REWRITE:Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 150
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asShort:(Ljava/lang/Object;)S
            ireturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0         value  Ljava/lang/Object;
            0    3     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    3     2       interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "3", guards = {"incomingType.kind == I16"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "value")
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      interop       

  static int doI32(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/api/interop/InteropLibrary;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 156
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInInt:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 157
            getstatic com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.REWRITE:Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 159
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asInt:(Ljava/lang/Object;)I
            ireturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0         value  Ljava/lang/Object;
            0    3     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    3     2       interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "3", guards = {"incomingType.kind == I32"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "value")
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      interop       

  static long doI64(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/api/interop/InteropLibrary;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 165
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInLong:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 166
            getstatic com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.REWRITE:Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 168
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asLong:(Ljava/lang/Object;)J
            lreturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0         value  Ljava/lang/Object;
            0    3     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    3     2       interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "3", guards = {"incomingType.kind == I64"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "value")
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      interop       

  static float doFloat(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/api/interop/InteropLibrary;)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 174
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInFloat:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 175
            getstatic com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.REWRITE:Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 177
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asFloat:(Ljava/lang/Object;)F
            freturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0         value  Ljava/lang/Object;
            0    3     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    3     2       interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "3", guards = {"incomingType.kind == FLOAT"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "value")
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      interop       

  static double doDouble(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.api.interop.InteropLibrary);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/api/interop/InteropLibrary;)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
         0: .line 183
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInDouble:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 184
            getstatic com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.REWRITE:Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 0 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDouble:(Ljava/lang/Object;)D
            dreturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0         value  Ljava/lang/Object;
            0    3     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    3     2       interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "3", guards = {"incomingType.kind == DOUBLE"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "value")
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      interop       

  static com.oracle.truffle.llvm.runtime.pointer.LLVMPointer doPointer(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value, com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$WrapPointer);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM$WrapPointer;)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Object value
        start local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        start local 2 // com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$WrapPointer wrap
         0: .line 192
            aload 2 /* wrap */
            aload 0 /* value */
            aload 1 /* incomingType */
            getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value.baseType:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Structured;
            invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$WrapPointer.execute:(Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Structured;)Lcom/oracle/truffle/llvm/runtime/pointer/LLVMPointer;
            areturn
        end local 2 // com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$WrapPointer wrap
        end local 1 // com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value incomingType
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0         value  Ljava/lang/Object;
            0    1     1  incomingType  Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
            0    1     2          wrap  Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM$WrapPointer;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"incomingType.kind == POINTER"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
              Name  Flags
      value         
      incomingType  
      wrap          
}
SourceFile: "ToLLVM.java"
NestHost: com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM
InnerClasses:
  public abstract Structured = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Structured 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
  abstract ReadValue = com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$ReadValue of com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM
  abstract WrapPointer = com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM$WrapPointer of com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.GenerateUncached()
      com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$ValueKind;})