That looks fine to me. But don't you want to rotate by 9 rather than 17 when dealing with a 32-bit pointer, like the i386 version does? It could be genericized here by using a "i" constraint on an input argument that you compute from sizeof (void *). Thanks, Roland