Message ID | 20190222060504.17715-2-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | target/hppa: Minor fix and improvement | expand |
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 --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;
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