|
@@ -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);
|