SH4: Fixed last UTLB unused and URB/URC management
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 3 Mar 2009 09:14:01 +0000 (09:14 +0000)
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 3 Mar 2009 09:14:01 +0000 (09:14 +0000)
Signed-off-by: Lionel Landwerlin <lionel.landwerlin@openwide.fr>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6675 c046a42c-6fe2-441c-8c8c-71466251a162

target-sh4/helper.c

index 6df6bde..c506086 100644 (file)
@@ -304,7 +304,7 @@ static void increment_urc(CPUState * env)
     urb = ((env->mmucr) >> 18) & 0x3f;
     urc = ((env->mmucr) >> 10) & 0x3f;
     urc++;
-    if (urc > urb || urc > (UTLB_SIZE - 1))
+    if ((urb > 0 && urc > urb) || urc > (UTLB_SIZE - 1))
        urc = 0;
     env->mmucr = (env->mmucr & 0xffff03ff) | (urc << 10);
 }