Patchwork target-arm: fix incorrect temporary variable freeing

login
register
mail settings
Submitter Juha.Riihimaki@nokia.com
Date Oct. 26, 2009, 11:02 a.m.
Message ID <1256554957-2279-1-git-send-email-juha.riihimaki@nokia.com>
Download mbox | patch
Permalink /patch/36894/
State New
Headers show

Comments

Juha.Riihimaki@nokia.com - Oct. 26, 2009, 11:02 a.m.
From: Juha Riihimäki <juha.riihimaki@nokia.com>

tmp4 and tmp5 temporary variables are allocated using tcg_const_i32
but incorrectly released using dead_tmp which will cause resource
leak tracking to report false leaks.

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
---
 target-arm/translate.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Laurent Desnogues - Oct. 26, 2009, 11:21 a.m.
On Mon, Oct 26, 2009 at 12:02 PM,  <juha.riihimaki@nokia.com> wrote:
> From: Juha Riihimäki <juha.riihimaki@nokia.com>
>
> tmp4 and tmp5 temporary variables are allocated using tcg_const_i32
> but incorrectly released using dead_tmp which will cause resource
> leak tracking to report false leaks.
>
> Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>

Acked-by:  Laurent Desnogues <laurent.desnogues@gmail.com>


Laurent

> ---
>  target-arm/translate.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/target-arm/translate.c b/target-arm/translate.c
> index 9d13d42..1988cc6 100644
> --- a/target-arm/translate.c
> +++ b/target-arm/translate.c
> @@ -5535,8 +5535,8 @@ static int disas_neon_data_insn(CPUState * env, DisasContext *s, uint32_t insn)
>                 }
>                 tmp3 = neon_load_reg(rm, 1);
>                 gen_helper_neon_tbl(tmp3, tmp3, tmp, tmp4, tmp5);
> -                dead_tmp(tmp5);
> -                dead_tmp(tmp4);
> +                tcg_temp_free_i32(tmp5);
> +                tcg_temp_free_i32(tmp4);
>                 neon_store_reg(rd, 0, tmp2);
>                 neon_store_reg(rd, 1, tmp3);
>                 dead_tmp(tmp);
> --
> 1.6.5
>
>
>
>

Patch

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 9d13d42..1988cc6 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -5535,8 +5535,8 @@  static int disas_neon_data_insn(CPUState * env, DisasContext *s, uint32_t insn)
                 }
                 tmp3 = neon_load_reg(rm, 1);
                 gen_helper_neon_tbl(tmp3, tmp3, tmp, tmp4, tmp5);
-                dead_tmp(tmp5);
-                dead_tmp(tmp4);
+                tcg_temp_free_i32(tmp5);
+                tcg_temp_free_i32(tmp4);
                 neon_store_reg(rd, 0, tmp2);
                 neon_store_reg(rd, 1, tmp3);
                 dead_tmp(tmp);