summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2013-06-17 17:28:53 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2013-06-17 17:28:53 +1000
commit1b75610761c93c7c62b755d4b7c4c0f3a390be5f (patch)
tree37ff55585fc6356d9c3e157bb0d6ecff9629056b /lib
parent8dc2e388c28d62e35d34518dbe7a477ae2bde4f9 (diff)
parent42b775abafafdf811ef300e869a4e1480ef1cf95 (diff)
Merge remote-tracking branch 'lzo-update/lzo-update'
Diffstat (limited to 'lib')
-rw-r--r--lib/lzo/lzo1x_decompress_safe.c4
-rw-r--r--lib/lzo/lzodefs.h6
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/lzo/lzo1x_decompress_safe.c b/lib/lzo/lzo1x_decompress_safe.c
index 569985d522d5..e3edc5f3f5ee 100644
--- a/lib/lzo/lzo1x_decompress_safe.c
+++ b/lib/lzo/lzo1x_decompress_safe.c
@@ -72,9 +72,11 @@ copy_literal_run:
COPY8(op, ip);
op += 8;
ip += 8;
+# if !defined(__arm__)
COPY8(op, ip);
op += 8;
ip += 8;
+# endif
} while (ip < ie);
ip = ie;
op = oe;
@@ -159,9 +161,11 @@ copy_literal_run:
COPY8(op, m_pos);
op += 8;
m_pos += 8;
+# if !defined(__arm__)
COPY8(op, m_pos);
op += 8;
m_pos += 8;
+# endif
} while (op < oe);
op = oe;
if (HAVE_IP(6)) {
diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h
index 6710b83ce72e..db756ccb2756 100644
--- a/lib/lzo/lzodefs.h
+++ b/lib/lzo/lzodefs.h
@@ -12,8 +12,14 @@
*/
+#if 1 && defined(__arm__) && ((__LINUX_ARM_ARCH__ >= 6) || defined(__ARM_FEATURE_UNALIGNED))
+#define CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS 1
+#define COPY4(dst, src) \
+ * (u32 *) (void *) (dst) = * (const u32 *) (const void *) (src)
+#else
#define COPY4(dst, src) \
put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst))
+#endif
#if defined(__x86_64__)
#define COPY8(dst, src) \
put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst))