cputlb.c (c9a5217bd39c51316015a662881fed36f52aea7b) cputlb.c (f349e92e8edc66b6d4cfc4a0981da6d510fef683)
1/*
2 * Common CPU TLB handling
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either

--- 1494 unchanged lines hidden (view full) ---

1503static void notdirty_write(CPUState *cpu, vaddr mem_vaddr, unsigned size,
1504 CPUTLBEntryFull *full, uintptr_t retaddr)
1505{
1506 ram_addr_t ram_addr = mem_vaddr + full->xlat_section;
1507
1508 trace_memory_notdirty_write_access(mem_vaddr, ram_addr, size);
1509
1510 if (!cpu_physical_memory_get_dirty_flag(ram_addr, DIRTY_MEMORY_CODE)) {
1/*
2 * Common CPU TLB handling
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either

--- 1494 unchanged lines hidden (view full) ---

1503static void notdirty_write(CPUState *cpu, vaddr mem_vaddr, unsigned size,
1504 CPUTLBEntryFull *full, uintptr_t retaddr)
1505{
1506 ram_addr_t ram_addr = mem_vaddr + full->xlat_section;
1507
1508 trace_memory_notdirty_write_access(mem_vaddr, ram_addr, size);
1509
1510 if (!cpu_physical_memory_get_dirty_flag(ram_addr, DIRTY_MEMORY_CODE)) {
1511 struct page_collection *pages
1512 = page_collection_lock(ram_addr, ram_addr + size);
1513 tb_invalidate_phys_page_fast__locked(pages, ram_addr, size, retaddr);
1514 page_collection_unlock(pages);
1511 tb_invalidate_phys_range_fast(ram_addr, size, retaddr);
1515 }
1516
1517 /*
1518 * Set both VGA and migration bits for simplicity and to remove
1519 * the notdirty callback faster.
1520 */
1521 cpu_physical_memory_set_dirty_range(ram_addr, size, DIRTY_CLIENTS_NOCODE);
1522

--- 1115 unchanged lines hidden ---
1512 }
1513
1514 /*
1515 * Set both VGA and migration bits for simplicity and to remove
1516 * the notdirty callback faster.
1517 */
1518 cpu_physical_memory_set_dirty_range(ram_addr, size, DIRTY_CLIENTS_NOCODE);
1519

--- 1115 unchanged lines hidden ---