On Mon, Jul 7, 2014 at 5:01 PM, Richard Henderson <r...@redhat.com> wrote:
> Early alpha can't store sub-4-byte quantities. Altivec can't store anything > but 16 byte quantities. In order to perform smaller stores, we have to do a > read-modify-write sequence on a larger aligned chunk of memory. Two such RMW > sequences must conflict, lest we interleave and thus bork the operation. > > I don't recall how much we ever did for this, exactly, but it's certainly > possible to know that some memory operations cannot conflict with these RMW > sequence. E.g. through size + alignment of the other memory operation. E.g. > on Alpha, a byte RMW store can't conflict with a normal DImode memory access. > >> Btw, if the mem is MEM_READONLY_P how can it be part of >> a {un}aligned_store sequence? > > Er... that's an excellent question. Uros? This flag is copied from the original memory operand by alpha_set_memflags to all memory operands in the expanded sequence. Uros.