aboutsummaryrefslogtreecommitdiff
path: root/archival/libarchive/bz/compress.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-02-07 01:33:25 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-02-07 01:33:25 +0100
commit4cae044b436a842e0575c3b6787729fb436fd04c (patch)
tree4db2a80c44b27bfcbddee47b936f4a55b1315b12 /archival/libarchive/bz/compress.c
parent2b7515722b929794f2f8563b80d9cea48f6b3304 (diff)
downloadbusybox-w32-4cae044b436a842e0575c3b6787729fb436fd04c.tar.gz
busybox-w32-4cae044b436a842e0575c3b6787729fb436fd04c.tar.bz2
busybox-w32-4cae044b436a842e0575c3b6787729fb436fd04c.zip
bzip2: expose tuning knob for faster/smaller code
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libarchive/bz/compress.c')
-rw-r--r--archival/libarchive/bz/compress.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/archival/libarchive/bz/compress.c b/archival/libarchive/bz/compress.c
index 462740b6c..539ab927e 100644
--- a/archival/libarchive/bz/compress.c
+++ b/archival/libarchive/bz/compress.c
@@ -32,6 +32,12 @@ in the file LICENSE.
32 32
33/* #include "bzlib_private.h" */ 33/* #include "bzlib_private.h" */
34 34
35#if BZIP2_SPEED >= 5
36# define ALWAYS_INLINE_5 ALWAYS_INLINE
37#else
38# define ALWAYS_INLINE_5 /*nothing*/
39#endif
40
35/*---------------------------------------------------*/ 41/*---------------------------------------------------*/
36/*--- Bit stream I/O ---*/ 42/*--- Bit stream I/O ---*/
37/*---------------------------------------------------*/ 43/*---------------------------------------------------*/
@@ -60,9 +66,7 @@ void bsFinishWrite(EState* s)
60/*---------------------------------------------------*/ 66/*---------------------------------------------------*/
61static 67static
62/* Helps only on level 5, on other levels hurts. ? */ 68/* Helps only on level 5, on other levels hurts. ? */
63#if CONFIG_BZIP2_FAST >= 5 69ALWAYS_INLINE_5
64ALWAYS_INLINE
65#endif
66void bsW(EState* s, int32_t n, uint32_t v) 70void bsW(EState* s, int32_t n, uint32_t v)
67{ 71{
68 while (s->bsLive >= 8) { 72 while (s->bsLive >= 8) {
@@ -75,9 +79,7 @@ void bsW(EState* s, int32_t n, uint32_t v)
75} 79}
76/* Same with n == 16: */ 80/* Same with n == 16: */
77static 81static
78#if CONFIG_BZIP2_FAST >= 5 82ALWAYS_INLINE_5
79ALWAYS_INLINE
80#endif
81void bsW16(EState* s, uint32_t v) 83void bsW16(EState* s, uint32_t v)
82{ 84{
83 while (s->bsLive >= 8) { 85 while (s->bsLive >= 8) {
@@ -103,9 +105,7 @@ void bsW1_1(EState* s)
103 s->bsLive += 1; 105 s->bsLive += 1;
104} 106}
105static 107static
106#if CONFIG_BZIP2_FAST >= 5 108ALWAYS_INLINE_5
107ALWAYS_INLINE
108#endif
109void bsW1_0(EState* s) 109void bsW1_0(EState* s)
110{ 110{
111 /* need space for only 1 bit, no need for loop freeing > 8 bits */ 111 /* need space for only 1 bit, no need for loop freeing > 8 bits */
@@ -394,7 +394,7 @@ void sendMTFValues(EState* s)
394 s->rfreq[t][v] = 0; 394 s->rfreq[t][v] = 0;
395 } 395 }
396 396
397#if CONFIG_BZIP2_FAST >= 5 397#if BZIP2_SPEED >= 5
398 /* 398 /*
399 * Set up an auxiliary length table which is used to fast-track 399 * Set up an auxiliary length table which is used to fast-track
400 * the common case (nGroups == 6). 400 * the common case (nGroups == 6).
@@ -427,7 +427,7 @@ void sendMTFValues(EState* s)
427 */ 427 */
428 for (t = 0; t < nGroups; t++) 428 for (t = 0; t < nGroups; t++)
429 cost[t] = 0; 429 cost[t] = 0;
430#if CONFIG_BZIP2_FAST >= 5 430#if BZIP2_SPEED >= 5
431 if (nGroups == 6 && 50 == ge-gs+1) { 431 if (nGroups == 6 && 50 == ge-gs+1) {
432 /*--- fast track the common case ---*/ 432 /*--- fast track the common case ---*/
433 register uint32_t cost01, cost23, cost45; 433 register uint32_t cost01, cost23, cost45;
@@ -483,7 +483,7 @@ void sendMTFValues(EState* s)
483 * Increment the symbol frequencies for the selected table. 483 * Increment the symbol frequencies for the selected table.
484 */ 484 */
485/* 1% faster compress. +800 bytes */ 485/* 1% faster compress. +800 bytes */
486#if CONFIG_BZIP2_FAST >= 4 486#if BZIP2_SPEED >= 4
487 if (nGroups == 6 && 50 == ge-gs+1) { 487 if (nGroups == 6 && 50 == ge-gs+1) {
488 /*--- fast track the common case ---*/ 488 /*--- fast track the common case ---*/
489#define BZ_ITUR(nn) s->rfreq[bt][mtfv[gs + (nn)]]++ 489#define BZ_ITUR(nn) s->rfreq[bt][mtfv[gs + (nn)]]++