Lines Matching +full:left +full:- +full:shifted

1 /* SPDX-License-Identifier: GPL-2.0 */
6 * Copy no more than COUNT bytes of the null-terminated string from
27 * a2 = the number of full words left in COUNT
29 * Furthermore, v0, a3-a5, t11, and $at are untouched.
55 lda t2, -1 # e1 : build a mask against false zero
79 the end-of-count bit is set in t8 iff it applies.
107 /* Add the end-of-count bit to the eos detection bitmask. */
121 /* Are source and destination co-aligned? */
128 srl a2, 3, a2 # e0 : a2 = loop counter = (count - 1)/8
133 /* We are co-aligned; take care of a partial first word. */
143 /* The source and destination are not co-aligned. Align the destination
155 t1 == the shifted low bits of the first source word
156 t6 == bytemask that is -1 in dest word bytes */
168 lda t6, -1 # e0 :
183 extql t2, a1, t1 # e0 : position hi-bits of lo word
185 ldq_u t2, 8(a1) # e0 : read next high-order source word
187 extqh t2, a1, t0 # e0 : position lo-bits of hi word (stall)
200 t0 == the shifted low-order bits from the current source word
201 t1 == the shifted high-order bits from the previous source word
224 have one full and one partial word left to write out.
227 t0 == the shifted low-order bits from the current source word
228 t1 == the shifted high-order bits from the previous source word
236 stq_u t0, 0(a0) # e0 : the null was in the high-order bits
268 /* Got to end-of-count before end of string.
270 t1 == the shifted high-order bits from the previous source word */
285 $u_eocfin: # end-of-count, final word
305 lda t6, -1 # .. e1 :
314 lda t2, -1 # e0 : for creating masks later
320 or t8, t10, t5 # .. e1 : test for end-of-count too