tcg: Restart when exhausting the stack frame
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>
This commit is contained in:
parent
c1c091948a
commit
732d58979c
@ -3038,7 +3038,11 @@ static void temp_allocate_frame(TCGContext *s, TCGTemp *ts)
|
|||||||
|
|
||||||
assert(align <= TCG_TARGET_STACK_ALIGN);
|
assert(align <= TCG_TARGET_STACK_ALIGN);
|
||||||
off = ROUND_UP(s->current_frame_offset, 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;
|
s->current_frame_offset = off + size;
|
||||||
|
|
||||||
ts->mem_offset = off;
|
ts->mem_offset = off;
|
||||||
|
Loading…
Reference in New Issue
Block a user