]> git.proxmox.com Git - qemu.git/commitdiff
mips cleanup (Thiemo Seufer)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 22 May 2006 22:03:52 +0000 (22:03 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 22 May 2006 22:03:52 +0000 (22:03 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1934 c046a42c-6fe2-441c-8c8c-71466251a162

cpu-exec.c
target-mips/helper.c

index 8a585c1066e11e960b7d07d7b3871ef976d4250d..b6df3bef18de4274df79523d032ff4591c89700e 100644 (file)
@@ -561,6 +561,8 @@ int cpu_exec(CPUState *env1)
 #elif defined(TARGET_SH4)
                    /* XXXXX */
 #endif
+                   /* Don't use the cached interupt_request value,
+                      do_interrupt may have updated the EXITTB flag. */
                     if (env->interrupt_request & CPU_INTERRUPT_EXITTB) {
                         env->interrupt_request &= ~CPU_INTERRUPT_EXITTB;
                         /* ensure that no TB jump will be modified as
index 752ee72750e1156e00115b9a74547a1c72c1f84d..d3c64bb7e55d06b09cc86b6d28af584915b0e842 100644 (file)
@@ -219,7 +219,6 @@ int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
                 exception = EXCP_TLBS;
             else
                 exception = EXCP_TLBL;
-            error_code = 0;
             break;
         case -4:
             /* TLB match but 'D' bit is cleared */
@@ -350,7 +349,6 @@ void do_interrupt (CPUState *env)
         cause = 4;
         goto set_EPC;
     case EXCP_TLBL:
-    case EXCP_TLBF:
         cause = 2;
         if (env->error_code == 1 && !(env->hflags & MIPS_HFLAG_EXL))
             offset = 0x000;