Skip to content

Commit

Permalink
target-arm: Fix arm_excp_unmasked() function
Browse files Browse the repository at this point in the history
There is an error in arm_excp_unmasked() function:
bitwise operator & is used with integer and bool operands
causing an incorrect zeroed result.
The patch fixes it.

Signed-off-by: Sergey Sorokin <afarallax@yandex.ru>
Message-id: 1441209238-16881-1-git-send-email-afarallax@yandex.ru
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
  • Loading branch information
afarallax authored and pm215 committed Sep 7, 2015
1 parent 5125f9c commit 7718425
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions target-arm/cpu.h
Expand Up @@ -1520,8 +1520,8 @@ static inline bool arm_excp_unmasked(CPUState *cs, unsigned int excp_idx,
CPUARMState *env = cs->env_ptr;
unsigned int cur_el = arm_current_el(env);
bool secure = arm_is_secure(env);
uint32_t scr;
uint32_t hcr;
bool scr;
bool hcr;
bool pstate_unmasked;
int8_t unmasked = 0;

Expand All @@ -1548,7 +1548,7 @@ static inline bool arm_excp_unmasked(CPUState *cs, unsigned int excp_idx,
* set then FIQs can be masked by CPSR.F when non-secure but only
* when FIQs are only routed to EL3.
*/
scr &= !((env->cp15.scr_el3 & SCR_FW) && !hcr);
scr = scr && !((env->cp15.scr_el3 & SCR_FW) && !hcr);
pstate_unmasked = !(env->daif & PSTATE_F);
break;

Expand Down

0 comments on commit 7718425

Please sign in to comment.