public final class org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode extends org.graalvm.compiler.nodes.FixedWithNextNode implements org.graalvm.compiler.nodes.spi.LIRLowerable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode
super_class: org.graalvm.compiler.nodes.FixedWithNextNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode> TYPE;
descriptor: Lorg/graalvm/compiler/graph/NodeClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode;>;
protected final jdk.vm.ci.meta.JavaConstant functionPointer;
descriptor: Ljdk/vm/ci/meta/JavaConstant;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
org.graalvm.compiler.graph.NodeInputList<org.graalvm.compiler.nodes.ValueNode> args;
descriptor: Lorg/graalvm/compiler/graph/NodeInputList;
flags: (0x0000)
Signature: Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$Input()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.JavaConstant, org.graalvm.compiler.nodes.ValueNode[]);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaConstant;[Lorg/graalvm/compiler/nodes/ValueNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getstatic org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
aload 1
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokespecial org.graalvm.compiler.nodes.FixedWithNextNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;)V
1: aload 0
aload 2
putfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.functionPointer:Ljdk/vm/ci/meta/JavaConstant;
2: aload 0
new org.graalvm.compiler.graph.NodeInputList
dup
aload 0
aload 3
invokespecial org.graalvm.compiler.graph.NodeInputList.<init>:(Lorg/graalvm/compiler/graph/Node;[Lorg/graalvm/compiler/graph/Node;)V
putfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.args:Lorg/graalvm/compiler/graph/NodeInputList;
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode;
0 4 1 returnType Ljdk/vm/ci/meta/JavaKind;
0 4 2 functionPointer Ljdk/vm/ci/meta/JavaConstant;
0 4 3 args [Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
returnType
functionPointer
args
private static jdk.vm.ci.meta.JavaType toJavaType(org.graalvm.compiler.core.common.type.Stamp, jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/JavaType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
instanceof org.graalvm.compiler.core.common.type.RawPointerStamp
ifeq 2
1: new org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode$PointerType
dup
invokespecial org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode$PointerType.<init>:()V
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.core.common.type.Stamp.javaType:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 3 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
MethodParameters:
Name Flags
stamp
metaAccess
public void generate(org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool);
descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder
astore 2
start local 2 1: aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.args:Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.count:()I
anewarray jdk.vm.ci.meta.Value
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.args:Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.count:()I
anewarray jdk.vm.ci.meta.JavaType
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 8
5: StackMap locals: org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder jdk.vm.ci.meta.Value[] jdk.vm.ci.meta.JavaType[] int
StackMap stack:
aload 3
iload 5
aload 1
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.args:Lorg/graalvm/compiler/graph/NodeInputList;
iload 5
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
aastore
6: aload 4
iload 5
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.args:Lorg/graalvm/compiler/graph/NodeInputList;
iload 5
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.toJavaType:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/JavaType;
aastore
7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.args:Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.count:()I
if_icmplt 5
end local 5 9: aload 0
invokevirtual org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.toJavaType:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/JavaType;
astore 5
start local 5 10: aload 1
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getLIRGeneratorTool:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
invokeinterface jdk.vm.ci.code.CodeCacheProvider.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
aload 5
aload 4
11: aload 1
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getLIRGeneratorTool:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
12: invokeinterface jdk.vm.ci.code.RegisterConfig.getCallingConvention:(Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
astore 6
start local 6 13: aload 2
invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.functionPointer:Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
aload 6
aload 3
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.args:Lorg/graalvm/compiler/graph/NodeInputList;
invokestatic org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.countFloatingTypeArguments:(Lorg/graalvm/compiler/graph/NodeInputList;)I
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.emitCCall:(JLjdk/vm/ci/code/CallingConvention;[Ljdk/vm/ci/meta/Value;I)V
14: aload 0
invokevirtual org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 16
15: aload 1
aload 0
aload 2
invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
aload 6
invokevirtual jdk.vm.ci.code.CallingConvention.getReturn:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.emitMove:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.setResult:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
pop
16: StackMap locals: org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder jdk.vm.ci.meta.Value[] jdk.vm.ci.meta.JavaType[] jdk.vm.ci.meta.JavaType jdk.vm.ci.code.CallingConvention
StackMap stack:
return
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 17 0 this Lorg/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode;
0 17 1 generator Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;
1 17 2 gen Lorg/graalvm/compiler/core/amd64/AMD64NodeLIRBuilder;
2 17 3 parameter [Ljdk/vm/ci/meta/Value;
3 17 4 parameterTypes [Ljdk/vm/ci/meta/JavaType;
4 9 5 i I
10 17 5 returnType Ljdk/vm/ci/meta/JavaType;
13 17 6 cc Ljdk/vm/ci/code/CallingConvention;
MethodParameters:
Name Flags
generator
private static int countFloatingTypeArguments(org.graalvm.compiler.graph.NodeInputList<org.graalvm.compiler.nodes.ValueNode>);
descriptor: (Lorg/graalvm/compiler/graph/NodeInputList;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.graph.NodeInputList.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.graalvm.compiler.graph.NodeInputList int top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 4
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 5
4: StackMap locals: org.graalvm.compiler.graph.NodeInputList int org.graalvm.compiler.nodes.ValueNode java.util.Iterator
StackMap stack:
iinc 1 1
end local 2 5: StackMap locals: org.graalvm.compiler.graph.NodeInputList int top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: iload 1
bipush 8
if_icmple 8
7: bipush 8
ireturn
8: StackMap locals: org.graalvm.compiler.graph.NodeInputList int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 args Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;
1 9 1 count I
3 5 2 n Lorg/graalvm/compiler/nodes/ValueNode;
Signature: (Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;)I
MethodParameters:
Name Flags
args
}
SourceFile: "AMD64RawNativeCallNode.java"
NestMembers:
org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode$PointerType
InnerClasses:
public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
public abstract Input = org.graalvm.compiler.graph.Node$Input of org.graalvm.compiler.graph.Node
private PointerType = org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode$PointerType of org.graalvm.compiler.hotspot.amd64.AMD64RawNativeCallNode
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, cyclesRationale = "Native call is a block hole", size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_20:Lorg/graalvm/compiler/nodeinfo/NodeSize;)