diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2019-10-23 11:00:49 -0400 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2019-10-24 17:16:28 +0100 |
commit | a8a79c7a078a3e55b47d1163915f2ba9a5b1fb63 (patch) | |
tree | 924d4dd046f25d030506f4fb0fe357da9cfcc1a7 /target/arm/helper.c | |
parent | 14f3c58826dff69e7244ec288b13b9dbbb1d16d3 (diff) |
target/arm: Rebuild hflags at EL changes
Begin setting, but not relying upon, env->hflags.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20191023150057.25731-17-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/helper.c')
-rw-r--r-- | target/arm/helper.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/target/arm/helper.c b/target/arm/helper.c index b2d701cf00..aae7b62458 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -7998,6 +7998,7 @@ static void take_aarch32_exception(CPUARMState *env, int new_mode, env->regs[14] = env->regs[15] + offset; } env->regs[15] = newpc; + arm_rebuild_hflags(env); } static void arm_cpu_do_interrupt_aarch32_hyp(CPUState *cs) @@ -8345,6 +8346,7 @@ static void arm_cpu_do_interrupt_aarch64(CPUState *cs) pstate_write(env, PSTATE_DAIF | new_mode); env->aarch64 = 1; aarch64_restore_sp(env, new_el); + helper_rebuild_hflags_a64(env, new_el); env->pc = addr; |