summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
authorAndrea Mondelli <Andrea.Mondelli@ucf.edu>2019-02-11 14:53:13 -0500
committerAndrea Mondelli <Andrea.Mondelli@ucf.edu>2019-02-27 18:12:13 +0000
commit38560efd8b78d09414c13f8bc3f1ad75119e9cfd (patch)
tree89d76ce9f30e31835d1ccfb7c6dfdd3c61762b0b /src/cpu
parentae233c7723caf0c441e251883d887c98134e0482 (diff)
downloadgem5-38560efd8b78d09414c13f8bc3f1ad75119e9cfd.tar.xz
misc: Segmentation Fault during O3PipeView execution
During the O3PipeView execution, a potential invalid iterator is used to Update the instruction storeTick field. If the store_idx iterator is the first() of the StoreQueue, the corresponding instruction is removed from the queue, leaving the iterator invalid and not usable in the TRACING_ON block. This patch uses the store_inst variable to access (and update) the instruction tick, instead of the (potential) invalid one. Change-Id: I671052ef282b9048e5239da8629b89e8afa86bf0 Reviewed-on: https://gem5-review.googlesource.com/c/16322 Maintainer: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/o3/lsq_unit_impl.hh4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cpu/o3/lsq_unit_impl.hh b/src/cpu/o3/lsq_unit_impl.hh
index 2c59d5a9e..adb24cbc5 100644
--- a/src/cpu/o3/lsq_unit_impl.hh
+++ b/src/cpu/o3/lsq_unit_impl.hh
@@ -999,8 +999,8 @@ LSQUnit<Impl>::completeStore(typename StoreQueue::iterator store_idx)
#if TRACING_ON
if (DTRACE(O3PipeView)) {
- store_idx->instruction()->storeTick =
- curTick() - store_idx->instruction()->fetchTick;
+ store_inst->storeTick =
+ curTick() - store_inst->fetchTick;
}
#endif