On Fri, Nov 12, 2010 at 08:31:39PM +0000, Eduardo Horvath wrote: > No it doesen't because all those macros assume the value is being > transferred from one register to another rather than regiser to memory. > The assignment: > > foo.size = htole64(size); > > Cannot be replaced with: > > __inline __asm("stxa %1, [%0] ASI_LITLE" : &foo.size : size);
The right way to fix this is in the compiler; teach the compiler about opposite-endian variables and let it pick the right instructions for accessing them, and the problem goes away. -- David A. Holland dholl...@netbsd.org