mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
cpu: Move tb_jmp_cache field from CPU_COMMON to CPUState
Clear it on reset. Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
28ecfd7a62
commit
8cd70437f3
6 changed files with 16 additions and 16 deletions
|
|
@ -118,6 +118,7 @@ static TranslationBlock *tb_find_slow(CPUArchState *env,
|
|||
target_ulong cs_base,
|
||||
uint64_t flags)
|
||||
{
|
||||
CPUState *cpu = ENV_GET_CPU(env);
|
||||
TranslationBlock *tb, **ptb1;
|
||||
unsigned int h;
|
||||
tb_page_addr_t phys_pc, phys_page1;
|
||||
|
|
@ -165,12 +166,13 @@ static TranslationBlock *tb_find_slow(CPUArchState *env,
|
|||
tcg_ctx.tb_ctx.tb_phys_hash[h] = tb;
|
||||
}
|
||||
/* we add the TB in the virtual pc hash table */
|
||||
env->tb_jmp_cache[tb_jmp_cache_hash_func(pc)] = tb;
|
||||
cpu->tb_jmp_cache[tb_jmp_cache_hash_func(pc)] = tb;
|
||||
return tb;
|
||||
}
|
||||
|
||||
static inline TranslationBlock *tb_find_fast(CPUArchState *env)
|
||||
{
|
||||
CPUState *cpu = ENV_GET_CPU(env);
|
||||
TranslationBlock *tb;
|
||||
target_ulong cs_base, pc;
|
||||
int flags;
|
||||
|
|
@ -179,7 +181,7 @@ static inline TranslationBlock *tb_find_fast(CPUArchState *env)
|
|||
always be the same before a given translated block
|
||||
is executed. */
|
||||
cpu_get_tb_cpu_state(env, &pc, &cs_base, &flags);
|
||||
tb = env->tb_jmp_cache[tb_jmp_cache_hash_func(pc)];
|
||||
tb = cpu->tb_jmp_cache[tb_jmp_cache_hash_func(pc)];
|
||||
if (unlikely(!tb || tb->pc != pc || tb->cs_base != cs_base ||
|
||||
tb->flags != flags)) {
|
||||
tb = tb_find_slow(env, pc, cs_base, flags);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue