lsq_unit.hh (8315:6173b87e7652) lsq_unit.hh (8316:6fd588813142)
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 602 unchanged lines hidden (view full) ---

611 store_size);
612 bool upper_load_has_store_part =
613 (req->getVaddr() + req->getSize()) >
614 storeQueue[store_idx].inst->effAddr;
615
616 // If the store's data has all of the data needed, we can forward.
617 if ((store_has_lower_limit && store_has_upper_limit)) {
618 // Get shift amount for offset into the store's data.
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 602 unchanged lines hidden (view full) ---

611 store_size);
612 bool upper_load_has_store_part =
613 (req->getVaddr() + req->getSize()) >
614 storeQueue[store_idx].inst->effAddr;
615
616 // If the store's data has all of the data needed, we can forward.
617 if ((store_has_lower_limit && store_has_upper_limit)) {
618 // Get shift amount for offset into the store's data.
619 int shift_amt = req->getVaddr() & (store_size - 1);
619 int shift_amt = req->getVaddr() - storeQueue[store_idx].inst->effAddr;
620
621 memcpy(data, storeQueue[store_idx].data + shift_amt,
622 req->getSize());
623
624 assert(!load_inst->memData);
625 load_inst->memData = new uint8_t[64];
626
627 memcpy(load_inst->memData,

--- 235 unchanged lines hidden ---
620
621 memcpy(data, storeQueue[store_idx].data + shift_amt,
622 req->getSize());
623
624 assert(!load_inst->memData);
625 load_inst->memData = new uint8_t[64];
626
627 memcpy(load_inst->memData,

--- 235 unchanged lines hidden ---