On 09/22/2017 11:00 AM, Peter Maydell wrote: > Secure function return happens when a non-secure function has been > called using BLXNS and so has a particular magic LR value (either > 0xfefffffe or 0xfeffffff). The function return via BX behaves > specially when the new PC value is this magic value, in the same > way that exception returns are handled. > > Adjust our BX excret guards so that they recognize the function > return magic number as well, and perform the function-return > unstacking in do_v7m_exception_exit(). > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > target/arm/internals.h | 7 +++ > target/arm/helper.c | 115 > +++++++++++++++++++++++++++++++++++++++++++++---- > target/arm/translate.c | 14 +++++- > 3 files changed, 126 insertions(+), 10 deletions(-)
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~