Lines Matching full:word

22  *	t0  = last word written
26 * a0 = unaligned address of the last *word* written
51 t0 == the first destination word for masking back in
52 t1 == the first source word. */
54 /* Create the 1st output word and detect 0's in the 1st input word. */
56 mskqh t2, a1, t2 # e0 : detection in the src word
59 mskql t0, a1, t0 # e0 : assemble the first output word
66 t0 == a source word not containing a null. */
78 /* Take care of the final (partial) word store. At this point
82 t0 == the source word containing the null
89 /* For the sake of the cache, don't read a destination word
94 /* We're doing a partial word store and so need to combine
133 /* We are co-aligned; take care of a partial first word. */
135 ldq_u t1, 0(a1) # e0 : load first src word
138 beq t0, stxncpy_aligned # avoid loading dest word if not needed
150 full source word. We can still find a zero at the end of it
154 t0 == the first dest word, unmasked
155 t1 == the shifted low bits of the first source word
156 t6 == bytemask that is -1 in dest word bytes */
158 ldq_u t2, 8(a1) # e0 : load second src word
162 or t1, t4, t1 # e1 : first aligned src word complete
164 or t0, t1, t0 # e0 : first output word complete
173 stq_u t0, 0(a0) # e0 : store first output word
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
202 t2 == the unshifted current source word
208 or t0, t1, t0 # e0 : current dst word now complete
209 subq a2, 1, a2 # .. e1 : decrement word count
210 stq_u t0, 0(a0) # e0 : save the current word
214 ldq_u t2, 8(a1) # e0 : load high word for next time
217 cmpbge zero, t2, t8 # e1 : test new word for eos (stall)
218 extqh t2, a1, t0 # e0 : extract low bits for current word
221 /* We've found a zero somewhere in the source word we just read.
223 word to write out, and if it resides in the upper half, we
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
229 t2 == the unshifted current source word. */
231 or t0, t1, t0 # e0 : first (partial) source word complete
247 /* Take care of a final (probably partial) result word.
249 t0 == assembled source word
255 and t12, 0x80, t6 # e0 : avoid dest word load if we can
270 t1 == the shifted high-order bits from the previous source word */
277 ldq_u t2, 8(a1) # e0 : load final src word
279 extqh t2, a1, t0 # e0 : extract low bits for last word
285 $u_eocfin: # end-of-count, final word
293 ldq_u t1, 0(a1) # e0 : load first source word
298 /* Conditionally load the first destination word and a bytemask
319 andnot t2, t6, t2 # e0 : dest mask for a single word copy
326 /* At this point we've found a zero in the first partial word of
329 that we'll need at least one byte of that original dest word.) */
338 zapnot t2, t8, t2 # e0 : prepare source word; mirror changes