On Tue, Jul 30, 2019 at 11:16:37AM -0500, Segher Boessenkool wrote:
in_le32 and friends? Yeah, huh. If LLVM copies that to the stack as
well, its (not byte reversing) read will be atomic just fine, so things
will still work correctly.
The things defined with DEF_MMIO_IN_D (instead of DEF_MMIO_IN_X) do not
look like they will work correctly if an update form address is chosen,
but that won't happen because the constraint is "m" instead of "m<>",
making the %Un pretty useless (it will always be the empty string).
Btw, this is true since GCC 4.8; before 4.8, plain "m" *could* have an
automodify (autoinc, autodec, etc.) side effect. What is the minimum
GCC version required, these days?
https://gcc.gnu.org/PR44492
https://gcc.gnu.org/r161328
Segher