summaryrefslogtreecommitdiffstats
path: root/include/exec
diff options
context:
space:
mode:
authorRichard Henderson2021-03-02 04:21:08 +0100
committerRichard Henderson2021-03-06 20:53:57 +0100
commit6cc9d67c6f682cf04eea2d6e64a252b63a7eccdf (patch)
treef4a70ec6c66bcb37242891c9b544508b78f5a726 /include/exec
parentinclude/exec: lightly re-arrange TranslationBlock (diff)
downloadqemu-6cc9d67c6f682cf04eea2d6e64a252b63a7eccdf.tar.gz
qemu-6cc9d67c6f682cf04eea2d6e64a252b63a7eccdf.tar.xz
qemu-6cc9d67c6f682cf04eea2d6e64a252b63a7eccdf.zip
accel/tcg: Precompute curr_cflags into cpu->tcg_cflags
The primary motivation is to remove a dozen insns along the fast-path in tb_lookup. As a byproduct, this allows us to completely remove parallel_cpus. Reviewed-by: Alex Bennée <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.h7
1 files changed, 1 insertions, 6 deletions
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index a262dd5804..6b036cae8f 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -513,8 +513,6 @@ struct TranslationBlock {
uintptr_t jmp_dest[2];
};
-extern bool parallel_cpus;
-
/* Hide the qatomic_read to make code a little easier on the eyes */
static inline uint32_t tb_cflags(const TranslationBlock *tb)
{
@@ -524,10 +522,7 @@ static inline uint32_t tb_cflags(const TranslationBlock *tb)
/* current cflags for hashing/comparison */
static inline uint32_t curr_cflags(CPUState *cpu)
{
- 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;
+ return cpu->tcg_cflags;
}
/* TranslationBlock invalidate API */