Revision c2f07f81 exec.c
b/exec.c | ||
---|---|---|
1003 | 1003 |
#if defined(TARGET_HAS_ICE) |
1004 | 1004 |
static void breakpoint_invalidate(CPUState *env, target_ulong pc) |
1005 | 1005 |
{ |
1006 |
target_ulong phys_addr; |
|
1006 |
target_ulong addr, pd; |
|
1007 |
ram_addr_t ram_addr; |
|
1008 |
PhysPageDesc *p; |
|
1007 | 1009 |
|
1008 |
phys_addr = cpu_get_phys_page_debug(env, pc); |
|
1009 |
tb_invalidate_phys_page_range(phys_addr, phys_addr + 1, 0); |
|
1010 |
addr = cpu_get_phys_page_debug(env, pc); |
|
1011 |
p = phys_page_find(addr >> TARGET_PAGE_BITS); |
|
1012 |
if (!p) { |
|
1013 |
pd = IO_MEM_UNASSIGNED; |
|
1014 |
} else { |
|
1015 |
pd = p->phys_offset; |
|
1016 |
} |
|
1017 |
ram_addr = (pd & TARGET_PAGE_MASK) | (pc & ~TARGET_PAGE_MASK); |
|
1018 |
tb_invalidate_ram_page_range(ram_addr, ram_addr + 1, 0); |
|
1010 | 1019 |
} |
1011 | 1020 |
#endif |
1012 | 1021 |
|
Also available in: Unified diff