OSDN Git Service

target-arm: Stop underdecoding ARM946 PRBS registers
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 20 Feb 2014 10:35:52 +0000 (10:35 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 20 Feb 2014 10:35:52 +0000 (10:35 +0000)
commite508a92b621c7160122e99d3754e568f2b8e255e
treedf7bf54b614f2b6c5fc55e245a199f947c8abdcf
parent626187d86b037c89367f2f94785717b75e0e4440
target-arm: Stop underdecoding ARM946 PRBS registers

The ARM946 has 8 PRBS (protection region base and size) registers.
Currently we implement these with a CP_ANY reginfo; however this
underdecodes (since there are 16 possible values of CRm but only
8 registers) and we catch the invalid values in the read and
write functions. However this causes issues with migration since
we only migrate the first of a wildcard register set, so we only
migrate c6_region[0]. It also makes it awkward to pull reginfo
access checks out into their own function.

Avoid all these problems by just defining separate reginfo structs
for each of the 8 registers; this also lets us avoid having any
read or write functions and will result in more efficient direct
field accesses from generated code.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target-arm/helper.c