On 6/9/20 9:02 AM, Peter Maydell wrote:
> The widenfn() in do_vshll_2sh() does not free the input 32-bit
> TCGv, so we need to do this in the calling code.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
> ---
> target/arm/translate-neon.inc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.inc.c
> index 664d3612607..299a61f067b 100644
> --- a/target/arm/translate-neon.inc.c
> +++ b/target/arm/translate-neon.inc.c
> @@ -1624,6 +1624,7 @@ static bool do_vshll_2sh(DisasContext *s, arg_2reg_shift *a,
> tmp = tcg_temp_new_i64();
>
> widenfn(tmp, rm0);
> + tcg_temp_free_i32(rm0);
> if (a->shift != 0) {
> tcg_gen_shli_i64(tmp, tmp, a->shift);
> tcg_gen_andi_i64(tmp, tmp, ~widen_mask);
> @@ -1631,6 +1632,7 @@ static bool do_vshll_2sh(DisasContext *s, arg_2reg_shift *a,
> neon_store_reg64(tmp, a->vd);
>
> widenfn(tmp, rm1);
> + tcg_temp_free_i32(rm1);
> if (a->shift != 0) {
> tcg_gen_shli_i64(tmp, tmp, a->shift);
> tcg_gen_andi_i64(tmp, tmp, ~widen_mask);
>