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
{
private static final int ADDRESS_BITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64
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 Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
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 org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
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, 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=6, locals=6, 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: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 2: StackMap locals: org.graalvm.compiler.core.amd64.AMD64AddressNode org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aload 0
aload 4
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
aload 3
iconst_0
iconst_0
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.improve:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
istore 5
start local 5 3: iload 5
ifne 2
4: getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
ifne 5
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.checkAddressBitWidth:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: int
StackMap stack:
getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
ifne 6
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.checkAddressBitWidth:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 4
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 5 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 Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
0 7 1 base Lorg/graalvm/compiler/nodes/ValueNode;
0 7 2 offset Lorg/graalvm/compiler/nodes/ValueNode;
1 7 3 ret Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
2 7 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 7 5 changed Z
MethodParameters:
Name Flags
base
offset
private static boolean checkAddressBitWidth(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
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;
instanceof org.graalvm.compiler.core.common.type.AbstractPointerStamp
ifne 1
aload 0
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;
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.getBits:(Lorg/graalvm/compiler/core/common/type/Stamp;)I
bipush 64
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 value Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
value
protected boolean improve(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.core.amd64.AMD64AddressNode, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
iconst_0
iload 4
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveInput:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 1: aload 6
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 4
2: aload 3
aload 6
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 3
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
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
iload 5
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveInput:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 5: aload 7
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 8
6: aload 3
aload 7
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 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
ifeq 17
9: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.LeftShiftNode
astore 8
start local 8 10: aload 8
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 3
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 8
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 9
start local 9 12: iload 9
invokestatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.fromShift:(I)Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
astore 10
start local 10 13: aload 10
ifnull 17
14: aload 3
aload 8
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 3
aload 10
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setScale:(Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;)V
16: iconst_1
ireturn
end local 10 end local 9 end local 8 17: StackMap locals:
StackMap stack:
aload 3
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 33
18: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnonnull 23
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 23
19: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.AddNode
astore 8
start local 8 20: aload 3
aload 8
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
21: aload 3
aload 1
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 4
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
22: iconst_1
ireturn
end local 8 23: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnonnull 28
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 28
24: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.AddNode
astore 8
start local 8 25: aload 3
aload 1
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 5
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
26: aload 3
aload 8
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
27: iconst_1
ireturn
end local 8 28: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
ifeq 33
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
ifne 33
29: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 30: aload 3
aload 1
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 5
iload 4
ixor
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
31: aload 3
aload 1
aload 8
iload 5
iload 4
ixor
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
32: iconst_1
ireturn
end local 8 33: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
iload 4
iload 5
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
ireturn
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 34 0 this Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
0 34 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 34 2 debug Lorg/graalvm/compiler/debug/DebugContext;
0 34 3 ret Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 34 4 isBaseNegated Z
0 34 5 isIndexNegated Z
1 34 6 newBase Lorg/graalvm/compiler/nodes/ValueNode;
5 34 7 newIdx Lorg/graalvm/compiler/nodes/ValueNode;
10 17 8 shift Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
12 17 9 amount I
13 17 10 scale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
20 23 8 add Lorg/graalvm/compiler/nodes/calc/AddNode;
25 28 8 add Lorg/graalvm/compiler/nodes/calc/AddNode;
30 33 8 tmp Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
graph
debug
ret
isBaseNegated
isIndexNegated
private boolean improveNegation(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.core.amd64.AMD64AddressNode, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 4
istore 6
start local 6 1: iload 5
istore 7
start local 7 2: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 3: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
start local 9 4: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.NegateNode
ifeq 10
5: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.NegateNode
astore 10
start local 10 6: aload 3
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.NegateNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
7: iload 6
ifeq 8
iconst_0
goto 9
StackMap locals: org.graalvm.compiler.core.amd64.AMD64AddressLowering org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.amd64.AMD64AddressNode int int int int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.NegateNode
StackMap stack:
8: iconst_1
StackMap locals:
StackMap stack: int
9: istore 6
end local 10 10: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.calc.NegateNode
ifeq 16
11: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.NegateNode
astore 10
start local 10 12: aload 3
aload 10
invokevirtual org.graalvm.compiler.nodes.calc.NegateNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
13: iload 7
ifeq 14
iconst_0
goto 15
StackMap locals: org.graalvm.compiler.nodes.calc.NegateNode
StackMap stack:
14: iconst_1
StackMap locals:
StackMap stack: int
15: istore 7
end local 10 16: StackMap locals:
StackMap stack:
iload 6
iload 4
if_icmpne 17
iload 7
iload 5
if_icmpeq 33
17: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 10
start local 10 18: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 11
start local 11 19: aload 0
aload 1
aload 2
aload 3
iload 6
iload 7
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.improve:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
istore 12
start local 12 20: iload 6
iload 4
if_icmpeq 26
21: aload 10
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 24
22: aload 3
aload 8
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
23: goto 26
StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int
StackMap stack:
24: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnull 26
25: aload 3
aload 1
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.NegateNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
26: StackMap locals:
StackMap stack:
iload 7
iload 5
if_icmpeq 32
27: aload 11
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 30
28: aload 3
aload 9
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
29: goto 32
StackMap locals:
StackMap stack:
30: aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnull 32
31: aload 3
aload 1
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.NegateNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
32: StackMap locals:
StackMap stack:
iload 12
ireturn
end local 12 end local 11 end local 10 33: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
ifne 35
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 8
if_acmpne 34
aload 3
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 9
if_acmpeq 35
StackMap locals:
StackMap stack:
34: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
35: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 9 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 36 0 this Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
0 36 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 36 2 debug Lorg/graalvm/compiler/debug/DebugContext;
0 36 3 ret Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 36 4 originalBaseNegated Z
0 36 5 originalIndexNegated Z
1 36 6 baseNegated Z
2 36 7 indexNegated Z
3 36 8 originalBase Lorg/graalvm/compiler/nodes/ValueNode;
4 36 9 originalIndex Lorg/graalvm/compiler/nodes/ValueNode;
6 10 10 negate Lorg/graalvm/compiler/nodes/calc/NegateNode;
12 16 10 negate Lorg/graalvm/compiler/nodes/calc/NegateNode;
18 33 10 base Lorg/graalvm/compiler/nodes/ValueNode;
19 33 11 index Lorg/graalvm/compiler/nodes/ValueNode;
20 33 12 improved Z
MethodParameters:
Name Flags
graph
debug
ret
originalBaseNegated
originalIndexNegated
private static org.graalvm.compiler.nodes.ValueNode considerNegation(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 2
aload 1
ifnull 2
1: aload 0
aload 1
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.NegateNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 3 1 value Lorg/graalvm/compiler/nodes/ValueNode;
0 3 2 negate Z
MethodParameters:
Name Flags
graph
value
negate
private static org.graalvm.compiler.nodes.ValueNode improveInput(org.graalvm.compiler.core.amd64.AMD64AddressNode, org.graalvm.compiler.nodes.ValueNode, int, boolean);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 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 4
start local 4 3: aload 4
ifnull 5
4: aload 0
aload 1
aload 4
aconst_null
iload 2
iload 3
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;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
5: StackMap locals: jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 1
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;
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 13
6: getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
ifne 7
aload 1
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;
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.getBits:(Lorg/graalvm/compiler/core/common/type/Stamp;)I
bipush 64
if_icmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 13
8: aload 1
checkcast org.graalvm.compiler.nodes.calc.AddNode
astore 5
start local 5 9: aload 5
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 11
10: aload 0
aload 1
aload 5
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 5
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 2
iload 3
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;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
11: StackMap locals: org.graalvm.compiler.nodes.calc.AddNode
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 13
12: aload 0
aload 1
aload 5
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 5
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 2
iload 3
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;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 5 13: 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 14 0 address Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 14 1 node Lorg/graalvm/compiler/nodes/ValueNode;
0 14 2 shift I
0 14 3 negateExtractedDisplacement Z
3 14 4 c Ljdk/vm/ci/meta/JavaConstant;
9 13 5 add Lorg/graalvm/compiler/nodes/calc/AddNode;
MethodParameters:
Name Flags
address
node
shift
negateExtractedDisplacement
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, boolean);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifeq 4
1: aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
iload 4
lshl
lstore 6
start local 6 2: aload 0
lload 6
iload 5
invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.updateDisplacement:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;JZ)Z
ifeq 4
3: aload 3
areturn
end local 6 4: StackMap locals:
StackMap stack:
aload 1
areturn
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 5 0 address Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 5 1 original Lorg/graalvm/compiler/nodes/ValueNode;
0 5 2 c Ljdk/vm/ci/meta/JavaConstant;
0 5 3 other Lorg/graalvm/compiler/nodes/ValueNode;
0 5 4 shift I
0 5 5 negateExtractedDisplacement Z
2 4 6 delta J
MethodParameters:
Name Flags
address
original
c
other
shift
negateExtractedDisplacement
protected static boolean updateDisplacement(org.graalvm.compiler.core.amd64.AMD64AddressNode, long, boolean);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;JZ)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 3 0: iload 3
ifeq 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: i2l
lstore 4
start local 4 3: aload 0
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getDisplacement:()I
i2l
lload 1
lload 4
lmul
ladd
lstore 6
start local 6 4: lload 6
invokestatic org.graalvm.compiler.core.common.NumUtil.isInt:(J)Z
ifeq 7
5: aload 0
lload 6
l2i
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setDisplacement:(I)V
6: iconst_1
ireturn
7: StackMap locals: long long
StackMap stack:
iconst_0
ireturn
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 address Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 8 1 displacementDelta J
0 8 3 negateDelta Z
3 8 4 sign J
4 8 6 disp J
MethodParameters:
Name Flags
address
displacementDelta
negateDelta
}
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