arch-arm: Do not squash table walks if translation is partial

As partial translations have been introduced we cannot just
rely on checking if there is a valid translation when looking
for translations to squash.
The translation has to be complete as well.

This is fixing realview-o3-checker regression

Change-Id: I1ad42bd6172207a72f53b7a843c323c0eea88f06
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/54043
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Giacomo Travaglini
2021-12-12 14:59:27 +00:00
parent fcb544d569
commit ec891adca9

View File

@@ -533,7 +533,8 @@ TableWalker::processWalkWrapper()
unsigned num_squashed = 0;
ThreadContext *tc = currState->tc;
while ((num_squashed < numSquashable) && currState &&
(currState->transState->squashed() || te)) {
(currState->transState->squashed() ||
(te && !te->partial))) {
pendingQueue.pop_front();
num_squashed++;
stats.squashedBefore++;