summaryrefslogtreecommitdiff
path: root/src/cpu/base.cc
diff options
context:
space:
mode:
authorGeoffrey Blake <Geoffrey.Blake@arm.com>2014-03-07 15:56:23 -0500
committerGeoffrey Blake <Geoffrey.Blake@arm.com>2014-03-07 15:56:23 -0500
commitc4a8e5c36cbc30feee6ecd5c706e3275301b25ef (patch)
tree6df832ed4d134b38286073dd488122e136e34613 /src/cpu/base.cc
parente88cffb30a808bcfe30858167ae704ca890c72df (diff)
downloadgem5-c4a8e5c36cbc30feee6ecd5c706e3275301b25ef.tar.xz
arm: Handle functional TLB walks properly
The table walker code currently accounts for two types of walks, Atomic and Timing, and treats them differently. Atomic walks keep a single instance of WalkerState around for all walks to use in currState. Timing mode keeps a queue of in-flight WalkerStates and maintains currState as NULL between walks. If a functional walk is done during Timing mode, it is treated as an atomic walk and either creates a persistent WalkerState if in between Timing walks, or stomps an existing currState for an in-progress Timing walk. This patch distinguishes functional walks as being able to exist at any time and sets up a temporary WalkerState for its exclusive use and then cleans up when finished, leaving any in progress Atomic or Timing walks undisturbed.
Diffstat (limited to 'src/cpu/base.cc')
0 files changed, 0 insertions, 0 deletions