< prev index next >

src/share/vm/opto/graphKit.cpp

Print this page

        

@@ -4332,18 +4332,14 @@
   guarantee(is_ptr_aligned(heap_base, ShenandoahHeapRegion::RegionSizeBytes), "sanity");
 
   Node* magic_con = MakeConX((jlong) matrix->matrix_addr() - ((jlong) heap_base >> rs) * (stride + 1));
 
   // Compute addr part
+  // TODO: Might be worthwhile to change this to shift + mask
   Node* adr_idx = _gvn.transform(new CastP2XNode(control(), adr));
-  if (is_power_of_2(stride)) {
-    // TODO: Apparently, C2 cannot perform peephole opt like this.
-    adr_idx = _gvn.transform(new URShiftXNode(adr_idx, intcon(rs - log2_intptr(stride))));
-  } else {
     adr_idx = _gvn.transform(new URShiftXNode(adr_idx, intcon(rs)));
     adr_idx = _gvn.transform(new MulXNode(adr_idx, MakeConX(stride)));
-  }
 
   // Compute new_val part
   Node* val_idx = _gvn.transform(new CastP2XNode(control(), not_null_val));
   val_idx = _gvn.transform(new URShiftXNode(val_idx, intcon(rs)));
 
< prev index next >