Lines Matching refs:ac
35 static int ac_get_range_bits(const struct lc3_bits_ac *ac) in ac_get_range_bits() argument
39 for (unsigned r = ac->range; r; r >>= 1, nbits++); in ac_get_range_bits()
49 static int ac_get_pending_bits(const struct lc3_bits_ac *ac) in ac_get_pending_bits() argument
51 return 26 - ac_get_range_bits(ac) + in ac_get_pending_bits()
52 ((ac->cache >= 0) + ac->carry_count) * 8; in ac_get_pending_bits()
64 const struct lc3_bits_ac *ac = &bits->ac; in get_bits_left() local
74 return 8 * n - (accu->n + accu->nover + ac_get_pending_bits(ac)); in get_bits_left()
88 .ac = { in lc3_setup_bits()
99 struct lc3_bits_ac *ac = &bits->ac; in lc3_setup_bits() local
103 ac->low = ac_get(buffer) << 16; in lc3_setup_bits()
104 ac->low |= ac_get(buffer) << 8; in lc3_setup_bits()
105 ac->low |= ac_get(buffer); in lc3_setup_bits()
124 const struct lc3_bits_ac *ac = &bits->ac; in lc3_check_bits() local
126 return -(get_bits_left(bits) < 0 || ac->error); in lc3_check_bits()
171 struct lc3_bits_ac *ac, struct lc3_bits_buffer *buffer) in ac_shift() argument
173 if (ac->low < 0xff0000 || ac->carry) in ac_shift()
175 if (ac->cache >= 0) in ac_shift()
176 ac_put(buffer, ac->cache + ac->carry); in ac_shift()
178 for ( ; ac->carry_count > 0; ac->carry_count--) in ac_shift()
179 ac_put(buffer, ac->carry ? 0x00 : 0xff); in ac_shift()
181 ac->cache = ac->low >> 16; in ac_shift()
182 ac->carry = 0; in ac_shift()
185 ac->carry_count++; in ac_shift()
187 ac->low = (ac->low << 8) & 0xffffff; in ac_shift()
196 static void ac_terminate(struct lc3_bits_ac *ac, in ac_terminate() argument
199 int nbits = 25 - ac_get_range_bits(ac); in ac_terminate()
201 unsigned val = ac->low + mask; in ac_terminate()
202 unsigned high = ac->low + ac->range; in ac_terminate()
215 val = ((ac->low + mask) & 0xffffff) & ~mask; in ac_terminate()
218 ac->carry |= val < ac->low; in ac_terminate()
221 ac->low = val; in ac_terminate()
224 ac_shift(ac, buffer); in ac_terminate()
225 ac_shift(ac, buffer); in ac_terminate()
227 int end_val = ac->cache >> (8 - nbits); in ac_terminate()
229 if (ac->carry_count) { in ac_terminate()
230 ac_put(buffer, ac->cache); in ac_terminate()
231 for ( ; ac->carry_count > 1; ac->carry_count--) in ac_terminate()
248 struct lc3_bits_ac *ac = &bits->ac; in lc3_flush_bits() local
258 ac_terminate(ac, buffer); in lc3_flush_bits()
290 struct lc3_bits_ac *ac = &bits->ac; in lc3_ac_write_renorm() local
292 for ( ; ac->range < 0x10000; ac->range <<= 8) in lc3_ac_write_renorm()
293 ac_shift(ac, &bits->buffer); in lc3_ac_write_renorm()
371 struct lc3_bits_ac *ac = &bits->ac; in lc3_ac_read_renorm() local
373 for ( ; ac->range < 0x10000; ac->range <<= 8) in lc3_ac_read_renorm()
374 ac->low = ((ac->low << 8) | ac_get(&bits->buffer)) & 0xffffff; in lc3_ac_read_renorm()