OSDN Git Service

target-sh4: MMU: simplify call to tlb_set_page()
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 1 Feb 2010 19:02:23 +0000 (20:02 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Tue, 9 Feb 2010 20:08:05 +0000 (21:08 +0100)
tlb_set_page() doesn't need addresses with offset, but simply the
page aligned addresses.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-sh4/helper.c

index e7c494f..f9bf5e2 100644 (file)
@@ -464,7 +464,7 @@ static int get_physical_address(CPUState * env, target_ulong * physical,
 int cpu_sh4_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
                             int mmu_idx, int is_softmmu)
 {
-    target_ulong physical, page_offset, page_size;
+    target_ulong physical;
     int prot, ret, access_type;
 
     access_type = ACCESS_INT;
@@ -511,11 +511,8 @@ int cpu_sh4_handle_mmu_fault(CPUState * env, target_ulong address, int rw,
        return 1;
     }
 
-    page_size = TARGET_PAGE_SIZE;
-    page_offset =
-       (address - (address & TARGET_PAGE_MASK)) & ~(page_size - 1);
-    address = (address & TARGET_PAGE_MASK) + page_offset;
-    physical = (physical & TARGET_PAGE_MASK) + page_offset;
+    address &= TARGET_PAGE_MASK;
+    physical &= TARGET_PAGE_MASK;
 
     return tlb_set_page(env, address, physical, prot, mmu_idx, is_softmmu);
 }