summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
authorJordi Vaquero <jordi.vaquero@metempsy.com>2019-08-06 03:45:06 +0200
committerJordi Vaquero <jordi.vaquero@metempsy.com>2019-08-07 17:39:51 +0000
commitfb9038ed23dd36b2aaa855932a4aabb015f423e9 (patch)
tree6ccd1c7cd82de1acd3a5f1057b80f4bc8aa6210b /src/cpu
parent7cb1010bdedb613b06fcf2cb582e14c57d1d794f (diff)
downloadgem5-fb9038ed23dd36b2aaa855932a4aabb015f423e9.tar.xz
cpu-o3: fix atomic instructions non-speculative
Fix problem with O3 and AMO instructions. At initial stages amo instruction is considered a type of non-speculative store. After the instruction has been commited and during the squash step, acquire_release version of the AMO operation is considered speculative, that differents results in an assert fault. This fix ensures that AMO instructions are always considered non-speculative, during early stages and during squas/removal of the instruction. Change-Id: Ia0c5fbb9dc44a9991337b57eb759b1ed08e4149e Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19815 Maintainer: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/o3/inst_queue_impl.hh1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/cpu/o3/inst_queue_impl.hh b/src/cpu/o3/inst_queue_impl.hh
index c3e3fdf32..f3362f216 100644
--- a/src/cpu/o3/inst_queue_impl.hh
+++ b/src/cpu/o3/inst_queue_impl.hh
@@ -1262,7 +1262,6 @@ InstructionQueue<Impl>::doSquash(ThreadID tid)
bool is_acq_rel = squashed_inst->isMemBarrier() &&
(squashed_inst->isLoad() ||
- squashed_inst->isAtomic() ||
(squashed_inst->isStore() &&
!squashed_inst->isStoreConditional()));