On Sat, 25 May 2024 at 00:27, Richard Henderson
<richard.hender...@linaro.org> wrote:
>
> These are the only instructions in the 3 source scalar class.
>
> Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
> ---
>  target/arm/tcg/a64.decode      |  10 ++
>  target/arm/tcg/translate-a64.c | 233 ++++++++++++---------------------
>  2 files changed, 93 insertions(+), 150 deletions(-)
>

>  static void disas_data_proc_fp(DisasContext *s, uint32_t insn)
>  {
> -    if (extract32(insn, 24, 1)) {
> -        /* Floating point data-processing (3 source) */
> -        disas_fp_3src(s, insn);
> -    } else if (extract32(insn, 21, 1) == 0) {
> +    if (extract32(insn, 21, 1) == 0) {
>          /* Floating point to fixed point conversions */
>          disas_fp_fixed_conv(s, insn);
>      } else {

Doesn't this result in the unallocated-encodings in the
fp-3src class now falling into the "else" clause and
being mis-decoded as the wrong thing? I think this
needs to be

    if (extract32(insn, 24, 1)) {
        unallocated_encoding();
    } else if (extract32(insn, 21, 1) == 0) {
    [etc]

thanks
-- PMM

Reply via email to