summaryrefslogtreecommitdiffstats
path: root/package/compcache/patches/001-lzo-speed.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/compcache/patches/001-lzo-speed.patch')
-rw-r--r--package/compcache/patches/001-lzo-speed.patch181
1 files changed, 0 insertions, 181 deletions
diff --git a/package/compcache/patches/001-lzo-speed.patch b/package/compcache/patches/001-lzo-speed.patch
deleted file mode 100644
index 130f79da6..000000000
--- a/package/compcache/patches/001-lzo-speed.patch
+++ /dev/null
@@ -1,181 +0,0 @@
---- a/sub-projects/compression/lzo-kmod/lzo1x_compress.c
-+++ b/sub-projects/compression/lzo-kmod/lzo1x_compress.c
-@@ -62,8 +62,12 @@ _lzo1x_1_do_compress(const unsigned char
- goto literal;
-
- try_match:
-+#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
- if (get_unaligned((const unsigned short *)m_pos)
- == get_unaligned((const unsigned short *)ip)) {
-+#else
-+ if (m_pos[0] == ip[0] && m_pos[1] == ip[1]) {
-+#endif
- if (likely(m_pos[2] == ip[2]))
- goto match;
- }
-@@ -94,9 +98,14 @@ match:
- }
- *op++ = tt;
- }
-- do {
-- *op++ = *ii++;
-- } while (--t > 0);
-+ if (t >= 2 * 4) {
-+ memcpy(op, ii, t);
-+ op += t;
-+ ii += t;
-+ } else
-+ do {
-+ *op++ = *ii++;
-+ } while (--t > 0);
- }
-
- ip += 3;
-@@ -208,9 +217,14 @@ int lzo1x_1_compress(const unsigned char
-
- *op++ = tt;
- }
-- do {
-- *op++ = *ii++;
-- } while (--t > 0);
-+ if (t >= 2 * 4) {
-+ memcpy(op, ii, t);
-+ op += t;
-+ ii += t;
-+ } else
-+ do {
-+ *op++ = *ii++;
-+ } while (--t > 0);
- }
-
- *op++ = M4_MARKER | 1;
-@@ -224,4 +238,3 @@ EXPORT_SYMBOL_GPL(lzo1x_1_compress);
-
- MODULE_LICENSE("GPL");
- MODULE_DESCRIPTION("LZO1X-1 Compressor");
--
---- a/sub-projects/compression/lzo-kmod/lzo1x_decompress.c
-+++ b/sub-projects/compression/lzo-kmod/lzo1x_decompress.c
-@@ -45,10 +45,7 @@ int lzo1x_decompress_safe(const unsigned
- goto output_overrun;
- if (HAVE_IP(t + 1, ip_end, ip))
- goto input_overrun;
-- do {
-- *op++ = *ip++;
-- } while (--t > 0);
-- goto first_literal_run;
-+ goto prep_first_literal_run;
- }
-
- while ((ip < ip_end)) {
-@@ -71,30 +68,27 @@ int lzo1x_decompress_safe(const unsigned
- if (HAVE_IP(t + 4, ip_end, ip))
- goto input_overrun;
-
-- COPY4(op, ip);
-- op += 4;
-- ip += 4;
-- if (--t > 0) {
-- if (t >= 4) {
-- do {
-- COPY4(op, ip);
-- op += 4;
-- ip += 4;
-- t -= 4;
-- } while (t >= 4);
-- if (t > 0) {
-- do {
-- *op++ = *ip++;
-- } while (--t > 0);
-- }
-- } else {
-+ t += (4 - 1);
-+ if (t >= 2 * 4) {
-+ memcpy(op, ip, t);
-+ op += t;
-+ ip += t;
-+ } else {
-+ do {
-+ COPY4(op, ip);
-+ op += 4;
-+ ip += 4;
-+ t -= 4;
-+ } while (t >= 4);
-+ if (t > 0) {
-+prep_first_literal_run:
- do {
- *op++ = *ip++;
- } while (--t > 0);
- }
- }
-
--first_literal_run:
-+//first_literal_run:
- t = *ip++;
- if (t >= 16)
- goto match;
-@@ -139,8 +133,7 @@ match:
- t += 31 + *ip++;
- }
- m_pos = op - 1;
-- m_pos -= le16_to_cpu(get_unaligned(
-- (const unsigned short *)ip)) >> 2;
-+ m_pos -= get_unaligned_le16(ip) >> 2;
- ip += 2;
- } else if (t >= 16) {
- m_pos = op;
-@@ -158,8 +151,7 @@ match:
- }
- t += 7 + *ip++;
- }
-- m_pos -= le16_to_cpu(get_unaligned(
-- (const unsigned short *)ip)) >> 2;
-+ m_pos -= get_unaligned_le16(ip) >> 2;
- ip += 2;
- if (m_pos == op)
- goto eof_found;
-@@ -184,21 +176,33 @@ match:
- if (HAVE_OP(t + 3 - 1, op_end, op))
- goto output_overrun;
-
-- if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) {
-- COPY4(op, m_pos);
-- op += 4;
-- m_pos += 4;
-- t -= 4 - (3 - 1);
-- do {
-+ if (t >= 2 * 4 - (3 - 1)) {
-+ /*
-+ * Assume memcpy don't copy
-+ * more than 32 bytes at once
-+ */
-+ if ((op - m_pos) >= 32) {
-+ t += (3 - 1);
-+ memcpy(op, m_pos, t);
-+ op += t;
-+ m_pos += t;
-+ } else if ((op - m_pos) >= 4) {
- COPY4(op, m_pos);
- op += 4;
- m_pos += 4;
-- t -= 4;
-- } while (t >= 4);
-- if (t > 0)
-+ t -= 4 - (3 - 1);
- do {
-- *op++ = *m_pos++;
-- } while (--t > 0);
-+ COPY4(op, m_pos);
-+ op += 4;
-+ m_pos += 4;
-+ t -= 4;
-+ } while (t >= 4);
-+ if (t > 0)
-+ do {
-+ *op++ = *m_pos++;
-+ } while (--t > 0);
-+ } else
-+ goto copy_match;
- } else {
- copy_match:
- *op++ = *m_pos++;