OSDN Git Service

target/arm: ensure we use current exception state after SCR update
authorAlex Bennée <alex.bennee@linaro.org>
Thu, 12 Dec 2019 11:47:34 +0000 (11:47 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 16 Dec 2019 10:52:58 +0000 (10:52 +0000)
commitf80741d107673f162e3b097fc76a1590036cc9d1
tree3df13acac91a2fd4aa12312fc3216f55a21102f0
parentb8b69f4c45894ea05a9c334e76178679ec084565
target/arm: ensure we use current exception state after SCR update

A write to the SCR can change the effective EL by droppping the system
from secure to non-secure mode. However if we use a cached current_el
from before the change we'll rebuild the flags incorrectly. To fix
this we introduce the ARM_CP_NEWEL CP flag to indicate the new EL
should be used when recomputing the flags.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20191212114734.6962-1-alex.bennee@linaro.org
Cc: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20191209143723.6368-1-alex.bennee@linaro.org>
Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/cpu.h
target/arm/helper.c
target/arm/helper.h
target/arm/translate.c