summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Siewior <bigeasy@linutronix.de>2008-05-17 21:51:15 +0200
committerGreg Ungerer <gerg@uclinux.org>2008-07-23 15:11:28 +1000
commite872504b311cec52f7a316a0037fb959080dbea0 (patch)
tree473904027bb426a3959cbbf081a0e46ae1e0e3e0
parenta6260ef84103fa8a51a67b6a58e5e16c676e08ad (diff)
m68knommu: add byteswap assembly opcode for ISA A+
Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Ungerer <gerg@uclinux.org>
-rw-r--r--include/asm-m68knommu/byteorder.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/asm-m68knommu/byteorder.h b/include/asm-m68knommu/byteorder.h
index 8fcde907b0f..20bb4426b61 100644
--- a/include/asm-m68knommu/byteorder.h
+++ b/include/asm-m68knommu/byteorder.h
@@ -1,13 +1,27 @@
#ifndef _M68KNOMMU_BYTEORDER_H
#define _M68KNOMMU_BYTEORDER_H
-#include <asm/types.h>
+#include <linux/types.h>
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
# define __BYTEORDER_HAS_U64__
# define __SWAB_64_THRU_32__
#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>
#endif /* _M68KNOMMU_BYTEORDER_H */