Lines Matching +full:byte +full:- +full:order
1 /* SPDX-License-Identifier: GPL-2.0 */
6 * Copy no more than COUNT bytes of the null-terminated string from
23 * t10 = bitmask (with one bit set) indicating the byte position of
25 * t12 = bitmask (with one bit set) indicating the last byte written
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
130 sll t10, t2, t10 # e0 : t10 = bitmask of last count byte
133 /* We are co-aligned; take care of a partial first word. */
143 /* The source and destination are not co-aligned. Align the destination
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)
192 /* Unaligned copy main loop. In order to avoid reading too much,
200 t0 == the shifted low-order bits from the current source word
201 t1 == the shifted high-order bits from the previous source word
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
299 with 0xff indicating that the destination byte is sacrosanct. */
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
329 that we'll need at least one byte of that original dest word.) */