@ -307,7 +307,7 @@ struct tb_desc {
CPUArchState * env ;
tb_page_addr_t phys_page1 ;
uint32_t flags ;
uint32_t cf_mask ;
uint32_t cflags ;
uint32_t trace_vcpu_dstate ;
} ;
@ -321,7 +321,7 @@ static bool tb_lookup_cmp(const void *p, const void *d)
tb - > cs_base = = desc - > cs_base & &
tb - > flags = = desc - > flags & &
tb - > trace_vcpu_dstate = = desc - > trace_vcpu_dstate & &
( tb_cflags ( tb ) & ( CF_HASH_MASK | CF_INVALID ) ) = = desc - > cf_mask ) {
tb_cflags ( tb ) = = desc - > cflags ) {
/* check next page if needed */
if ( tb - > page_addr [ 1 ] = = - 1 ) {
return true ;
@ -341,7 +341,7 @@ static bool tb_lookup_cmp(const void *p, const void *d)
TranslationBlock * tb_htable_lookup ( CPUState * cpu , target_ulong pc ,
target_ulong cs_base , uint32_t flags ,
uint32_t cf_mask )
uint32_t cflags )
{
tb_page_addr_t phys_pc ;
struct tb_desc desc ;
@ -350,7 +350,7 @@ TranslationBlock *tb_htable_lookup(CPUState *cpu, target_ulong pc,
desc . env = ( CPUArchState * ) cpu - > env_ptr ;
desc . cs_base = cs_base ;
desc . flags = flags ;
desc . cf_mask = cf_mask ;
desc . cflags = cflags ;
desc . trace_vcpu_dstate = * cpu - > trace_dstate ;
desc . pc = pc ;
phys_pc = get_page_addr_code ( desc . env , pc ) ;
@ -358,7 +358,7 @@ TranslationBlock *tb_htable_lookup(CPUState *cpu, target_ulong pc,
return NULL ;
}
desc . phys_page1 = phys_pc & TARGET_PAGE_MASK ;
h = tb_hash_func ( phys_pc , pc , flags , cf_mask , * cpu - > trace_dstate ) ;
h = tb_hash_func ( phys_pc , pc , flags , cflags , * cpu - > trace_dstate ) ;
return qht_lookup_custom ( & tb_ctx . htable , & desc , h , tb_lookup_cmp ) ;
}
@ -418,7 +418,7 @@ static inline void tb_add_jump(TranslationBlock *tb, int n,
static inline TranslationBlock * tb_find ( CPUState * cpu ,
TranslationBlock * last_tb ,
int tb_exit , uint32_t cf_mask )
int tb_exit , uint32_t cflags )
{
CPUArchState * env = ( CPUArchState * ) cpu - > env_ptr ;
TranslationBlock * tb ;
@ -427,10 +427,10 @@ static inline TranslationBlock *tb_find(CPUState *cpu,
cpu_get_tb_cpu_state ( env , & pc , & cs_base , & flags ) ;
tb = tb_lookup ( cpu , pc , cs_base , flags , cf_mask ) ;
tb = tb_lookup ( cpu , pc , cs_base , flags , cflags ) ;
if ( tb = = NULL ) {
mmap_lock ( ) ;
tb = tb_gen_code ( cpu , pc , cs_base , flags , cf_mask ) ;
tb = tb_gen_code ( cpu , pc , cs_base , flags , cflags ) ;
mmap_unlock ( ) ;
/* We add the TB in the virtual pc hash table for the fast lookup */
qatomic_set ( & cpu - > tb_jmp_cache [ tb_jmp_cache_hash_func ( pc ) ] , tb ) ;