Re: [PATCH v2 10/45] target/hppa: Skip nullified insns in unconditional dbranch path
* Richard Henderson : > Signed-off-by: Richard Henderson Reviewed-by: Helge Deller > --- > target/hppa/translate.c | 10 -- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/target/hppa/translate.c b/target/hppa/translate.c > index a9196050dc..ca979f4137 100644 > --- a/target/hppa/translate.c > +++ b/target/hppa/translate.c > @@ -1805,11 +1805,17 @@ static bool do_dbranch(DisasContext *ctx, int64_t > disp, > > if (ctx->null_cond.c == TCG_COND_NEVER && ctx->null_lab == NULL) { > install_link(ctx, link, false); > -ctx->iaoq_n = dest; > -ctx->iaoq_n_var = NULL; > if (is_n) { > +if (use_nullify_skip(ctx)) { > +nullify_set(ctx, 0); > +gen_goto_tb(ctx, 0, dest, dest + 4); > +ctx->base.is_jmp = DISAS_NORETURN; > +return true; > +} > ctx->null_cond.c = TCG_COND_ALWAYS; > } > +ctx->iaoq_n = dest; > +ctx->iaoq_n_var = NULL; > } else { > nullify_over(ctx); > > -- > 2.34.1 >
[PATCH v2 10/45] target/hppa: Skip nullified insns in unconditional dbranch path
Signed-off-by: Richard Henderson --- target/hppa/translate.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/target/hppa/translate.c b/target/hppa/translate.c index a9196050dc..ca979f4137 100644 --- a/target/hppa/translate.c +++ b/target/hppa/translate.c @@ -1805,11 +1805,17 @@ static bool do_dbranch(DisasContext *ctx, int64_t disp, if (ctx->null_cond.c == TCG_COND_NEVER && ctx->null_lab == NULL) { install_link(ctx, link, false); -ctx->iaoq_n = dest; -ctx->iaoq_n_var = NULL; if (is_n) { +if (use_nullify_skip(ctx)) { +nullify_set(ctx, 0); +gen_goto_tb(ctx, 0, dest, dest + 4); +ctx->base.is_jmp = DISAS_NORETURN; +return true; +} ctx->null_cond.c = TCG_COND_ALWAYS; } +ctx->iaoq_n = dest; +ctx->iaoq_n_var = NULL; } else { nullify_over(ctx); -- 2.34.1