aboutsummaryrefslogtreecommitdiff
path: root/target-mips/helper.c
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-29 02:57:19 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-29 02:57:19 +0000
commit6276c7675803abf1752b9bf5c68dd4b81dcf8fa7 (patch)
tree5ed753b78e9d3c490d548bc482f2edbcd5875513 /target-mips/helper.c
parentd951f6ff3fff1121e8b20e7655cb88b2601b61e6 (diff)
downloadqemu-6276c7675803abf1752b9bf5c68dd4b81dcf8fa7.zip
qemu-6276c7675803abf1752b9bf5c68dd4b81dcf8fa7.tar.gz
qemu-6276c7675803abf1752b9bf5c68dd4b81dcf8fa7.tar.bz2
Fix logic bug which broke TLBL/TLBS handling somewhat.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3478 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/helper.c')
-rw-r--r--target-mips/helper.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/target-mips/helper.c b/target-mips/helper.c
index 708641c..933a6ac 100644
--- a/target-mips/helper.c
+++ b/target-mips/helper.c
@@ -472,9 +472,6 @@ void do_interrupt (CPUState *env)
goto set_EPC;
case EXCP_TLBS:
cause = 3;
- goto set_EPC;
- case EXCP_THREAD:
- cause = 25;
if (env->error_code == 1 && !(env->CP0_Status & (1 << CP0St_EXL))) {
#if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64)
int R = env->CP0_BadVAddr >> 62;
@@ -488,6 +485,9 @@ void do_interrupt (CPUState *env)
#endif
offset = 0x000;
}
+ goto set_EPC;
+ case EXCP_THREAD:
+ cause = 25;
set_EPC:
if (!(env->CP0_Status & (1 << CP0St_EXL))) {
if (env->hflags & MIPS_HFLAG_BMASK) {