src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerMulHighNode.java
changeset 58533 46b0b7fe255c
parent 54084 84f10bbf993f
equal deleted inserted replaced
58532:b4f2e13d20ea 58533:46b0b7fe255c
    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());