diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-02-28 12:08:18 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-02-28 12:08:18 +0000 |
commit | 39ae2474e337247e5930e8be783b689adc9f6215 (patch) | |
tree | d287dd2efe1963efd8b4de11d4cbf6ff8fac4a07 /target/arm/translate.c | |
parent | 14790f730a9b7da026f5562505d1004f67abebf5 (diff) | |
download | qemu-39ae2474e337247e5930e8be783b689adc9f6215.zip qemu-39ae2474e337247e5930e8be783b689adc9f6215.tar.gz qemu-39ae2474e337247e5930e8be783b689adc9f6215.tar.bz2 |
armv7m: Extract "exception taken" code into functions
Extract the code from the tail end of arm_v7m_do_interrupt() which
enters the exception handler into a pair of utility functions
v7m_exception_taken() and v7m_push_stack(), which correspond roughly
to the pseudocode PushStack() and ExceptionTaken().
This also requires us to move the arm_v7m_load_vector() utility
routine up so we can call it.
Handling illegal exception returns has some cases where we want to
take a UsageFault either on an existing stack frame or with a new
stack frame but with a specific LR value, so we want to be able to
call these without having to go via arm_v7m_cpu_do_interrupt().
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Diffstat (limited to 'target/arm/translate.c')
0 files changed, 0 insertions, 0 deletions