On Mon, 16 Jun 2025 at 14:11, Alex Bennée <alex.ben...@linaro.org> wrote:
>
> Peter Maydell <peter.mayd...@linaro.org> writes:
> >
> > The UNDEF is in the "Decode for all variants of this encoding"
> > pseudocode for RETAA, RETAB:
> >
> >   if !IsFeatureImplemented(FEAT_PAuth) then EndOfDecode(Decode_UNDEF);
>
> Doh - totally missed that section which is right above Operation on the
> web page :-/
>
> > This is an accidental regression introduced in commit 0ebbe9021254f
> > where we converted these insns to decodetree. The old hand
> > written decoder has:
> >
> > -            if (!dc_isar_feature(aa64_pauth, s)) {
> > -                goto do_unallocated;
> > -            }
> >
> > in the codepath for RETAA/RETAB/BRAAZ/BRABZ/BLRAAZ/BLRABZ,
> > and although we put the check in the new trans_BRAZ,
> > trans_BLRAZ we forgot it in trans_RETA.
>
> Are you going to fix this up or do you want a patch?

Solomon has volunteered to write a patch: see the other email.

> It does still seem weird - I thought the point of PAUTH using the NOP
> hint space was to allow for binaries to optionally add pointer
> authentication? I guess if it has to pair with RETAA anyway that doesn't
> work.

PACIASP is in the hint space and will NOP on older implementations.
RETAA is not and will UNDEF.

-- PMM

Reply via email to