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