summaryrefslogtreecommitdiff
path: root/src/cpu/simple/atomic.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-11-10 21:10:18 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-11-10 21:10:18 -0800
commitb8120f6c38f212acbfd246a3081842a9e3d06eb3 (patch)
tree35ccdcab4455d39a3e89c078ba2875e57ba482ab /src/cpu/simple/atomic.cc
parentbbbfdee2ed4feb5e8e448920e5d51701a2192ee1 (diff)
downloadgem5-b8120f6c38f212acbfd246a3081842a9e3d06eb3.tar.xz
Mem: Eliminate the NO_FAULT request flag.
Diffstat (limited to 'src/cpu/simple/atomic.cc')
-rw-r--r--src/cpu/simple/atomic.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/cpu/simple/atomic.cc b/src/cpu/simple/atomic.cc
index cd4f5457e..c092b5b1f 100644
--- a/src/cpu/simple/atomic.cc
+++ b/src/cpu/simple/atomic.cc
@@ -353,8 +353,14 @@ AtomicSimpleCPU::read(Addr addr, T &data, unsigned flags)
recordEvent("Uncached Read");
//If there's a fault, return it
- if (fault != NoFault)
- return fault;
+ if (fault != NoFault) {
+ if (req->isPrefetch()) {
+ return NoFault;
+ } else {
+ return fault;
+ }
+ }
+
//If we don't need to access a second cache line, stop now.
if (secondAddr <= addr)
{
@@ -531,7 +537,11 @@ AtomicSimpleCPU::write(T data, Addr addr, unsigned flags, uint64_t *res)
assert(locked);
locked = false;
}
- return fault;
+ if (fault != NoFault && req->isPrefetch()) {
+ return NoFault;
+ } else {
+ return fault;
+ }
}
/*