abstract class com.oracle.truffle.nfi.BindSignatureNode extends com.oracle.truffle.api.nodes.Node
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.nfi.BindSignatureNode
super_class: com.oracle.truffle.api.nodes.Node
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/nfi/BindSignatureNode;
abstract java.lang.Object execute(com.oracle.truffle.nfi.NFISymbol, java.lang.Object);
descriptor: (Lcom/oracle/truffle/nfi/NFISymbol;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.UnsupportedTypeException
MethodParameters:
Name Flags
symbol
signature
static java.lang.String asString(com.oracle.truffle.api.interop.InteropLibrary, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
1: areturn
2: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
pop
3: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
4: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.interop.UnsupportedTypeException.create:([Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 5 1 signature Ljava/lang/Object;
Exception table:
from to target type
0 1 2 Class com.oracle.truffle.api.interop.UnsupportedMessageException
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException
MethodParameters:
Name Flags
interop
signature
static com.oracle.truffle.api.source.Source createSignatureSource(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/Source;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
invokestatic com.oracle.truffle.nfi.BindSignatureNode.asString:(Lcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 1: ldc "nfi"
ldc "with %s %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
ldc "bind"
invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 backend Ljava/lang/String;
0 2 1 signature Ljava/lang/Object;
1 2 2 sigString Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
backend
signature
static com.oracle.truffle.nfi.NFISignature parseSignature(java.lang.String, , com.oracle.truffle.api.TruffleLanguage$ContextReference<com.oracle.truffle.nfi.NFIContext>);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;)Lcom/oracle/truffle/nfi/NFISignature;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic com.oracle.truffle.nfi.BindSignatureNode.createSignatureSource:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/Source;
astore 3
start local 3 1: aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.nfi.NFIContext
getfield com.oracle.truffle.nfi.NFIContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 3
iconst_0
anewarray java.lang.String
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.parseInternal:(Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
astore 4
start local 4 2: aload 4
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.nfi.NFISignature
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 backend Ljava/lang/String;
0 3 1 signature Ljava/lang/Object;
0 3 2 ctxRef Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/nfi/NFIContext;>;
1 3 3 source Lcom/oracle/truffle/api/source/Source;
2 3 4 ct Lcom/oracle/truffle/api/CallTarget;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException
Signature: (Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/nfi/NFIContext;>;)Lcom/oracle/truffle/nfi/NFISignature;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
backend
signature
ctxRef
static doCachedSignature(com.oracle.truffle.nfi.NFISymbol, , java.lang.String, , com.oracle.truffle.api.TruffleLanguage$ContextReference<com.oracle.truffle.nfi.NFIContext>, com.oracle.truffle.nfi.NFISignature);
descriptor: (Lcom/oracle/truffle/nfi/NFISymbol;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;Lcom/oracle/truffle/nfi/NFISignature;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.truffle.nfi.NFISymbol.backend:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.nfi.NFISymbol.nativeSymbol:Ljava/lang/Object;
aload 5
invokestatic com.oracle.truffle.nfi.NFISymbol.createBound:(Ljava/lang/String;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 1 0 symbol Lcom/oracle/truffle/nfi/NFISymbol;
0 1 1 signature Ljava/lang/Object;
0 1 2 cachedBackend Ljava/lang/String;
0 1 3 cachedSignature Ljava/lang/Object;
0 1 4 ctxRef Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/nfi/NFIContext;>;
0 1 5 parsedSignature Lcom/oracle/truffle/nfi/NFISignature;
Signature: (Lcom/oracle/truffle/nfi/NFISymbol;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/nfi/NFIContext;>;Lcom/oracle/truffle/nfi/NFISignature;)Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(limit = "5", guards = {"symbol.backend == cachedBackend", "signature == cachedSignature"}, assumptions = {"getSingleContextAssumption()"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached(value = "symbol.backend")
3:
com.oracle.truffle.api.dsl.Cached(value = "signature")
4:
com.oracle.truffle.api.dsl.CachedContext(value = Lcom/oracle/truffle/nfi/NFILanguage;)
5:
com.oracle.truffle.api.dsl.Cached(value = "parseSignature(cachedBackend, cachedSignature, ctxRef)")
MethodParameters:
Name Flags
symbol
signature
cachedBackend
cachedSignature
ctxRef
parsedSignature
static java.lang.Object doCachedSignatureString(com.oracle.truffle.nfi.NFISymbol, java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary, java.lang.String, com.oracle.truffle.api.source.Source, com.oracle.truffle.nfi.NFIContext, com.oracle.truffle.api.nodes.IndirectCallNode);
descriptor: (Lcom/oracle/truffle/nfi/NFISymbol;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/String;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/nfi/NFIContext;Lcom/oracle/truffle/api/nodes/IndirectCallNode;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=5, 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: aload 5
getfield com.oracle.truffle.nfi.NFIContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 4
iconst_0
anewarray java.lang.String
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.parseInternal:(Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
astore 7
start local 7 1: aload 0
getfield com.oracle.truffle.nfi.NFISymbol.backend:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.nfi.NFISymbol.nativeSymbol:Ljava/lang/Object;
aload 6
aload 7
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.nodes.IndirectCallNode.call:(Lcom/oracle/truffle/api/CallTarget;[Ljava/lang/Object;)Ljava/lang/Object;
invokestatic com.oracle.truffle.nfi.NFISymbol.createBound:(Ljava/lang/String;Ljava/lang/Object;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 2 0 symbol Lcom/oracle/truffle/nfi/NFISymbol;
0 2 1 signature Ljava/lang/Object;
0 2 2 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 2 3 cachedSignature Ljava/lang/String;
0 2 4 signatureSource Lcom/oracle/truffle/api/source/Source;
0 2 5 ctx Lcom/oracle/truffle/nfi/NFIContext;
0 2 6 call Lcom/oracle/truffle/api/nodes/IndirectCallNode;
1 2 7 parsedSignature Lcom/oracle/truffle/api/CallTarget;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(limit = "5", guards = {"cachedSignature.equals(asString(interop, signature))"}, replaces = {"doCachedSignature"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.library.CachedLibrary(value = "signature")
3:
com.oracle.truffle.api.dsl.Cached(value = "asString(interop, signature)")
4:
com.oracle.truffle.api.dsl.Cached(value = "createSignatureSource(symbol.backend, cachedSignature)")
5:
com.oracle.truffle.api.dsl.CachedContext(value = Lcom/oracle/truffle/nfi/NFILanguage;)
6:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
symbol
signature
interop
cachedSignature
signatureSource
ctx
call
static doGeneric(com.oracle.truffle.nfi.NFISymbol, , com.oracle.truffle.api.TruffleLanguage$ContextReference<com.oracle.truffle.nfi.NFIContext>);
descriptor: (Lcom/oracle/truffle/nfi/NFISymbol;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.nfi.NFISymbol.backend:Ljava/lang/String;
aload 0
getfield com.oracle.truffle.nfi.NFISymbol.nativeSymbol:Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.nfi.NFISymbol.backend:Ljava/lang/String;
aload 1
aload 2
invokestatic com.oracle.truffle.nfi.BindSignatureNode.parseSignature:(Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;)Lcom/oracle/truffle/nfi/NFISignature;
invokestatic com.oracle.truffle.nfi.NFISymbol.createBound:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 symbol Lcom/oracle/truffle/nfi/NFISymbol;
0 1 1 signature Ljava/lang/Object;
0 1 2 ctxRef Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/nfi/NFIContext;>;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException
Signature: (Lcom/oracle/truffle/nfi/NFISymbol;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/nfi/NFIContext;>;)Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doCachedSignature", "doCachedSignatureString"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.CachedContext(value = Lcom/oracle/truffle/nfi/NFILanguage;)
MethodParameters:
Name Flags
symbol
signature
ctxRef
}
SourceFile: "BindSignatureNode.java"
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.GenerateUncached()
com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/nfi/NFILanguage;})