src/share/vm/opto/mathexactnode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/mathexactnode.cpp

src/share/vm/opto/mathexactnode.cpp

Print this page
rev 5514 : 8026844: Various Math functions needs intrinsification
Reviewed-by: duke
rev 5515 : [mq]: fixes

*** 29,42 **** #include "opto/machnode.hpp" #include "opto/matcher.hpp" #include "opto/mathexactnode.hpp" #include "opto/subnode.hpp" ! MathExactNode::MathExactNode(Node* ctrl, Node* n1, Node* n2) : MultiNode(3) { init_req(0, ctrl); ! init_req(1, n1); ! init_req(2, n2); } BoolNode* MathExactNode::bool_node() const { Node* flags = flags_node(); BoolNode* boolnode = flags->unique_out()->as_Bool(); --- 29,49 ---- #include "opto/machnode.hpp" #include "opto/matcher.hpp" #include "opto/mathexactnode.hpp" #include "opto/subnode.hpp" ! MathExactNode::MathExactNode(Node* ctrl, Node* in1) : MultiNode(2) { ! init_class_id(Class_MathExact); init_req(0, ctrl); ! 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 { Node* flags = flags_node(); BoolNode* boolnode = flags->unique_out()->as_Bool();
*** 62,76 **** return ifnode->proj_out(0); } 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) { PhaseIterGVN* igvn = phase->is_IterGVN(); if (igvn) { --- 69,78 ----
*** 100,125 **** } } 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; if (proj->_con == result_proj_node) { rm = m->mathExactI_result_proj_mask(); --- 102,111 ----
src/share/vm/opto/mathexactnode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File