public abstract class org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<OP> extends org.graalvm.compiler.nodes.calc.BinaryNode implements org.graalvm.compiler.nodes.ArithmeticOperation, org.graalvm.compiler.nodes.spi.ArithmeticLIRLowerable, org.graalvm.compiler.graph.spi.Canonicalizable$Binary<org.graalvm.compiler.nodes.ValueNode>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
super_class: org.graalvm.compiler.nodes.calc.BinaryNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.calc.BinaryArithmeticNode> 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/BinaryArithmeticNode;>;
protected final org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction<OP> getOp;
descriptor: Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction<TOP;>;
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/BinaryArithmeticNode;
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.BinaryArithmeticNode.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<OP>>, org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction<OP>, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.core.common.type.ArithmeticOpTable.forStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
invokeinterface org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
aload 4
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
aload 4
invokespecial org.graalvm.compiler.nodes.calc.BinaryNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
1: aload 0
aload 2
putfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;
2: return
end local 4 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/BinaryArithmeticNode<TOP;>;
0 3 1 c Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;
0 3 2 getOp Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction<TOP;>;
0 3 3 x Lorg/graalvm/compiler/nodes/ValueNode;
0 3 4 y Lorg/graalvm/compiler/nodes/ValueNode;
Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction<TOP;>;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
MethodParameters:
Name Flags
c
getOp
x
y
protected final org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP> getOp(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.core.common.type.ArithmeticOpTable.forStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
astore 3
start local 3 1: getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
ifne 2
aload 3
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.core.common.type.ArithmeticOpTable.forStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable.equals:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;
aload 3
invokeinterface org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp
areturn
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/BinaryArithmeticNode<TOP;>;
0 3 1 forX Lorg/graalvm/compiler/nodes/ValueNode;
0 3 2 forY Lorg/graalvm/compiler/nodes/ValueNode;
1 3 3 table Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
MethodParameters:
Name Flags
forX
forY
public final org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP> getArithmeticOp();
descriptor: ()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
Signature: ()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
public boolean isAssociative();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOp:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.isAssociative:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
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=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
aload 2
aload 3
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.tryConstantFold:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 4
start local 4 1: aload 4
ifnull 3
2: aload 4
areturn
3: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
0 4 1 tool Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
0 4 2 forX Lorg/graalvm/compiler/nodes/ValueNode;
0 4 3 forY Lorg/graalvm/compiler/nodes/ValueNode;
1 4 4 result Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
tool
forX
forY
public static <OP> org.graalvm.compiler.nodes.ConstantNode tryConstantFold(org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP>, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ConstantNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 3
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 3
1: aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldConstant:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/Constant;
astore 4
start local 4 2: aload 3
aload 4
invokestatic org.graalvm.compiler.nodes.ConstantNode.forPrimitive:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/nodes/ConstantNode;
areturn
end local 4 3: 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 4 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
0 4 1 forX Lorg/graalvm/compiler/nodes/ValueNode;
0 4 2 forY Lorg/graalvm/compiler/nodes/ValueNode;
0 4 3 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
2 3 4 ret Ljdk/vm/ci/meta/Constant;
Signature: <OP:Ljava/lang/Object;>(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/ConstantNode;
MethodParameters:
Name Flags
op
forX
forY
stamp
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=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
ifne 2
aload 1
aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 1
aload 2
aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOp:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
aload 1
aload 2
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
0 3 1 stampX Lorg/graalvm/compiler/core/common/type/Stamp;
0 3 2 stampY Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
stampX
stampY
public static org.graalvm.compiler.nodes.calc.AddNode add(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/AddNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new org.graalvm.compiler.nodes.calc.AddNode
dup
aload 1
aload 2
invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;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.calc.AddNode
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 1 1 v1 Lorg/graalvm/compiler/nodes/ValueNode;
0 1 2 v2 Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
graph
v1
v2
public static org.graalvm.compiler.nodes.calc.AddNode add(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/calc/AddNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.nodes.calc.AddNode
dup
aload 0
aload 1
invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v1 Lorg/graalvm/compiler/nodes/ValueNode;
0 1 1 v2 Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
v1
v2
public static org.graalvm.compiler.nodes.calc.MulNode mul(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/MulNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new org.graalvm.compiler.nodes.calc.MulNode
dup
aload 1
aload 2
invokespecial org.graalvm.compiler.nodes.calc.MulNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;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.calc.MulNode
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 1 1 v1 Lorg/graalvm/compiler/nodes/ValueNode;
0 1 2 v2 Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
graph
v1
v2
public static org.graalvm.compiler.nodes.calc.MulNode mul(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/calc/MulNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.nodes.calc.MulNode
dup
aload 0
aload 1
invokespecial org.graalvm.compiler.nodes.calc.MulNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v1 Lorg/graalvm/compiler/nodes/ValueNode;
0 1 1 v2 Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
v1
v2
public static org.graalvm.compiler.nodes.calc.SubNode sub(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new org.graalvm.compiler.nodes.calc.SubNode
dup
aload 1
aload 2
invokespecial org.graalvm.compiler.nodes.calc.SubNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;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.calc.SubNode
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 1 1 v1 Lorg/graalvm/compiler/nodes/ValueNode;
0 1 2 v2 Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
graph
v1
v2
public static org.graalvm.compiler.nodes.calc.SubNode sub(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/calc/SubNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.nodes.calc.SubNode
dup
aload 0
aload 1
invokespecial org.graalvm.compiler.nodes.calc.SubNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v1 Lorg/graalvm/compiler/nodes/ValueNode;
0 1 1 v2 Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
v1
v2
private static org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch findReassociate(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.graph.iterators.NodePredicate);
descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodePredicate.apply:(Lorg/graalvm/compiler/graph/Node;)Z
istore 2
start local 2 1: aload 1
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodePredicate.apply:(Lorg/graalvm/compiler/graph/Node;)Z
istore 3
start local 3 2: iload 2
ifeq 4
iload 3
ifne 4
3: getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
areturn
4: StackMap locals: int int
StackMap stack:
iload 2
ifne 6
iload 3
ifeq 6
5: getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
areturn
6: 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 7 0 binary Lorg/graalvm/compiler/nodes/calc/BinaryNode;
0 7 1 criterion Lorg/graalvm/compiler/graph/iterators/NodePredicate;
1 7 2 resultX Z
2 7 3 resultY Z
Signature: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
MethodParameters:
Name Flags
binary
criterion
public static org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<?> reassociate(org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<?>, org.graalvm.compiler.graph.iterators.NodePredicate, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=18, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
ifne 1
aload 0
aload 2
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.isAssociative:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.findReassociate:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
astore 4
start local 4 2: aload 4
ifnonnull 4
3: aload 0
areturn
4: StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch
StackMap stack:
aload 4
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getOtherValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 5: iconst_0
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpeq 15
8: aload 0
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 11
aload 5
instanceof org.graalvm.compiler.nodes.calc.SubNode
ifeq 11
9: iconst_1
istore 6
10: goto 15
StackMap locals: org.graalvm.compiler.nodes.ValueNode int int
StackMap stack:
11: aload 0
instanceof org.graalvm.compiler.nodes.calc.SubNode
ifeq 14
aload 5
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifeq 14
12: iconst_1
istore 7
13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
areturn
15: StackMap locals:
StackMap stack:
aload 5
checkcast org.graalvm.compiler.nodes.calc.BinaryNode
astore 8
start local 8 16: aload 8
aload 1
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.findReassociate:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
astore 9
start local 9 17: aload 9
ifnonnull 19
18: aload 0
areturn
19: StackMap locals: org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch
StackMap stack:
iconst_0
istore 10
start local 10 20: iconst_0
istore 11
start local 11 21: iconst_0
istore 12
start local 12 22: iconst_0
istore 13
start local 13 23: iload 6
ifeq 31
24: aload 9
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 25
iconst_1
goto 26
StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode org.graalvm.compiler.graph.iterators.NodePredicate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch org.graalvm.compiler.nodes.ValueNode int int org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch int int int int
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: istore 13
27: iload 13
ifeq 28
iconst_0
goto 29
StackMap locals:
StackMap stack:
28: iconst_1
StackMap locals:
StackMap stack: int
29: istore 10
30: goto 54
StackMap locals:
StackMap stack:
31: iload 7
ifeq 39
32: aload 4
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 33
iconst_1
goto 34
StackMap locals:
StackMap stack:
33: iconst_0
StackMap locals:
StackMap stack: int
34: dup
istore 13
istore 10
35: iload 13
ifeq 36
iconst_0
goto 37
StackMap locals:
StackMap stack:
36: iconst_1
StackMap locals:
StackMap stack: int
37: istore 12
38: goto 54
StackMap locals:
StackMap stack:
39: aload 0
instanceof org.graalvm.compiler.nodes.calc.SubNode
ifeq 54
aload 8
instanceof org.graalvm.compiler.nodes.calc.SubNode
ifeq 54
40: aload 4
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 41
iconst_1
goto 42
StackMap locals:
StackMap stack:
41: iconst_0
StackMap locals:
StackMap stack: int
42: aload 9
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 43
iconst_1
goto 44
StackMap locals:
StackMap stack: int
43: iconst_0
StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode org.graalvm.compiler.graph.iterators.NodePredicate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch org.graalvm.compiler.nodes.ValueNode int int org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch int int int int
StackMap stack: int int
44: ixor
istore 10
45: aload 4
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 46
aload 9
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 46
iconst_1
goto 47
StackMap locals:
StackMap stack:
46: iconst_0
StackMap locals:
StackMap stack: int
47: istore 11
48: aload 4
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 49
aload 9
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 49
iconst_1
goto 50
StackMap locals:
StackMap stack:
49: iconst_0
StackMap locals:
StackMap stack: int
50: istore 12
51: aload 4
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 52
aload 9
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
if_acmpne 52
iconst_1
goto 53
StackMap locals:
StackMap stack:
52: iconst_0
StackMap locals:
StackMap stack: int
53: istore 13
54: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
ifne 57
iload 12
ifeq 55
iload 13
ifne 56
StackMap locals:
StackMap stack:
55: iload 10
ifeq 57
iload 11
ifeq 57
StackMap locals:
StackMap stack:
56: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
57: StackMap locals:
StackMap stack:
aload 4
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 14
start local 14 58: aload 9
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 15
start local 15 59: aload 9
aload 8
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getOtherValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 16
start local 16 60: aload 0
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifne 61
aload 0
instanceof org.graalvm.compiler.nodes.calc.SubNode
ifeq 73
61: StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
iload 12
ifeq 64
62: aload 15
aload 14
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
astore 17
start local 17 63: goto 68
end local 17 StackMap locals:
StackMap stack:
64: iload 13
ifeq 67
65: aload 14
aload 15
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
astore 17
start local 17 66: goto 68
end local 17 67: StackMap locals:
StackMap stack:
aload 14
aload 15
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/AddNode;
astore 17
start local 17 68: StackMap locals: org.graalvm.compiler.nodes.calc.BinaryNode
StackMap stack:
iload 10
ifeq 70
69: aload 17
aload 16
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
areturn
70: StackMap locals:
StackMap stack:
iload 11
ifeq 72
71: aload 16
aload 17
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
areturn
72: StackMap locals:
StackMap stack:
aload 16
aload 17
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/AddNode;
areturn
end local 17 73: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.calc.MulNode
ifeq 75
74: aload 16
aload 14
aload 15
invokestatic org.graalvm.compiler.nodes.calc.AddNode.mul:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/MulNode;
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.mul:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/MulNode;
areturn
75: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.calc.AndNode
ifeq 77
76: new org.graalvm.compiler.nodes.calc.AndNode
dup
aload 16
new org.graalvm.compiler.nodes.calc.AndNode
dup
aload 14
aload 15
invokespecial org.graalvm.compiler.nodes.calc.AndNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokespecial org.graalvm.compiler.nodes.calc.AndNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
areturn
77: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.calc.OrNode
ifeq 79
78: new org.graalvm.compiler.nodes.calc.OrNode
dup
aload 16
new org.graalvm.compiler.nodes.calc.OrNode
dup
aload 14
aload 15
invokespecial org.graalvm.compiler.nodes.calc.OrNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokespecial org.graalvm.compiler.nodes.calc.OrNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
areturn
79: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.nodes.calc.XorNode
ifeq 81
80: new org.graalvm.compiler.nodes.calc.XorNode
dup
aload 16
new org.graalvm.compiler.nodes.calc.XorNode
dup
aload 14
aload 15
invokespecial org.graalvm.compiler.nodes.calc.XorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokespecial org.graalvm.compiler.nodes.calc.XorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
areturn
81: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 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 82 0 node Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
0 82 1 criterion Lorg/graalvm/compiler/graph/iterators/NodePredicate;
0 82 2 forX Lorg/graalvm/compiler/nodes/ValueNode;
0 82 3 forY Lorg/graalvm/compiler/nodes/ValueNode;
2 82 4 match1 Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
5 82 5 otherValue Lorg/graalvm/compiler/nodes/ValueNode;
6 82 6 addSub Z
7 82 7 subAdd Z
16 82 8 other Lorg/graalvm/compiler/nodes/calc/BinaryNode;
17 82 9 match2 Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
20 82 10 invertA Z
21 82 11 aSub Z
22 82 12 invertM1 Z
23 82 13 invertM2 Z
58 82 14 m1 Lorg/graalvm/compiler/nodes/ValueNode;
59 82 15 m2 Lorg/graalvm/compiler/nodes/ValueNode;
60 82 16 a Lorg/graalvm/compiler/nodes/ValueNode;
63 64 17 associated Lorg/graalvm/compiler/nodes/calc/BinaryNode;
66 67 17 associated Lorg/graalvm/compiler/nodes/calc/BinaryNode;
68 73 17 associated Lorg/graalvm/compiler/nodes/calc/BinaryNode;
Signature: (Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;Lorg/graalvm/compiler/graph/iterators/NodePredicate;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
MethodParameters:
Name Flags
node
criterion
forX
forY
public org.graalvm.compiler.nodes.calc.BinaryNode maybeCommuteInputs();
descriptor: ()Lorg/graalvm/compiler/nodes/calc/BinaryNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
ifne 1
aload 0
instanceof org.graalvm.compiler.graph.spi.Canonicalizable$BinaryCommutative
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 9
aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.getId:()I
aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.getId:()I
if_icmple 9
2: aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
astore 1
start local 1 3: aload 0
aload 0
getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
putfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
4: aload 0
aload 1
putfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
5: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
ifnull 9
6: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 0
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.findDuplicate:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.calc.BinaryNode
astore 2
start local 2 7: aload 2
ifnull 9
8: aload 2
areturn
end local 2 end local 1 9: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
3 9 1 tmp Lorg/graalvm/compiler/nodes/ValueNode;
7 9 2 duplicate Lorg/graalvm/compiler/nodes/calc/BinaryNode;
protected boolean shouldSwapInputs(org.graalvm.compiler.nodes.spi.NodeValueMap);
descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.hasUsagesOtherThan:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Z
istore 2
start local 2 1: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.hasUsagesOtherThan:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Z
istore 3
start local 3 2: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifne 7
iload 3
ifne 7
3: iload 2
iload 3
if_icmpne 6
4: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
instanceof org.graalvm.compiler.nodes.ValuePhiNode
ifeq 5
aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
aload 0
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 5
iconst_1
ireturn
StackMap locals: int int
StackMap stack:
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
0 8 1 nodeValueMap Lorg/graalvm/compiler/nodes/spi/NodeValueMap;
1 8 2 xHasOtherUsages Z
2 8 3 yHasOtherUsages Z
MethodParameters:
Name Flags
nodeValueMap
public org.graalvm.compiler.core.common.type.ArithmeticOpTable$Op getArithmeticOp();
descriptor: ()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$Op;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOp:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
areturn
LocalVariableTable:
Start End Slot Name Signature
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.nodes.calc.BinaryArithmeticNode.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
}
Signature: <OP:Ljava/lang/Object;>Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ArithmeticOperation;Lorg/graalvm/compiler/nodes/spi/ArithmeticLIRLowerable;Lorg/graalvm/compiler/graph/spi/Canonicalizable$Binary<Lorg/graalvm/compiler/nodes/ValueNode;>;
SourceFile: "BinaryArithmeticNode.java"
NestMembers:
org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction
InnerClasses:
public abstract BinaryOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract Op = org.graalvm.compiler.core.common.type.ArithmeticOpTable$Op of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
public abstract Binary = org.graalvm.compiler.graph.spi.Canonicalizable$Binary of org.graalvm.compiler.graph.spi.Canonicalizable
public abstract BinaryCommutative = org.graalvm.compiler.graph.spi.Canonicalizable$BinaryCommutative of org.graalvm.compiler.graph.spi.Canonicalizable
private final ReassociateMatch = org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch of org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
protected abstract SerializableBinaryFunction = org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction of org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_1:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_1:Lorg/graalvm/compiler/nodeinfo/NodeSize;)