OSDN Git Service

target/arm: Restore M-profile CONTROL.SPSEL before any tailchaining
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 14 Aug 2018 16:17:22 +0000 (17:17 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 14 Aug 2018 16:17:22 +0000 (17:17 +0100)
commit89b1fec193b81b6ad0bd2975f2fa179980cc722e
treebb2e45ecc22625b93f969f3a47224df915db155b
parentb8109608bc6f3337298d44ac4369bf0bc8c3a1e4
target/arm: Restore M-profile CONTROL.SPSEL before any tailchaining

On exception return for M-profile, we must restore the CONTROL.SPSEL
bit from the EXCRET value before we do any kind of tailchaining,
including for the derived exceptions on integrity check failures.
Otherwise we will give the guest an incorrect EXCRET.SPSEL value on
exception entry for the tailchained exception.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180720145647.8810-4-peter.maydell@linaro.org
target/arm/helper.c