Hi Martin,
On 9/15/21 10:27 PM, Martin Storsjo wrote:
ARM can do 64 bit writes with the STRD instruction, but that instruction requires a 32 bit aligned address - while these stores are unaligned.
Two consecutive stores to uint32_t* pointers can also be fused into one single STRD, as a uint32_t* is supposed to be properly aligned - therefore, do these stores as stores to volatile uint32_t* to avoid fusing them.
How about letting the compiler know that the pointers are unaligned instead? Is attached patch working for you?
Thanks, Piotr