On Fri, 11 Oct 2019 at 16:55, Richard Henderson <richard.hender...@linaro.org> wrote: > Richard Henderson (20): > target/arm: Split out rebuild_hflags_common > target/arm: Split out rebuild_hflags_a64 > target/arm: Split out rebuild_hflags_common_32 > target/arm: Split arm_cpu_data_is_big_endian > target/arm: Split out rebuild_hflags_m32 > target/arm: Reduce tests vs M-profile in cpu_get_tb_cpu_state > target/arm: Split out rebuild_hflags_a32 > target/arm: Split out rebuild_hflags_aprofile > target/arm: Hoist XSCALE_CPAR, VECLEN, VECSTRIDE in > cpu_get_tb_cpu_state > target/arm: Simplify set of PSTATE_SS in cpu_get_tb_cpu_state > target/arm: Hoist computation of TBFLAG_A32.VFPEN > target/arm: Add arm_rebuild_hflags > target/arm: Split out arm_mmu_idx_el > target/arm: Hoist store to cs_base in cpu_get_tb_cpu_state > target/arm: Add HELPER(rebuild_hflags_{a32,a64,m32}) > target/arm: Rebuild hflags at EL changes > target/arm: Rebuild hflags at MSR writes > target/arm: Rebuild hflags at CPSR writes > target/arm: Rebuild hflags for M-profile. > target/arm: Rely on hflags correct in cpu_get_tb_cpu_state
Don't we also need to do something to rebuild the hflags for M-profile writes to the memory mapped system registers? For instance rebuild_hflags_m32() bakes in state which cares about env->v7m.ccr, which is set via nvic_writel(), but I don't see anything whereby the write to the NVIC register triggers a rebuild of the hflags value. Maybe I missed it? thanks -- PMM