19863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#ifndef _M68K_SWAB_H
29863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#define _M68K_SWAB_H
39863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer
44f308e35a9bde9d6b671e8409157edb9065f117cJaswinder Singh Rajput#include <linux/types.h>
59863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#include <linux/compiler.h>
69863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer
79863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#define __SWAB_64_THRU_32__
89863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer
99863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#if defined (__mcfisaaplus__) || defined (__mcfisac__)
109863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungererstatic inline __attribute_const__ __u32 __arch_swab32(__u32 val)
119863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer{
129863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer	__asm__("byterev %0" : "=d" (val) : "0" (val));
139863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer	return val;
149863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer}
159863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer
169863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#define __arch_swab32 __arch_swab32
17145452649d035e4e5152f6c4e6798c41960cad3eMaxim Kuvyrkov#elif !defined(__mcoldfire__)
189863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer
199863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungererstatic inline __attribute_const__ __u32 __arch_swab32(__u32 val)
209863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer{
219863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer	__asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val));
229863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer	return val;
239863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer}
249863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#define __arch_swab32 __arch_swab32
256aeea60aee945449c93d9aa70638deeb5c4c5439Harvey Harrison#endif
269863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer
279863a0babc2f0d920dfb4ddecf4e5b5342cb986bGreg Ungerer#endif /* _M68K_SWAB_H */
28