public final class com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder extends org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder implements com.oracle.svm.core.graal.code.SubstrateNodeLIRBuilder
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder
super_class: org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder
{
final com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend this$0;
descriptor: Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend, org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.lir.gen.LIRGeneratorTool, org.graalvm.compiler.core.amd64.AMD64NodeMatchRules);
descriptor: (Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.this$0:Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
1: aload 0
aload 2
aload 3
aload 4
invokespecial org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;)V
2: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 3 2 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 3 3 gen Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
0 3 4 nodeMatchRules Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
MethodParameters:
Name Flags
this$0 final
graph
gen
nodeMatchRules
public void visitSafepointNode(org.graalvm.compiler.nodes.SafepointNode);
descriptor: (Lorg/graalvm/compiler/nodes/SafepointNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: ldc "handled by lowering"
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 1 1 node Lorg/graalvm/compiler/nodes/SafepointNode;
MethodParameters:
Name Flags
node
public void visitBreakpointNode(org.graalvm.compiler.nodes.BreakpointNode);
descriptor: (Lorg/graalvm/compiler/nodes/BreakpointNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.BreakpointNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
anewarray jdk.vm.ci.meta.JavaType
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: jdk.vm.ci.meta.JavaType[] int
StackMap stack:
aload 2
iload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.BreakpointNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
iload 3
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.javaType:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
aastore
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 2
arraylength
if_icmplt 3
end local 3 6: aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
getstatic com.oracle.svm.core.graal.code.SubstrateCallingConventionType.JavaCall:Lcom/oracle/svm/core/graal/code/SubstrateCallingConventionType;
aconst_null
aload 2
aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
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 3
start local 3 7: aload 0
new org.graalvm.compiler.lir.amd64.AMD64BreakpointOp
dup
aload 0
aload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.BreakpointNode.arguments:()Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.visitInvokeArguments:(Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection;)[Ljdk/vm/ci/meta/Value;
invokespecial org.graalvm.compiler.lir.amd64.AMD64BreakpointOp.<init>:([Ljdk/vm/ci/meta/Value;)V
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 9 1 node Lorg/graalvm/compiler/nodes/BreakpointNode;
1 9 2 sig [Ljdk/vm/ci/meta/JavaType;
2 6 3 i I
7 9 3 convention Ljdk/vm/ci/code/CallingConvention;
MethodParameters:
Name Flags
node
protected org.graalvm.compiler.core.gen.DebugInfoBuilder createDebugInfoBuilder(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.spi.NodeValueMap);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Lorg/graalvm/compiler/core/gen/DebugInfoBuilder;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.svm.core.graal.code.SubstrateDebugInfoBuilder
dup
aload 1
aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getProviders:()Lorg/graalvm/compiler/core/common/spi/CodeGenProviders;
invokeinterface org.graalvm.compiler.core.common.spi.CodeGenProviders.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
aload 2
invokespecial com.oracle.svm.core.graal.code.SubstrateDebugInfoBuilder.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 1 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 1 2 nodeValueMap Lorg/graalvm/compiler/nodes/spi/NodeValueMap;
MethodParameters:
Name Flags
graph
nodeValueMap
public jdk.vm.ci.meta.Value[] visitInvokeArguments(jdk.vm.ci.code.CallingConvention, java.util.Collection<org.graalvm.compiler.nodes.ValueNode>);
descriptor: (Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection;)[Ljdk/vm/ci/meta/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.visitInvokeArguments:(Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection;)[Ljdk/vm/ci/meta/Value;
astore 3
start local 3 1: aload 1
checkcast com.oracle.svm.core.graal.code.SubstrateCallingConvention
invokevirtual com.oracle.svm.core.graal.code.SubstrateCallingConvention.getType:()Ljdk/vm/ci/code/CallingConvention$Type;
checkcast com.oracle.svm.core.graal.code.SubstrateCallingConventionType
astore 4
start local 4 2: aload 4
getfield com.oracle.svm.core.graal.code.SubstrateCallingConventionType.nativeABI:Z
ifeq 13
3: iconst_0
istore 5
start local 5 4: aload 3
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 9
StackMap locals: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder jdk.vm.ci.code.CallingConvention java.util.Collection jdk.vm.ci.meta.Value[] com.oracle.svm.core.graal.code.SubstrateCallingConventionType int top int int jdk.vm.ci.meta.Value[]
StackMap stack:
5: aload 9
iload 7
aaload
astore 6
start local 6 6: aload 6
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifeq 8
aload 6
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
invokevirtual jdk.vm.ci.code.Register.getRegisterCategory:()Ljdk/vm/ci/code/Register$RegisterCategory;
getstatic jdk.vm.ci.amd64.AMD64.XMM:Ljdk/vm/ci/code/Register$RegisterCategory;
invokevirtual jdk.vm.ci.code.Register$RegisterCategory.equals:(Ljava/lang/Object;)Z
ifeq 8
7: iinc 5 1
end local 6 8: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
9: iload 7
iload 8
if_icmplt 5
10: getstatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.$assertionsDisabled:Z
ifne 11
iload 5
bipush 8
if_icmple 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder jdk.vm.ci.code.CallingConvention java.util.Collection jdk.vm.ci.meta.Value[] com.oracle.svm.core.graal.code.SubstrateCallingConventionType int
StackMap stack:
getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
getstatic jdk.vm.ci.amd64.AMD64Kind.DWORD:Ljdk/vm/ci/amd64/AMD64Kind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
astore 6
start local 6 12: aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
aload 6
iload 5
invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMoveConstant:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)V
end local 6 end local 5 13: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 14 1 invokeCc Ljdk/vm/ci/code/CallingConvention;
0 14 2 arguments Ljava/util/Collection<Lorg/graalvm/compiler/nodes/ValueNode;>;
1 14 3 values [Ljdk/vm/ci/meta/Value;
2 14 4 type Lcom/oracle/svm/core/graal/code/SubstrateCallingConventionType;
4 13 5 xmmCount I
6 8 6 v Ljdk/vm/ci/meta/Value;
12 13 6 xmmCountRegister Ljdk/vm/ci/meta/AllocatableValue;
Signature: (Ljdk/vm/ci/code/CallingConvention;Ljava/util/Collection<Lorg/graalvm/compiler/nodes/ValueNode;>;)[Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
invokeCc
arguments
private boolean getDestroysCallerSavedRegisters(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
checkcast com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64LIRGenerator
aload 1
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64LIRGenerator.getDestroysCallerSavedRegisters:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 1 1 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
targetMethod
private jdk.vm.ci.meta.Value getExceptionTemp(org.graalvm.compiler.nodes.CallTargetNode);
descriptor: (Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.CallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
instanceof org.graalvm.compiler.nodes.InvokeWithExceptionNode
ifeq 2
1: aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.code.RegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
invokevirtual jdk.vm.ci.code.Register.asValue:()Ljdk/vm/ci/code/RegisterValue;
areturn
2: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 3 1 callTarget Lorg/graalvm/compiler/nodes/CallTargetNode;
MethodParameters:
Name Flags
callTarget
protected void emitDirectCall(org.graalvm.compiler.nodes.DirectCallTargetNode, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value[], jdk.vm.ci.meta.Value[], org.graalvm.compiler.lir.LIRFrameState);
descriptor: (Lorg/graalvm/compiler/nodes/DirectCallTargetNode;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=15, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual org.graalvm.compiler.nodes.DirectCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 6
start local 6 1: aload 0
new com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64DirectCallOp
dup
aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.this$0:Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getRuntimeConfiguration:()Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
aload 6
aload 2
aload 3
aload 4
aload 5
2: aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchorTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
aload 1
invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getNewThreadStatus:(Lorg/graalvm/compiler/nodes/CallTargetNode;)I
3: aload 0
aload 6
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getDestroysCallerSavedRegisters:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getExceptionTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/Value;
invokespecial com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64DirectCallOp.<init>:(Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;IZLjdk/vm/ci/meta/Value;)V
4: invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
5: 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 6 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 6 1 callTarget Lorg/graalvm/compiler/nodes/DirectCallTargetNode;
0 6 2 result Ljdk/vm/ci/meta/Value;
0 6 3 parameters [Ljdk/vm/ci/meta/Value;
0 6 4 temps [Ljdk/vm/ci/meta/Value;
0 6 5 callState Lorg/graalvm/compiler/lir/LIRFrameState;
1 6 6 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
callTarget
result
parameters
temps
callState
protected void emitIndirectCall(org.graalvm.compiler.nodes.IndirectCallTargetNode, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value[], jdk.vm.ci.meta.Value[], org.graalvm.compiler.lir.LIRFrameState);
descriptor: (Lorg/graalvm/compiler/nodes/IndirectCallTargetNode;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=16, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic jdk.vm.ci.amd64.AMD64.rax:Ljdk/vm/ci/code/Register;
astore 6
start local 6 1: aload 1
invokevirtual org.graalvm.compiler.nodes.IndirectCallTargetNode.callType:()Ljdk/vm/ci/code/CallingConvention$Type;
checkcast com.oracle.svm.core.graal.code.SubstrateCallingConventionType
getfield com.oracle.svm.core.graal.code.SubstrateCallingConventionType.nativeABI:Z
ifeq 3
2: getstatic jdk.vm.ci.amd64.AMD64.r10:Ljdk/vm/ci/code/Register;
astore 6
3: StackMap locals: jdk.vm.ci.code.Register
StackMap stack:
aload 6
invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.getLIRKind:(Lorg/graalvm/compiler/core/common/spi/LIRKindTool;)Lorg/graalvm/compiler/core/common/LIRKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
astore 7
start local 7 4: aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
aload 7
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.IndirectCallTargetNode.computedAddress:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
5: aload 1
invokevirtual org.graalvm.compiler.nodes.IndirectCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 8
start local 8 6: aload 0
new com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64IndirectCallOp
dup
aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.this$0:Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend;
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getRuntimeConfiguration:()Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
aload 8
aload 2
aload 3
aload 4
aload 7
aload 5
7: aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setupJavaFrameAnchorTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
aload 1
invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getNewThreadStatus:(Lorg/graalvm/compiler/nodes/CallTargetNode;)I
8: aload 0
aload 8
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getDestroysCallerSavedRegisters:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getExceptionTemp:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/Value;
invokespecial com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64IndirectCallOp.<init>:(Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRFrameState;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;IZLjdk/vm/ci/meta/Value;)V
9: invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
10: return
end local 8 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 11 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 11 1 callTarget Lorg/graalvm/compiler/nodes/IndirectCallTargetNode;
0 11 2 result Ljdk/vm/ci/meta/Value;
0 11 3 parameters [Ljdk/vm/ci/meta/Value;
0 11 4 temps [Ljdk/vm/ci/meta/Value;
0 11 5 callState Lorg/graalvm/compiler/lir/LIRFrameState;
1 11 6 targetRegister Ljdk/vm/ci/code/Register;
4 11 7 targetAddress Ljdk/vm/ci/meta/AllocatableValue;
6 11 8 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
callTarget
result
parameters
temps
callState
private jdk.vm.ci.meta.AllocatableValue setupJavaFrameAnchor(org.graalvm.compiler.nodes.CallTargetNode);
descriptor: (Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.hasJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Z
ifne 2
1: getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
areturn
2: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.amd64.AMD64.r13:Ljdk/vm/ci/code/Register;
astore 2
start local 2 3: aload 2
invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.getLIRKind:(Lorg/graalvm/compiler/core/common/spi/LIRKindTool;)Lorg/graalvm/compiler/core/common/LIRKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
astore 3
start local 3 4: aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
aload 3
aload 0
aload 1
invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.getJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
5: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 6 1 callTarget Lorg/graalvm/compiler/nodes/CallTargetNode;
3 6 2 frameAnchorRegister Ljdk/vm/ci/code/Register;
4 6 3 frameAnchor Ljdk/vm/ci/meta/AllocatableValue;
MethodParameters:
Name Flags
callTarget
private jdk.vm.ci.meta.AllocatableValue setupJavaFrameAnchorTemp(org.graalvm.compiler.nodes.CallTargetNode);
descriptor: (Lorg/graalvm/compiler/nodes/CallTargetNode;)Ljdk/vm/ci/meta/AllocatableValue;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend.hasJavaFrameAnchor:(Lorg/graalvm/compiler/nodes/CallTargetNode;)Z
ifne 2
1: getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
areturn
2: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.amd64.AMD64.r12:Ljdk/vm/ci/code/Register;
invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.getLIRKind:(Lorg/graalvm/compiler/core/common/spi/LIRKindTool;)Lorg/graalvm/compiler/core/common/LIRKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 3 1 callTarget Lorg/graalvm/compiler/nodes/CallTargetNode;
MethodParameters:
Name Flags
callTarget
public void emitBranch(org.graalvm.compiler.nodes.LogicNode, org.graalvm.compiler.lir.LabelRef, org.graalvm.compiler.lir.LabelRef, double);
descriptor: (Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
instanceof com.oracle.svm.core.nodes.SafepointCheckNode
ifeq 5
1: new com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp
dup
invokespecial com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp.<init>:()V
astore 6
start local 6 2: aload 0
aload 6
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
3: aload 0
new org.graalvm.compiler.lir.amd64.AMD64ControlFlow$BranchOp
dup
aload 6
invokevirtual com.oracle.svm.core.graal.amd64.AMD64SafepointCheckOp.getConditionFlag:()Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 2
aload 3
dload 4
invokespecial org.graalvm.compiler.lir.amd64.AMD64ControlFlow$BranchOp.<init>:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;D)V
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
end local 6 4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
dload 4
invokespecial org.graalvm.compiler.core.amd64.AMD64NodeLIRBuilder.emitBranch:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;D)V
6: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 7 1 node Lorg/graalvm/compiler/nodes/LogicNode;
0 7 2 trueSuccessor Lorg/graalvm/compiler/lir/LabelRef;
0 7 3 falseSuccessor Lorg/graalvm/compiler/lir/LabelRef;
0 7 4 trueSuccessorProbability D
2 4 6 op Lcom/oracle/svm/core/graal/amd64/AMD64SafepointCheckOp;
MethodParameters:
Name Flags
node
trueSuccessor
falseSuccessor
trueSuccessorProbability
public void emitCGlobalDataLoadAddress(com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode);
descriptor: (Lcom/oracle/svm/core/graal/nodes/CGlobalDataLoadAddressNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
aload 0
getfield com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.gen:Lorg/graalvm/compiler/lir/gen/LIRGenerator;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.getLIRKindTool:()Lorg/graalvm/compiler/core/common/spi/LIRKindTool;
invokeinterface org.graalvm.compiler.core.common.spi.LIRKindTool.getWordKind:()Lorg/graalvm/compiler/core/common/LIRKind;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
astore 2
start local 2 1: aload 0
new com.oracle.svm.core.graal.amd64.AMD64CGlobalDataLoadAddressOp
dup
aload 1
invokevirtual com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode.getDataInfo:()Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;
aload 2
invokespecial com.oracle.svm.core.graal.amd64.AMD64CGlobalDataLoadAddressOp.<init>:(Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;Ljdk/vm/ci/meta/AllocatableValue;)V
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
2: aload 0
aload 1
aload 2
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.setResult:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
0 4 1 node Lcom/oracle/svm/core/graal/nodes/CGlobalDataLoadAddressNode;
1 4 2 result Lorg/graalvm/compiler/lir/Variable;
MethodParameters:
Name Flags
node
public org.graalvm.compiler.lir.Variable emitReadReturnAddress();
descriptor: ()Lorg/graalvm/compiler/lir/Variable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.FrameAccess.returnAddressSize:()I
ifgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
aload 0
invokevirtual com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
invokestatic com.oracle.svm.core.FrameAccess.getWordStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
invokestatic com.oracle.svm.core.FrameAccess.returnAddressSize:()I
ineg
iconst_1
invokestatic jdk.vm.ci.code.StackSlot.get:(Ljdk/vm/ci/meta/ValueKind;IZ)Ljdk/vm/ci/code/StackSlot;
invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.emitMove:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/graal/amd64/SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder;
}
SourceFile: "SubstrateAMD64Backend.java"
NestHost: com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
InnerClasses:
public SubstrateAMD64DirectCallOp = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64DirectCallOp of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
public SubstrateAMD64IndirectCallOp = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64IndirectCallOp of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
protected SubstrateAMD64LIRGenerator = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64LIRGenerator of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
public final SubstrateAMD64NodeLIRBuilder = com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend$SubstrateAMD64NodeLIRBuilder of com.oracle.svm.core.graal.amd64.SubstrateAMD64Backend
public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
public RegisterCategory = jdk.vm.ci.code.Register$RegisterCategory of jdk.vm.ci.code.Register
public final ConditionFlag = org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag of org.graalvm.compiler.asm.amd64.AMD64Assembler
public BranchOp = org.graalvm.compiler.lir.amd64.AMD64ControlFlow$BranchOp of org.graalvm.compiler.lir.amd64.AMD64ControlFlow