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>