mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
accel/tcg: Drop cpu_get_tb_cpu_state from TARGET_HAS_PRECISE_SMC
The results of the calls to cpu_get_tb_cpu_state, current_{pc,cs_base,flags}, are not used. In tb_invalidate_phys_page, use bool for current_tb_modified. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
cc05368ad9
commit
8516e2a92c
1 changed files with 2 additions and 23 deletions
|
@ -502,23 +502,13 @@ tb_invalidate_phys_page_range__locked(struct page_collection *pages,
|
||||||
int n;
|
int n;
|
||||||
#ifdef TARGET_HAS_PRECISE_SMC
|
#ifdef TARGET_HAS_PRECISE_SMC
|
||||||
CPUState *cpu = current_cpu;
|
CPUState *cpu = current_cpu;
|
||||||
CPUArchState *env = NULL;
|
|
||||||
bool current_tb_not_found = retaddr != 0;
|
bool current_tb_not_found = retaddr != 0;
|
||||||
bool current_tb_modified = false;
|
bool current_tb_modified = false;
|
||||||
TranslationBlock *current_tb = NULL;
|
TranslationBlock *current_tb = NULL;
|
||||||
target_ulong current_pc = 0;
|
|
||||||
target_ulong current_cs_base = 0;
|
|
||||||
uint32_t current_flags = 0;
|
|
||||||
#endif /* TARGET_HAS_PRECISE_SMC */
|
#endif /* TARGET_HAS_PRECISE_SMC */
|
||||||
|
|
||||||
assert_page_locked(p);
|
assert_page_locked(p);
|
||||||
|
|
||||||
#if defined(TARGET_HAS_PRECISE_SMC)
|
|
||||||
if (cpu != NULL) {
|
|
||||||
env = cpu->env_ptr;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We remove all the TBs in the range [start, end[.
|
* We remove all the TBs in the range [start, end[.
|
||||||
* XXX: see if in some cases it could be faster to invalidate all the code
|
* XXX: see if in some cases it could be faster to invalidate all the code
|
||||||
|
@ -554,8 +544,6 @@ tb_invalidate_phys_page_range__locked(struct page_collection *pages,
|
||||||
*/
|
*/
|
||||||
current_tb_modified = true;
|
current_tb_modified = true;
|
||||||
cpu_restore_state_from_tb(cpu, current_tb, retaddr, true);
|
cpu_restore_state_from_tb(cpu, current_tb, retaddr, true);
|
||||||
cpu_get_tb_cpu_state(env, ¤t_pc, ¤t_cs_base,
|
|
||||||
¤t_flags);
|
|
||||||
}
|
}
|
||||||
#endif /* TARGET_HAS_PRECISE_SMC */
|
#endif /* TARGET_HAS_PRECISE_SMC */
|
||||||
tb_phys_invalidate__locked(tb);
|
tb_phys_invalidate__locked(tb);
|
||||||
|
@ -679,11 +667,7 @@ bool tb_invalidate_phys_page(tb_page_addr_t addr, uintptr_t pc)
|
||||||
#ifdef TARGET_HAS_PRECISE_SMC
|
#ifdef TARGET_HAS_PRECISE_SMC
|
||||||
TranslationBlock *current_tb = NULL;
|
TranslationBlock *current_tb = NULL;
|
||||||
CPUState *cpu = current_cpu;
|
CPUState *cpu = current_cpu;
|
||||||
CPUArchState *env = NULL;
|
bool current_tb_modified = false;
|
||||||
int current_tb_modified = 0;
|
|
||||||
target_ulong current_pc = 0;
|
|
||||||
target_ulong current_cs_base = 0;
|
|
||||||
uint32_t current_flags = 0;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
assert_memory_lock();
|
assert_memory_lock();
|
||||||
|
@ -698,9 +682,6 @@ bool tb_invalidate_phys_page(tb_page_addr_t addr, uintptr_t pc)
|
||||||
if (p->first_tb && pc != 0) {
|
if (p->first_tb && pc != 0) {
|
||||||
current_tb = tcg_tb_lookup(pc);
|
current_tb = tcg_tb_lookup(pc);
|
||||||
}
|
}
|
||||||
if (cpu != NULL) {
|
|
||||||
env = cpu->env_ptr;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
assert_page_locked(p);
|
assert_page_locked(p);
|
||||||
PAGE_FOR_EACH_TB(p, tb, n) {
|
PAGE_FOR_EACH_TB(p, tb, n) {
|
||||||
|
@ -713,10 +694,8 @@ bool tb_invalidate_phys_page(tb_page_addr_t addr, uintptr_t pc)
|
||||||
* after the current PC, but it would require a specialized
|
* after the current PC, but it would require a specialized
|
||||||
* function to partially restore the CPU state.
|
* function to partially restore the CPU state.
|
||||||
*/
|
*/
|
||||||
current_tb_modified = 1;
|
current_tb_modified = true;
|
||||||
cpu_restore_state_from_tb(cpu, current_tb, pc, true);
|
cpu_restore_state_from_tb(cpu, current_tb, pc, true);
|
||||||
cpu_get_tb_cpu_state(env, ¤t_pc, ¤t_cs_base,
|
|
||||||
¤t_flags);
|
|
||||||
}
|
}
|
||||||
#endif /* TARGET_HAS_PRECISE_SMC */
|
#endif /* TARGET_HAS_PRECISE_SMC */
|
||||||
tb_phys_invalidate(tb, addr);
|
tb_phys_invalidate(tb, addr);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue