simpler second page physical address test
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 18 Jan 2004 21:50:04 +0000 (21:50 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 18 Jan 2004 21:50:04 +0000 (21:50 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@553 c046a42c-6fe2-441c-8c8c-71466251a162

cpu-exec.c

index 8172008..f0fa722 100644 (file)
@@ -295,8 +295,9 @@ int cpu_exec(CPUState *env1)
                             tb->cs_base == (unsigned long)cs_base && 
                             tb->flags == flags) {
                             /* check next page if needed */
-                            virt_page2 = ((unsigned long)pc + tb->size - 1) & TARGET_PAGE_MASK;
-                            if (((unsigned long)pc & TARGET_PAGE_MASK) != virt_page2) {
+                            if (tb->page_addr[1] != -1) {
+                                virt_page2 = ((unsigned long)pc & TARGET_PAGE_MASK) + 
+                                    TARGET_PAGE_SIZE;
                                 phys_page2 = get_phys_addr_code(env, virt_page2);
                                 if (tb->page_addr[1] == phys_page2)
                                     goto found;