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:
Rabin Vincent authored and Paul Brook committed 2010-02-19 13:38:32 +00:00
1 parent 24ebf5f31a
commit fa26df032e
1 file changed
+1 -1
+1 -1
View File
@@ -8898,7 +8898,7 @@ static void disas_thumb_insn(CPUState *env, DisasContext *s)
shift = CPSR_A | CPSR_I | CPSR_F;
else
shift = 0;
gen_set_psr_im(s, shift, 0, ((insn & 7) << 6) & shift);
gen_set_psr_im(s, ((insn & 7) << 6), 0, shift);
}
break;