From: Peter Maydell Date: Tue, 3 Mar 2020 17:49:48 +0000 (+0000) Subject: target/arm: Update hflags in trans_CPS_v7m() X-Git-Tag: v5.0.0-rc0~37^2~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ea9e6583b0778568ba4c6e749f2848291e4a9b8;p=thirdparty%2Fqemu.git target/arm: Update hflags in trans_CPS_v7m() For M-profile CPUs, the FAULTMASK value affects the CPU's MMU index (it changes the NegPri bit). We update the hflags after calls to the v7m_msr helper in trans_MSR_v7m() but forgot to do so in trans_CPS_v7m(). Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200303174950.3298-3-peter.maydell@linaro.org --- diff --git a/target/arm/translate.c b/target/arm/translate.c index 6259064ea7c..7f0154194cf 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -10590,7 +10590,7 @@ static bool trans_CPS(DisasContext *s, arg_CPS *a) static bool trans_CPS_v7m(DisasContext *s, arg_CPS_v7m *a) { - TCGv_i32 tmp, addr; + TCGv_i32 tmp, addr, el; if (!arm_dc_feature(s, ARM_FEATURE_M)) { return false; @@ -10613,6 +10613,9 @@ static bool trans_CPS_v7m(DisasContext *s, arg_CPS_v7m *a) gen_helper_v7m_msr(cpu_env, addr, tmp); tcg_temp_free_i32(addr); } + el = tcg_const_i32(s->current_el); + gen_helper_rebuild_hflags_m32(cpu_env, el); + tcg_temp_free_i32(el); tcg_temp_free_i32(tmp); gen_lookup_tb(s); return true;