|
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~
[Prev in Thread] | Current Thread | [Next in Thread] |