diff options
author | Jordi Vaquero <jordi.vaquero@metempsy.com> | 2019-08-06 03:45:06 +0200 |
---|---|---|
committer | Jordi Vaquero <jordi.vaquero@metempsy.com> | 2019-08-07 17:39:51 +0000 |
commit | fb9038ed23dd36b2aaa855932a4aabb015f423e9 (patch) | |
tree | 6ccd1c7cd82de1acd3a5f1057b80f4bc8aa6210b | |
parent | 7cb1010bdedb613b06fcf2cb582e14c57d1d794f (diff) | |
download | gem5-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>
-rw-r--r-- | src/cpu/o3/inst_queue_impl.hh | 1 |
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())); |