On 07/07/2014 09:35 AM, Uros Bizjak wrote: > 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.
Misses the point. Store on a MEM_READONLY_P? I suppose I should take a closer look today... r~