diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-07 01:33:25 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-07 01:33:25 +0100 |
commit | 4cae044b436a842e0575c3b6787729fb436fd04c (patch) | |
tree | 4db2a80c44b27bfcbddee47b936f4a55b1315b12 /archival/libarchive/bz/compress.c | |
parent | 2b7515722b929794f2f8563b80d9cea48f6b3304 (diff) | |
download | busybox-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.c | 24 |
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 | /*---------------------------------------------------*/ |
61 | static | 67 | static |
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 | 69 | ALWAYS_INLINE_5 |
64 | ALWAYS_INLINE | ||
65 | #endif | ||
66 | void bsW(EState* s, int32_t n, uint32_t v) | 70 | void 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: */ |
77 | static | 81 | static |
78 | #if CONFIG_BZIP2_FAST >= 5 | 82 | ALWAYS_INLINE_5 |
79 | ALWAYS_INLINE | ||
80 | #endif | ||
81 | void bsW16(EState* s, uint32_t v) | 83 | void 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 | } |
105 | static | 107 | static |
106 | #if CONFIG_BZIP2_FAST >= 5 | 108 | ALWAYS_INLINE_5 |
107 | ALWAYS_INLINE | ||
108 | #endif | ||
109 | void bsW1_0(EState* s) | 109 | void 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)]]++ |