public class com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode extends com.oracle.truffle.llvm.runtime.interop.LLVMForeignCallNode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode
super_class: com.oracle.truffle.llvm.runtime.interop.LLVMForeignCallNode
{
protected void <init>(com.oracle.truffle.llvm.runtime.LLVMLanguage, com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType, com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceFunctionType);
descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 4
aload 3
invokestatic com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode.getReturnBaseType:(Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Structured;
aload 2
invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor.getLLVMFunction:()Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunction.getType:()Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
invokevirtual com.oracle.truffle.llvm.runtime.types.FunctionType.getReturnType:()Lcom/oracle/truffle/llvm/runtime/types/Type;
invokespecial com.oracle.truffle.llvm.runtime.interop.LLVMForeignCallNode.<init>:(Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Structured;Lcom/oracle/truffle/llvm/runtime/types/Type;)V
1: return
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/llvm/runtime/interop/LLVMForeignFunctionCallNode;
0 2 1 language Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
0 2 2 function Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;
0 2 3 interopType Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
0 2 4 sourceType Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;
MethodParameters:
Name Flags
language
function
interopType
sourceType
public static com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode create(com.oracle.truffle.llvm.runtime.LLVMLanguage, com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor, com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType, com.oracle.truffle.llvm.runtime.debug.type.LLVMSourceFunctionType);
descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;)Lcom/oracle/truffle/llvm/runtime/interop/LLVMForeignFunctionCallNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode
dup
aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode.<init>:(Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 language Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
0 1 1 function Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;
0 1 2 interopType Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
0 1 3 sourceType Lcom/oracle/truffle/llvm/runtime/debug/type/LLVMSourceFunctionType;
MethodParameters:
Name Flags
language
function
interopType
sourceType
protected java.lang.Object doCall(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.llvm.runtime.memory.LLVMStack);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode.callNode:Lcom/oracle/truffle/api/nodes/DirectCallNode;
aload 0
getfield com.oracle.truffle.llvm.runtime.interop.LLVMForeignFunctionCallNode.packArguments:Lcom/oracle/truffle/llvm/runtime/interop/LLVMForeignCallNode$PackForeignArgumentsNode;
aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
aload 2
invokevirtual com.oracle.truffle.llvm.runtime.interop.LLVMForeignCallNode$PackForeignArgumentsNode.execute:([Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;)[Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([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 this Lcom/oracle/truffle/llvm/runtime/interop/LLVMForeignFunctionCallNode;
0 1 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 1 2 stack Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException
MethodParameters:
Name Flags
frame
stack
private static com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Structured getReturnBaseType(com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType);
descriptor: (Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;)Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Structured;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Function
ifeq 4
1: aload 0
checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Function
invokevirtual com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Function.getReturnType:()Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
astore 1
start local 1 2: aload 1
instanceof com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value
ifeq 4
3: aload 1
checkcast com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value
getfield com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value.baseType:Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType$Structured;
areturn
end local 1 4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 functionType Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
2 4 1 returnType Lcom/oracle/truffle/llvm/runtime/interop/access/LLVMInteropType;
MethodParameters:
Name Flags
functionType
}
SourceFile: "LLVMForeignFunctionCallNode.java"
InnerClasses:
abstract PackForeignArgumentsNode = com.oracle.truffle.llvm.runtime.interop.LLVMForeignCallNode$PackForeignArgumentsNode of com.oracle.truffle.llvm.runtime.interop.LLVMForeignCallNode
public Function = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Function of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
public abstract Structured = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Structured of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
public final Value = com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType$Value of com.oracle.truffle.llvm.runtime.interop.access.LLVMInteropType
public final TypeOverflowException = com.oracle.truffle.llvm.runtime.types.Type$TypeOverflowException of com.oracle.truffle.llvm.runtime.types.Type