< prev index next >

src/hotspot/share/opto/divnode.cpp

Print this page
@@ -1614,29 +1614,28 @@
  }
  
  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;

@@ -1692,11 +1691,11 @@
    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 {

@@ -1707,11 +1706,11 @@
  }
  
  
  //------------------------------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 {

@@ -1745,11 +1744,11 @@
    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 {

@@ -1760,11 +1759,11 @@
  }
  
  
  //------------------------------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 >