| #ifndef _M68K_SWAB_H |
| #define _M68K_SWAB_H |
| |
| #include <linux/types.h> |
| #include <linux/compiler.h> |
| |
| #define __SWAB_64_THRU_32__ |
| |
| #if defined (__mcfisaaplus__) || defined (__mcfisac__) |
| static inline __attribute_const__ __u32 __arch_swab32(__u32 val) |
| { |
| __asm__("byterev %0" : "=d" (val) : "0" (val)); |
| return val; |
| } |
| |
| #define __arch_swab32 __arch_swab32 |
| #elif !defined(__uClinux__) |
| |
| static inline __attribute_const__ __u32 __arch_swab32(__u32 val) |
| { |
| __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val)); |
| return val; |
| } |
| #define __arch_swab32 __arch_swab32 |
| #endif |
| |
| #endif /* _M68K_SWAB_H */ |