aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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: