abstract class com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode 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.LLVMInteropAccessNode
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 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/LLVMInteropAccessNode;
protected abstract com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation execute(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Structured, java.lang.Object, long);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Structured;Ljava/lang/Object;J)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
type
foreign
offset
public static com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode create();
descriptor: ()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tLLVMInteropAccessNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation doArray(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array, java.lang.Object, long, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Array;Ljava/lang/Object;JLcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$MakeAccessLocation;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
flags: (0x0000)
Code:
stack=6, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: lload 3
aload 1
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array.elementSize:J
invokestatic java.lang.Long.divideUnsigned:(JJ)J
lstore 6
start local 6 1: lload 3
aload 1
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array.elementSize:J
invokestatic java.lang.Long.remainderUnsigned:(JJ)J
lstore 8
start local 8 2: aload 5
aload 2
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 1
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array.elementType:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
lload 8
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation.execute:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;J)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
areturn
end local 8 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode;
0 3 1 type Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Array;
0 3 2 foreign Ljava/lang/Object;
0 3 3 offset J
0 3 5 makeAccessLocation Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$MakeAccessLocation;
1 3 6 index J
2 3 8 restOffset J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
type
foreign
offset
makeAccessLocation
com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation doStructMember(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct, java.lang.Object, long, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;Ljava/lang/Object;JLcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$MakeAccessLocation;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
flags: (0x0000)
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 6
aload 2
aload 5
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.name:Ljava/lang/String;
aload 5
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
lload 3
aload 5
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.startOffset:J
lsub
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation.execute:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;J)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
areturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode;
0 1 1 type Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
0 1 2 foreign Ljava/lang/Object;
0 1 3 offset J
0 1 5 cachedMember Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
0 1 6 makeAccessLocation Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$MakeAccessLocation;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"checkMember(type, cachedMember, offset)"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "findMember(type, offset)")
4:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
type
foreign
offset
cachedMember
makeAccessLocation
com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation doStruct(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct, java.lang.Object, long, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;Ljava/lang/Object;JLcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$MakeAccessLocation;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
flags: (0x0000)
Code:
stack=8, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 1
lload 3
invokestatic com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode.findMember:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;J)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
astore 6
start local 6 1: aload 5
aload 2
aload 6
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.name:Ljava/lang/String;
aload 6
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.type:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
lload 3
aload 6
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.startOffset:J
lsub
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation.execute:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;J)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$AccessLocation;
areturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode;
0 2 1 type Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
0 2 2 foreign Ljava/lang/Object;
0 2 3 offset J
0 2 5 makeAccessLocation Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropAccessNode$MakeAccessLocation;
1 2 6 member Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doStructMember"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
type
foreign
offset
makeAccessLocation
static boolean checkMember(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember, long);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;J)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.struct:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
if_acmpne 1
aload 1
lload 2
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.contains:(J)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 struct Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
0 2 1 member Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
0 2 2 offset J
MethodParameters:
Name Flags
struct
member
offset
static com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember findMember(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct, long);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;J)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct.members:[Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Struct long top int int com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 3
lload 1
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$StructMember.contains:(J)Z
ifeq 4
3: aload 3
areturn
end local 3 4: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 1
6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
7: new java.lang.IllegalStateException
dup
ldc "invalid struct access"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 struct Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Struct;
0 8 1 offset J
2 4 3 m Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$StructMember;
MethodParameters:
Name Flags
struct
offset
}
SourceFile: "LLVMInteropAccessNode.java"
NestMembers:
com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation
InnerClasses:
protected AccessLocation = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$AccessLocation of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode
abstract MakeAccessLocation = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode$MakeAccessLocation of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropAccessNode
public final Array = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Array 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 abstract Structured = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Structured of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.GenerateUncached()