summaryrefslogtreecommitdiff
path: root/cpu/ozone/front_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/front_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/front_end_impl.hh')
-rw-r--r--cpu/ozone/front_end_impl.hh10
1 files changed, 7 insertions, 3 deletions
diff --git a/cpu/ozone/front_end_impl.hh b/cpu/ozone/front_end_impl.hh
index 15adae9b4..ffbcf3340 100644
--- a/cpu/ozone/front_end_impl.hh
+++ b/cpu/ozone/front_end_impl.hh
@@ -503,11 +503,14 @@ FrontEnd<Impl>::processBarriers(DynInstPtr &inst)
if (serializeNext) {
inst->setSerializeBefore();
serializeNext = false;
- } else if (!inst->isSerializing()) {
+ } else if (!inst->isSerializing() &&
+ !inst->isIprAccess() &&
+ !inst->isStoreConditional()) {
return false;
}
- if (inst->isSerializeBefore() && !inst->isSerializeHandled()) {
+ if ((inst->isIprAccess() || inst->isSerializeBefore()) &&
+ !inst->isSerializeHandled()) {
DPRINTF(FE, "Serialize before instruction encountered.\n");
if (!inst->isTempSerializeBefore()) {
@@ -523,7 +526,8 @@ FrontEnd<Impl>::processBarriers(DynInstPtr &inst)
barrierInst = inst;
return true;
- } else if (inst->isSerializeAfter() && !inst->isSerializeHandled()) {
+ } else if ((inst->isStoreConditional() || inst->isSerializeAfter())
+ && !inst->isSerializeHandled()) {
DPRINTF(FE, "Serialize after instruction encountered.\n");
inst->setSerializeHandled();