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