summaryrefslogtreecommitdiff
path: root/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'cpu')
-rw-r--r--cpu/base_cpu.hh3
-rw-r--r--cpu/exec_context.hh13
-rw-r--r--cpu/exetrace.hh13
-rw-r--r--cpu/simple_cpu/simple_cpu.cc4
4 files changed, 9 insertions, 24 deletions
diff --git a/cpu/base_cpu.hh b/cpu/base_cpu.hh
index 5946ced2f..e5d9df6de 100644
--- a/cpu/base_cpu.hh
+++ b/cpu/base_cpu.hh
@@ -120,9 +120,6 @@ class BaseCPU : public SimObject
System *system;
#endif
- virtual bool filterThisInstructionPrefetch(int thread_number,
- short asid, Addr prefetchTarget) const { return true; }
-
/**
* Return pointer to CPU's branch predictor (NULL if none).
* @return Branch predictor pointer.
diff --git a/cpu/exec_context.hh b/cpu/exec_context.hh
index ddfc53684..4a2688f1c 100644
--- a/cpu/exec_context.hh
+++ b/cpu/exec_context.hh
@@ -218,7 +218,7 @@ class ExecContext
cregs = &req->xc->regs.miscRegs;
if (req->flags & UNCACHEABLE) {
- // Don't update result register (see machine.def)
+ // Don't update result register (see stq_c in isa_desc)
req->result = 2;
req->xc->storeCondFailures = 0;//Needed? [RGD]
} else {
@@ -239,12 +239,11 @@ class ExecContext
}
}
- // Need to clear any locked flags on other proccessors for this
- // address
- // Only do this for succsful Store Conditionals and all other
- // stores (WH64?)
- // Unsuccesful Store Conditionals would have returned above,
- // and wouldn't fall through
+ // Need to clear any locked flags on other proccessors for
+ // this address. Only do this for succsful Store Conditionals
+ // and all other stores (WH64?). Unsuccessful Store
+ // Conditionals would have returned above, and wouldn't fall
+ // through.
for (int i = 0; i < system->xcvec.size(); i++){
cregs = &system->xcvec[i]->regs.miscRegs;
if ((cregs->lock_addr & ~0xf) == (req->paddr & ~0xf)) {
diff --git a/cpu/exetrace.hh b/cpu/exetrace.hh
index 8e2ea6221..d05dbe0cd 100644
--- a/cpu/exetrace.hh
+++ b/cpu/exetrace.hh
@@ -43,19 +43,6 @@ class BaseCPU;
namespace Trace {
-#if 0
- static const FlagVec ALL = ULL(0x1);
- static const FlagVec FULL = ULL(0x2);
- static const FlagVec SYMBOLS = ULL(0x4);
- static const FlagVec EXTENDED = ULL(0x8);
- static const FlagVec BRANCH_TAKEN = ULL(0x10);
- static const FlagVec BRANCH_NOTTAKEN = ULL(0x20);
- static const FlagVec CALLPAL = ULL(0x40);
- static const FlagVec SPECULATIVE = ULL(0x100);
- static const FlagVec OMIT_COUNT = ULL(0x200);
- static const FlagVec INCLUDE_THREAD_NUM = ULL(0x400);
-#endif
-
class InstRecord : public Record
{
protected:
diff --git a/cpu/simple_cpu/simple_cpu.cc b/cpu/simple_cpu/simple_cpu.cc
index 28009b7f0..20790bfb6 100644
--- a/cpu/simple_cpu/simple_cpu.cc
+++ b/cpu/simple_cpu/simple_cpu.cc
@@ -192,8 +192,10 @@ SimpleCPU::SimpleCPU(const string &_name, Process *_process,
memReq = new MemReq();
memReq->xc = xc;
memReq->asid = 0;
+ memReq->data = new uint8_t[64];
numInst = 0;
+ numLoad = 0;
last_idle = 0;
lastIcacheStall = 0;
lastDcacheStall = 0;
@@ -406,7 +408,7 @@ SimpleCPU::write(T data, Addr addr, unsigned flags, uint64_t *res)
if (fault == No_Fault && dcacheInterface) {
memReq->cmd = Write;
- memReq->data = (uint8_t *)&data;
+ memcpy(memReq->data,(uint8_t *)&data,memReq->size);
memReq->completionEvent = NULL;
memReq->time = curTick;
memReq->flags &= ~UNCACHEABLE;