summaryrefslogtreecommitdiff
path: root/src/cpu/static_inst_fwd.hh
diff options
context:
space:
mode:
authorAlec Roelke <ar4jc@virginia.edu>2017-04-09 15:23:23 -0400
committerAlec Roelke <ar4jc@virginia.edu>2017-05-15 19:30:14 +0000
commitc8c406bc305a6bf52304d5f158f5d8def0dea51f (patch)
treee0a014c7898055ce4ca13f00fe685c9fff0dce85 /src/cpu/static_inst_fwd.hh
parent8ced1bd0b0f9890992bcf9f517df5e33839621c7 (diff)
downloadgem5-c8c406bc305a6bf52304d5f158f5d8def0dea51f.tar.xz
cpu: fix problem with forwarding and locked load
If a (regular) store is followed closely enough by a locked load that overlaps, the LSQ will forward the store's data to the locked load and never tell the cache about the locked load. As a result, the cache will not lock the address and all future store-conditional requests on that address will fail. This patch fixes that by preventing forwarding if the memory request is a locked load and adding another case to the LSQ forwarding logic that delays the locked load request if a store in the LSQ contains all or part of the data that is requested. [Merge second and last if blocks because their bodies are the same.] Change-Id: I895cc2b9570035267bdf6ae3fdc8a09049969841 Reviewed-on: https://gem5-review.googlesource.com/2400 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/cpu/static_inst_fwd.hh')
0 files changed, 0 insertions, 0 deletions