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