summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2020-07-20 10:35:00 -0700
committerRichard Henderson <richard.henderson@linaro.org>2020-07-24 14:28:33 -0700
commit79826f99feb7222b7804058f0b4ace9ee0546361 (patch)
tree432f6cc46e5d41fd7890a60ecc78a196168f0a65
parent570ef3093b5ed327249397ad0295cf01c67d9db4 (diff)
downloadfocaccia-qemu-79826f99feb7222b7804058f0b4ace9ee0546361.tar.gz
focaccia-qemu-79826f99feb7222b7804058f0b4ace9ee0546361.zip
target/hppa: Free some temps in do_sub
Two temps allocated but not freed.  Do enough subtractions
within a single TB and one can run out of temps entirely.

Fixes: b2167459ae ("target-hppa: Implement basic arithmetic")
Buglink: https://bugs.launchpad.net/qemu/+bug/1880287
Tested-by: Sven Schnelle <svens@stackframe.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200720174039.517902-1-richard.henderson@linaro.org>
-rw-r--r--target/hppa/translate.c2
1 files changed, 2 insertions, 0 deletions
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);