summaryrefslogtreecommitdiffstats
path: root/target/hppa
diff options
context:
space:
mode:
authorRichard Henderson2019-02-21 23:01:07 +0100
committerRichard Henderson2019-03-08 02:43:12 +0100
commit993119fe584c3d0bc48ae9d5ed742a6bdec3d3eb (patch)
tree76d9f0bb2ed57c202f3914430be6737b1df0c977 /target/hppa
parentMerge remote-tracking branch 'remotes/cleber/tags/python-next-pull-request' i... (diff)
downloadqemu-993119fe584c3d0bc48ae9d5ed742a6bdec3d3eb.tar.gz
qemu-993119fe584c3d0bc48ae9d5ed742a6bdec3d3eb.tar.xz
qemu-993119fe584c3d0bc48ae9d5ed742a6bdec3d3eb.zip
target/hppa: Do not return freed temporary
For priv levels 1 & 2, we were doing so from do_ibranch_priv. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/hppa')
-rw-r--r--target/hppa/translate.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index b4fd307b77..dad8ce563c 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2007,16 +2007,15 @@ static TCGv_reg do_ibranch_priv(DisasContext *ctx, TCGv_reg offset)
/* Privilege 0 is maximum and is allowed to decrease. */
return offset;
case 3:
- /* Privilege 3 is minimum and is never allowed increase. */
+ /* Privilege 3 is minimum and is never allowed to increase. */
dest = get_temp(ctx);
tcg_gen_ori_reg(dest, offset, 3);
break;
default:
- dest = tcg_temp_new();
+ dest = get_temp(ctx);
tcg_gen_andi_reg(dest, offset, -4);
tcg_gen_ori_reg(dest, dest, ctx->privilege);
tcg_gen_movcond_reg(TCG_COND_GTU, dest, dest, offset, dest, offset);
- tcg_temp_free(dest);
break;
}
return dest;