Lines Matching +full:0 +full:- +full:9 +full:a +full:- +full:f
1 /* SPDX-License-Identifier: GPL-2.0+
32 * computes a partial checksum, e.g. for TCP/UDP fragments
43 * is aligned on either a 2-byte or 4-byte boundary. We get at
44 * least a twofold speedup on 486 and Pentium if it is 4-byte aligned.
45 * Fortunately, it is easy to convert 2-byte alignment to 4-byte
50 bt/s 2f ! Jump if alignment is ok.
51 mov r4, r7 ! Keep a copy to check for alignment
54 bt 21f ! Jump if alignment is boundary of 2bytes.
58 add #-1, r5
59 bt 9f
62 addc r0, r6 ! t=0 from previous tst
70 bt 2f
72 ! buf is 2 byte aligned (len could be 0)
73 add #-2, r5 ! Alignment uses up two bytes.
75 bt/s 1f ! Jump if we had at least two bytes.
77 bra 6f
83 bf 2f
86 ! buf is 4 byte aligned (len could be 0)
88 mov #-5, r0
91 bt/s 4f ! if it's =0, go to 4f
115 ! here, we know r1==0
119 and #0x1c, r0
121 bt 6f
125 mov #0, r2
134 addc r1, r6 ! r1==0 here, so it means add carry-bit
140 bt 9f ! if it's =0 go to 9f
143 bf 7f
147 bt/s 8f
159 mov #0, r0
161 9:
165 bt 10f
184 * thus we can call a custom exception handler for all access types.
186 * FIXME: could someone double-check whether I haven't mixed up some SRC and
193 .section __ex_table, "a"; \
194 .long 9999b, 6001f ; \
199 .section __ex_table, "a"; \
200 .long 9999b, 6002f ; \
214 mov.l r5,@-r15
215 mov.l r6,@-r15
222 bf 3f ! Different alignments, use slow version
224 bf 3f ! If not, do it the slow way
228 bt 2f ! Jump if alignment is ok.
229 add #-2,r6 ! Alignment uses up two bytes.
231 bt/s 1f
234 bra 4f
242 bt 4f
266 mov #0,r0
271 bt 7f
272 bra 5f
275 ! src and dest equally aligned, but to a two byte boundary.
276 ! Handle first two bytes as a special case
284 mov #0,r0
288 mov #-5,r0
291 bt/s 2f
327 mov #0,r0
331 mov #0x1c,r0
334 bf/s 4f
346 mov #0,r0
352 bf 7f
355 bf 5f
361 bt/s 6f
373 mov #0,r0
383 mov #-EFAULT,r1
386 ! zero the complete destination - computing the rest
390 mov #0,r7
395 mov.l 8000f,r0
403 mov #-EFAULT,r1
405 mov.l 8001f,r0