abstract class com.oracle.truffle.nfi.CallSignatureNode$CachedCallSignatureNode 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$CachedCallSignatureNode
super_class: com.oracle.truffle.nfi.CallSignatureNode
{
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$CachedCallSignatureNode.$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.nfi.CallSignatureNode.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/nfi/CallSignatureNode$CachedCallSignatureNode;
java.lang.Object doOptimizedDirect(com.oracle.truffle.nfi.NFISignature, java.lang.Object, java.lang.Object[], com.oracle.truffle.nfi.NFISignature$SignatureCachedState, com.oracle.truffle.nfi.CallSignatureNode);
descriptor: (Lcom/oracle/truffle/nfi/NFISignature;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/nfi/NFISignature$SignatureCachedState;Lcom/oracle/truffle/nfi/CallSignatureNode;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic com.oracle.truffle.nfi.CallSignatureNode$CachedCallSignatureNode.$assertionsDisabled:Z
ifne 1
aload 4
aload 1
getfield com.oracle.truffle.nfi.NFISignature.cachedState:Lcom/oracle/truffle/nfi/NFISignature$SignatureCachedState;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 5
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.nfi.CallSignatureNode.execute:(Lcom/oracle/truffle/nfi/NFISignature;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
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 2 0 this Lcom/oracle/truffle/nfi/CallSignatureNode$CachedCallSignatureNode;
0 2 1 signature Lcom/oracle/truffle/nfi/NFISignature;
0 2 2 function Ljava/lang/Object;
0 2 3 args [Ljava/lang/Object;
0 2 4 cachedState Lcom/oracle/truffle/nfi/NFISignature$SignatureCachedState;
0 2 5 call Lcom/oracle/truffle/nfi/CallSignatureNode;
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(guards = {"cachedState != null", "signature.cachedState == cachedState"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "signature.cachedState")
4:
com.oracle.truffle.api.dsl.Cached(value = "cachedState.createOptimizedSignatureCall()")
MethodParameters:
Name Flags
signature
function
args
cachedState
call
java.lang.Object doOptimizedIndirect(com.oracle.truffle.nfi.NFISignature, java.lang.Object, java.lang.Object[], com.oracle.truffle.api.nodes.IndirectCallNode);
descriptor: (Lcom/oracle/truffle/nfi/NFISignature;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/IndirectCallNode;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
aload 1
getfield com.oracle.truffle.nfi.NFISignature.cachedState:Lcom/oracle/truffle/nfi/NFISignature$SignatureCachedState;
invokevirtual com.oracle.truffle.nfi.NFISignature$SignatureCachedState.getPolymorphicSignatureCall:()Lcom/oracle/truffle/api/CallTarget;
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
invokevirtual com.oracle.truffle.api.nodes.IndirectCallNode.call:(Lcom/oracle/truffle/api/CallTarget;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 4 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/nfi/CallSignatureNode$CachedCallSignatureNode;
0 1 1 signature Lcom/oracle/truffle/nfi/NFISignature;
0 1 2 function Ljava/lang/Object;
0 1 3 args [Ljava/lang/Object;
0 1 4 call Lcom/oracle/truffle/api/nodes/IndirectCallNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doOptimizedDirect"}, guards = {"signature.cachedState != null"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
signature
function
args
call
java.lang.Object doSlowPath(com.oracle.truffle.nfi.NFISignature, java.lang.Object, java.lang.Object[], com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.nfi.ConvertTypeNode$ConvertToNativeNode, com.oracle.truffle.nfi.ConvertTypeNode$ConvertFromNativeNode, com.oracle.truffle.nfi.spi.NFIBackendSignatureLibrary);
descriptor: (Lcom/oracle/truffle/nfi/NFISignature;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/nfi/ConvertTypeNode$ConvertToNativeNode;Lcom/oracle/truffle/nfi/ConvertTypeNode$ConvertFromNativeNode;Lcom/oracle/truffle/nfi/spi/NFIBackendSignatureLibrary;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=12, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 3
arraylength
aload 1
getfield com.oracle.truffle.nfi.NFISignature.managedArgCount:I
if_icmpeq 3
1: aload 4
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
2: aload 1
getfield com.oracle.truffle.nfi.NFISignature.managedArgCount:I
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 1
getfield com.oracle.truffle.nfi.NFISignature.nativeArgCount:I
anewarray java.lang.Object
astore 8
start local 8 4: iconst_0
istore 9
start local 9 5: iconst_0
istore 10
start local 10 6: goto 12
7: StackMap locals: java.lang.Object[] int int
StackMap stack:
aconst_null
astore 11
start local 11 8: aload 1
getfield com.oracle.truffle.nfi.NFISignature.argTypes:[Lcom/oracle/truffle/nfi/NFIType;
iload 10
aaload
getfield com.oracle.truffle.nfi.NFIType.cachedState:Lcom/oracle/truffle/nfi/NFIType$TypeCachedState;
getfield com.oracle.truffle.nfi.NFIType$TypeCachedState.managedArgCount:I
iconst_1
if_icmpne 10
9: aload 3
iload 9
iinc 9 1
aaload
astore 11
10: StackMap locals: java.lang.Object
StackMap stack:
aload 8
iload 10
aload 5
aload 1
getfield com.oracle.truffle.nfi.NFISignature.argTypes:[Lcom/oracle/truffle/nfi/NFIType;
iload 10
aaload
aload 11
invokevirtual com.oracle.truffle.nfi.ConvertTypeNode$ConvertToNativeNode.execute:(Lcom/oracle/truffle/nfi/NFIType;Ljava/lang/Object;)Ljava/lang/Object;
aastore
end local 11 11: iinc 10 1
StackMap locals:
StackMap stack:
12: iload 10
aload 8
arraylength
if_icmplt 7
end local 10 13: aload 7
aload 1
getfield com.oracle.truffle.nfi.NFISignature.nativeSignature:Ljava/lang/Object;
aload 2
aload 8
invokevirtual com.oracle.truffle.nfi.spi.NFIBackendSignatureLibrary.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 10
start local 10 14: aload 6
aload 1
getfield com.oracle.truffle.nfi.NFISignature.retType:Lcom/oracle/truffle/nfi/NFIType;
aload 10
invokevirtual com.oracle.truffle.nfi.ConvertTypeNode$ConvertFromNativeNode.execute:(Lcom/oracle/truffle/nfi/NFIType;Ljava/lang/Object;)Ljava/lang/Object;
areturn
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 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/nfi/CallSignatureNode$CachedCallSignatureNode;
0 15 1 signature Lcom/oracle/truffle/nfi/NFISignature;
0 15 2 function Ljava/lang/Object;
0 15 3 args [Ljava/lang/Object;
0 15 4 exception Lcom/oracle/truffle/api/profiles/BranchProfile;
0 15 5 convertArg Lcom/oracle/truffle/nfi/ConvertTypeNode$ConvertToNativeNode;
0 15 6 convertRet Lcom/oracle/truffle/nfi/ConvertTypeNode$ConvertFromNativeNode;
0 15 7 nativeLibrary Lcom/oracle/truffle/nfi/spi/NFIBackendSignatureLibrary;
4 15 8 preparedArgs [Ljava/lang/Object;
5 15 9 argIdx I
6 13 10 i I
8 11 11 input Ljava/lang/Object;
14 15 10 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 = "3", guards = {"signature.cachedState == null"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached()
5:
com.oracle.truffle.api.dsl.Cached()
6:
com.oracle.truffle.api.library.CachedLibrary(value = "signature.nativeSignature")
MethodParameters:
Name Flags
signature
function
args
exception
convertArg
convertRet
nativeLibrary
}
SourceFile: "CallSignatureNode.java"
NestHost: com.oracle.truffle.nfi.CallSignatureNode
InnerClasses:
abstract CachedCallSignatureNode = com.oracle.truffle.nfi.CallSignatureNode$CachedCallSignatureNode of com.oracle.truffle.nfi.CallSignatureNode
abstract ConvertFromNativeNode = com.oracle.truffle.nfi.ConvertTypeNode$ConvertFromNativeNode of com.oracle.truffle.nfi.ConvertTypeNode
abstract ConvertToNativeNode = com.oracle.truffle.nfi.ConvertTypeNode$ConvertToNativeNode of com.oracle.truffle.nfi.ConvertTypeNode
final SignatureCachedState = com.oracle.truffle.nfi.NFISignature$SignatureCachedState of com.oracle.truffle.nfi.NFISignature
abstract TypeCachedState = com.oracle.truffle.nfi.NFIType$TypeCachedState of com.oracle.truffle.nfi.NFIType
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.GenerateUncached()