qemu-stable
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 2/6] target/arm: Fix nregs computation in do_ld_zpa


From: Richard Henderson
Subject: Re: [PATCH v2 2/6] target/arm: Fix nregs computation in do_ld_zpa
Date: Wed, 7 Feb 2024 10:42:07 +1000
User-agent: Mozilla Thunderbird

On 2/7/24 00:46, Peter Maydell wrote:
@@ -4600,7 +4601,7 @@ static void do_ld_zpa(DisasContext *s, int zt, int pg,
       * accessible via the instruction encoding.
       */
      assert(fn != NULL);
-    do_mem_zpa(s, zt, pg, addr, dtype, nreg, false, fn);
+    do_mem_zpa(s, zt, pg, addr, dtype, nreg + 1, false, fn);
  }

  static bool trans_LD_zprr(DisasContext *s, arg_rprr_load *a)

What about do_st_zpa() ? It's not obvious what the 'nreg'
encoding is in the a->nreg field in arg_rprr_store, but
it's definitely confusing that do_st_zpa() calls
do_mem_zpa() passing "nreg" whereas do_ld_zpa() now
passes it "nreg + 1". Can we make it so the handling
in these two functions lines up?

Yes, I think there may be a bug in store as well.
Comparing the two is complicated by the cut outs for LDFF1, LDNF1, LD1R and PRF.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]