abstract class com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode extends com.oracle.truffle.nfi.CallSignatureNode
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode
super_class: com.oracle.truffle.nfi.CallSignatureNode
{
com.oracle.truffle.nfi.ConvertTypeNode$OptimizedConvertTypeNode convertRet;
descriptor: Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
final com.oracle.truffle.nfi.ConvertTypeNode$OptimizedConvertTypeNode[] convertArgs;
descriptor: [Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
flags: (0x0010) ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Children()
final int managedArgCount;
descriptor: I
flags: (0x0010) ACC_FINAL
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/nfi/CallSignatureNode;
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.nfi.CallSignatureNode$OptimizedCallClosureNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.nfi.NFIType$TypeCachedState, com.oracle.truffle.nfi.NFISignature$ArgsCachedState);
descriptor: (Lcom/oracle/truffle/nfi/NFIType$TypeCachedState;Lcom/oracle/truffle/nfi/NFISignature$ArgsCachedState;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.oracle.truffle.nfi.CallSignatureNode.<init>:()V
1: aload 0
aload 1
invokestatic com.oracle.truffle.nfi.ConvertTypeNode.createOptimizedToNative:(Lcom/oracle/truffle/nfi/NFIType$TypeCachedState;)Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
putfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertRet:Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
2: aload 0
aload 2
getfield com.oracle.truffle.nfi.NFISignature$ArgsCachedState.nativeArgCount:I
anewarray com.oracle.truffle.nfi.ConvertTypeNode$OptimizedConvertTypeNode
putfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertArgs:[Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
3: aload 0
aload 2
getfield com.oracle.truffle.nfi.NFISignature$ArgsCachedState.managedArgCount:I
putfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.managedArgCount:I
4: aload 2
astore 3
start local 3 5: aload 2
getfield com.oracle.truffle.nfi.NFISignature$ArgsCachedState.nativeArgCount:I
iconst_1
isub
istore 4
start local 4 6: goto 10
7: StackMap locals: com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode com.oracle.truffle.nfi.NFIType$TypeCachedState com.oracle.truffle.nfi.NFISignature$ArgsCachedState com.oracle.truffle.nfi.NFISignature$ArgsCachedState int
StackMap stack:
aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertArgs:[Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
iload 4
aload 3
getfield com.oracle.truffle.nfi.NFISignature$ArgsCachedState.argType:Lcom/oracle/truffle/nfi/NFIType$TypeCachedState;
invokestatic com.oracle.truffle.nfi.ConvertTypeNode.createOptimizedFromNative:(Lcom/oracle/truffle/nfi/NFIType$TypeCachedState;)Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
aastore
8: aload 3
getfield com.oracle.truffle.nfi.NFISignature$ArgsCachedState.prev:Lcom/oracle/truffle/nfi/NFISignature$ArgsCachedState;
astore 3
9: iinc 4 -1
StackMap locals:
StackMap stack:
10: iload 4
ifge 7
end local 4 11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/nfi/CallSignatureNode$OptimizedCallClosureNode;
0 12 1 retType Lcom/oracle/truffle/nfi/NFIType$TypeCachedState;
0 12 2 argsState Lcom/oracle/truffle/nfi/NFISignature$ArgsCachedState;
5 12 3 cur Lcom/oracle/truffle/nfi/NFISignature$ArgsCachedState;
6 11 4 i I
MethodParameters:
Name Flags
retType
argsState
java.lang.Object[] prepareArgs(com.oracle.truffle.nfi.NFISignature, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/nfi/NFISignature;[Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.managedArgCount:I
anewarray java.lang.Object
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 7
4: StackMap locals: java.lang.Object[] int int
StackMap stack:
aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertArgs:[Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
iload 5
aaload
getfield com.oracle.truffle.nfi.ConvertTypeNode$OptimizedConvertTypeNode.typeState:Lcom/oracle/truffle/nfi/NFIType$TypeCachedState;
getfield com.oracle.truffle.nfi.NFIType$TypeCachedState.managedArgCount:I
iconst_1
if_icmpne 6
5: aload 3
iload 4
iinc 4 1
aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertArgs:[Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
iload 5
aaload
aload 1
getfield com.oracle.truffle.nfi.NFISignature.argTypes:[Lcom/oracle/truffle/nfi/NFIType;
iload 5
aaload
aload 2
iload 5
aaload
invokevirtual com.oracle.truffle.nfi.ConvertTypeNode$OptimizedConvertTypeNode.execute:(Lcom/oracle/truffle/nfi/NFIType;Ljava/lang/Object;)Ljava/lang/Object;
aastore
6: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertArgs:[Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
arraylength
if_icmplt 4
end local 5 8: getstatic com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.$assertionsDisabled:Z
ifne 9
iload 4
aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.managedArgCount:I
if_icmpeq 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 3
areturn
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/nfi/CallSignatureNode$OptimizedCallClosureNode;
0 10 1 signature Lcom/oracle/truffle/nfi/NFISignature;
0 10 2 args [Ljava/lang/Object;
1 10 3 preparedArgs [Ljava/lang/Object;
2 10 4 argIdx I
3 8 5 i I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
signature
args
java.lang.Object doCall(com.oracle.truffle.nfi.NFISignature, java.lang.Object, java.lang.Object[], com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Lcom/oracle/truffle/nfi/NFISignature;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
arraylength
aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertArgs:[Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
arraylength
if_icmpeq 3
1: aload 4
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
2: aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertArgs:[Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
arraylength
aload 3
arraylength
invokestatic com.oracle.truffle.api.interop.ArityException.create:(II)Lcom/oracle/truffle/api/interop/ArityException;
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.prepareArgs:(Lcom/oracle/truffle/nfi/NFISignature;[Ljava/lang/Object;)[Ljava/lang/Object;
astore 6
start local 6 4: aload 5
aload 2
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 5: aload 0
getfield com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode.convertRet:Lcom/oracle/truffle/nfi/ConvertTypeNode$OptimizedConvertTypeNode;
aload 1
getfield com.oracle.truffle.nfi.NFISignature.retType:Lcom/oracle/truffle/nfi/NFIType;
aload 7
invokevirtual com.oracle.truffle.nfi.ConvertTypeNode$OptimizedConvertTypeNode.execute:(Lcom/oracle/truffle/nfi/NFIType;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 7 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 6 0 this Lcom/oracle/truffle/nfi/CallSignatureNode$OptimizedCallClosureNode;
0 6 1 signature Lcom/oracle/truffle/nfi/NFISignature;
0 6 2 function Ljava/lang/Object;
0 6 3 args [Ljava/lang/Object;
0 6 4 exception Lcom/oracle/truffle/api/profiles/BranchProfile;
0 6 5 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
4 6 6 preparedArgs [Ljava/lang/Object;
5 6 7 ret Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException, com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.library.CachedLibrary(value = "function")
MethodParameters:
Name Flags
signature
function
args
exception
interop
}
SourceFile: "CallSignatureNode.java"
NestHost: com.oracle.truffle.nfi.CallSignatureNode
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
abstract OptimizedCallClosureNode = com.oracle.truffle.nfi.CallSignatureNode$OptimizedCallClosureNode of com.oracle.truffle.nfi.CallSignatureNode
OptimizedConvertTypeNode = com.oracle.truffle.nfi.ConvertTypeNode$OptimizedConvertTypeNode of com.oracle.truffle.nfi.ConvertTypeNode
final ArgsCachedState = com.oracle.truffle.nfi.NFISignature$ArgsCachedState of com.oracle.truffle.nfi.NFISignature
abstract TypeCachedState = com.oracle.truffle.nfi.NFIType$TypeCachedState of com.oracle.truffle.nfi.NFIType