Lines Matching defs:bit_offset
800 unsigned i, byte, bit_offset, align, shl, shr;
847 bit_offset = format->key_u64s * 64;
849 bit_offset -= format->bits_per_field[i];
851 byte = bit_offset / 8;
852 bit_offset -= byte * 8;
856 if (bit_offset == 0 && bits == 8) {
859 } else if (bit_offset == 0 && bits == 16) {
862 } else if (bit_offset + bits <= 32) {
863 align = min(4 - DIV_ROUND_UP(bit_offset + bits, 8), byte & 3);
865 bit_offset += align * 8;
867 BUG_ON(bit_offset + bits > 32);
872 if (bit_offset) {
874 I3(0xc1, 0xe8, bit_offset);
877 if (bit_offset + bits < 32) {
885 } else if (bit_offset + bits <= 64) {
886 align = min(8 - DIV_ROUND_UP(bit_offset + bits, 8), byte & 7);
888 bit_offset += align * 8;
890 BUG_ON(bit_offset + bits > 64);
895 shl = 64 - bit_offset - bits;
896 shr = bit_offset + shl;
908 align = min(4 - DIV_ROUND_UP(bit_offset + bits, 8), byte & 3);
910 bit_offset += align * 8;
912 BUG_ON(bit_offset + bits > 96);
921 shr = bit_offset + bits - 64;
922 BUG_ON(shr > bit_offset);
924 /* shr rax, bit_offset */
933 shr = bit_offset - shr;