mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-11 03:24:58 -06:00
target/arm: Rebuild hflags at CPSR writes
Continue 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-19-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
69d66864f7
commit
7b2625eba2
1 changed files with 3 additions and 0 deletions
|
@ -224,6 +224,7 @@ uint32_t HELPER(usat16)(CPUARMState *env, uint32_t x, uint32_t shift)
|
||||||
void HELPER(setend)(CPUARMState *env)
|
void HELPER(setend)(CPUARMState *env)
|
||||||
{
|
{
|
||||||
env->uncached_cpsr ^= CPSR_E;
|
env->uncached_cpsr ^= CPSR_E;
|
||||||
|
arm_rebuild_hflags(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Function checks whether WFx (WFI/WFE) instructions are set up to be trapped.
|
/* Function checks whether WFx (WFI/WFE) instructions are set up to be trapped.
|
||||||
|
@ -387,6 +388,8 @@ uint32_t HELPER(cpsr_read)(CPUARMState *env)
|
||||||
void HELPER(cpsr_write)(CPUARMState *env, uint32_t val, uint32_t mask)
|
void HELPER(cpsr_write)(CPUARMState *env, uint32_t val, uint32_t mask)
|
||||||
{
|
{
|
||||||
cpsr_write(env, val, mask, CPSRWriteByInstr);
|
cpsr_write(env, val, mask, CPSRWriteByInstr);
|
||||||
|
/* TODO: Not all cpsr bits are relevant to hflags. */
|
||||||
|
arm_rebuild_hflags(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write the CPSR for a 32-bit exception return */
|
/* Write the CPSR for a 32-bit exception return */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue