diff mbox series

[for-5.1] target/hppa: Free some temps in do_sub

Message ID 20200720174039.517902-1-richard.henderson@linaro.org
State Superseded
Headers show
Series [for-5.1] target/hppa: Free some temps in do_sub | expand

Commit Message

Richard Henderson July 20, 2020, 5:40 p.m. UTC
Two temps allocated but not freed.  Do enough subtractions
within a single TB and one can run out of temps entirely.

Cc: qemu-stable@nongnu.org
Buglink: https://bugs.launchpad.net/qemu/+bug/1880287
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 target/hppa/translate.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.25.1

Comments

Philippe Mathieu-Daudé July 20, 2020, 5:48 p.m. UTC | #1
On 7/20/20 7:40 PM, Richard Henderson wrote:
> Two temps allocated but not freed.  Do enough subtractions

> within a single TB and one can run out of temps entirely.

> 

> Cc: qemu-stable@nongnu.org


Fixes: b2167459ae ("target-hppa: Implement basic arithmetic")

> Buglink: https://bugs.launchpad.net/qemu/+bug/1880287

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


> ---

>  target/hppa/translate.c | 2 ++

>  1 file changed, 2 insertions(+)

> 

> diff --git a/target/hppa/translate.c b/target/hppa/translate.c

> index 52d7bea1ea..4bd22d4820 100644

> --- a/target/hppa/translate.c

> +++ b/target/hppa/translate.c

> @@ -1294,6 +1294,8 @@ static void do_sub(DisasContext *ctx, unsigned rt, TCGv_reg in1,

>      save_or_nullify(ctx, cpu_psw_cb_msb, cb_msb);

>      save_gpr(ctx, rt, dest);

>      tcg_temp_free(dest);

> +    tcg_temp_free(cb);

> +    tcg_temp_free(cb_msb);

>  

>      /* Install the new nullification.  */

>      cond_free(&ctx->null_cond);

>
Sven Schnelle July 20, 2020, 8:55 p.m. UTC | #2
Hi,

On Mon, Jul 20, 2020 at 10:40:39AM -0700, Richard Henderson wrote:
> Two temps allocated but not freed.  Do enough subtractions

> within a single TB and one can run out of temps entirely.

> 

> Cc: qemu-stable@nongnu.org

> Buglink: https://bugs.launchpad.net/qemu/+bug/1880287

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  target/hppa/translate.c | 2 ++

>  1 file changed, 2 insertions(+)

> 

> diff --git a/target/hppa/translate.c b/target/hppa/translate.c

> index 52d7bea1ea..4bd22d4820 100644

> --- a/target/hppa/translate.c

> +++ b/target/hppa/translate.c

> @@ -1294,6 +1294,8 @@ static void do_sub(DisasContext *ctx, unsigned rt, TCGv_reg in1,

>      save_or_nullify(ctx, cpu_psw_cb_msb, cb_msb);

>      save_gpr(ctx, rt, dest);

>      tcg_temp_free(dest);

> +    tcg_temp_free(cb);

> +    tcg_temp_free(cb_msb);

>  

>      /* Install the new nullification.  */

>      cond_free(&ctx->null_cond);

> -- 

> 2.25.1

> 


Tested-by: Sven Schnelle <svens@stackframe.org>


Regards
Sven
diff mbox series

Patch

diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 52d7bea1ea..4bd22d4820 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -1294,6 +1294,8 @@  static void do_sub(DisasContext *ctx, unsigned rt, TCGv_reg in1,
     save_or_nullify(ctx, cpu_psw_cb_msb, cb_msb);
     save_gpr(ctx, rt, dest);
     tcg_temp_free(dest);
+    tcg_temp_free(cb);
+    tcg_temp_free(cb_msb);
 
     /* Install the new nullification.  */
     cond_free(&ctx->null_cond);