public final class com.oracle.truffle.sl.runtime.SLFunction implements com.oracle.truffle.api.interop.TruffleObject
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.sl.runtime.SLFunction
super_class: java.lang.Object
{
public static final int INLINE_CACHE_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final com.oracle.truffle.api.TruffleLogger LOG;
descriptor: Lcom/oracle/truffle/api/TruffleLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.api.RootCallTarget callTarget;
descriptor: Lcom/oracle/truffle/api/RootCallTarget;
flags: (0x0002) ACC_PRIVATE
private final com.oracle.truffle.api.utilities.CyclicAssumption callTargetStable;
descriptor: Lcom/oracle/truffle/api/utilities/CyclicAssumption;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "sl"
ldc Lcom/oracle/truffle/sl/runtime/SLFunction;
invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
putstatic com.oracle.truffle.sl.runtime.SLFunction.LOG:Lcom/oracle/truffle/api/TruffleLogger;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.oracle.truffle.sl.SLLanguage, java.lang.String);
descriptor: (Lcom/oracle/truffle/sl/SLLanguage;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.sl.SLLanguage.getOrCreateUndefinedFunction:(Ljava/lang/String;)Lcom/oracle/truffle/api/RootCallTarget;
invokespecial com.oracle.truffle.sl.runtime.SLFunction.<init>:(Lcom/oracle/truffle/api/RootCallTarget;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
0 2 1 language Lcom/oracle/truffle/sl/SLLanguage;
0 2 2 name Ljava/lang/String;
MethodParameters:
Name Flags
language
name
protected void <init>(com.oracle.truffle.api.RootCallTarget);
descriptor: (Lcom/oracle/truffle/api/RootCallTarget;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
putfield com.oracle.truffle.sl.runtime.SLFunction.name:Ljava/lang/String;
2: aload 0
new com.oracle.truffle.api.utilities.CyclicAssumption
dup
aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.name:Ljava/lang/String;
invokespecial com.oracle.truffle.api.utilities.CyclicAssumption.<init>:(Ljava/lang/String;)V
putfield com.oracle.truffle.sl.runtime.SLFunction.callTargetStable:Lcom/oracle/truffle/api/utilities/CyclicAssumption;
3: aload 0
aload 1
invokevirtual com.oracle.truffle.sl.runtime.SLFunction.setCallTarget:(Lcom/oracle/truffle/api/RootCallTarget;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
0 5 1 callTarget Lcom/oracle/truffle/api/RootCallTarget;
MethodParameters:
Name Flags
callTarget
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
protected void setCallTarget(com.oracle.truffle.api.RootCallTarget);
descriptor: (Lcom/oracle/truffle/api/RootCallTarget;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.callTarget:Lcom/oracle/truffle/api/RootCallTarget;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: aload 0
aload 1
putfield com.oracle.truffle.sl.runtime.SLFunction.callTarget:Lcom/oracle/truffle/api/RootCallTarget;
4: getstatic com.oracle.truffle.sl.runtime.SLFunction.LOG:Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Installed call target for: {0}"
aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.name:Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
5: iload 2
ifne 7
6: aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.callTargetStable:Lcom/oracle/truffle/api/utilities/CyclicAssumption;
invokevirtual com.oracle.truffle.api.utilities.CyclicAssumption.invalidate:()V
7: StackMap locals: int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
0 8 1 callTarget Lcom/oracle/truffle/api/RootCallTarget;
3 8 2 wasNull Z
MethodParameters:
Name Flags
callTarget
public com.oracle.truffle.api.RootCallTarget getCallTarget();
descriptor: ()Lcom/oracle/truffle/api/RootCallTarget;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.callTarget:Lcom/oracle/truffle/api/RootCallTarget;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
public com.oracle.truffle.api.Assumption getCallTargetStable();
descriptor: ()Lcom/oracle/truffle/api/Assumption;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.callTargetStable:Lcom/oracle/truffle/api/utilities/CyclicAssumption;
invokevirtual com.oracle.truffle.api.utilities.CyclicAssumption.getAssumption:()Lcom/oracle/truffle/api/Assumption;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
boolean hasLanguage();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> getLanguage();
descriptor: ()Ljava/lang/Class;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc Lcom/oracle/truffle/sl/SLLanguage;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
com.oracle.truffle.api.source.SourceSection getSourceLocation();
descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.sl.runtime.SLFunction.getCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
boolean hasSourceLocation();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
boolean isExecutable();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
boolean hasMetaObject();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
java.lang.Object getMetaObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.sl.runtime.SLType.FUNCTION:Lcom/oracle/truffle/sl/runtime/SLType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
static int identityHashCode(com.oracle.truffle.sl.runtime.SLFunction);
descriptor: (Lcom/oracle/truffle/sl/runtime/SLFunction;)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 receiver Lcom/oracle/truffle/sl/runtime/SLFunction;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
receiver
java.lang.Object toDisplayString(boolean);
descriptor: (Z)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.sl.runtime.SLFunction.name:Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/runtime/SLFunction;
0 1 1 allowSideEffects Z
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
MethodParameters:
Name Flags
allowSideEffects
}
SourceFile: "SLFunction.java"
NestMembers:
com.oracle.truffle.sl.runtime.SLFunction$Execute com.oracle.truffle.sl.runtime.SLFunction$IsIdenticalOrUndefined
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
abstract Execute = com.oracle.truffle.sl.runtime.SLFunction$Execute of com.oracle.truffle.sl.runtime.SLFunction
final IsIdenticalOrUndefined = com.oracle.truffle.sl.runtime.SLFunction$IsIdenticalOrUndefined of com.oracle.truffle.sl.runtime.SLFunction
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;)