From 707275265f188a514d1d5673ed4c8d6495304962 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Sun, 17 Jan 2016 18:27:46 -0800 Subject: cpu: remove unnecessary data ptr from O3 internal read() funcs The read() function merely initiates a memory read operation; the data doesn't arrive until the access completes and a response packet is received from the memory system. Thus there's no need to provide a data pointer; its existence is historical. Getting this pointer out of this internal o3 interface sets the stage for similar cleanup in the ExecContext interface. Also found that we were pointlessly setting the contents at this pointer on a store forward (the useful memcpy happens just a few lines below the deleted one). --- src/cpu/o3/lsq_unit.hh | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/cpu/o3/lsq_unit.hh') diff --git a/src/cpu/o3/lsq_unit.hh b/src/cpu/o3/lsq_unit.hh index 039bba8b6..b1b0aae3a 100644 --- a/src/cpu/o3/lsq_unit.hh +++ b/src/cpu/o3/lsq_unit.hh @@ -511,7 +511,7 @@ class LSQUnit { public: /** Executes the load at the given index. */ Fault read(Request *req, Request *sreqLow, Request *sreqHigh, - uint8_t *data, int load_idx); + int load_idx); /** Executes the store at the given index. */ Fault write(Request *req, Request *sreqLow, Request *sreqHigh, @@ -550,7 +550,7 @@ class LSQUnit { template Fault LSQUnit::read(Request *req, Request *sreqLow, Request *sreqHigh, - uint8_t *data, int load_idx) + int load_idx) { DynInstPtr load_inst = loadQueue[load_idx]; @@ -676,12 +676,6 @@ LSQUnit::read(Request *req, Request *sreqLow, Request *sreqHigh, // Get shift amount for offset into the store's data. int shift_amt = req->getVaddr() - storeQueue[store_idx].inst->effAddr; - if (storeQueue[store_idx].isAllZeros) - memset(data, 0, req->getSize()); - else - memcpy(data, storeQueue[store_idx].data + shift_amt, - req->getSize()); - // Allocate memory if this is the first time a load is issued. if (!load_inst->memData) { load_inst->memData = new uint8_t[req->getSize()]; -- cgit v1.2.3