mirror of
https://github.com/mii443/qemu.git
synced 2025-12-09 22:18:23 +00:00
Add tb_page_addr_t
The page tracking code in exec.c is used by both userspace and system emulation. Userspace emulation uses it to track virtual pages, and system emulation to track ram pages. Introduce a new type to hold this kind of address. Signed-off-by: Paul Brook <paul@codesourcery.com>
This commit is contained in:
@@ -125,12 +125,13 @@ static TranslationBlock *tb_find_slow(target_ulong pc,
|
||||
{
|
||||
TranslationBlock *tb, **ptb1;
|
||||
unsigned int h;
|
||||
target_ulong phys_pc, phys_page1, phys_page2, virt_page2;
|
||||
tb_page_addr_t phys_pc, phys_page1, phys_page2;
|
||||
target_ulong virt_page2;
|
||||
|
||||
tb_invalidated_flag = 0;
|
||||
|
||||
/* find translated block using physical mappings */
|
||||
phys_pc = get_phys_addr_code(env, pc);
|
||||
phys_pc = get_page_addr_code(env, pc);
|
||||
phys_page1 = phys_pc & TARGET_PAGE_MASK;
|
||||
phys_page2 = -1;
|
||||
h = tb_phys_hash_func(phys_pc);
|
||||
@@ -147,7 +148,7 @@ static TranslationBlock *tb_find_slow(target_ulong pc,
|
||||
if (tb->page_addr[1] != -1) {
|
||||
virt_page2 = (pc & TARGET_PAGE_MASK) +
|
||||
TARGET_PAGE_SIZE;
|
||||
phys_page2 = get_phys_addr_code(env, virt_page2);
|
||||
phys_page2 = get_page_addr_code(env, virt_page2);
|
||||
if (tb->page_addr[1] == phys_page2)
|
||||
goto found;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user