[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 05/27] tcg: Split out tcg_raise_tb_overflow
From: |
Richard Henderson |
Subject: |
[PATCH 05/27] tcg: Split out tcg_raise_tb_overflow |
Date: |
Tue, 2 Mar 2021 09:57:19 -0800 |
Allow other places in tcg to restart with a smaller tb.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tcg/tcg.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 63a12b197b..bbe3dcee03 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -346,6 +346,12 @@ static void set_jmp_reset_offset(TCGContext *s, int which)
s->tb_jmp_reset_offset[which] = tcg_current_code_size(s);
}
+/* Signal overflow, starting over with fewer guest insns. */
+static void QEMU_NORETURN tcg_raise_tb_overflow(TCGContext *s)
+{
+ siglongjmp(s->jmp_trans, -2);
+}
+
#define C_PFX1(P, A) P##A
#define C_PFX2(P, A, B) P##A##_##B
#define C_PFX3(P, A, B, C) P##A##_##B##_##C
@@ -1310,8 +1316,7 @@ static TCGTemp *tcg_temp_alloc(TCGContext *s)
int n = s->nb_temps++;
if (n >= TCG_MAX_TEMPS) {
- /* Signal overflow, starting over with fewer guest insns. */
- siglongjmp(s->jmp_trans, -2);
+ tcg_raise_tb_overflow(s);
}
return memset(&s->temps[n], 0, sizeof(TCGTemp));
}
--
2.25.1
- [PATCH 00/27] tcg patch queue, Richard Henderson, 2021/03/02
- [PATCH 01/27] tcg/aarch64: Fix constant subtraction in tcg_out_addsub2, Richard Henderson, 2021/03/02
- [PATCH 02/27] tcg/aarch64: Fix I3617_CMLE0, Richard Henderson, 2021/03/02
- [PATCH 05/27] tcg: Split out tcg_raise_tb_overflow,
Richard Henderson <=
- [PATCH 03/27] tcg/aarch64: Fix generation of "scalar" vector operations, Richard Henderson, 2021/03/02
- [PATCH 04/27] tcg/tci: Use exec/cpu_ldst.h interfaces, Richard Henderson, 2021/03/02
- [PATCH 06/27] tcg: Manage splitwx in tc_ptr_to_region_tree by hand, Richard Henderson, 2021/03/02
- [PATCH 07/27] tcg/tci: Merge identical cases in generation (arithmetic opcodes), Richard Henderson, 2021/03/02