diff mbox series

[1/2] target/hppa: Do not return freed temporary

Message ID 20190222060504.17715-2-richard.henderson@linaro.org
State Superseded
Headers show
Series target/hppa: Minor fix and improvement | expand

Commit Message

Richard Henderson Feb. 22, 2019, 6:05 a.m. UTC
For priv levels 1 & 2, we were doing so from do_ibranch_priv.

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

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

-- 
2.17.2

Comments

Philippe Mathieu-Daudé Feb. 22, 2019, 8:39 a.m. UTC | #1
On 2/22/19 7:05 AM, Richard Henderson wrote:
> For priv levels 1 & 2, we were doing so from do_ibranch_priv.

> 

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

> ---

>  target/hppa/translate.c | 5 ++---

>  1 file 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;


Oops!

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff mbox series

Patch

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;