swab.h 602 B

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