public class org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering extends org.graalvm.compiler.core.amd64.AMD64AddressLowering
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering
super_class: org.graalvm.compiler.core.amd64.AMD64AddressLowering
{
private final long heapBase;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.Register heapBaseRegister;
descriptor: Ljdk/vm/ci/code/Register;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config;
descriptor: Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, jdk.vm.ci.code.Register);
descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/code/Register;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.graalvm.compiler.core.amd64.AMD64AddressLowering.<init>:()V
1: aload 0
aload 1
invokevirtual org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.getOopEncoding:()Lorg/graalvm/compiler/hotspot/CompressEncoding;
getfield org.graalvm.compiler.hotspot.CompressEncoding.base:J
putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.heapBase:J
2: aload 0
aload 1
putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
3: aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.heapBase:J
lconst_0
lcmp
ifne 6
getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 6
4: aload 0
aconst_null
putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.heapBaseRegister:Ljdk/vm/ci/code/Register;
5: goto 7
6: StackMap locals: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering org.graalvm.compiler.hotspot.GraalHotSpotVMConfig jdk.vm.ci.code.Register
StackMap stack:
aload 0
aload 2
putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.heapBaseRegister:Ljdk/vm/ci/code/Register;
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotAddressLowering;
0 8 1 config Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
0 8 2 heapBaseRegister Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
config
heapBaseRegister
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=2, args_size=2
start local 0 start local 1 0: 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 7
1: aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnonnull 4
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.hotspot.nodes.CompressionNode
ifeq 4
2: aload 0
aload 1
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.hotspot.nodes.CompressionNode
invokevirtual org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.improveUncompression:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/hotspot/nodes/CompressionNode;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
ifnonnull 7
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.hotspot.nodes.CompressionNode
ifeq 7
5: aload 0
aload 1
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.hotspot.nodes.CompressionNode
invokevirtual org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.improveUncompression:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/hotspot/nodes/CompressionNode;)Z
ifeq 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial org.graalvm.compiler.core.amd64.AMD64AddressLowering.improve:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotAddressLowering;
0 8 1 addr Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
MethodParameters:
Name Flags
addr
private boolean improveUncompression(org.graalvm.compiler.core.amd64.AMD64AddressNode, org.graalvm.compiler.hotspot.nodes.CompressionNode);
descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/hotspot/nodes/CompressionNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.graalvm.compiler.hotspot.nodes.CompressionNode.getOp:()Lorg/graalvm/compiler/hotspot/nodes/CompressionNode$CompressionOp;
getstatic org.graalvm.compiler.hotspot.nodes.CompressionNode$CompressionOp.Uncompress:Lorg/graalvm/compiler/hotspot/nodes/CompressionNode$CompressionOp;
if_acmpne 26
1: aload 2
invokevirtual org.graalvm.compiler.hotspot.nodes.CompressionNode.getEncoding:()Lorg/graalvm/compiler/hotspot/CompressEncoding;
astore 3
start local 3 2: aload 3
getfield org.graalvm.compiler.hotspot.CompressEncoding.shift:I
invokestatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.fromShift:(I)Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
astore 4
start local 4 3: aload 4
ifnonnull 5
4: iconst_0
ireturn
5: StackMap locals: org.graalvm.compiler.hotspot.CompressEncoding org.graalvm.compiler.asm.amd64.AMD64Address$Scale
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.heapBaseRegister:Ljdk/vm/ci/code/Register;
ifnull 11
aload 3
getfield org.graalvm.compiler.hotspot.CompressEncoding.base:J
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.heapBase:J
lcmp
ifne 11
6: getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 7
aload 2
invokevirtual org.graalvm.compiler.hotspot.nodes.CompressionNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
instanceof org.graalvm.compiler.core.common.type.ObjectStamp
ifeq 10
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.hotspot.nodes.CompressionNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering$HeapBaseNode
dup
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.heapBaseRegister:Ljdk/vm/ci/code/Register;
invokespecial org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering$HeapBaseNode.<init>:(Ljdk/vm/ci/code/Register;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 5
start local 5 8: aload 1
aload 5
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
end local 5 9: goto 23
10: StackMap locals:
StackMap stack:
iconst_0
ireturn
11: StackMap locals:
StackMap stack:
aload 3
getfield org.graalvm.compiler.hotspot.CompressEncoding.base:J
lconst_0
lcmp
ifne 12
getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 22
aload 2
invokevirtual org.graalvm.compiler.hotspot.nodes.CompressionNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
instanceof org.graalvm.compiler.hotspot.nodes.type.KlassPointerStamp
ifeq 22
12: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 16
13: aload 2
invokevirtual org.graalvm.compiler.hotspot.nodes.CompressionNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode
dup
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering.config:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.MARKID_NARROW_KLASS_BASE_ADDRESS:I
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokespecial org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.<init>:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;ILjdk/vm/ci/meta/JavaKind;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 5
start local 5 14: aload 1
aload 5
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
end local 5 15: goto 23
16: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getDisplacement:()I
i2l
aload 3
getfield org.graalvm.compiler.hotspot.CompressEncoding.base:J
ladd
lstore 5
start local 5 17: lload 5
invokestatic org.graalvm.compiler.asm.NumUtil.isInt:(J)Z
ifeq 21
18: aload 1
lload 5
l2i
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setDisplacement:(I)V
19: aload 1
aconst_null
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
20: goto 23
21: StackMap locals: long
StackMap stack:
iconst_0
ireturn
end local 5 22: StackMap locals:
StackMap stack:
aload 1
aconst_null
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
23: StackMap locals:
StackMap stack:
aload 1
aload 4
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setScale:(Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;)V
24: aload 1
aload 2
invokevirtual org.graalvm.compiler.hotspot.nodes.CompressionNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
25: iconst_1
ireturn
end local 4 end local 3 26: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotAddressLowering;
0 27 1 addr Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
0 27 2 compression Lorg/graalvm/compiler/hotspot/nodes/CompressionNode;
2 26 3 encoding Lorg/graalvm/compiler/hotspot/CompressEncoding;
3 26 4 scale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
8 9 5 base Lorg/graalvm/compiler/nodes/ValueNode;
14 15 5 base Lorg/graalvm/compiler/nodes/ValueNode;
17 22 5 disp J
MethodParameters:
Name Flags
addr
compression
}
SourceFile: "AMD64HotSpotAddressLowering.java"
NestMembers:
org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering$HeapBaseNode
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 HeapBaseNode = org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering$HeapBaseNode of org.graalvm.compiler.hotspot.amd64.AMD64HotSpotAddressLowering
public final CompressionOp = org.graalvm.compiler.hotspot.nodes.CompressionNode$CompressionOp of org.graalvm.compiler.hotspot.nodes.CompressionNode