< 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 >