I'm trying to swap an 8 byte quantity via a Diab macro but I am unable to figure out how to get access to the second word of the unsigned long long. Here's what I have:
asm uint64 swap8Bytes(uint64 eightBytes) { % reg eightBytes; ! "r0", "r12"
mr r12,eightBytes /* LSW */ rlwinm r0,r12, 8, 8,31 rlwimi r0,r12,24,16,23 rlwimi r0,r12,24, 0, 8 mr r4,r0
mr r12,eightBytes /* MSW? How? */ rlwinm r0,r12, 8, 8,31 rlwimi r0,r12,24,16,23 rlwimi r0,r12,24, 0, 8 mr r3,r0 }