uint32_t result= be2me_32( *(uint32_t *)(((uint8_t *)s->buffer)+(index>>3)) );
uint32_t result1= be2me_32( ((uint32_t *)s->buffer)[index>>5] ); uint32_t result2= be2me_32( ((uint32_t *)s->buffer)[(index>>5) + 1] ); #ifdef ARCH_X86 asm ("shldl %%cl, %2, %0\n\t" : "=r" (result1) : "0" (result1), "r" (result2), "c" (index)); #else result1<<= (index&0x1F); result2>>= 32-(index&0x1F); if((index&0x1F)!=0) result1|= result2; #endif result1>>= 32 - n; index+= n; s->index= index;  return result1; #else int index= s->index; uint32_t result= be2me_32( unaligned32( ((uint8_t *)s->buffer)+(index>>3) ) );
static inline unsigned int get_bits(GetBitContext *s, int n){#ifdef ALT_BITSTREAM_READER    int index= s->index;    uint32_t result= be2me_32( *(uint32_t *)(((uint8_t *)s->buffer)+(index>>3)) );    result<<= (index&0x07);    result>>= 32 - n;    index+= n;    s->index= index;        return result;#else    if(s->bit_cnt>=n){        /* most common case here */        unsigned int val = s->bit_buf >> (32 - n);        s->bit_buf <<= n;	s->bit_cnt -= n;#ifdef STATS	st_bit_counts[st_current_index] += n;#endif	return val;    }    return get_bits_long(s,n);#endif}