summaryrefslogtreecommitdiff
path: root/cpu/ozone/lw_back_end_impl.hh
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-05-24 14:31:06 -0400
committerKevin Lim <ktlim@umich.edu>2006-05-24 14:31:06 -0400
commit3fe35232322daef87a0b85d7f3ca4c18330ed7c4 (patch)
tree93b91d2cf74dc9b145ffb7d09ce5ef5d3792630b /cpu/ozone/lw_back_end_impl.hh
parent16df8221ff3e1ff3cd55b237d1e9ba24f725391b (diff)
downloadgem5-3fe35232322daef87a0b85d7f3ca4c18330ed7c4.tar.xz
Support new flags now used instead of flags in decoder.isa.
cpu/ozone/front_end_impl.hh: cpu/ozone/lw_back_end_impl.hh: cpu/ozone/lw_lsq_impl.hh: Support new flags added in. --HG-- extra : convert_revision : 2e756fd1913cf600650afc39dd715d59b9b89c42
Diffstat (limited to 'cpu/ozone/lw_back_end_impl.hh')
-rw-r--r--cpu/ozone/lw_back_end_impl.hh12
1 files changed, 8 insertions, 4 deletions
diff --git a/cpu/ozone/lw_back_end_impl.hh b/cpu/ozone/lw_back_end_impl.hh
index 881d6e6b1..41b4ea24b 100644
--- a/cpu/ozone/lw_back_end_impl.hh
+++ b/cpu/ozone/lw_back_end_impl.hh
@@ -66,8 +66,9 @@ LWBackEnd<Impl>::wakeDependents(DynInstPtr &inst, bool memory_deps)
DPRINTF(BE, "Marking source reg ready [sn:%lli] in IQ\n", dep_inst->seqNum);
if (dep_inst->readyToIssue() && dep_inst->isInROB() &&
- !dep_inst->isNonSpeculative() &&
- dep_inst->memDepReady() && !dep_inst->isMemBarrier() && !dep_inst->isWriteBarrier()) {
+ !dep_inst->isNonSpeculative() && !dep_inst->isStoreConditional() &&
+ dep_inst->memDepReady() && !dep_inst->isMemBarrier() &&
+ !dep_inst->isWriteBarrier()) {
DPRINTF(BE, "Adding instruction to exeList [sn:%lli]\n",
dep_inst->seqNum);
exeList.push(dep_inst);
@@ -768,7 +769,9 @@ LWBackEnd<Impl>::dispatchInsts()
}
memBarrier = inst;
inst->setCanCommit();
- } else if (inst->readyToIssue() && !inst->isNonSpeculative()) {
+ } else if (inst->readyToIssue() &&
+ !inst->isNonSpeculative() &&
+ !inst->isStoreConditional()) {
if (inst->isMemRef()) {
LSQ.insert(inst);
@@ -803,7 +806,7 @@ LWBackEnd<Impl>::dispatchInsts()
exeList.push(inst);
}
} else {
- if (inst->isNonSpeculative()) {
+ if (inst->isNonSpeculative() || inst->isStoreConditional()) {
inst->setCanCommit();
DPRINTF(BE, "Adding non speculative instruction\n");
}
@@ -1079,6 +1082,7 @@ LWBackEnd<Impl>::commitInst(int inst_num)
// or store inst. Signal backwards that it should be executed.
if (!inst->isExecuted()) {
if (inst->isNonSpeculative() ||
+ inst->isStoreConditional() ||
inst->isMemBarrier() ||
inst->isWriteBarrier()) {
#if !FULL_SYSTEM