Lines Matching full:carry
128 * Handle carry bytes using shifts and masks.
130 * NOTE: the value the unused portion of carry is expected to always be zero.
140 * "merge" shift - bit shift used to merge with carry bytes. Input is
176 * of pbuf->carry. Other bytes are left as-is. Any previous
177 * value in pbuf->carry is lost.
186 pbuf->carry.val64 = 0; in read_low_bytes()
187 jcopy(&pbuf->carry.val8[0], from, nbytes); in read_low_bytes()
192 * Read nbytes bytes from "from" and put them at the end of pbuf->carry.
193 * It is expected that the extra read does not overfill carry.
202 jcopy(&pbuf->carry.val8[pbuf->carry_bytes], from, nbytes); in read_extra_bytes()
207 * Write a quad word using parts of pbuf->carry and the next 8 bytes of src.
209 * pbuf->carry with the upper bytes zeroed..
223 temp = pbuf->carry.val64 | (new << mshift(pbuf->carry_bytes)); in merge_write8()
225 pbuf->carry.val64 = new >> zshift(pbuf->carry_bytes); in merge_write8()
229 * Write a quad word using all bytes of carry.
231 static inline void carry8_write8(union mix carry, void __iomem *dest) in carry8_write8() argument
233 writeq(carry.val64, dest); in carry8_write8()
237 * Write a quad word using all the valid bytes of carry. If carry
245 writeq(pbuf->carry.val64, dest); in carry_write8()
344 * Mid copy helper, "mixed case" - source is 64-bit aligned but carry
432 /* handle carry and left-over bytes */ in mid_copy_mix()
436 /* there is enough to fill another qw - fill carry */ in mid_copy_mix()
458 /* flush out full carry */ in mid_copy_mix()
459 carry8_write8(pbuf->carry, dest); in mid_copy_mix()
462 /* now adjust and read the rest of the bytes into carry */ in mid_copy_mix()
467 /* not enough to fill another qw, append the rest to carry */ in mid_copy_mix()
474 * with no carry bytes.
591 * if we are here, we already know that carry+nbytes will in seg_pio_copy_mid()
600 /* bytes to fill carry */ in seg_pio_copy_mid()
606 /* fill carry... */ in seg_pio_copy_mid()
614 /* ...now write carry */ in seg_pio_copy_mid()
632 carry8_write8(pbuf->carry, dest); in seg_pio_copy_mid()
636 /* this will overwrite anything in pbuf->carry */ in seg_pio_copy_mid()
663 * Write any remainder (in pbuf->carry) and finish writing the whole block.