target-arm: fix thumb CPS
The Thumb CPS currently does not work correctly: CPSID touches more bits than the instruction wants to, and CPSIE does nothing. Fix it by passing the correct mask (the "affect" bits) and value. Signed-off-by: Rabin Vincent <rabin@rab.in>
This commit is contained in:
parent
24ebf5f31a
commit
fa26df032e
@ -8898,7 +8898,7 @@ static void disas_thumb_insn(CPUState *env, DisasContext *s)
|
|||||||
shift = CPSR_A | CPSR_I | CPSR_F;
|
shift = CPSR_A | CPSR_I | CPSR_F;
|
||||||
else
|
else
|
||||||
shift = 0;
|
shift = 0;
|
||||||
gen_set_psr_im(s, shift, 0, ((insn & 7) << 6) & shift);
|
gen_set_psr_im(s, ((insn & 7) << 6), 0, shift);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user