We need values 0-3 for TCG_TYPE_I128 on 32-bit hosts. Cc: qemu-sta...@nongnu.org Fixes: 43eef72f4109 ("tcg: Add temp allocation for TCGv_i128") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2159 Signed-off-by: Richard Henderson <richard.hender...@linaro.org> ---
I feel certain that I made this change back when I introduced TCGv_i128. I imagine that something went wrong with a rebase and it got lost. Worse, we don't use temp_subindex often, and we usually handle i128 this value correctly. It took a quirk of register allocation ordering to make an invalid value in temp_subindex lead to a crash. --- include/tcg/tcg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index daf2a5bf9e..451f3fec41 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -412,7 +412,7 @@ typedef struct TCGTemp { unsigned int mem_coherent:1; unsigned int mem_allocated:1; unsigned int temp_allocated:1; - unsigned int temp_subindex:1; + unsigned int temp_subindex:2; int64_t val; struct TCGTemp *mem_base; -- 2.34.1