[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/10] tcg: Increase the static number of temporaries
From: |
Richard Henderson |
Subject: |
[PULL 04/10] tcg: Increase the static number of temporaries |
Date: |
Sat, 23 Jan 2021 08:50:14 -1000 |
This isn't a total or permanent solution to the problem of running
out of temporaries, but it puts off the issue for a bit.
Make the assert in tcg_temp_alloc unconditional. If we do run out
of temps, this can fail much later as a weird SIGSEGV, due to the
buffer overrun of the temp array.
Remove the inlines from tcg_temp_alloc and tcg_global_alloc.
Buglink: https://bugs.launchpad.net/bugs/1912065
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/tcg/tcg.h | 2 +-
tcg/tcg.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h
index c5a9d65d5f..0187de1352 100644
--- a/include/tcg/tcg.h
+++ b/include/tcg/tcg.h
@@ -275,7 +275,7 @@ typedef struct TCGPool {
#define TCG_POOL_CHUNK_SIZE 32768
-#define TCG_MAX_TEMPS 512
+#define TCG_MAX_TEMPS 1024
#define TCG_MAX_INSNS 512
/* when the size of the arguments of a called function is smaller than
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 8f8badb61c..5110f6f39c 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1204,14 +1204,14 @@ void tcg_func_start(TCGContext *s)
QSIMPLEQ_INIT(&s->labels);
}
-static inline TCGTemp *tcg_temp_alloc(TCGContext *s)
+static TCGTemp *tcg_temp_alloc(TCGContext *s)
{
int n = s->nb_temps++;
- tcg_debug_assert(n < TCG_MAX_TEMPS);
+ g_assert(n < TCG_MAX_TEMPS);
return memset(&s->temps[n], 0, sizeof(TCGTemp));
}
-static inline TCGTemp *tcg_global_alloc(TCGContext *s)
+static TCGTemp *tcg_global_alloc(TCGContext *s)
{
TCGTemp *ts;
--
2.25.1
- [PULL 00/10] tcg patch queue, Richard Henderson, 2021/01/23
- [PULL 01/10] tcg: update the cpu running flag in cpu_exec_step_atomic, Richard Henderson, 2021/01/23
- [PULL 03/10] tcg: Optimize inline dup_const for MO_64, Richard Henderson, 2021/01/23
- [PULL 05/10] accel/tcg: Make cpu_gen_init() static, Richard Henderson, 2021/01/23
- [PULL 04/10] tcg: Increase the static number of temporaries,
Richard Henderson <=
- [PULL 02/10] qemu/compiler: Split out qemu_build_not_reached_always, Richard Henderson, 2021/01/23
- [PULL 07/10] accel/tcg: Restrict tb_gen_code() from other accelerators, Richard Henderson, 2021/01/23
- [PULL 06/10] accel/tcg: Move tb_flush_jmp_cache() to cputlb.c, Richard Henderson, 2021/01/23
- [PULL 08/10] accel/tcg: Declare missing cpu_loop_exit*() stubs, Richard Henderson, 2021/01/23
- [PULL 09/10] accel/tcg: Restrict cpu_io_recompile() from other accelerators, Richard Henderson, 2021/01/23
- [PULL 10/10] tcg: Toggle page execution for Apple Silicon, Richard Henderson, 2021/01/23
- Re: [PULL 00/10] tcg patch queue, Richard Henderson, 2021/01/23