]> git.proxmox.com Git - mirror_qemu.git/commitdiff
fixed c0_context in tlb exception (Ralf Baechle)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 2 Jul 2005 15:34:05 +0000 (15:34 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 2 Jul 2005 15:34:05 +0000 (15:34 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1480 c046a42c-6fe2-441c-8c8c-71466251a162

target-mips/helper.c

index 23814961421e4963c62bcf81bfae9518796f2593..aa97e8229f730c9df38036d712f4db2516a256e7 100644 (file)
@@ -263,10 +263,10 @@ int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
         }
         /* Raise exception */
         env->CP0_BadVAddr = address;
-        env->CP0_Context =
-            (env->CP0_Context & 0x00000FFF) | (address & 0xFFFFF000);
+        env->CP0_Context = (env->CP0_Context & 0xff800000) |
+                          ((address >> 8) &   0x007ffff0);
         env->CP0_EntryHi =
-            (env->CP0_EntryHi & 0x00000FFF) | (address & 0xFFFFF000);
+            (env->CP0_EntryHi & 0x000000FF) | (address & 0xFFFFF000);
         env->exception_index = exception;
         env->error_code = error_code;
         ret = 1;