abstract class com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode 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.access.LLVMInteropReadNode$ReadLocationNode
super_class: com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode$ReadLocationNode;
abstract java.lang.Object execute(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation, com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Ljava/lang/Object;
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
identifier
location
accessType
java.lang.Object readMember(java.lang.String, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation, com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Ljava/lang/String;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=8, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: getstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode.$assertionsDisabled:Z
ifne 1
aload 1
aload 2
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.identifier:Ljava/lang/Object;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 4
aload 2
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.base:Ljava/lang/Object;
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 7
start local 7 2: aload 5
aload 7
aload 2
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
aload 3
invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.executeWithType:(Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Ljava/lang/Object;
3: areturn
end local 7 4: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
pop
5: aload 6
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
6: new com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException
dup
aload 0
ldc "Member '%s' not found"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;[Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnknownIdentifierException
pop
8: aload 6
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
9: new com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException
dup
aload 0
ldc "Cannot read member '%s'"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode$ReadLocationNode;
0 10 1 name Ljava/lang/String;
0 10 2 location Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
0 10 3 accessType Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
0 10 4 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 10 5 toLLVM Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM;
0 10 6 exception Lcom/oracle/truffle/api/profiles/BranchProfile;
2 4 7 ret Ljava/lang/Object;
Exception table:
from to target type
1 3 4 Class com.oracle.truffle.api.interop.UnsupportedMessageException
1 3 7 Class com.oracle.truffle.api.interop.UnknownIdentifierException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(limit = "3")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.library.CachedLibrary(value = "location.base")
4:
com.oracle.truffle.api.dsl.Cached()
5:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
name
location
accessType
interop
toLLVM
exception
java.lang.Object readArrayElementTypeMatch(long, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation, com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (JLcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=9, locals=11, args_size=7
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 start local 7 0: getstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode.$assertionsDisabled:Z
ifne 1
lload 1
aload 3
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.identifier:Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lcmp
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
lload 1
lstore 8
start local 8 2: aload 5
aload 3
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.base:Ljava/lang/Object;
lload 8
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 10
start local 10 3: aload 6
aload 10
aload 3
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
aload 4
invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.executeWithType:(Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Ljava/lang/Object;
4: areturn
end local 10 5: StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode long com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM com.oracle.truffle.api.profiles.BranchProfile long
StackMap stack: com.oracle.truffle.api.interop.InvalidArrayIndexException
pop
6: aload 7
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
7: new com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException
dup
aload 0
ldc "Invalid array index %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;[Ljava/lang/Object;)V
athrow
8: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
pop
9: aload 7
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
10: new com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException
dup
aload 0
ldc "Cannot read array element %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode$ReadLocationNode;
0 11 1 identifier J
0 11 3 location Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
0 11 4 accessType Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
0 11 5 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 11 6 toLLVM Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM;
0 11 7 exception Lcom/oracle/truffle/api/profiles/BranchProfile;
2 11 8 idx J
3 5 10 ret Ljava/lang/Object;
Exception table:
from to target type
2 4 5 Class com.oracle.truffle.api.interop.InvalidArrayIndexException
2 4 8 Class com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isLocationTypeNullOrSameSize(location, accessType)"}, limit = "3")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.library.CachedLibrary(value = "location.base")
4:
com.oracle.truffle.api.dsl.Cached()
5:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
identifier
location
accessType
interop
toLLVM
exception
java.lang.Object readArrayElementFromI8(long, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation, com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReinterpretLongAsLLVM, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType, int);
descriptor: (JLcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode$ReinterpretLongAsLLVM;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=9, locals=19, args_size=11
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 0: getstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode.$assertionsDisabled:Z
ifne 1
lload 1
aload 3
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.identifier:Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lcmp
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
lload 1
lstore 12
start local 12 2: getstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode.$assertionsDisabled:Z
ifne 3
aload 10
getstatic com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType.I8:Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
if_acmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: long
StackMap stack:
lconst_0
lstore 14
start local 14 4: iconst_0
istore 16
start local 16 5: goto 10
6: StackMap locals: long int
StackMap stack:
aload 5
aload 3
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.base:Ljava/lang/Object;
lload 12
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 17
start local 17 7: aload 6
aload 17
getstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$ValueKind.I8:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$ValueKind;
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$ValueKind.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
getstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$ValueKind.I8:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$ValueKind;
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$ValueKind.foreignToLLVMType:Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM.executeWithType:(Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Ljava/lang/Object;
astore 18
start local 18 8: lload 14
aload 18
checkcast java.lang.Byte
invokevirtual java.lang.Byte.byteValue:()B
invokestatic java.lang.Byte.toUnsignedLong:(B)J
bipush 8
iload 16
imul
lshl
lor
lstore 14
end local 18 end local 17 9: iinc 16 1
lload 12
lconst_1
ladd
lstore 12
StackMap locals:
StackMap stack:
10: iload 16
iload 11
if_icmplt 6
end local 16 11: aload 7
lload 14
aload 4
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReinterpretLongAsLLVM.executeWithAccessType:(JLcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Ljava/lang/Object;
12: areturn
13: StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode long com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.llvm.runtime.interop.convert.ToLLVM com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReinterpretLongAsLLVM com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType int long long
StackMap stack: com.oracle.truffle.api.interop.InvalidArrayIndexException
pop
14: lload 12
lload 1
lcmp
ifeq 17
15: aload 9
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
16: aload 7
lload 14
aload 4
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReinterpretLongAsLLVM.executeWithAccessType:(JLcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Ljava/lang/Object;
areturn
17: StackMap locals:
StackMap stack:
aload 8
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
18: new com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException
dup
aload 0
ldc "Invalid array index %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 12
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;[Ljava/lang/Object;)V
athrow
19: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
pop
20: aload 8
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
21: new com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException
dup
aload 0
ldc "Cannot read array element %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 12
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 14 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode$ReadLocationNode;
0 22 1 identifier J
0 22 3 location Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
0 22 4 accessType Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
0 22 5 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 22 6 toLLVM Lcom/oracle/truffle/llvm/runtime/interop/convert/ToLLVM;
0 22 7 fromLongToLLVM Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode$ReinterpretLongAsLLVM;
0 22 8 exception Lcom/oracle/truffle/api/profiles/BranchProfile;
0 22 9 outOfBounds Lcom/oracle/truffle/api/profiles/BranchProfile;
0 22 10 locationType Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
0 22 11 accessTypeSizeInBytes I
2 22 12 idx J
4 22 14 res J
5 11 16 i I
7 9 17 ret Ljava/lang/Object;
8 9 18 toLLVMValue Ljava/lang/Object;
Exception table:
from to target type
4 12 13 Class com.oracle.truffle.api.interop.InvalidArrayIndexException
4 12 19 Class com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isLocationTypeNullOrSameSize(location, accessType)", "locationType.isI8()", "accessTypeSizeInBytes > 1"}, limit = "3")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.library.CachedLibrary(value = "location.base")
4:
com.oracle.truffle.api.dsl.Cached()
5:
com.oracle.truffle.api.dsl.Cached()
6:
com.oracle.truffle.api.dsl.Cached()
7:
com.oracle.truffle.api.dsl.Cached()
8:
com.oracle.truffle.api.dsl.Bind(value = "location.type.kind.foreignToLLVMType")
9:
com.oracle.truffle.api.dsl.Bind(value = "accessType.getSizeInBytes()")
MethodParameters:
Name Flags
identifier
location
accessType
interop
toLLVM
fromLongToLLVM
exception
outOfBounds
locationType
accessTypeSizeInBytes
static boolean isLocationTypeNullOrSameSize(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation, com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
ifnull 1
aload 0
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value.kind:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$ValueKind;
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$ValueKind.foreignToLLVMType:Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType.getSizeInBytes:()I
aload 1
invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType.getSizeInBytes:()I
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 location Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
0 2 1 accessType Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
MethodParameters:
Name Flags
location
accessType
java.lang.Object fallback(java.lang.Object, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation, com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=8, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode.$assertionsDisabled:Z
ifne 1
aload 2
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException
dup
aload 0
ldc "Cannot read %d byte(s) from foreign object of element size %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType.getSizeInBytes:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
2: aload 2
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Value;
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value.kind:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$ValueKind;
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$ValueKind.foreignToLLVMType:Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
invokevirtual com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType.getSizeInBytes:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
3: aastore
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMPolyglotException.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;[Ljava/lang/Object;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropReadNode$ReadLocationNode;
0 4 1 identifier Ljava/lang/Object;
0 4 2 location Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
0 4 3 accessType Lcom/oracle/truffle/llvm/runtime/interop/convert/ForeignToLLVM$ForeignToLLVMType;
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.Fallback()
MethodParameters:
Name Flags
identifier
location
accessType
}
SourceFile: "LLVMInteropReadNode.java"
NestHost: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode
InnerClasses:
protected AccessLocation = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode
abstract ReadLocationNode = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReadLocationNode of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode
abstract ReinterpretLongAsLLVM = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode$ReinterpretLongAsLLVM of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropReadNode
public final Value = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
public final ValueKind = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$ValueKind of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
public final ForeignToLLVMType = com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM$ForeignToLLVMType of com.oracle.truffle.llvm.runtime.interop.convert.ForeignToLLVM
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.GenerateUncached()