src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerMulHighNode.java
equal
deleted
inserted
replaced
26 |
26 |
27 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_2; |
27 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_2; |
28 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2; |
28 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2; |
29 |
29 |
30 import org.graalvm.compiler.core.common.type.ArithmeticOpTable; |
30 import org.graalvm.compiler.core.common.type.ArithmeticOpTable; |
|
31 import org.graalvm.compiler.core.common.type.ArithmeticOpTable.BinaryOp; |
31 import org.graalvm.compiler.core.common.type.ArithmeticOpTable.BinaryOp.MulHigh; |
32 import org.graalvm.compiler.core.common.type.ArithmeticOpTable.BinaryOp.MulHigh; |
32 import org.graalvm.compiler.graph.NodeClass; |
33 import org.graalvm.compiler.graph.NodeClass; |
33 import org.graalvm.compiler.graph.spi.Canonicalizable; |
34 import org.graalvm.compiler.graph.spi.Canonicalizable; |
34 import org.graalvm.compiler.graph.spi.CanonicalizerTool; |
35 import org.graalvm.compiler.graph.spi.CanonicalizerTool; |
35 import org.graalvm.compiler.lir.gen.ArithmeticLIRGeneratorTool; |
36 import org.graalvm.compiler.lir.gen.ArithmeticLIRGeneratorTool; |
46 @NodeInfo(shortName = "*H", cycles = CYCLES_2, size = SIZE_2) |
47 @NodeInfo(shortName = "*H", cycles = CYCLES_2, size = SIZE_2) |
47 public final class IntegerMulHighNode extends BinaryArithmeticNode<MulHigh> implements Canonicalizable.BinaryCommutative<ValueNode> { |
48 public final class IntegerMulHighNode extends BinaryArithmeticNode<MulHigh> implements Canonicalizable.BinaryCommutative<ValueNode> { |
48 public static final NodeClass<IntegerMulHighNode> TYPE = NodeClass.create(IntegerMulHighNode.class); |
49 public static final NodeClass<IntegerMulHighNode> TYPE = NodeClass.create(IntegerMulHighNode.class); |
49 |
50 |
50 public IntegerMulHighNode(ValueNode x, ValueNode y) { |
51 public IntegerMulHighNode(ValueNode x, ValueNode y) { |
51 super(TYPE, ArithmeticOpTable::getMulHigh, x, y); |
52 super(TYPE, getArithmeticOpTable(x).getMulHigh(), x, y); |
|
53 } |
|
54 |
|
55 @Override |
|
56 protected BinaryOp<MulHigh> getOp(ArithmeticOpTable table) { |
|
57 return table.getMulHigh(); |
52 } |
58 } |
53 |
59 |
54 @Override |
60 @Override |
55 public void generate(NodeLIRBuilderTool nodeValueMap, ArithmeticLIRGeneratorTool gen) { |
61 public void generate(NodeLIRBuilderTool nodeValueMap, ArithmeticLIRGeneratorTool gen) { |
56 Value a = nodeValueMap.operand(getX()); |
62 Value a = nodeValueMap.operand(getX()); |