public class org.graalvm.compiler.core.amd64.AMD64AddressLowering extends org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.core.amd64.AMD64AddressLowering
super_class: org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
public org.graalvm.compiler.nodes.memory.address.AddressNode lower(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.lower:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
0 1 1 address Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
address
public org.graalvm.compiler.nodes.memory.address.AddressNode lower(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new org.graalvm.compiler.core.amd64.AMD64AddressNode
dup
aload 1
aload 2
invokespecial org.graalvm.compiler.core.amd64.AMD64AddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
astore 3
start local 3 1: StackMap locals: org.graalvm.compiler.core.amd64.AMD64AddressNode
StackMap stack:
aload 0
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.improve:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;)Z
istore 4
start local 4 2: iload 4
ifne 1
3: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
areturn
end local 4 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/core/amd64/AMD64AddressLowering;
0 4 1 base Lorg/graalvm/compiler/nodes/ValueNode;
0 4 2 offset Lorg/graalvm/compiler/nodes/ValueNode;
1 4 3 ret Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
2 4 4 changed Z
MethodParameters:
Name Flags
base
offset
protected boolean improve(org.graalvm.compiler.core.amd64.AMD64AddressNode);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
iconst_0
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveInput:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 4
2: aload 1
aload 2
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
3: iconst_1
ireturn
4: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 1
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getScale:()Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveInput:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 5: aload 3
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 8
6: aload 1
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
7: iconst_1
ireturn
8: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
ifeq 17
9: aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.LeftShiftNode
astore 4
start local 4 10: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 17
11: aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getScale:()Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
iadd
istore 5
start local 5 12: iload 5
invokestatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.fromShift:(I)Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
astore 6
start local 6 13: aload 6
ifnull 17
14: aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
15: aload 1
aload 6
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setScale:(Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;)V
16: iconst_1
ireturn
end local 6 end local 5 end local 4 17: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getScale:()Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getstatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.Times1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
if_acmpne 34
18: aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnull 19
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnonnull 29
19: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 24
20: aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.AddNode
astore 4
start local 4 21: aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
22: aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
23: iconst_1
ireturn
end local 4 24: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 29
25: aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.AddNode
astore 4
start local 4 26: aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
27: aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
28: iconst_1
ireturn
end local 4 29: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
ifeq 34
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
ifne 34
30: aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 31: aload 1
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
32: aload 1
aload 4
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
33: iconst_1
ireturn
end local 4 34: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
0 35 1 ret Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
1 35 2 newBase Lorg/graalvm/compiler/nodes/ValueNode;
5 35 3 newIdx Lorg/graalvm/compiler/nodes/ValueNode;
10 17 4 shift Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
12 17 5 amount I
13 17 6 scale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
21 24 4 add Lorg/graalvm/compiler/nodes/calc/AddNode;
26 29 4 add Lorg/graalvm/compiler/nodes/calc/AddNode;
31 34 4 tmp Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
ret
private static org.graalvm.compiler.nodes.ValueNode improveInput(org.graalvm.compiler.core.amd64.AMD64AddressNode, org.graalvm.compiler.nodes.ValueNode, int);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 0
aload 1
aload 3
aconst_null
iload 2
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveConstDisp:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
5: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 15
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
bipush 64
if_icmpne 15
6: aload 1
instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
ifeq 9
7: aload 1
checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getInputBits:()I
bipush 32
if_icmpne 15
8: aload 1
checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
9: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 15
10: aload 1
checkcast org.graalvm.compiler.nodes.calc.AddNode
astore 4
start local 4 11: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 13
12: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 2
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveConstDisp:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
13: StackMap locals: org.graalvm.compiler.nodes.calc.AddNode
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 15
14: aload 0
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 2
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveConstDisp:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 4 15: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 address Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 16 1 node Lorg/graalvm/compiler/nodes/ValueNode;
0 16 2 shift I
3 16 3 c Ljdk/vm/ci/meta/JavaConstant;
11 15 4 add Lorg/graalvm/compiler/nodes/calc/AddNode;
MethodParameters:
Name Flags
address
node
shift
private static org.graalvm.compiler.nodes.ValueNode improveConstDisp(org.graalvm.compiler.core.amd64.AMD64AddressNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaConstant, org.graalvm.compiler.nodes.ValueNode, int);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifeq 6
1: aload 0
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getDisplacement:()I
i2l
lstore 5
start local 5 2: lload 5
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
iload 4
lshl
ladd
lstore 5
3: lload 5
invokestatic org.graalvm.compiler.asm.NumUtil.isInt:(J)Z
ifeq 6
4: aload 0
lload 5
l2i
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setDisplacement:(I)V
5: aload 3
areturn
end local 5 6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 address Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 7 1 original Lorg/graalvm/compiler/nodes/ValueNode;
0 7 2 c Ljdk/vm/ci/meta/JavaConstant;
0 7 3 other Lorg/graalvm/compiler/nodes/ValueNode;
0 7 4 shift I
2 6 5 disp J
MethodParameters:
Name Flags
address
original
c
other
shift
}
SourceFile: "AMD64AddressLowering.java"
InnerClasses:
public final Scale = org.graalvm.compiler.asm.amd64.AMD64Address$Scale of org.graalvm.compiler.asm.amd64.AMD64Address
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
public abstract AddressLowering = org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering of org.graalvm.compiler.phases.common.AddressLoweringPhase