target/hppa: Skip nullified insns in unconditional dbranch path
Reviewed-by: Helge Deller <deller@gmx.de>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 9189e03..6c5efb0 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -1806,11 +1806,17 @@
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);