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 --- |