compcache: remove package, use zram-swap instead
[openwrt/svn-archive/archive.git] / package / compcache / patches / 001-lzo-speed.patch
diff --git a/package/compcache/patches/001-lzo-speed.patch b/package/compcache/patches/001-lzo-speed.patch
deleted file mode 100644 (file)
index 130f79d..0000000
+++ /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++;