diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-29 02:57:19 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-29 02:57:19 +0000 |
commit | 6276c7675803abf1752b9bf5c68dd4b81dcf8fa7 (patch) | |
tree | 5ed753b78e9d3c490d548bc482f2edbcd5875513 /target-mips | |
parent | d951f6ff3fff1121e8b20e7655cb88b2601b61e6 (diff) |
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')
-rw-r--r-- | target-mips/helper.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/target-mips/helper.c b/target-mips/helper.c index 708641c42f..933a6ac41b 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) { |