Lines Matching +full:on +full:- +full:the +full:- +full:go

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * This file contains assembly-language implementations
4 * of IP-style 1's complement checksum routines.
6 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
18 * Computes the checksum of a memory block at buff, length len,
19 * and adds in "sum" (32-bit).
32 * work to calculate the correct checksum, we ignore that case
33 * and take the potential slowdown of unaligned loads.
35 rldicl. r6,r3,64-1,64-2 /* r6 = (r3 >> 1) & 0x3 */
51 * We unroll the loop such that each iteration is 64 bytes with an
62 stdu r1,-STACKFRAMESIZE(r1)
74 * On POWER6 and POWER7 back to back adde instructions take 2 cycles
75 * because of the XER dependency. This means the fastest this loop can
76 * go is 16 cycles per iteration. The scheduling of the loop below has
77 * been shown to hit this on both POWER6 and POWER7.
131 .Lcsum_tail_doublewords: /* Up to 127 bytes to go */
144 .Lcsum_tail_word: /* Up to 7 bytes to go */
153 .Lcsum_tail_halfword: /* Up to 3 bytes to go */
162 .Lcsum_tail_byte: /* Up to 1 byte to go */
168 sldi r9,r6,8 /* Pad the byte out to 16 bits */
204 * Computes the checksum of a memory block at src, length len,
205 * and adds in 0xffffffff (32-bit), while copying the block to dst.
211 li r6,-1
220 * work to calculate the correct checksum, we ignore that case
221 * and take the potential slowdown of unaligned loads.
223 * If the source and destination are relatively unaligned we only
224 * align the source. This keeps things simple.
226 rldicl. r6,r3,64-1,64-2 /* r6 = (r3 >> 1) & 0x3 */
244 * We unroll the loop such that each iteration is 64 bytes with an
255 stdu r1,-STACKFRAMESIZE(r1)
267 * On POWER6 and POWER7 back to back adde instructions take 2 cycles
268 * because of the XER dependency. This means the fastest this loop can
269 * go is 16 cycles per iteration. The scheduling of the loop below has
270 * been shown to hit this on both POWER6 and POWER7.
346 .Lcopy_tail_doublewords: /* Up to 127 bytes to go */
361 .Lcopy_tail_word: /* Up to 7 bytes to go */
372 .Lcopy_tail_halfword: /* Up to 3 bytes to go */
383 .Lcopy_tail_byte: /* Up to 1 byte to go */
389 sldi r9,r6,8 /* Pad the byte out to 16 bits */