Lines Matching full:bit_offset

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