summaryrefslogtreecommitdiffstats
path: root/include/hw/core
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/hw/core
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/hw/core')
-rw-r--r--include/hw/core/cpu.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index c005d3dc2d..c68bc3ba8a 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -282,6 +282,7 @@ struct qemu_work_item;
* to a cluster this will be UNASSIGNED_CLUSTER_INDEX; otherwise it will
* be the same as the cluster-id property of the CPU object's TYPE_CPU_CLUSTER
* QOM parent.
+ * @tcg_cflags: Pre-computed cflags for this cpu.
* @nr_cores: Number of cores within this CPU package.
* @nr_threads: Number of threads within this CPU.
* @running: #true if CPU is currently running (lockless).
@@ -412,6 +413,7 @@ struct CPUState {
/* TODO Move common fields from CPUArchState here. */
int cpu_index;
int cluster_index;
+ uint32_t tcg_cflags;
uint32_t halted;
uint32_t can_do_io;
int32_t exception_index;