Skip to content

Commit

Permalink
[MIPS] MIPS64 R2 optimizations for 64-bit endianess swapping.
Browse files Browse the repository at this point in the history
    
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Ralf Baechle committed Mar 21, 2006
1 parent e87ddde commit bbad812
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions include/asm-mips/byteorder.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,24 @@ static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
}
#define __arch__swab32(x) ___arch__swab32(x)

#ifdef CONFIG_CPU_MIPS64_R2

static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 x)
{
__asm__(
" dsbh %0, %1 \n"
" dshd %0, %0 \n"
" drotr %0, %0, 32 \n"
: "=r" (x)
: "r" (x));

return x;
}

#define __arch__swab64(x) ___arch__swab64(x)

#endif /* CONFIG_CPU_MIPS64_R2 */

#endif /* CONFIG_CPU_MIPSR2 */

#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
Expand Down

0 comments on commit bbad812

Please sign in to comment.