target/arm: Implement M-profile lazy FP state preservation
commite33cf0f8d8c9998a7616684f9d6aa0d181b88803
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 29 Apr 2019 16:36:02 +0000 (29 17:36 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 29 Apr 2019 16:36:02 +0000 (29 17:36 +0100)
tree0bc446ee91b8d04c84feb3b2ef6a916e5d5bbd62
parenta356dacf647506bccdf8ecd23574246a8bf615ac
target/arm: Implement M-profile lazy FP state preservation

The M-profile architecture floating point system supports
lazy FP state preservation, where FP registers are not
pushed to the stack when an exception occurs but are instead
only saved if and when the first FP instruction in the exception
handler is executed. Implement this in QEMU, corresponding
to the check of LSPACT in the pseudocode ExecuteFPCheck().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20190416125744.27770-24-peter.maydell@linaro.org
target/arm/cpu.h
target/arm/helper.c
target/arm/helper.h
target/arm/translate.c
target/arm/translate.h