diff -ur qemu-snapshot-2008-04-01_05/target-arm/translate.c qemu-snapshot-2008-04-01_05-patch1/target-arm/translate.c --- qemu-snapshot-2008-04-01_05/target-arm/translate.c 2008-04-01 04:11:11.000000000 +0200 +++ qemu-snapshot-2008-04-01_05-patch1/target-arm/translate.c 2008-04-12 23:12:16.000000000 +0200 @@ -6435,8 +6435,8 @@ switch (op) { case 0: /* msr cpsr. */ if (IS_M(env)) { + gen_movl_T0_reg(s, rn); gen_op_v7m_msr_T0(insn & 0xff); - gen_movl_reg_T0(s, rn); gen_lookup_tb(s); break; }