summaryrefslogtreecommitdiff
path: root/cpu/ozone/lw_lsq.hh
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-04-24 17:10:06 -0400
committerKevin Lim <ktlim@umich.edu>2006-04-24 17:10:06 -0400
commite704960c80033dd008907caa7c24742a1020d302 (patch)
tree9a1b231394df98bbe1f16a3e0812219ed07bb0d1 /cpu/ozone/lw_lsq.hh
parent676afbe2c729575f3468d4ae0aad31c5ac382ab8 (diff)
downloadgem5-e704960c80033dd008907caa7c24742a1020d302.tar.xz
Updates to Ozone model for quiesce, store conditionals.
--HG-- extra : convert_revision : 72ddd75ad0b5783aca9484e7d178c2915ee8e355
Diffstat (limited to 'cpu/ozone/lw_lsq.hh')
-rw-r--r--cpu/ozone/lw_lsq.hh25
1 files changed, 16 insertions, 9 deletions
diff --git a/cpu/ozone/lw_lsq.hh b/cpu/ozone/lw_lsq.hh
index 2b2c25b58..eb9886244 100644
--- a/cpu/ozone/lw_lsq.hh
+++ b/cpu/ozone/lw_lsq.hh
@@ -43,7 +43,7 @@
//#include "mem/page_table.hh"
#include "sim/sim_object.hh"
-class PageTable;
+//class PageTable;
/**
* Class that implements the actual LQ and SQ for each specific thread.
@@ -115,7 +115,7 @@ class OzoneLWLSQ {
{ be = be_ptr; }
/** Sets the page table pointer. */
- void setPageTable(PageTable *pt_ptr);
+// void setPageTable(PageTable *pt_ptr);
/** Ticks the LSQ unit, which in this case only resets the number of
* used cache ports.
@@ -243,7 +243,7 @@ class OzoneLWLSQ {
MemInterface *dcacheInterface;
/** Pointer to the page table. */
- PageTable *pTable;
+// PageTable *pTable;
public:
struct SQEntry {
@@ -562,6 +562,19 @@ OzoneLWLSQ<Impl>::read(MemReqPtr &req, T &data, int load_idx)
// If there's no forwarding case, then go access memory
+ DPRINTF(OzoneLSQ, "Doing functional access for inst PC %#x\n",
+ inst->readPC());
+
+
+ // Setup MemReq pointer
+ req->cmd = Read;
+ req->completionEvent = NULL;
+ req->time = curTick;
+ assert(!req->data);
+ req->data = new uint8_t[64];
+ Fault fault = cpu->read(req, data);
+ memcpy(req->data, &data, sizeof(T));
+
++usedPorts;
// if we have a cache, do cache access too
@@ -582,12 +595,6 @@ OzoneLWLSQ<Impl>::read(MemReqPtr &req, T &data, int load_idx)
"vaddr:%#x flags:%i\n",
inst->readPC(), req->paddr, req->vaddr, req->flags);
- // Setup MemReq pointer
- req->cmd = Read;
- req->completionEvent = NULL;
- req->time = curTick;
- assert(!req->data);
- req->data = new uint8_t[64];
assert(!req->completionEvent);
req->completionEvent =