Saved another 48 bytes of data for bzip2 (at the expense of 6 extra code bytes).

bzip2 'randtable' not being initialised in makensis.


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1212 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
eccles 2002-09-28 14:01:32 +00:00
parent 265313abaa
commit ad84409c92
2 changed files with 218 additions and 247 deletions

View file

@ -125,7 +125,7 @@ typedef unsigned short UInt16;
/*-- Stuff for randomising repetitive blocks. --*/ /*-- Stuff for randomising repetitive blocks. --*/
extern Int16 BZ2_rNums[513]; // make this 512 for bigger-data/smaller-code mode. extern Int16 BZ2_rNums[512];
#define BZ_RAND_DECLS \ #define BZ_RAND_DECLS \
Int32 rNToGo; \ Int32 rNToGo; \

View file

@ -63,205 +63,176 @@
#include "bzlib_private.h" #include "bzlib_private.h"
// smaller data mode that saves 384 bytes of data, but adds 66 bytes of code.
#ifdef EXEHEAD
// smaller data mode that saves 336 bytes of data, but adds 60 bytes of code. #define PACK4(a,b,c,d) (UChar)((a)<<0), (UChar)(((a)>>8)|((b)<<2)), (UChar)(((b)>>6)|((c)<<4)), (UChar)(((c)>>4)|((d)<<6)), (UChar)((d)>>2)
#if 1
#define PACK3(x,y,z) ((z) << 20)|((y) << 10)|(x) // Four 10-bit values per five bytes
// aaaaaaaa bbbbbbaa ccccbbbb ddcccccc dddddddd
// 0 09 09 09 9
static Int32 BZ2_rNumsPacked[171]= static UChar BZ2_rNumsPacked[640]=
{ {
PACK3(619,720,127), PACK4(619,720,127,481),
PACK3(481,931,816), PACK4(931,816,813,233),
PACK3(813,233,566), PACK4(566,247,985,724),
PACK3(247,985,724), PACK4(205,454,863,491),
PACK3(205,454,863), PACK4(741,242,949,214),
PACK3(491,741,242), PACK4(733,859,335,708),
PACK3(949,214,733), PACK4(621,574, 73,654),
PACK3(859,335,708), PACK4(730,472,419,436),
PACK3(621,574,73), PACK4(278,496,867,210),
PACK3(654,730,472), PACK4(399,680,480, 51),
PACK3(419,436,278), PACK4(878,465,811,169),
PACK3(496,867,210), PACK4(869,675,611,697),
PACK3(399,680,480), PACK4(867,561,862,687),
PACK3(51,878,465), PACK4(507,283,482,129),
PACK3(811,169,869), PACK4(807,591,733,623),
PACK3(675,611,697), PACK4(150,238, 59,379),
PACK3(867,561,862), PACK4(684,877,625,169),
PACK3(687,507,283), PACK4(643,105,170,607),
PACK3(482,129,807), PACK4(520,932,727,476),
PACK3(591,733,623), PACK4(693,425,174,647),
PACK3(150,238,59), PACK4( 73,122,335,530),
PACK3(379,684,877), PACK4(442,853,695,249),
PACK3(625,169,643), PACK4(445,515,909,545),
PACK3(105,170,607), PACK4(703,919,874,474),
PACK3(520,932,727), PACK4(882,500,594,612),
PACK3(476,693,425), PACK4(641,801,220,162),
PACK3(174,647,73), PACK4(819,984,589,513),
PACK3(122,335,530), PACK4(495,799,161,604),
PACK3(442,853,695), PACK4(958,533,221,400),
PACK3(249,445,515), PACK4(386,867,600,782),
PACK3(909,545,703), PACK4(382,596,414,171),
PACK3(919,874,474), PACK4(516,375,682,485),
PACK3(882,500,594), PACK4(911,276, 98,553),
PACK3(612,641,801), PACK4(163,354,666,933),
PACK3(220,162,819), PACK4(424,341,533,870),
PACK3(984,589,513), PACK4(227,730,475,186),
PACK3(495,799,161), PACK4(263,647,537,686),
PACK3(604,958,533), PACK4(600,224,469, 68),
PACK3(221,400,386), PACK4(770,919,190,373),
PACK3(867,600,782), PACK4(294,822,808,206),
PACK3(382,596,414), PACK4(184,943,795,384),
PACK3(171,516,375), PACK4(383,461,404,758),
PACK3(682,485,911), PACK4(839,887,715, 67),
PACK3(276,98,553), PACK4(618,276,204,918),
PACK3(163,354,666), PACK4(873,777,604,560),
PACK3(933,424,341), PACK4(951,160,578,722),
PACK3(533,870,227), PACK4( 79,804, 96,409),
PACK3(730,475,186), PACK4(713,940,652,934),
PACK3(263,647,537), PACK4(970,447,318,353),
PACK3(686,600,224), PACK4(859,672,112,785),
PACK3(469,68,770), PACK4(645,863,803,350),
PACK3(919,190,373), PACK4(139, 93,354, 99),
PACK3(294,822,808), PACK4(820,908,609,772),
PACK3(206,184,943), PACK4(154,274,580,184),
PACK3(795,384,383), PACK4( 79,626,630,742),
PACK3(461,404,758), PACK4(653,282,762,623),
PACK3(839,887,715), PACK4(680, 81,927,626),
PACK3(67,618,276), PACK4(789,125,411,521),
PACK3(204,918,873), PACK4(938,300,821, 78),
PACK3(777,604,560), PACK4(343,175,128,250),
PACK3(951,160,578), PACK4(170,774,972,275),
PACK3(722,79,804), PACK4(999,639,495, 78),
PACK3(96,409,713), PACK4(352,126,857,956),
PACK3(940,652,934), PACK4(358,619,580,124),
PACK3(970,447,318), PACK4(737,594,701,612),
PACK3(353,859,672), PACK4(669,112,134,694),
PACK3(112,785,645), PACK4(363,992,809,743),
PACK3(863,803,350), PACK4(168,974,944,375),
PACK3(139,93,354), PACK4(748, 52,600,747),
PACK3(99,820,908), PACK4(642,182,862, 81),
PACK3(609,772,154), PACK4(344,805,988,739),
PACK3(274,580,184), PACK4(511,655,814,334),
PACK3(79,626,630), PACK4(249,515,897,955),
PACK3(742,653,282), PACK4(664,981,649,113),
PACK3(762,623,680), PACK4(974,459,893,228),
PACK3(81,927,626), PACK4(433,837,553,268),
PACK3(789,125,411), PACK4(926,240,102,654),
PACK3(521,938,300), PACK4(459, 51,686,754),
PACK3(821,78,343), PACK4(806,760,493,403),
PACK3(175,128,250), PACK4(415,394,687,700),
PACK3(170,774,972), PACK4(946,670,656,610),
PACK3(275,999,639), PACK4(738,392,760,799),
PACK3(495,78,352), PACK4(887,653,978,321),
PACK3(126,857,956), PACK4(576,617,626,502),
PACK3(358,619,580), PACK4(894,679,243,440),
PACK3(124,737,594), PACK4(680,879,194,572),
PACK3(701,612,669), PACK4(640,724,926, 56),
PACK3(112,134,694), PACK4(204,700,707,151),
PACK3(363,992,809), PACK4(457,449,797,195),
PACK3(743,168,974), PACK4(791,558,945,679),
PACK3(944,375,748), PACK4(297, 59, 87,824),
PACK3(52,600,747), PACK4(713,663,412,693),
PACK3(642,182,862), PACK4(342,606,134,108),
PACK3(81,344,805), PACK4(571,364,631,212),
PACK3(988,739,511), PACK4(174,643,304,329),
PACK3(655,814,334), PACK4(343, 97,430,751),
PACK3(249,515,897), PACK4(497,314,983,374),
PACK3(955,664,981), PACK4(822,928,140,206),
PACK3(649,113,974), PACK4( 73,263,980,736),
PACK3(459,893,228), PACK4(876,478,430,305),
PACK3(433,837,553), PACK4(170,514,364,692),
PACK3(268,926,240), PACK4(829, 82,855,953),
PACK3(102,654,459), PACK4(676,246,369,970),
PACK3(51,686,754), PACK4(294,750,807,827),
PACK3(806,760,493), PACK4(150,790,288,923),
PACK3(403,415,394), PACK4(804,378,215,828),
PACK3(687,700,946), PACK4(592,281,565,555),
PACK3(670,656,610), PACK4(710, 82,896,831),
PACK3(738,392,760), PACK4(547,261,524,462),
PACK3(799,887,653), PACK4(293,465,502, 56),
PACK3(978,321,576), PACK4(661,821,976,991),
PACK3(617,626,502), PACK4(658,869,905,758),
PACK3(894,679,243), PACK4(745,193,768,550),
PACK3(440,680,879), PACK4(608,933,378,286),
PACK3(194,572,640), PACK4(215,979,792,961),
PACK3(724,926,56), PACK4( 61,688,793,644),
PACK3(204,700,707), PACK4(986,403,106,366),
PACK3(151,457,449), PACK4(905,644,372,567),
PACK3(797,195,791), PACK4(466,434,645,210),
PACK3(558,945,679), PACK4(389,550,919,135),
PACK3(297,59,87), PACK4(780,773,635,389),
PACK3(824,713,663), PACK4(707,100,626,958),
PACK3(412,693,342), PACK4(165,504,920,176),
PACK3(606,134,108), PACK4(193,713,857,265),
PACK3(571,364,631), PACK4(203, 50,668,108),
PACK3(212,174,643), PACK4(645,990,626,197),
PACK3(304,329,343), PACK4(510,357,358,850),
PACK3(97,430,751), PACK4(858,364,936,638)
PACK3(497,314,983),
PACK3(374,822,928),
PACK3(140,206,73),
PACK3(263,980,736),
PACK3(876,478,430),
PACK3(305,170,514),
PACK3(364,692,829),
PACK3(82,855,953),
PACK3(676,246,369),
PACK3(970,294,750),
PACK3(807,827,150),
PACK3(790,288,923),
PACK3(804,378,215),
PACK3(828,592,281),
PACK3(565,555,710),
PACK3(82,896,831),
PACK3(547,261,524),
PACK3(462,293,465),
PACK3(502,56,661),
PACK3(821,976,991),
PACK3(658,869,905),
PACK3(758,745,193),
PACK3(768,550,608),
PACK3(933,378,286),
PACK3(215,979,792),
PACK3(961,61,688),
PACK3(793,644,986),
PACK3(403,106,366),
PACK3(905,644,372),
PACK3(567,466,434),
PACK3(645,210,389),
PACK3(550,919,135),
PACK3(780,773,635),
PACK3(389,707,100),
PACK3(626,958,165),
PACK3(504,920,176),
PACK3(193,713,857),
PACK3(265,203,50),
PACK3(668,108,645),
PACK3(990,626,197),
PACK3(510,357,358),
PACK3(850,858,364),
PACK3(936,638,0),
}; };
/*---------------------------------------------*/ /*---------------------------------------------*/
Int16 BZ2_rNums[513]; Int16 BZ2_rNums[512];
#ifdef __BIG_ENDIAN__ // Not very likely, but, still...
#error This routine is currently little-endian specific!
#endif
void NSISCALL genrtable() void NSISCALL genrtable()
{ {
unsigned char x=171; unsigned char x=640/5;
Int16 *t=BZ2_rNums; Int16 *t=BZ2_rNums;
Int32 *it=BZ2_rNumsPacked; UChar *it=BZ2_rNumsPacked;
while (x--) do {
{ unsigned char l=0;
Int32 i=*it++; do {
char l=3; *t++ = (Int16)(((*(UInt16 *)(it++))>>l) & 1023);
while (l--) } while ((l+=2) < 8);
{ it++;
*t++=i&1023; } while (--x);
i>>=10; /*
} x=512/4;
} t=BZ2_rNums;
do {
char z[20];
wsprintf(z, "%d,%d,%d,%d\n", t[0], t[1], t[2], t[3]);
t += 4;
OutputDebugString(z);
} while (--x);
*/
} }
#else #else