Lines Matching +full:sub +full:- +full:block
1 /* SPDX-License-Identifier: GPL-2.0 */
94 sub %g1, 8, %g1
99 sub %g1, 16, %g1
104 sub %g1, 24, %g1
109 sub %g1, 32, %g1
114 sub %g1, 40, %g1
119 sub %g1, 48, %g1
124 sub %g1, 56, %g1
133 sub %i4, 8, %i4
171 save %sp, -SAVE_AMOUNT, %sp
183 /* 2 blocks (128 bytes) is the minimum we can do the block
185 * once in the block copy loop. At worst we'll need to align
186 * the destination to a 64-byte boundary which can chew up
187 * to (64 - 1) bytes from the length before we perform the
188 * block copy loop.
198 * The block copy loops will use %i4/%i5,%g2/%g3 as
205 /* Align destination on 64-byte boundary. */
206 andcc %o0, (64 - 1), %i4
208 sub %i4, 64, %i4
209 sub %g0, %i4, %i4 ! bytes to align dst
210 sub %i2, %i4, %i2
218 /* If the source is on a 16-byte boundary we can do
219 * the direct block copy loop. If it is 8-byte aligned
220 * we can do the 16-byte loads offset by -8 bytes and the
223 * If the source is not even 8-byte aligned, we need to do
229 * contents. Since the loop works on 64-bytes of 64-byte
233 andcc %i1, (16 - 1), %i4
234 andn %i2, (64 - 1), %g1 ! block copy loop iterator
236 sub %i2, %g1, %i2 ! final sub-block copy bytes
240 sub %i1, %i4, %i1
242 /* Neither 8-byte nor 16-byte aligned, shift and mask. */
247 sub %i5, GLOBAL_SPARE, %i5
330 10: /* Destination is 64-byte aligned, source was only 8-byte
361 50: /* Destination is 64-byte aligned, and source is 16-byte
395 sub %o0, %i1, %i3
402 sub %o0, %i1, %i3
411 sub %i1, 0x08, %i1
420 sub %i2, 0x8, %i2
427 sub %i2, 0x4, %i2
439 sub %g1, 0x8, %g1
441 sub %g0, %g1, %g1
442 sub %i2, %g1, %i2
463 sub %i3, %g1, %i3
481 sub %o0, %i1, %i3
487 sub %o0, %i1, %i3
509 .size FUNC_NAME, .-FUNC_NAME