]> xenbits.xensource.com Git - qemu-xen-3.3-testing.git/commitdiff
Fix logic bug which broke TLBL/TLBS handling somewhat.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 29 Oct 2007 02:57:19 +0000 (02:57 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 29 Oct 2007 02:57:19 +0000 (02:57 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3478 c046a42c-6fe2-441c-8c8c-71466251a162

target-mips/helper.c

index 708641c42ff9efe328fe691301249e8b6d8d63e4..933a6ac41b08905bed24228996cef4f4ef4f9adf 100644 (file)
@@ -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) {