1/* Written by Anders Magnusson. Public Domain */ 2 3#if defined(LIBC_SCCS) && !defined(lint) 4 .asciz "$NetBSD: bswap64.S,v 1.2 2005/12/24 08:33:32 matt Exp $" 5#endif /* LIBC_SCCS and not lint */ 6 7#include <machine/asm.h> 8 9ENTRY(bswap64, 0) 10 movq 4(%ap),%r3 11 rotl $-8,%r3,%r1 12 insv %r1,$16,$8,%r1 13 rotl $8,%r3,%r2 14 movb %r2,%r1 15 rotl $-8,%r4,%r0 16 insv %r0,$16,$8,%r0 17 rotl $8,%r4,%r2 18 movb %r2,%r0 19 ret 20