summaryrefslogtreecommitdiff
path: root/src/cpu/o3/lsq_unit.hh
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-10-23 14:32:35 -0400
committerKevin Lim <ktlim@umich.edu>2006-10-23 14:32:35 -0400
commitce4531c0794ee57c0029bc905802a7856832d941 (patch)
tree4d6c87eae2b07f350dc7aa26454e9304aec457dd /src/cpu/o3/lsq_unit.hh
parentef8b7713ca1b6120ae4e851877f2a9ce71296219 (diff)
parent4ccccfef7144d6c36acdb780395141e5d71890c1 (diff)
downloadgem5-ce4531c0794ee57c0029bc905802a7856832d941.tar.xz
Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/o3-merge/newmem --HG-- extra : convert_revision : 161c35ade82f2471e605d948dca56cfa216693fd
Diffstat (limited to 'src/cpu/o3/lsq_unit.hh')
-rw-r--r--src/cpu/o3/lsq_unit.hh9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/cpu/o3/lsq_unit.hh b/src/cpu/o3/lsq_unit.hh
index 1b207fdbc..a2e11173e 100644
--- a/src/cpu/o3/lsq_unit.hh
+++ b/src/cpu/o3/lsq_unit.hh
@@ -37,6 +37,7 @@
#include <queue>
#include "arch/faults.hh"
+#include "arch/locked_mem.hh"
#include "config/full_system.hh"
#include "base/hashmap.hh"
#include "cpu/inst_seq.hh"
@@ -510,8 +511,12 @@ LSQUnit<Impl>::read(Request *req, T &data, int load_idx)
#if FULL_SYSTEM
if (req->isLocked()) {
- cpu->lockAddr = req->getPaddr();
- cpu->lockFlag = true;
+ // Disable recording the result temporarily. Writing to misc
+ // regs normally updates the result, but this is not the
+ // desired behavior when handling store conditionals.
+ load_inst->recordResult = false;
+ TheISA::handleLockedRead(load_inst.get(), req);
+ load_inst->recordResult = true;
}
#endif