Lines Matching full:word
22 * t0 = last word written
26 * a0 = unaligned address of the last *word* written
62 t0 == the first destination word for masking back in
63 t1 == the first source word. */
65 /* Create the 1st output word and detect 0's in the 1st input word. */
67 mskqh t2, a1, t2 # U : detection in the src word (stall)
71 mskql t0, a1, t0 # U : assemble the first output word
82 t0 == a source word not containing a null. */
105 /* Take care of the final (partial) word store. At this point
109 t0 == the source word containing the null
115 /* For the sake of the cache, don't read a destination word
120 /* We're doing a partial word store and so need to combine
166 /* We are co-aligned; take care of a partial first word. */
167 ldq_u t1, 0(a1) # L : load first src word
170 beq t0, stxncpy_aligned # U : avoid loading dest word if not needed
189 full source word. We can still find a zero at the end of it
193 t0 == the first dest word, unmasked
194 t1 == the shifted low bits of the first source word
195 t6 == bytemask that is -1 in dest word bytes */
197 ldq_u t2, 8(a1) # L : Latency=3 load second src word
202 or t1, t4, t1 # E : first aligned src word complete (stall)
204 or t0, t1, t0 # E : first output word complete (stall)
214 stq_u t0, 0(a0) # L : store first output word
224 extql t2, a1, t1 # U : position hi-bits of lo word
226 ldq_u t2, 8(a1) # L : read next high-order source word
229 extqh t2, a1, t0 # U : position lo-bits of hi word (stall)
242 t0 == the shifted low-order bits from the current source word
243 t1 == the shifted high-order bits from the previous source word
244 t2 == the unshifted current source word
250 or t0, t1, t0 # E : current dst word now complete
251 subq a2, 1, a2 # E : decrement word count
255 stq_u t0, -8(a0) # U : save the current word
257 ldq_u t2, 8(a1) # U : Latency=3 load high word for next time
261 cmpbge zero, t2, t8 # E : test new word for eos
265 /* We've found a zero somewhere in the source word we just read.
267 word to write out, and if it resides in the upper half, we
268 have one full and one partial word left to write out.
271 t0 == the shifted low-order bits from the current source word
272 t1 == the shifted high-order bits from the previous source word
273 t2 == the unshifted current source word. */
275 or t0, t1, t0 # E : first (partial) source word complete
291 /* Take care of a final (probably partial) result word.
293 t0 == assembled source word
298 and t12, 0x80, t6 # E : avoid dest word load if we can (stall)
316 t1 == the shifted high-order bits from the previous source word */
323 ldq_u t2, 8(a1) # L : load final src word
325 extqh t2, a1, t0 # U : extract low bits for last word (stall)
331 $u_eocfin: # end-of-count, final word
339 ldq_u t1, 0(a1) # L : load first source word
342 /* Conditionally load the first destination word and a bytemask
366 andnot t2, t6, t2 # E : dest mask for a single word copy
375 /* At this point we've found a zero in the first partial word of
378 that we'll need at least one byte of that original dest word.) */
386 zapnot t2, t8, t2 # U : prepare source word; mirror changes (stall)