OSDN Git Service

tcg: Limit the number of ops in a TB
authorRichard Henderson <richard.henderson@linaro.org>
Tue, 8 May 2018 19:18:59 +0000 (19:18 +0000)
committerRichard Henderson <richard.henderson@linaro.org>
Wed, 9 May 2018 15:30:57 +0000 (08:30 -0700)
commitabebf92597186be2bc48d487235da28b1127860f
treecdc6b67dca81418f7e9ab2a67b8896676e655bb4
parent7eb30ef0ba2eb59e7430d4848ae8d4bf4e50f768
tcg: Limit the number of ops in a TB

In 6001f7729e12 we partially attempt to address the branch
displacement overflow caused by 15fa08f845.

However, gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqtbX.c
is a testcase that contains a TB so large as to overflow anyway.
The limit here of 8000 ops produces a maximum output TB size of
24112 bytes on a ppc64le host with that test case.  This is still
much less than the maximum forward branch distance of 32764 bytes.

Cc: qemu-stable@nongnu.org
Fixes: 15fa08f845 ("tcg: Dynamically allocate TCGOps")
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/tcg.c
tcg/tcg.h