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