< prev index next > src/hotspot/share/opto/divnode.cpp
Print this page
}
Node* ModFloatingNode::replace_with_con(PhaseIterGVN* phase, const Type* con) {
Compile* C = phase->C;
Node* con_node = phase->makecon(con);
- CallProjections projs;
- extract_projections(&projs, false, false);
- phase->replace_node(projs.fallthrough_proj, in(TypeFunc::Control));
- if (projs.fallthrough_catchproj != nullptr) {
- phase->replace_node(projs.fallthrough_catchproj, in(TypeFunc::Control));
+ CallProjections* projs = extract_projections(false, false);
+ phase->replace_node(projs->fallthrough_proj, in(TypeFunc::Control));
+ if (projs->fallthrough_catchproj != nullptr) {
+ phase->replace_node(projs->fallthrough_catchproj, in(TypeFunc::Control));
}
- if (projs.fallthrough_memproj != nullptr) {
- phase->replace_node(projs.fallthrough_memproj, in(TypeFunc::Memory));
+ if (projs->fallthrough_memproj != nullptr) {
+ phase->replace_node(projs->fallthrough_memproj, in(TypeFunc::Memory));
}
- if (projs.catchall_memproj != nullptr) {
- phase->replace_node(projs.catchall_memproj, C->top());
+ if (projs->catchall_memproj != nullptr) {
+ phase->replace_node(projs->catchall_memproj, C->top());
}
- if (projs.fallthrough_ioproj != nullptr) {
- phase->replace_node(projs.fallthrough_ioproj, in(TypeFunc::I_O));
+ if (projs->fallthrough_ioproj != nullptr) {
+ phase->replace_node(projs->fallthrough_ioproj, in(TypeFunc::I_O));
}
- assert(projs.catchall_ioproj == nullptr, "no exceptions from floating mod");
- assert(projs.catchall_catchproj == nullptr, "no exceptions from floating mod");
- if (projs.resproj != nullptr) {
- phase->replace_node(projs.resproj, con_node);
+ assert(projs->catchall_ioproj == nullptr, "no exceptions from floating mod");
+ assert(projs->catchall_catchproj == nullptr, "no exceptions from floating mod");
+ if (projs->resproj[0] != nullptr) {
+ phase->replace_node(projs->resproj[0], con_node);
}
phase->replace_node(this, C->top());
C->remove_macro_node(this);
disconnect_inputs(C);
return nullptr;
return divmod;
}
//------------------------------match------------------------------------------
// return result(s) along with their RegMask info
- Node *DivModINode::match( const ProjNode *proj, const Matcher *match ) {
+ Node *DivModINode::match(const ProjNode *proj, const Matcher *match, const RegMask* mask) {
uint ideal_reg = proj->ideal_reg();
RegMask rm;
if (proj->_con == div_proj_num) {
rm = match->divI_proj_mask();
} else {
}
//------------------------------match------------------------------------------
// return result(s) along with their RegMask info
- Node *DivModLNode::match( const ProjNode *proj, const Matcher *match ) {
+ Node *DivModLNode::match(const ProjNode *proj, const Matcher *match, const RegMask* mask) {
uint ideal_reg = proj->ideal_reg();
RegMask rm;
if (proj->_con == div_proj_num) {
rm = match->divL_proj_mask();
} else {
return divmod;
}
//------------------------------match------------------------------------------
// return result(s) along with their RegMask info
- Node* UDivModINode::match( const ProjNode *proj, const Matcher *match ) {
+ Node* UDivModINode::match(const ProjNode* proj, const Matcher* match, const RegMask* mask) {
uint ideal_reg = proj->ideal_reg();
RegMask rm;
if (proj->_con == div_proj_num) {
rm = match->divI_proj_mask();
} else {
}
//------------------------------match------------------------------------------
// return result(s) along with their RegMask info
- Node* UDivModLNode::match( const ProjNode *proj, const Matcher *match ) {
+ Node* UDivModLNode::match( const ProjNode* proj, const Matcher* match, const RegMask* mask) {
uint ideal_reg = proj->ideal_reg();
RegMask rm;
if (proj->_con == div_proj_num) {
rm = match->divL_proj_mask();
} else {
< prev index next >