Lines Matching defs:sbits
186 int sbits = src.size();
194 if (dbits<=sbits) {
201 if (sbits == 1) {
207 if (dbits % sbits) {
208 MOV(AL, 0, d, reg_imm(s, LSL, dbits-sbits));
209 // d = s << (dbits-sbits);
210 dbits -= sbits;
212 ORR(AL, 0, d, d, reg_imm(d, LSR, sbits));
213 // d |= d >> sbits;
214 dbits -= sbits;
215 sbits *= 2;
220 dbits -= sbits;
222 ORR(AL, 0, d, s, reg_imm(s, LSL, sbits));
223 // d |= d<<sbits;
225 dbits -= sbits;
226 if (sbits*2 < dbits) {
227 sbits *= 2;
241 int sbits = sh - sl;
248 ALOGE_IF(sbits<dbits, "sbits (%d) < dbits (%d) in downshift", sbits, dbits);
250 if (sbits>dbits) {
278 sbits = dbits;
284 const uint32_t mask = ((1<<sbits)-1) << sl;
307 // V * ((1<<dbits)-1) / ((1<<sbits)-1)
308 // V * [(1<<dbits)/((1<<sbits)-1) - 1/((1<<sbits)-1)]
309 // V * [1/((1<<sbits)-1)>>dbits - 1/((1<<sbits)-1)]
310 // V/((1<<(sbits-dbits))-(1>>dbits)) - (V>>sbits)/((1<<sbits)-1)>>sbits
311 // V/((1<<(sbits-dbits))-(1>>dbits)) - (V>>sbits)/(1-(1>>sbits))
313 // By approximating (1>>dbits) and (1>>sbits) to 0:
315 // V>>(sbits-dbits) - V>>sbits
317 // A good approximation is V>>(sbits-dbits),
320 // (V>>(sbits-dbits)<<sbits - V)>>sbits
321 // (V<<dbits - V)>>sbits
322 // (V - V>>dbits)>>(sbits-dbits)
335 const int shift = (GGL_DITHER_BITS - (sbits-dbits));