OSDN Git Service

target/arm: Fix early free of TCG temp in handle_simd_shift_fpint_conv()
authorWentao_Liang <Wentao_Liang_g@163.com>
Fri, 25 Feb 2022 04:01:42 +0000 (12:01 +0800)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 2 Mar 2022 19:27:36 +0000 (19:27 +0000)
handle_simd_shift_fpint_conv() was accidentally freeing the TCG
temporary tcg_fpstatus too early, before the last use of it.  Move
the free down to where it belongs.

Signed-off-by: Wentao_Liang <Wentao_Liang_g@163.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
[PMM: cleaned up commit message]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/translate-a64.c

index 5a1df25..d1a59fa 100644 (file)
@@ -9045,9 +9045,9 @@ static void handle_simd_shift_fpint_conv(DisasContext *s, bool is_scalar,
         }
     }
 
-    tcg_temp_free_ptr(tcg_fpstatus);
     tcg_temp_free_i32(tcg_shift);
     gen_helper_set_rmode(tcg_rmode, tcg_rmode, tcg_fpstatus);
+    tcg_temp_free_ptr(tcg_fpstatus);
     tcg_temp_free_i32(tcg_rmode);
 }