On 5/28/24 09:15, Peter Maydell wrote:
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]

Agreed.


r~


Reply via email to