--- layer3.c-o Wed Apr 21 17:25:18 1999 +++ layer3.c Fri Aug 20 19:43:54 1999 @@ -608,12 +608,21 @@ * Dequantize samples (includes huffman decoding) */ /* 24 is enough because tab13 has max. a 19 bit huffvector */ +#ifdef __alpha +#define BITSHIFT ((sizeof(int)-1)*8) +#define REFRESH_MASK \ + while(num < BITSHIFT) { \ + mask |= getbyte()<<(BITSHIFT-num); \ + num += 8; \ + part2remain -= 8; } +#else #define BITSHIFT ((sizeof(long)-1)*8) #define REFRESH_MASK \ while(num < BITSHIFT) { \ mask |= getbyte()<<(BITSHIFT-num); \ num += 8; \ part2remain -= 8; } +#endif static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf, struct gr_info_s *gr_info,int sfreq,int part2bits) @@ -625,7 +634,11 @@ int *me; int num=getbitoffset(); +#ifdef __alpha + int mask = (int) getbits(num)<<(BITSHIFT+8-num); +#else long mask = (long) getbits(num)<<(BITSHIFT+8-num); +#endif part2remain -= num; { @@ -709,7 +722,11 @@ if(x == 15 && h->linbits) { max[lwin] = cb; REFRESH_MASK; +#ifdef __alpha + x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); +#else x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); +#endif num -= h->linbits+1; mask <<= h->linbits; if(mask < 0) @@ -733,7 +750,11 @@ if(y == 15 && h->linbits) { max[lwin] = cb; REFRESH_MASK; +#ifdef __alpha + y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); +#else y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); +#endif num -= h->linbits+1; mask <<= h->linbits; if(mask < 0) @@ -883,7 +904,11 @@ if (x == 15 && h->linbits) { max = cb; REFRESH_MASK; +#ifdef __alpha + x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); +#else x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); +#endif num -= h->linbits+1; mask <<= h->linbits; if(mask < 0) @@ -907,7 +932,11 @@ if (y == 15 && h->linbits) { max = cb; REFRESH_MASK; +#ifdef __alpha + y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); +#else y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); +#endif num -= h->linbits+1; mask <<= h->linbits; if(mask < 0)