On 14 May 2013 11:09, "Stephen Rothwell" wrote: > > Hi Mikey, > > On Mon, 13 May 2013 17:09:59 +1000 Michael Neuling wrote: > > > > This doesn't work for me but the below does: > > > > _GLOBAL(__bswapdi2) > > rotlwi r9,r4,8 > > rotlwi r10,r3,8 > > rlwimi r9,r4,24,0,7 > > rlwimi r10,r3,24,0,7 > > rlwimi r9,r4,24,16,23 > > rlwimi r10,r3,24,16,23 > > mr r4,r10 > > mr r3,r9 > > blr > > > > stolen from GCC -02 output of: > > unsigned long long __bswapdi2(unsigned long long x) > > { > > return ((x & 0x00000000000000ffULL) << 56) | > > ((x & 0x000000000000ff00ULL) << 40) | > > ((x & 0x0000000000ff0000ULL) << 24) | > > ((x & 0x00000000ff000000ULL) << 8) | > > ((x & 0x000000ff00000000ULL) >> 8) | > > ((x & 0x0000ff0000000000ULL) >> 24) | > > ((x & 0x00ff000000000000ULL) >> 40) | > > ((x & 0xff00000000000000ULL) >> 56); > > } > > So, if we are just stealing the output of gcc, why not just use the C > version (at least for 32 bit)? Woodhouse: can we just do this? Mikey