diff -r 0fbeeadfa8cf -r f2c65ffc2157 src/cpu/o3/lsq_unit.hh --- a/src/cpu/o3/lsq_unit.hh Mon May 16 16:36:31 2011 -0500 +++ b/src/cpu/o3/lsq_unit.hh Mon May 16 16:36:43 2011 -0500 @@ -616,7 +616,7 @@ // If the store's data has all of the data needed, we can forward. if ((store_has_lower_limit && store_has_upper_limit)) { // Get shift amount for offset into the store's data. - int shift_amt = req->getVaddr() & (store_size - 1); + int shift_amt = req->getVaddr() - storeQueue[store_idx].inst->effAddr; memcpy(data, storeQueue[store_idx].data + shift_amt, req->getSize());