summaryrefslogtreecommitdiffstats
path: root/target-cris
diff options
context:
space:
mode:
authoredgar_igl2009-01-07 13:35:08 +0100
committeredgar_igl2009-01-07 13:35:08 +0100
commit213fb478f80a493f5f25b45d7a5763c8d81ca140 (patch)
tree2fed6b814a162e31d0f53aeade1842e28fa7742b /target-cris
parentCRIS: Move operations can be optimized as arithmetic ones for cc evaluation. (diff)
downloadqemu-213fb478f80a493f5f25b45d7a5763c8d81ca140.tar.gz
qemu-213fb478f80a493f5f25b45d7a5763c8d81ca140.tar.xz
qemu-213fb478f80a493f5f25b45d7a5763c8d81ca140.zip
CRIS: NMI wakes up the core.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6200 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-cris')
-rw-r--r--target-cris/translate.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/target-cris/translate.c b/target-cris/translate.c
index ab83b66451..1dd880f4c5 100644
--- a/target-cris/translate.c
+++ b/target-cris/translate.c
@@ -2979,8 +2979,12 @@ static unsigned int dec_rfe_etc(DisasContext *dc)
{
cris_cc_mask(dc, 0);
- if (dc->op2 == 15) /* ignore halt. */
+ if (dc->op2 == 15) {
+ t_gen_mov_env_TN(halted, tcg_const_tl(1));
+ tcg_gen_movi_tl(env_pc, dc->pc + 2);
+ t_gen_raise_exception(EXCP_HLT);
return 2;
+ }
switch (dc->op2 & 7) {
case 2: