aboutsummaryrefslogtreecommitdiff
path: root/accel/tcg
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2021-03-09 08:45:58 -0800
committerRichard Henderson <richard.henderson@linaro.org>2021-06-11 09:26:28 -0700
commitb0a0794a0f16e2160d8d35b14cca8f5e81b8b67e (patch)
tree493dd7155ef6293b8798f1855662f7ec97b744bb /accel/tcg
parentc6347541728b0face2c509c4ebc8ba6fdf807fc6 (diff)
downloadqemu-b0a0794a0f16e2160d8d35b14cca8f5e81b8b67e.zip
qemu-b0a0794a0f16e2160d8d35b14cca8f5e81b8b67e.tar.gz
qemu-b0a0794a0f16e2160d8d35b14cca8f5e81b8b67e.tar.bz2
tcg: Re-order tcg_region_init vs tcg_prologue_init
Instead of delaying tcg_region_init until after tcg_prologue_init is complete, do tcg_region_init first and let tcg_prologue_init shrink the first region by the size of the generated prologue. Reviewed-by: Luis Pires <luis.pires@eldorado.org.br> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'accel/tcg')
-rw-r--r--accel/tcg/tcg-all.c11
-rw-r--r--accel/tcg/translate-all.c3
2 files changed, 3 insertions, 11 deletions
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index e378c2d..f132033 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -111,17 +111,6 @@ static int tcg_init(MachineState *ms)
tcg_exec_init(s->tb_size * 1024 * 1024, s->splitwx_enabled);
mttcg_enabled = s->mttcg_enabled;
-
- /*
- * Initialize TCG regions only for softmmu.
- *
- * This needs to be done later for user mode, because the prologue
- * generation needs to be delayed so that GUEST_BASE is already set.
- */
-#ifndef CONFIG_USER_ONLY
- tcg_region_init();
-#endif /* !CONFIG_USER_ONLY */
-
return 0;
}
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 1eefe6e..0476462 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -1339,6 +1339,9 @@ void tcg_exec_init(unsigned long tb_size, int splitwx)
splitwx, &error_fatal);
assert(ok);
+ /* TODO: allocating regions is hand-in-glove with code_gen_buffer. */
+ tcg_region_init();
+
#if defined(CONFIG_SOFTMMU)
/* There's no guest base to take into account, so go ahead and
initialize the prologue now. */