Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bbad8123 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

[MIPS] MIPS64 R2 optimizations for 64-bit endianess swapping.

parent e87dddeb
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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__)