summaryrefslogtreecommitdiffstats
path: root/include/exec
diff options
context:
space:
mode:
authorAlex Bennée2021-02-24 17:58:08 +0100
committerRichard Henderson2021-03-06 20:50:50 +0100
commitc0ae396a81e13e5a09846f86a702bc61733a8885 (patch)
treea1bbd21ab556043602530b72685a093ca9fd2abf /include/exec
parentaccel/tcg: rename tb_lookup__cpu_state and hoist state extraction (diff)
downloadqemu-c0ae396a81e13e5a09846f86a702bc61733a8885.tar.gz
qemu-c0ae396a81e13e5a09846f86a702bc61733a8885.tar.xz
qemu-c0ae396a81e13e5a09846f86a702bc61733a8885.zip
accel/tcg: move CF_CLUSTER calculation to curr_cflags
There is nothing special about this compile flag that doesn't mean we can't just compute it with curr_cflags() which we should be using when building a new set. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20210224165811.11567-3-alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/exec')
-rw-r--r--include/exec/exec-all.h8
-rw-r--r--include/exec/tb-lookup.h3
2 files changed, 5 insertions, 6 deletions
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index b7b3c0ef12..1a69c07add 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -519,10 +519,12 @@ static inline uint32_t tb_cflags(const TranslationBlock *tb)
}
/* current cflags for hashing/comparison */
-static inline uint32_t curr_cflags(void)
+static inline uint32_t curr_cflags(CPUState *cpu)
{
- return (parallel_cpus ? CF_PARALLEL : 0)
- | (icount_enabled() ? CF_USE_ICOUNT : 0);
+ uint32_t cflags = deposit32(0, CF_CLUSTER_SHIFT, 8, cpu->cluster_index);
+ cflags |= parallel_cpus ? CF_PARALLEL : 0;
+ cflags |= icount_enabled() ? CF_USE_ICOUNT : 0;
+ return cflags;
}
/* TranslationBlock invalidate API */
diff --git a/include/exec/tb-lookup.h b/include/exec/tb-lookup.h
index c3f5d81c55..1c92fe0521 100644
--- a/include/exec/tb-lookup.h
+++ b/include/exec/tb-lookup.h
@@ -27,9 +27,6 @@ static inline TranslationBlock *tb_lookup(CPUState *cpu, target_ulong pc,
hash = tb_jmp_cache_hash_func(pc);
tb = qatomic_rcu_read(&cpu->tb_jmp_cache[hash]);
- cf_mask &= ~CF_CLUSTER_MASK;
- cf_mask |= cpu->cluster_index << CF_CLUSTER_SHIFT;
-
if (likely(tb &&
tb->pc == pc &&
tb->cs_base == cs_base &&