xref: /linux/arch/m68k/include/uapi/asm/swab.h (revision c0c914eca7f251c70facc37dfebeaf176601918d)
1 #ifndef _M68K_SWAB_H
2 #define _M68K_SWAB_H
3 
4 #include <linux/types.h>
5 #include <linux/compiler.h>
6 
7 #define __SWAB_64_THRU_32__
8 
9 #if defined (__mcfisaaplus__) || defined (__mcfisac__)
10 static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
11 {
12 	__asm__("byterev %0" : "=d" (val) : "0" (val));
13 	return val;
14 }
15 
16 #define __arch_swab32 __arch_swab32
17 #elif !defined(__mcoldfire__)
18 
19 static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
20 {
21 	__asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val));
22 	return val;
23 }
24 #define __arch_swab32 __arch_swab32
25 #endif
26 
27 #endif /* _M68K_SWAB_H */
28