On Thu, 3 Aug 2023 at 15:42, Richard Henderson <richard.hender...@linaro.org> wrote: > > On 8/3/23 06:10, Peter Maydell wrote: > > On Thu, 27 Jul 2023 at 17:33, Richard Henderson > >> - mop = MO_128; > >> - if (s->align_mem) { > >> - mop |= MO_ALIGN_8; > >> - } > >> - mop = finalize_memop_pair(s, mop); > >> + mop = MO_128 | MO_ALIGN | MO_ATOM_IFALIGN_PAIR; > > > > So here we're implicitly assuming TAG_GRANULE is 16 and > > then relying on the codegen for a MO_128 | MO_ALIGN > > operation to give us the alignment fault if the guest > > address isn't aligned to the tag granule, right ? > > Yes. > > > > > Previously we also put s->be_data into the MemOp > > (via finalize_memop_pair() calling finalize_memop_atom()). > > Don't we still need to do that ? > > Whoops, yes.
I think you still need to respin this one, right? (I re-found it because I remembered this "writes tags, doesn't check them" thing and that it ought to apply to the FEAT_MOPS SETG block-tag-set that I'm writing also.) thanks -- PMM