Lines Matching refs:bit_offset
792 unsigned i, byte, bit_offset, align, shl, shr;
839 bit_offset = format->key_u64s * 64;
841 bit_offset -= format->bits_per_field[i];
843 byte = bit_offset / 8;
844 bit_offset -= byte * 8;
848 if (bit_offset == 0 && bits == 8) {
851 } else if (bit_offset == 0 && bits == 16) {
854 } else if (bit_offset + bits <= 32) {
855 align = min(4 - DIV_ROUND_UP(bit_offset + bits, 8), byte & 3);
857 bit_offset += align * 8;
859 BUG_ON(bit_offset + bits > 32);
864 if (bit_offset) {
866 I3(0xc1, 0xe8, bit_offset);
869 if (bit_offset + bits < 32) {
877 } else if (bit_offset + bits <= 64) {
878 align = min(8 - DIV_ROUND_UP(bit_offset + bits, 8), byte & 7);
880 bit_offset += align * 8;
882 BUG_ON(bit_offset + bits > 64);
887 shl = 64 - bit_offset - bits;
888 shr = bit_offset + shl;
900 align = min(4 - DIV_ROUND_UP(bit_offset + bits, 8), byte & 3);
902 bit_offset += align * 8;
904 BUG_ON(bit_offset + bits > 96);
913 shr = bit_offset + bits - 64;
914 BUG_ON(shr > bit_offset);
916 /* shr rax, bit_offset */
925 shr = bit_offset - shr;