aboutsummaryrefslogtreecommitdiff
path: root/tcg/tcg.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2019-04-21 13:51:56 -0700
committerRichard Henderson <richard.henderson@linaro.org>2019-04-24 13:05:28 -0700
commit1768987b73fa7e23e58b7844abe5882490ff8e42 (patch)
tree3a2528c65651be443e8f33e156a23059b94e213f /tcg/tcg.c
parent7ecd02a06f8f4c0bbf872ecc15e37035b7e1df5f (diff)
downloadqemu-1768987b73fa7e23e58b7844abe5882490ff8e42.zip
qemu-1768987b73fa7e23e58b7844abe5882490ff8e42.tar.gz
qemu-1768987b73fa7e23e58b7844abe5882490ff8e42.tar.bz2
tcg: Restart TB generation after constant pool overflow
This is part b of relocation overflow handling. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg/tcg.c')
-rw-r--r--tcg/tcg.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 752c45a..0394e8a 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1019,8 +1019,8 @@ void tcg_prologue_init(TCGContext *s)
#ifdef TCG_TARGET_NEED_POOL_LABELS
/* Allow the prologue to put e.g. guest_base into a pool entry. */
{
- bool ok = tcg_out_pool_finalize(s);
- tcg_debug_assert(ok);
+ int result = tcg_out_pool_finalize(s);
+ tcg_debug_assert(result == 0);
}
#endif
@@ -4005,8 +4005,9 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
}
#endif
#ifdef TCG_TARGET_NEED_POOL_LABELS
- if (!tcg_out_pool_finalize(s)) {
- return -1;
+ i = tcg_out_pool_finalize(s);
+ if (i < 0) {
+ return i;
}
#endif
if (!tcg_resolve_relocs(s)) {