public final class com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction
super_class: java.lang.Object
{
private final com.oracle.truffle.llvm.runtime.LLVMFunction mainFunction;
descriptor: Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.api.CallTarget mainCallTarget;
descriptor: Lcom/oracle/truffle/api/CallTarget;
flags: (0x0002) ACC_PRIVATE
public void <init>(com.oracle.truffle.llvm.runtime.LLVMFunction);
descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMFunction;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction this
start local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction mainFunction
0: .line 88
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 89
aload 0 /* this */
aload 1 /* mainFunction */
putfield com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction.mainFunction:Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
2: .line 90
return
end local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction mainFunction
end local 0 // com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/llvm/runtime/SulongLibrary$CachedMainFunction;
0 3 1 mainFunction Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
MethodParameters:
Name Flags
mainFunction
public com.oracle.truffle.api.CallTarget getMainCallTarget();
descriptor: ()Lcom/oracle/truffle/api/CallTarget;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction this
0: .line 93
aload 0 /* this */
getfield com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction.mainCallTarget:Lcom/oracle/truffle/api/CallTarget;
ifnonnull 2
1: .line 94
aload 0 /* this */
aload 0 /* this */
invokevirtual com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction.createCallTarget:()Lcom/oracle/truffle/api/CallTarget;
putfield com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction.mainCallTarget:Lcom/oracle/truffle/api/CallTarget;
2: .line 96
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction.mainCallTarget:Lcom/oracle/truffle/api/CallTarget;
areturn
end local 0 // com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/llvm/runtime/SulongLibrary$CachedMainFunction;
private com.oracle.truffle.api.CallTarget createCallTarget();
descriptor: ()Lcom/oracle/truffle/api/CallTarget;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=1
start local 0 // com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction this
0: .line 101
invokestatic com.oracle.truffle.llvm.runtime.LLVMLanguage.getLanguage:()Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
astore 1 /* language */
start local 1 // com.oracle.truffle.llvm.runtime.LLVMLanguage language
1: .line 102
aload 1 /* language */
invokevirtual com.oracle.truffle.llvm.runtime.LLVMLanguage.getStartFunctionCode:()Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionCode.getLLVMIRFunctionSlowPath:()Lcom/oracle/truffle/api/RootCallTarget;
astore 2 /* startCallTarget */
start local 2 // com.oracle.truffle.api.RootCallTarget startCallTarget
2: .line 103
aload 0 /* this */
getfield com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction.mainFunction:Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunction.getStringPath:()Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 3 /* applicationPath */
start local 3 // java.nio.file.Path applicationPath
3: .line 104
new com.oracle.truffle.llvm.runtime.nodes.func.LLVMGlobalRootNode
dup
aload 1 /* language */
new com.oracle.truffle.api.frame.FrameDescriptor
dup
invokespecial com.oracle.truffle.api.frame.FrameDescriptor.<init>:()V
aload 0 /* this */
getfield com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction.mainFunction:Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
aload 2 /* startCallTarget */
aload 3 /* applicationPath */
ldc ""
invokestatic java.util.Objects.toString:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
invokespecial com.oracle.truffle.llvm.runtime.nodes.func.LLVMGlobalRootNode.<init>:(Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/api/CallTarget;Ljava/lang/String;)V
astore 4 /* rootNode */
start local 4 // com.oracle.truffle.api.nodes.RootNode rootNode
4: .line 105
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
aload 4 /* rootNode */
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
areturn
end local 4 // com.oracle.truffle.api.nodes.RootNode rootNode
end local 3 // java.nio.file.Path applicationPath
end local 2 // com.oracle.truffle.api.RootCallTarget startCallTarget
end local 1 // com.oracle.truffle.llvm.runtime.LLVMLanguage language
end local 0 // com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/llvm/runtime/SulongLibrary$CachedMainFunction;
1 5 1 language Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
2 5 2 startCallTarget Lcom/oracle/truffle/api/RootCallTarget;
3 5 3 applicationPath Ljava/nio/file/Path;
4 5 4 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
}
SourceFile: "SulongLibrary.java"
NestHost: com.oracle.truffle.llvm.runtime.SulongLibrary
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final CachedMainFunction = com.oracle.truffle.llvm.runtime.SulongLibrary$CachedMainFunction of com.oracle.truffle.llvm.runtime.SulongLibrary