summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYongbok Kim <yongbok.kim@mips.com>2018-08-02 16:16:38 +0200
committerAleksandar Markovic <amarkovic@wavecomp.com>2018-08-24 17:51:59 +0200
commit26324ded91a5ad08a5de8f32b8ed5e5e243154cf (patch)
treedba3556b1ed54f58df9eac79e4376fa0e2ced6ef
parent7a5f784aa215df6bf5d674b4003f8df43bf3b2d4 (diff)
downloadfocaccia-qemu-26324ded91a5ad08a5de8f32b8ed5e5e243154cf.tar.gz
focaccia-qemu-26324ded91a5ad08a5de8f32b8ed5e5e243154cf.zip
target/mips: Fix ERET/ERETNC behavior related to ADEL exception
Fix ERET/ERETNC so that ADEL exception can be raised.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Signed-off-by: Yongbok Kim <yongbok.kim@mips.com>
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
-rw-r--r--target/mips/op_helper.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target/mips/op_helper.c b/target/mips/op_helper.c
index b3eef9f1e2..c148b310cd 100644
--- a/target/mips/op_helper.c
+++ b/target/mips/op_helper.c
@@ -2427,10 +2427,12 @@ void helper_eretnc(CPUMIPSState *env)
 void helper_deret(CPUMIPSState *env)
 {
     debug_pre_eret(env);
-    set_pc(env, env->CP0_DEPC);
 
     env->hflags &= ~MIPS_HFLAG_DM;
     compute_hflags(env);
+
+    set_pc(env, env->CP0_DEPC);
+
     debug_post_eret(env);
 }
 #endif /* !CONFIG_USER_ONLY */