Lines Matching +full:1 +full:br +full:- +full:10
1 /* SPDX-License-Identifier: GPL-2.0 */
7 * Modified from memcpy.S and micro-optimised for SH4
21 ! GHIJ KLMN OPQR --> ...G HIJK LMNO PQR.
30 add #-1,r5 ! 79 EX
34 add #-4,r5 ! 50 EX
53 bt/s 3b ! 109 BR
55 mov.l r3,@-r0 ! 30 LS
70 bt/s 3b ! 109 BR
72 mov.l r3,@-r0 ! 30 LS
79 add #-6,r2 ! 50 EX
80 bt 9f ! 109 BR
85 bt/s 8b ! 109 BR
87 mov.b r1,@-r0 ! 29 LS
94 ! GHIJ KLMN OPQR --> .GHI JKLM NOPQ R...
103 add #-3,r5 ! 79 EX
107 add #-4,r5 ! 50 EX
126 bt/s 3b ! 109 BR
128 mov.l r3,@-r0 ! 30 LS
139 mov.l r3,@-r0
147 add #-6,r2 ! 50 EX
148 bt 9f ! 109 BR
153 bt/s 8b ! 109 BR
155 mov.b r1,@-r0 ! 29 LS
165 ! r4 --> [ ... ] DST [ ... ] SRC
168 ! r0 --> [ ... ] r0+r5 --> [ ... ]
181 bt/s 99f ! 111 BR (zero len)
188 bt/s .Lcase00 ! 111 BR (aligned)
197 ! cycle counts for differnet sizes using byte-at-a-time vs. optimised):
198 ! size byte-at-time long word byte
199 ! 16 42 39-40 46-50 50-55
200 ! 24 58 43-44 54-58 62-67
201 ! 36 82 49-50 66-70 80-85
207 add #-1,r5 ! 50 EX
208 bf/s 6f ! 108 BR (not small)
214 bf/s 4f ! 111 BR
216 add #-1,r3 ! 50 EX
219 bt/s 98f ! 110 BR
220 mov.b r1,@-r0 ! 29 LS
228 mov.b r1,@-r0 ! 29 LS
229 bf/s 3b ! 111 BR
231 mov.b r2,@-r0 ! 29 LS
242 ! r5 = normal value -1
247 bt/s 2f ! 111 BR
250 ! 3 cycles, 1 byte per iteration
251 1: dt r3 ! 67 EX
254 add #-1, r6 ! 79 EX
255 bf/s 1b ! 109 BR
257 mov.b r1,@-r0 ! 28 LS
259 2: add #1, r5 ! 79 EX
267 tst #1, r0 ! 87 MT
269 bf/s 1f ! 111 BR
276 bt/s 2f ! 111 BR
294 1: tst #2, r0 ! 87 MT
304 ! GHIJ KLMN OPQR --> GHIJ KLMN OPQR
308 ! size is non-zero
316 add #-4, r5 ! 50 EX
318 bf .Lcase00b ! 108 BR (big loop)
324 bf/s 4f ! 111 BR
325 add #-8, r3 ! 50 EX
328 bt/s 5f ! 110 BR
330 mov.l r1,@-r0 ! 30 LS
338 mov.l r1, @-r0 ! 30 LS
339 bf/s 3b ! 109 BR
341 mov.l r2, @-r0 ! 30 LS
351 add #-4, r5 ! 50 EX
361 bt/s 4f ! 111 BR
363 add #-4, r3 ! 50 EX
364 mov.l r1,@-r0 ! 30 LS
372 mov.l r1, @-r0 ! 30 LS
373 bt/s 3b ! 109 BR
375 mov.l r2, @-r0 ! 30 LS
377 ! Copy the final 0-3 bytes
382 add #-10, r7 ! 50 EX
384 bt 9f ! 110 BR
386 ! 3 cycles, 1 byte per iteration
387 1: mov.b @(r0,r5),r1 ! 19 LS
390 bt/s 1b ! 111 BR
391 mov.b r1,@-r0 ! 28 LS
403 add #-4, r5 ! 50 EX
415 bt/s 1f ! 110 BR
424 add #-4, r6 ! 50 EX
426 bt/s 4f ! 111 BR
431 bt/s 1f ! 109 BR
432 mov.l r1,@-r0 ! 30 LS
440 mov.l r1, @-r0 ! 30 LS
441 bf/s 3b ! 109 BR
443 mov.l r7, @-r0 ! 30 LS
460 1: mov.l r8, @-r15 ! 30 LS
463 mov.l r9, @-r15 ! 30 LS
466 mov.l r10, @-r15 ! 30 LS
467 add #-0x1c, r5 ! 50 EX
469 mov.l r11, @-r15 ! 30 LS
473 add #-0x20, r1 ! 50 EX
481 movca.l r0,@r1 ! 40 LS (latency=3-7)
487 add #-0x20, r5 ! 50 EX
493 bf/s 2b ! 109 BR
505 bf/s 1f ! 109 BR
509 1: mov.l @r15+, r8 ! 15 LS
512 ! number of trailing bytes is non-zero
520 add #0x1c, r5 ! 50 EX (back to -4)
523 bf/s 5f ! 108 BR
530 bt/s 4f ! 111 BR
532 add #-4, r3 ! 50 EX
535 bt/s 5f ! 111 BR
536 mov.l r6,@-r0 ! 30 LS
544 mov.l r6, @-r0 ! 30 LS
545 bt/s 3b ! 109 BR
547 mov.l r2, @-r0 ! 30 LS
549 ! Copy the final 0-3 bytes
552 add #-10, r7 ! 50 EX
554 bt 9f ! 110 BR
557 ! 3 cycles, 1 byte per iteration
558 1: mov.b @(r0,r5),r1 ! 19 LS
561 bt/s 1b ! 111 BR
562 mov.b r1,@-r0 ! 28 LS
568 ! GHIJ KLMN OPQR --> ..GH IJKL MNOP QR..
576 add #-2,r5 ! 50 EX
579 add #-4,r6 ! 50 EX
587 mov.w r1,@-r0 ! 29 LS
588 bt/s 3b ! 111 BR
590 mov.w r3,@-r0 ! 29 LS
592 bra 10f
612 add #-2, r5 ! 50 EX
613 bt/s 1f ! 110 BR
619 ! Mod: r5 (=r5-2)
626 bf/s 2b ! 111 BR
628 mov.w r1,@-r0 ! 29 LS
632 ! In use: r0, r2, r4, r5 (=r5-2)
645 1: mov.l r8, @-r15 ! 30 LS
648 mov.l r9, @-r15 ! 30 LS
651 mov.l r10, @-r15 ! 30 LS
652 add #-0x1e, r5 ! 50 EX
654 mov.l r11, @-r15 ! 30 LS
656 mov.l r12, @-r15 ! 30 LS
661 add #-0x20, r1 ! 50 EX
686 movca.l r0,@r1 ! 40 LS (latency=3-7)
697 add #-0x40, r5 ! 50 EX
703 bf/s 2b ! 109 BR
708 add #-2, r5 ! 50 EX
711 add #-4, r1 ! 50 EX
734 movca.l r0,@r1 ! 40 LS (latency=3-7)
735 add #-0x1c, r1 ! 50 EX
746 add #-0x1e, r5 ! 50 EX
752 bf/s 2b ! 109 BR
766 bf/s 1f ! 109 BR
770 1: mov.l @r15+, r8 ! 15 LS
775 ! r5 must be invariant - 2
776 10: mov r4,r2 ! 5 MT (latency=0)
777 add #1,r2 ! 50 EX
780 bf/s 1f ! 109 BR
787 bt/s 3b ! 109 BR
789 mov.w r1,@-r0 ! 29 LS
790 1:
796 add #1,r5
799 mov.b r1,@-r0