m68knommu: add byteswap assembly opcode for ISA A+
Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Ungerer <gerg@uclinux.org>
This commit is contained in:
parent
a6260ef841
commit
e872504b31
1 changed files with 15 additions and 1 deletions
|
@ -1,13 +1,27 @@
|
||||||
#ifndef _M68KNOMMU_BYTEORDER_H
|
#ifndef _M68KNOMMU_BYTEORDER_H
|
||||||
#define _M68KNOMMU_BYTEORDER_H
|
#define _M68KNOMMU_BYTEORDER_H
|
||||||
|
|
||||||
#include <asm/types.h>
|
#include <linux/types.h>
|
||||||
|
|
||||||
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
|
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
|
||||||
# define __BYTEORDER_HAS_U64__
|
# define __BYTEORDER_HAS_U64__
|
||||||
# define __SWAB_64_THRU_32__
|
# define __SWAB_64_THRU_32__
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#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(x) ___arch__swab32(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <linux/byteorder/big_endian.h>
|
#include <linux/byteorder/big_endian.h>
|
||||||
|
|
||||||
#endif /* _M68KNOMMU_BYTEORDER_H */
|
#endif /* _M68KNOMMU_BYTEORDER_H */
|
||||||
|
|
Reference in a new issue