target/arm: Free TCG temps in trans_VMOV_64_sp()
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 27 Aug 2019 12:19:31 +0000 (13:19 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 3 Sep 2019 15:20:35 +0000 (16:20 +0100)
The function neon_store_reg32() doesn't free the TCG temp that it
is passed, so the caller must do that. We got this right in most
places but forgot to free the TCG temps in trans_VMOV_64_sp().

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190827121931.26836-1-peter.maydell@linaro.org

target/arm/translate-vfp.inc.c

index 3e8ea80493b7294193f36eea1a65bb5f724f4889..9ae980bef63785fd9ad5f6cc81e6d7951dbdf5c1 100644 (file)
@@ -880,8 +880,10 @@ static bool trans_VMOV_64_sp(DisasContext *s, arg_VMOV_64_sp *a)
         /* gpreg to fpreg */
         tmp = load_reg(s, a->rt);
         neon_store_reg32(tmp, a->vm);
+        tcg_temp_free_i32(tmp);
         tmp = load_reg(s, a->rt2);
         neon_store_reg32(tmp, a->vm + 1);
+        tcg_temp_free_i32(tmp);
     }
 
     return true;