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. --*/
extern Int16 BZ2_rNums[513]; // make this 512 for bigger-data/smaller-code mode.
extern Int16 BZ2_rNums[512];
#define BZ_RAND_DECLS \
Int32 rNToGo; \

View file

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