diff options
author | Gabor Dozsa <gabor.dozsa@arm.com> | 2019-02-27 17:26:56 +0000 |
---|---|---|
committer | Giacomo Gabrielli <giacomo.gabrielli@arm.com> | 2019-07-27 20:51:31 +0000 |
commit | 46da8fb805407cdc224abe788e8c666f3b0dadd1 (patch) | |
tree | 38368de3852a7263d84e6b7a355cc1485bd6a5f8 /src/cpu/o3/lsq.hh | |
parent | 7652b2f12c0acdc22d29deb4f786364c80c8528f (diff) | |
download | gem5-46da8fb805407cdc224abe788e8c666f3b0dadd1.tar.xz |
cpu: Add first-/non-faulting load support to Minor and O3
Some architectures allow masking faults of memory load instructions in
some specific circumstances (e.g. first-faulting and non-faulting
loads in Arm SVE). This patch adds support for such loads in the Minor
and O3 CPU models.
Change-Id: I264a81a078f049127779aa834e89f0e693ba0bea
Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19178
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/cpu/o3/lsq.hh')
-rw-r--r-- | src/cpu/o3/lsq.hh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cpu/o3/lsq.hh b/src/cpu/o3/lsq.hh index 84f1411a5..6f7820113 100644 --- a/src/cpu/o3/lsq.hh +++ b/src/cpu/o3/lsq.hh @@ -226,6 +226,7 @@ class LSQ Complete, Squashed, Fault, + PartialFault, }; State _state; LSQSenderState* _senderState; @@ -564,6 +565,19 @@ class LSQ return flags.isSet(Flag::Sent); } + bool + isPartialFault() + { + return _state == State::PartialFault; + } + + bool + isMemAccessRequired() + { + return (_state == State::Request || + (isPartialFault() && isLoad())); + } + /** * The LSQ entry is cleared */ |