public final class org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode extends org.graalvm.compiler.nodes.calc.AddNode implements org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticNode
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode
super_class: org.graalvm.compiler.nodes.calc.AddNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode> TYPE;
descriptor: Lorg/graalvm/compiler/graph/NodeClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;>;
protected org.graalvm.compiler.nodes.extended.AnchoringNode anchor;
descriptor: Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
flags: (0x0004) ACC_PROTECTED
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$OptionalInput(value = org.graalvm.compiler.nodeinfo.InputType.Anchor:Lorg/graalvm/compiler/nodeinfo/InputType;)
protected final jdk.vm.ci.meta.SpeculationLog$SpeculationReason speculation;
descriptor: Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
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/replacements/nodes/arithmetic/IntegerAddExactNode;
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.replacements.nodes.arithmetic.IntegerAddExactNode.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.SpeculationLog$SpeculationReason);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getstatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
aload 1
aload 2
invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
1: aload 0
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;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.unrestricted:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.setStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
2: getstatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.$assertionsDisabled:Z
ifne 4
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;
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;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 3
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
ifne 4
StackMap locals: org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.SpeculationLog$SpeculationReason
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.speculation:Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
0 6 1 x Lorg/graalvm/compiler/nodes/ValueNode;
0 6 2 y Lorg/graalvm/compiler/nodes/ValueNode;
0 6 3 speculation Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
MethodParameters:
Name Flags
x
y
speculation
public boolean inferStamp();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
public org.graalvm.compiler.core.common.type.Stamp foldStamp(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: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=25, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 3
start local 3 1: aload 2
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 4
start local 4 2: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
istore 5
start local 5 3: getstatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.$assertionsDisabled:Z
ifne 4
iload 5
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
if_icmpeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp int
StackMap stack:
iload 5
invokestatic jdk.vm.ci.code.CodeUtil.mask:(I)J
lstore 6
start local 6 5: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upMask:()J
lxor
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upMask:()J
lxor
lor
lstore 8
start local 8 6: lload 8
aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.carryBits:(JJ)J
aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upMask:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upMask:()J
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.carryBits:(JJ)J
lxor
lor
lstore 10
start local 10 7: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
ladd
lload 10
ldc -1
lxor
land
lstore 12
start local 12 8: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
ladd
lload 10
lor
lstore 14
start local 14 9: lload 12
lload 6
land
lstore 12
10: lload 14
lload 6
land
lstore 14
11: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
iload 5
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.addOverflowsPositively:(JJI)Z
istore 20
start local 20 12: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
iload 5
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.addOverflowsPositively:(JJI)Z
istore 21
start local 21 13: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
iload 5
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.addOverflowsNegatively:(JJI)Z
istore 22
start local 22 14: aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
iload 5
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.addOverflowsNegatively:(JJI)Z
istore 23
start local 23 15: iload 20
ifeq 18
16: iload 5
invokestatic jdk.vm.ci.code.CodeUtil.maxValue:(I)J
lstore 16
start local 16 17: goto 22
end local 16 StackMap locals: org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp int long long long long long top top top top int int int int
StackMap stack:
18: iload 22
ifeq 21
19: iload 5
invokestatic jdk.vm.ci.code.CodeUtil.minValue:(I)J
lstore 16
start local 16 20: goto 22
end local 16 21: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
ladd
lload 6
land
iload 5
invokestatic jdk.vm.ci.code.CodeUtil.signExtend:(JI)J
lstore 16
start local 16 22: StackMap locals: org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp int long long long long long long top top int int int int
StackMap stack:
iload 21
ifeq 25
23: iload 5
invokestatic jdk.vm.ci.code.CodeUtil.maxValue:(I)J
lstore 18
start local 18 24: goto 29
end local 18 StackMap locals:
StackMap stack:
25: iload 23
ifeq 28
26: iload 5
invokestatic jdk.vm.ci.code.CodeUtil.minValue:(I)J
lstore 18
start local 18 27: goto 29
end local 18 28: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
aload 4
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
ladd
lload 6
land
iload 5
invokestatic jdk.vm.ci.code.CodeUtil.signExtend:(JI)J
lstore 18
start local 18 29: StackMap locals: org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp int long long long long long long long int int int int
StackMap stack:
iload 5
lload 16
lload 18
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
astore 24
start local 24 30: lload 14
aload 24
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upMask:()J
land
lstore 14
31: lload 18
lload 14
land
iload 5
invokestatic jdk.vm.ci.code.CodeUtil.signExtend:(JI)J
lstore 18
32: lload 12
aload 24
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.downMask:()J
lor
lstore 12
33: lload 16
lload 12
lor
lstore 16
34: iload 5
lload 16
lload 18
lload 12
lload 14
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
areturn
end local 24 end local 23 end local 22 end local 21 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 5 end local 4 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/replacements/nodes/arithmetic/IntegerAddExactNode;
0 35 1 stampX Lorg/graalvm/compiler/core/common/type/Stamp;
0 35 2 stampY Lorg/graalvm/compiler/core/common/type/Stamp;
1 35 3 a Lorg/graalvm/compiler/core/common/type/IntegerStamp;
2 35 4 b Lorg/graalvm/compiler/core/common/type/IntegerStamp;
3 35 5 bits I
5 35 6 defaultMask J
6 35 8 variableBits J
7 35 10 variableBitsWithCarry J
8 35 12 newDownMask J
9 35 14 newUpMask J
17 18 16 newLowerBound J
20 21 16 newLowerBound J
22 35 16 newLowerBound J
24 25 18 newUpperBound J
27 28 18 newUpperBound J
29 35 18 newUpperBound J
12 35 20 lowerOverflowsPositively Z
13 35 21 upperOverflowsPositively Z
14 35 22 lowerOverflowsNegatively Z
15 35 23 upperOverflowsNegatively Z
30 35 24 limit Lorg/graalvm/compiler/core/common/type/IntegerStamp;
MethodParameters:
Name Flags
stampX
stampY
public org.graalvm.compiler.nodes.ValueNode canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, 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
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 2
1: new org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode
dup
aload 3
aload 2
aload 0
getfield org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.speculation:Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
invokespecial org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)V
aload 1
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
3: aload 2
aload 3
invokestatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.canonicalXconstant:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 4
start local 4 4: aload 4
ifnull 10
5: aload 4
areturn
end local 4 6: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 10
7: aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lstore 4
start local 4 8: lload 4
lconst_0
lcmp
ifne 10
9: aload 2
areturn
end local 4 10: StackMap locals:
StackMap stack:
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;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
aload 3
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;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.addCanOverflow:(Lorg/graalvm/compiler/core/common/type/IntegerStamp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;)Z
ifne 12
11: new org.graalvm.compiler.nodes.calc.AddNode
dup
aload 2
aload 3
invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
aload 1
invokevirtual org.graalvm.compiler.nodes.calc.AddNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
12: StackMap locals:
StackMap stack:
aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
0 13 1 tool Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
0 13 2 forX Lorg/graalvm/compiler/nodes/ValueNode;
0 13 3 forY Lorg/graalvm/compiler/nodes/ValueNode;
4 6 4 constantNode Lorg/graalvm/compiler/nodes/ConstantNode;
8 10 4 c J
MethodParameters:
Name Flags
tool
forX
forY
private static org.graalvm.compiler.nodes.ConstantNode canonicalXconstant(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/ConstantNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 2
start local 2 1: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
astore 3
start local 3 2: aload 2
ifnull 11
aload 3
ifnull 11
3: getstatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.$assertionsDisabled:Z
ifne 4
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
aload 3
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: jdk.vm.ci.meta.JavaConstant jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 7
5: aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
aload 3
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
invokestatic java.lang.Math.addExact:(II)I
invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(I)Lorg/graalvm/compiler/nodes/ConstantNode;
6: areturn
7: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.$assertionsDisabled:Z
ifne 8
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
aload 3
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
invokestatic java.lang.Math.addExact:(JJ)J
invokestatic org.graalvm.compiler.nodes.ConstantNode.forLong:(J)Lorg/graalvm/compiler/nodes/ConstantNode;
9: areturn
10: StackMap locals:
StackMap stack: java.lang.ArithmeticException
pop
11: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 forX Lorg/graalvm/compiler/nodes/ValueNode;
0 12 1 forY Lorg/graalvm/compiler/nodes/ValueNode;
1 12 2 xConst Ljdk/vm/ci/meta/JavaConstant;
2 12 3 yConst Ljdk/vm/ci/meta/JavaConstant;
Exception table:
from to target type
4 6 10 Class java.lang.ArithmeticException
7 9 10 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
forX
forY
public org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode createSplit(org.graalvm.compiler.nodes.AbstractBeginNode, org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerExactArithmeticSplitNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactSplitNode
dup
aload 0
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 1
aload 2
invokespecial org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactSplitNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
0 1 1 next Lorg/graalvm/compiler/nodes/AbstractBeginNode;
0 1 2 deopt Lorg/graalvm/compiler/nodes/AbstractBeginNode;
MethodParameters:
Name Flags
next
deopt
public jdk.vm.ci.meta.SpeculationLog$SpeculationReason getSpeculation();
descriptor: ()Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.speculation:Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
public org.graalvm.compiler.nodes.extended.AnchoringNode getAnchor();
descriptor: ()Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.anchor:Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
public void setAnchor(org.graalvm.compiler.nodes.extended.AnchoringNode);
descriptor: (Lorg/graalvm/compiler/nodes/extended/AnchoringNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.anchor:Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
aload 1
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.updateUsagesInterface:(Lorg/graalvm/compiler/graph/NodeInterface;Lorg/graalvm/compiler/graph/NodeInterface;)V
1: aload 0
aload 1
putfield org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.anchor:Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
0 3 1 x Lorg/graalvm/compiler/nodes/extended/AnchoringNode;
MethodParameters:
Name Flags
x
public void lower(org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokestatic org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode.lower:(Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerExactArithmeticNode;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode;
0 2 1 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
MethodParameters:
Name Flags
tool
public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
checkcast org.graalvm.compiler.nodes.ValueNode
aload 3
checkcast org.graalvm.compiler.nodes.ValueNode
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerAddExactNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "IntegerAddExactNode.java"
InnerClasses:
public abstract SpeculationReason = jdk.vm.ci.meta.SpeculationLog$SpeculationReason of jdk.vm.ci.meta.SpeculationLog
public abstract OptionalInput = org.graalvm.compiler.graph.Node$OptionalInput of org.graalvm.compiler.graph.Node
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_2:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2:Lorg/graalvm/compiler/nodeinfo/NodeSize;)