public final class org.graalvm.compiler.nodes.calc.ReinterpretNode extends org.graalvm.compiler.nodes.calc.UnaryNode implements org.graalvm.compiler.nodes.spi.ArithmeticLIRLowerable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.nodes.calc.ReinterpretNode
super_class: org.graalvm.compiler.nodes.calc.UnaryNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.calc.ReinterpretNode> TYPE;
descriptor: Lorg/graalvm/compiler/graph/NodeClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;>;
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/nodes/calc/ReinterpretNode;
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.nodes.calc.ReinterpretNode.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.nodes.calc.ReinterpretNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
invokespecial org.graalvm.compiler.nodes.calc.ReinterpretNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
0 2 1 to Ljdk/vm/ci/meta/JavaKind;
0 2 2 value Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
to
value
protected void <init>(org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getstatic org.graalvm.compiler.nodes.calc.ReinterpretNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
aload 1
aload 2
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.nodes.calc.ReinterpretNode.getReinterpretStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
invokespecial org.graalvm.compiler.nodes.calc.UnaryNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
1: getstatic org.graalvm.compiler.nodes.calc.ReinterpretNode.$assertionsDisabled:Z
ifne 2
aload 1
instanceof org.graalvm.compiler.core.common.type.ArithmeticStamp
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.graalvm.compiler.nodes.calc.ReinterpretNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.ValueNode
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
0 3 1 to Lorg/graalvm/compiler/core/common/type/Stamp;
0 3 2 value Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
to
value
public static org.graalvm.compiler.nodes.ValueNode create(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 1
aload 2
invokestatic org.graalvm.compiler.nodes.calc.ReinterpretNode.create:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 to Ljdk/vm/ci/meta/JavaKind;
0 1 1 value Lorg/graalvm/compiler/nodes/ValueNode;
0 1 2 view Lorg/graalvm/compiler/nodes/NodeView;
MethodParameters:
Name Flags
to
value
view
public static org.graalvm.compiler.nodes.ValueNode create(org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
aload 0
aload 1
aload 2
invokestatic org.graalvm.compiler.nodes.calc.ReinterpretNode.canonical:(Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 to Lorg/graalvm/compiler/core/common/type/Stamp;
0 1 1 value Lorg/graalvm/compiler/nodes/ValueNode;
0 1 2 view Lorg/graalvm/compiler/nodes/NodeView;
MethodParameters:
Name Flags
to
value
view
private static jdk.vm.ci.meta.SerializableConstant evalConst(org.graalvm.compiler.core.common.type.Stamp, jdk.vm.ci.meta.SerializableConstant);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/SerializableConstant;)Ljdk/vm/ci/meta/SerializableConstant;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.vm.ci.meta.SerializableConstant.getSerializedSize:()I
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 1
aload 2
invokeinterface jdk.vm.ci.meta.SerializableConstant.serialize:(Ljava/nio/ByteBuffer;)V
2: aload 2
invokestatic org.graalvm.compiler.serviceprovider.BufferUtil.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
invokevirtual java.nio.Buffer.rewind:()Ljava/nio/Buffer;
pop
3: aload 0
checkcast org.graalvm.compiler.core.common.type.ArithmeticStamp
aload 2
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticStamp.deserialize:(Ljava/nio/ByteBuffer;)Ljdk/vm/ci/meta/SerializableConstant;
astore 3
start local 3 4: getstatic org.graalvm.compiler.nodes.calc.ReinterpretNode.$assertionsDisabled:Z
ifne 5
aload 2
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: java.nio.ByteBuffer jdk.vm.ci.meta.SerializableConstant
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 6 1 c Ljdk/vm/ci/meta/SerializableConstant;
1 6 2 buffer Ljava/nio/ByteBuffer;
4 6 3 ret Ljdk/vm/ci/meta/SerializableConstant;
MethodParameters:
Name Flags
stamp
c
public org.graalvm.compiler.nodes.ValueNode canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
astore 3
start local 3 1: aload 0
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
aload 3
invokestatic org.graalvm.compiler.nodes.calc.ReinterpretNode.canonical:(Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
0 2 1 tool Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
0 2 2 forValue Lorg/graalvm/compiler/nodes/ValueNode;
1 2 3 view Lorg/graalvm/compiler/nodes/NodeView;
MethodParameters:
Name Flags
tool
forValue
public static org.graalvm.compiler.nodes.ValueNode canonical(org.graalvm.compiler.nodes.calc.ReinterpretNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
descriptor: (Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 2
1: aload 1
aload 1
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
checkcast jdk.vm.ci.meta.SerializableConstant
invokestatic org.graalvm.compiler.nodes.calc.ReinterpretNode.evalConst:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/SerializableConstant;)Ljdk/vm/ci/meta/SerializableConstant;
aconst_null
invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 4
3: aload 2
areturn
4: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.calc.ReinterpretNode
ifeq 7
5: aload 2
checkcast org.graalvm.compiler.nodes.calc.ReinterpretNode
astore 4
start local 4 6: new org.graalvm.compiler.nodes.calc.ReinterpretNode
dup
aload 1
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokespecial org.graalvm.compiler.nodes.calc.ReinterpretNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
areturn
end local 4 7: StackMap locals:
StackMap stack:
aload 0
ifnull 8
aload 0
goto 9
StackMap locals:
StackMap stack:
8: new org.graalvm.compiler.nodes.calc.ReinterpretNode
dup
aload 1
aload 2
invokespecial org.graalvm.compiler.nodes.calc.ReinterpretNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.calc.ReinterpretNode
9: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 node Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
0 10 1 forStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 10 2 forValue Lorg/graalvm/compiler/nodes/ValueNode;
0 10 3 view Lorg/graalvm/compiler/nodes/NodeView;
6 7 4 reinterpret Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
MethodParameters:
Name Flags
node
forStamp
forValue
view
private static org.graalvm.compiler.core.common.type.IntegerStamp floatToInt(org.graalvm.compiler.core.common.type.FloatStamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/FloatStamp;)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=16, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.getBits:()I
istore 1
start local 1 1: lconst_1
iload 1
iconst_1
isub
lshl
lstore 2
start local 2 2: iload 1
bipush 64
if_icmpne 5
3: ldc Infinity
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lstore 4
start local 4 4: goto 7
end local 4 5: StackMap locals: int long
StackMap stack:
getstatic org.graalvm.compiler.nodes.calc.ReinterpretNode.$assertionsDisabled:Z
ifne 6
iload 1
bipush 32
if_icmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
ldc Infinity
invokestatic java.lang.Float.floatToRawIntBits:(F)I
i2l
lstore 4
start local 4 7: StackMap locals: long
StackMap stack:
lload 4
lstore 6
start local 6 8: lload 2
lload 6
lor
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.signExtend:(JI)J
lstore 8
start local 8 9: lload 2
lconst_0
lor
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.signExtend:(JI)J
lstore 10
start local 10 10: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.isNaN:()Z
ifeq 12
11: iload 1
lload 8
lconst_1
ladd
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.maxValue:(I)J
lload 4
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.mask:(I)J
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
areturn
12: StackMap locals: long long long
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.isNonNaN:()Z
ifeq 27
13: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.upperBound:()D
dconst_0
dcmpg
ifge 19
14: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.lowerBound:()D
ldc -Infinity
dcmpl
ifle 17
15: lload 8
lconst_1
lsub
lstore 12
start local 12 16: goto 28
end local 12 17: StackMap locals:
StackMap stack:
lload 8
lstore 12
start local 12 18: goto 28
end local 12 StackMap locals:
StackMap stack:
19: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.upperBound:()D
dconst_0
dcmpl
ifne 22
20: lconst_0
lstore 12
start local 12 21: goto 28
end local 12 StackMap locals:
StackMap stack:
22: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.upperBound:()D
ldc Infinity
dcmpg
ifge 25
23: lload 6
lconst_1
lsub
lstore 12
start local 12 24: goto 28
end local 12 25: StackMap locals:
StackMap stack:
lload 6
lstore 12
start local 12 26: goto 28
end local 12 27: StackMap locals:
StackMap stack:
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.maxValue:(I)J
lstore 12
start local 12 28: StackMap locals: long
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.lowerBound:()D
dconst_0
dcmpl
ifle 34
29: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.isNonNaN:()Z
ifeq 32
30: lconst_1
lstore 14
start local 14 31: goto 41
end local 14 32: StackMap locals:
StackMap stack:
lload 8
lconst_1
ladd
lstore 14
start local 14 33: goto 41
end local 14 StackMap locals:
StackMap stack:
34: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.upperBound:()D
ldc -Infinity
dcmpl
ifne 37
35: lload 8
lstore 14
start local 14 36: goto 41
end local 14 StackMap locals:
StackMap stack:
37: aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.upperBound:()D
dconst_0
dcmpg
ifge 40
38: lload 10
lconst_1
ladd
lstore 14
start local 14 39: goto 41
end local 14 40: StackMap locals:
StackMap stack:
lload 10
lstore 14
start local 14 41: StackMap locals: long
StackMap stack:
iload 1
lload 14
lload 12
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
areturn
end local 14 end local 12 end local 10 end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 stamp Lorg/graalvm/compiler/core/common/type/FloatStamp;
1 42 1 bits I
2 42 2 signBit J
4 5 4 exponentMask J
7 42 4 exponentMask J
8 42 6 positiveInfinity J
9 42 8 negativeInfinity J
10 42 10 negativeZero J
16 17 12 upperBound J
18 19 12 upperBound J
21 22 12 upperBound J
24 25 12 upperBound J
26 27 12 upperBound J
28 42 12 upperBound J
31 32 14 lowerBound J
33 34 14 lowerBound J
36 37 14 lowerBound J
39 40 14 lowerBound J
41 42 14 lowerBound J
MethodParameters:
Name Flags
stamp
private static org.graalvm.compiler.core.common.type.FloatStamp intToFloat(org.graalvm.compiler.core.common.type.IntegerStamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/IntegerStamp;)Lorg/graalvm/compiler/core/common/type/FloatStamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=25, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
istore 1
start local 1 1: lconst_1
iload 1
iconst_1
isub
lshl
lstore 6
start local 6 2: iload 1
bipush 64
if_icmpne 7
3: ldc Infinity
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lstore 8
start local 8 4: ldc 4.9E-324
dstore 2
start local 2 5: ldc 1.7976931348623157E308
dstore 4
start local 4 6: goto 11
end local 8 end local 4 end local 2 7: StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp int top top top top long
StackMap stack:
getstatic org.graalvm.compiler.nodes.calc.ReinterpretNode.$assertionsDisabled:Z
ifne 8
iload 1
bipush 32
if_icmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
ldc Infinity
invokestatic java.lang.Float.floatToRawIntBits:(F)I
i2l
lstore 8
start local 8 9: ldc 1.401298464324817E-45
dstore 2
start local 2 10: ldc 3.4028234663852886E38
dstore 4
start local 4 11: StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp int double double long long
StackMap stack:
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.mask:(I)J
lload 6
lload 8
lor
ldc -1
lxor
land
lstore 10
start local 10 12: lload 8
lstore 12
start local 12 13: lload 6
lload 12
lor
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.signExtend:(JI)J
lstore 14
start local 14 14: lload 6
lconst_0
lor
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.signExtend:(JI)J
lstore 16
start local 16 15: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
lload 8
land
lload 8
lcmp
ifne 17
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
lload 10
land
lconst_0
lcmp
ifeq 17
16: new org.graalvm.compiler.core.common.type.FloatStamp
dup
iload 1
ldc NaN
ldc NaN
iconst_0
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
areturn
17: StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp int double double long long long long long long
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lload 14
lcmp
ifge 23
18: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lload 16
lcmp
ifle 21
19: dload 2
dneg
dstore 18
start local 18 20: goto 41
end local 18 21: StackMap locals:
StackMap stack:
ldc -0.0
dstore 18
start local 18 22: goto 41
end local 18 StackMap locals:
StackMap stack:
23: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lconst_0
lcmp
ifge 34
24: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lload 14
lcmp
ifle 26
25: new org.graalvm.compiler.core.common.type.FloatStamp
dup
iload 1
ldc NaN
ldc NaN
iconst_0
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
areturn
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lload 14
lcmp
ifne 29
27: ldc -Infinity
dstore 18
start local 18 28: goto 41
end local 18 StackMap locals:
StackMap stack:
29: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lload 16
lcmp
ifle 32
30: dload 2
dneg
dstore 18
start local 18 31: goto 41
end local 18 32: StackMap locals:
StackMap stack:
ldc -0.0
dstore 18
start local 18 33: goto 41
end local 18 StackMap locals:
StackMap stack:
34: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lconst_0
lcmp
ifne 37
35: dconst_0
dstore 18
start local 18 36: goto 41
end local 18 StackMap locals:
StackMap stack:
37: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lload 12
lcmp
ifge 40
38: dload 4
dstore 18
start local 18 39: goto 41
end local 18 40: StackMap locals:
StackMap stack:
ldc Infinity
dstore 18
start local 18 41: StackMap locals: double
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lload 12
lcmp
ifle 43
42: new org.graalvm.compiler.core.common.type.FloatStamp
dup
iload 1
ldc NaN
ldc NaN
iconst_0
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
areturn
43: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lload 12
lcmp
ifne 46
44: ldc Infinity
dstore 20
start local 20 45: goto 53
end local 20 StackMap locals:
StackMap stack:
46: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lconst_0
lcmp
ifle 49
47: dload 2
dstore 20
start local 20 48: goto 53
end local 20 StackMap locals:
StackMap stack:
49: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lload 14
lcmp
ifle 52
50: dconst_0
dstore 20
start local 20 51: goto 53
end local 20 52: StackMap locals:
StackMap stack:
ldc -Infinity
dstore 20
start local 20 53: StackMap locals: double
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upMask:()J
lload 8
land
lload 8
lcmp
ifeq 56
54: iconst_1
istore 22
start local 22 55: goto 65
end local 22 56: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lconst_0
lcmp
ifge 57
aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lload 14
lcmp
ifle 57
iconst_1
goto 58
StackMap locals:
StackMap stack:
57: iconst_0
StackMap locals:
StackMap stack: int
58: istore 23
start local 23 59: aload 0
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lload 12
lcmp
ifle 60
iconst_1
goto 61
StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp int double double long long long long long long double double top int
StackMap stack:
60: iconst_0
StackMap locals:
StackMap stack: int
61: istore 24
start local 24 62: iload 23
ifne 63
iload 24
ifne 63
iconst_1
goto 64
StackMap locals: int
StackMap stack:
63: iconst_0
StackMap locals:
StackMap stack: int
64: istore 22
end local 24 end local 23 start local 22 65: StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp int double double long long long long long long double double int
StackMap stack:
new org.graalvm.compiler.core.common.type.FloatStamp
dup
iload 1
dload 20
dload 18
iload 22
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
areturn
end local 22 end local 20 end local 18 end local 16 end local 14 end local 12 end local 10 end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 stamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
1 66 1 bits I
5 7 2 minPositive D
10 66 2 minPositive D
6 7 4 maxPositive D
11 66 4 maxPositive D
2 66 6 signBit J
4 7 8 exponentMask J
9 66 8 exponentMask J
12 66 10 significandMask J
13 66 12 positiveInfinity J
14 66 14 negativeInfinity J
15 66 16 negativeZero J
20 21 18 upperBound D
22 23 18 upperBound D
28 29 18 upperBound D
31 32 18 upperBound D
33 34 18 upperBound D
36 37 18 upperBound D
39 40 18 upperBound D
41 66 18 upperBound D
45 46 20 lowerBound D
48 49 20 lowerBound D
51 52 20 lowerBound D
53 66 20 lowerBound D
55 56 22 nonNaN Z
65 66 22 nonNaN Z
59 65 23 negativeNaNBlock Z
62 65 24 positiveNaNBlock Z
MethodParameters:
Name Flags
stamp
private static org.graalvm.compiler.core.common.type.Stamp getReinterpretStamp(org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 2
aload 1
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 2
1: aload 1
checkcast org.graalvm.compiler.core.common.type.FloatStamp
invokestatic org.graalvm.compiler.nodes.calc.ReinterpretNode.floatToInt:(Lorg/graalvm/compiler/core/common/type/FloatStamp;)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
areturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 4
aload 1
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 4
3: aload 1
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
invokestatic org.graalvm.compiler.nodes.calc.ReinterpretNode.intToFloat:(Lorg/graalvm/compiler/core/common/type/IntegerStamp;)Lorg/graalvm/compiler/core/common/type/FloatStamp;
areturn
4: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 toStamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 5 1 fromStamp Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
toStamp
fromStamp
public boolean inferStamp();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.getValue:()Lorg/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;
invokestatic org.graalvm.compiler.nodes.calc.ReinterpretNode.getReinterpretStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.updateStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
public void generate(org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool, org.graalvm.compiler.lir.gen.ArithmeticLIRGeneratorTool);
descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;Lorg/graalvm/compiler/lir/gen/ArithmeticLIRGeneratorTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.getLIRGeneratorTool:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
aload 0
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
astore 3
start local 3 1: aload 1
aload 0
aload 2
aload 3
aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
invokeinterface org.graalvm.compiler.lir.gen.ArithmeticLIRGeneratorTool.emitReinterpret:(Lorg/graalvm/compiler/core/common/LIRKind;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
invokeinterface org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool.setResult:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
pop
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;
0 3 1 builder Lorg/graalvm/compiler/nodes/spi/NodeLIRBuilderTool;
0 3 2 gen Lorg/graalvm/compiler/lir/gen/ArithmeticLIRGeneratorTool;
1 3 3 kind Lorg/graalvm/compiler/core/common/LIRKind;
MethodParameters:
Name Flags
builder
gen
public static org.graalvm.compiler.nodes.ValueNode reinterpret(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.calc.ReinterpretNode
dup
aload 0
aload 1
invokespecial org.graalvm.compiler.nodes.calc.ReinterpretNode.<init>:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 toKind Ljdk/vm/ci/meta/JavaKind;
0 1 1 value Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
toKind
value
public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.graalvm.compiler.nodes.ValueNode
invokevirtual org.graalvm.compiler.nodes.calc.ReinterpretNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ReinterpretNode.java"
InnerClasses:
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_1:Lorg/graalvm/compiler/nodeinfo/NodeCycles;)