[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 31/33] tcg: Restart when exhausting the stack frame
From: |
Richard Henderson |
Subject: |
[PULL 31/33] tcg: Restart when exhausting the stack frame |
Date: |
Sat, 19 Jun 2021 11:14:50 -0700 |
Assume that we'll have fewer temps allocated after
restarting with a fewer number of instructions.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tcg/tcg.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 47cc66f159..fec922fa9e 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -3039,7 +3039,11 @@ static void temp_allocate_frame(TCGContext *s, TCGTemp
*ts)
assert(align <= TCG_TARGET_STACK_ALIGN);
off = ROUND_UP(s->current_frame_offset, align);
- assert(off + size <= s->frame_end);
+
+ /* If we've exhausted the stack frame, restart with a smaller TB. */
+ if (off + size > s->frame_end) {
+ tcg_raise_tb_overflow(s);
+ }
s->current_frame_offset = off + size;
ts->mem_offset = off;
--
2.25.1
- [PULL 08/33] tcg: Build ffi data structures for helpers, (continued)
- [PULL 08/33] tcg: Build ffi data structures for helpers, Richard Henderson, 2021/06/19
- [PULL 09/33] tcg/tci: Improve tcg_target_call_clobber_regs, Richard Henderson, 2021/06/19
- [PULL 02/33] tcg: Add tcg_call_flags, Richard Henderson, 2021/06/19
- [PULL 10/33] tcg/tci: Move call-return regs to end of tcg_target_reg_alloc_order, Richard Henderson, 2021/06/19
- [PULL 11/33] tcg/tci: Use ffi for calls, Richard Henderson, 2021/06/19
- [PULL 18/33] tcg/tci: Implement andc, orc, eqv, nand, nor, Richard Henderson, 2021/06/19
- [PULL 12/33] tcg/tci: Reserve r13 for a temporary, Richard Henderson, 2021/06/19
- [PULL 30/33] tcg: Allocate sufficient storage in temp_allocate_frame, Richard Henderson, 2021/06/19
- [PULL 26/33] tcg/tci: Use {set,clear}_helper_retaddr, Richard Henderson, 2021/06/19
- [PULL 25/33] tcg/tci: Remove the qemu_ld/st_type macros, Richard Henderson, 2021/06/19
- [PULL 31/33] tcg: Restart when exhausting the stack frame,
Richard Henderson <=
- [PULL 14/33] tcg/tci: Remove tci_write_reg, Richard Henderson, 2021/06/19
- [PULL 17/33] tcg/tci: Implement movcond, Richard Henderson, 2021/06/19
- [PULL 19/33] tcg/tci: Implement extract, sextract, Richard Henderson, 2021/06/19
- [PULL 22/33] tcg/tci: Implement add2, sub2, Richard Henderson, 2021/06/19
- [PULL 13/33] tcg/tci: Emit setcond before brcond, Richard Henderson, 2021/06/19
- [PULL 20/33] tcg/tci: Implement clz, ctz, ctpop, Richard Henderson, 2021/06/19
- [PULL 15/33] tcg/tci: Change encoding to uint32_t units, Richard Henderson, 2021/06/19
- [PULL 16/33] tcg/tci: Implement goto_ptr, Richard Henderson, 2021/06/19
- [PULL 24/33] Revert "tcg/tci: Use exec/cpu_ldst.h interfaces", Richard Henderson, 2021/06/19
- [PULL 21/33] tcg/tci: Implement mulu2, muls2, Richard Henderson, 2021/06/19