--- old/src/share/vm/opto/mathexactnode.cpp 2013-10-22 14:52:26.396088585 +0200 +++ new/src/share/vm/opto/mathexactnode.cpp 2013-10-22 14:52:26.292088589 +0200 @@ -31,10 +31,17 @@ #include "opto/mathexactnode.hpp" #include "opto/subnode.hpp" -MathExactNode::MathExactNode(Node* ctrl, Node* n1, Node* n2) : MultiNode(3) { +MathExactNode::MathExactNode(Node* ctrl, Node* in1) : MultiNode(2) { + init_class_id(Class_MathExact); init_req(0, ctrl); - init_req(1, n1); - init_req(2, n2); + init_req(1, in1); +} + +MathExactNode::MathExactNode(Node* ctrl, Node* in1, Node* in2) : MultiNode(3) { + init_class_id(Class_MathExact); + init_req(0, ctrl); + init_req(1, in1); + init_req(2, in2); } BoolNode* MathExactNode::bool_node() const { @@ -64,11 +71,6 @@ return ifnode->proj_out(1); } -MathExactNode::MathExactNode(Node* ctrl, Node* n1) : MultiNode(2) { - init_req(0, ctrl); - init_req(1, n1); -} - // If the MathExactNode won't overflow we have to replace the // FlagsProjNode and ProjNode that is generated by the MathExactNode Node* MathExactNode::no_overflow(PhaseGVN* phase, Node* new_result) { @@ -102,22 +104,6 @@ return new_result; } -bool MathExactNode::is_MathExactOpcode(int opcode) { - switch (opcode) { - case Op_AddExactI: - case Op_AddExactL: - case Op_SubExactI: - case Op_SubExactL: - case Op_MulExactI: - case Op_MulExactL: - case Op_NegExactI: - case Op_NegExactL: - return true; - default: - return false; - } -} - Node* MathExactINode::match(const ProjNode* proj, const Matcher* m) { uint ideal_reg = proj->ideal_reg(); RegMask rm;