target/arm: v8M: Check state of exception being returned from
commitbe32116e32c3fd51c0d91fd658d534424434e659
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 4 Jul 2019 16:14:44 +0000 (4 17:14 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 4 Jul 2019 16:25:30 +0000 (4 17:25 +0100)
treeecc3d0d7210211c4cd18e0a735554157ec9f77df
parent077d7449100d824a4e9230e349099399bde3b20f
target/arm: v8M: Check state of exception being returned from

In v8M, an attempt to return from an exception which is not
active is an illegal exception return. For this purpose,
exceptions which can configurably target either Secure or
NonSecure are not considered to be active if they are
configured for the opposite security state for the one
we're trying to return from (eg attempt to return from
an NS NMI but NMI targets Secure). In the pseudocode this
is handled by IsActiveForState().

Detect this case rather than counting an active exception
possibly of the wrong security state as being sufficient.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20190617175317.27557-4-peter.maydell@linaro.org
hw/intc/armv7m_nvic.c