From 7de60dfa518dc18b3687dfc008aabc78185be155 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Thu, 25 Feb 2021 23:47:11 -0500 Subject: [PATCH] target/arm: Fix decode of LDRA[AB] instructions These instructions use zero as the discriminator, not SP. Backports commit d250bb19ced3b702c7c37731855f6876d0cc7995 from qemu --- qemu/target/arm/translate-a64.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/qemu/target/arm/translate-a64.c b/qemu/target/arm/translate-a64.c index 78a4daf6..40dbd2d4 100644 --- a/qemu/target/arm/translate-a64.c +++ b/qemu/target/arm/translate-a64.c @@ -3624,9 +3624,11 @@ static void disas_ldst_pac(DisasContext *s, uint32_t insn, if (s->pauth_active) { if (use_key_a) { - gen_helper_autda(tcg_ctx, dirty_addr, tcg_ctx->cpu_env, dirty_addr, tcg_ctx->cpu_X[31]); + gen_helper_autda(tcg_ctx, dirty_addr, tcg_ctx->cpu_env, dirty_addr, + new_tmp_a64_zero(s)); } else { - gen_helper_autdb(tcg_ctx, dirty_addr, tcg_ctx->cpu_env, dirty_addr, tcg_ctx->cpu_X[31]); + gen_helper_autdb(tcg_ctx, dirty_addr, tcg_ctx->cpu_env, dirty_addr, + new_tmp_a64_zero(s)); } }