From a3bb33b257324ad9da3e656e30ba61e6f4b5497f Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Tue, 13 Feb 2018 19:01:17 +0000 Subject: cpu-o3: Don't add non-speculative mem barriers to the IQ twice There are cases where the IEW adds a non-speculative instruction to the IQ twice. This can happen if an instruction is flagged as IsMemBarrier and IsNonSpeculative. Avoid adding non-speculative instructions in the IEW to the IQ by checking if it has been added already. Change-Id: Ifcff676a451b57b2406ce00ed8dae19ed399515f Signed-off-by: Andreas Sandberg Reviewed-by: Javier Setoain Reviewed-by: Giacomo Gabrielli Reviewed-on: https://gem5-review.googlesource.com/8374 Reviewed-by: Jason Lowe-Power --- src/cpu/o3/iew_impl.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpu/o3/iew_impl.hh b/src/cpu/o3/iew_impl.hh index 80d7adc54..8270a71b5 100644 --- a/src/cpu/o3/iew_impl.hh +++ b/src/cpu/o3/iew_impl.hh @@ -1100,7 +1100,7 @@ DefaultIEW::dispatchInsts(ThreadID tid) add_to_iq = true; } - if (inst->isNonSpeculative()) { + if (add_to_iq && inst->isNonSpeculative()) { DPRINTF(IEW, "[tid:%i]: Issue: Nonspeculative instruction " "encountered, skipping.\n", tid); -- cgit v1.2.3