[PATCH] target/arm: Make RETA[AB] UNDEF when pauth is not implemented

Solomon Tan posted 1 patch 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250616171549.59190-1-root@wjsota.com
Maintainers: Peter Maydell <peter.maydell@linaro.org>
target/arm/tcg/translate-a64.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] target/arm: Make RETA[AB] UNDEF when pauth is not implemented
Posted by Solomon Tan 5 months ago
According to the Arm A-profile A64 Instruction Set Architecture,
RETA[AB] should be decoded as UNDEF if the pauth feature is not
implemented.

Fixes: 0ebbe9021254f ("target/arm: Convert BRA[AB]Z, BLR[AB]Z, RETA[AB] to decodetree")
Signed-off-by: Solomon Tan <root@wjsota.com>
---
 target/arm/tcg/translate-a64.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c
index ac80f572a2..d0719b5665 100644
--- a/target/arm/tcg/translate-a64.c
+++ b/target/arm/tcg/translate-a64.c
@@ -1816,6 +1816,10 @@ static bool trans_RETA(DisasContext *s, arg_reta *a)
 {
     TCGv_i64 dst;
 
+    if (!dc_isar_feature(aa64_pauth, s)) {
+        return false;
+    }
+
     dst = auth_branch_target(s, cpu_reg(s, 30), cpu_X[31], !a->m);
     gen_a64_set_pc(s, dst);
     s->base.is_jmp = DISAS_JUMP;
-- 
2.48.1
Re: [PATCH] target/arm: Make RETA[AB] UNDEF when pauth is not implemented
Posted by Peter Maydell 4 months, 2 weeks ago
On Mon, 16 Jun 2025 at 18:15, Solomon Tan <root@wjsota.com> wrote:
>
> According to the Arm A-profile A64 Instruction Set Architecture,
> RETA[AB] should be decoded as UNDEF if the pauth feature is not
> implemented.
>
> Fixes: 0ebbe9021254f ("target/arm: Convert BRA[AB]Z, BLR[AB]Z, RETA[AB] to decodetree")
> Signed-off-by: Solomon Tan <root@wjsota.com>
> ---
>  target/arm/tcg/translate-a64.c | 4 ++++
>  1 file changed, 4 insertions(+)

Thanks for your patch! I've applied it to target-arm.next,
and it should get into upstream git within a week or so.

-- PMM
Re: [PATCH] target/arm: Make RETA[AB] UNDEF when pauth is not implemented
Posted by Richard Henderson 5 months ago
On 6/16/25 10:15, Solomon Tan wrote:
> According to the Arm A-profile A64 Instruction Set Architecture,
> RETA[AB] should be decoded as UNDEF if the pauth feature is not
> implemented.
> 
> Fixes: 0ebbe9021254f ("target/arm: Convert BRA[AB]Z, BLR[AB]Z, RETA[AB] to decodetree")
> Signed-off-by: Solomon Tan<root@wjsota.com>
> ---
>   target/arm/tcg/translate-a64.c | 4 ++++
>   1 file changed, 4 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Re: [PATCH] target/arm: Make RETA[AB] UNDEF when pauth is not implemented
Posted by Alex Bennée 5 months ago
Solomon Tan <root@wjsota.com> writes:

> According to the Arm A-profile A64 Instruction Set Architecture,
> RETA[AB] should be decoded as UNDEF if the pauth feature is not
> implemented.
>
> Fixes: 0ebbe9021254f ("target/arm: Convert BRA[AB]Z, BLR[AB]Z, RETA[AB] to decodetree")
> Signed-off-by: Solomon Tan <root@wjsota.com>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro