Lines Matching +full:16 +full:- +full:17
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
5 # Copyright 2023- IBM Corp. All rights reserved
10 # Poly1305 - this version mainly using vector/VSX/Scalar
11 # - 26 bits limbs
12 # - Handle multiple 64 byte blcok.
14 # Block size 16 bytes
17 # p = 2^130 - 5
25 # 07/22/21 - this revison based on the above sum of products. Setup r^4, r^3, r^2, r and s3, s2, …
56 #include <asm/asm-offsets.h>
57 #include <asm/asm-compat.h>
69 li 16, \OFFSET
70 stvx \VRS, 16, \FRAME
74 li 16, \OFFSET
75 stxvx \VSX, 16, \FRAME
83 li 16, \OFFSET
84 lvx \VRS, 16, \FRAME
88 li 16, \OFFSET
89 lxvx \VSX, 16, \FRAME
94 std 0, 16(1)
95 stdu 1,-752(1)
99 SAVE_GPR 16, 128, 1
100 SAVE_GPR 17, 136, 1
118 SAVE_VRS 21, 16, 9
132 SAVE_VSX 16, 224, 9
133 SAVE_VSX 17, 240, 9
153 RESTORE_VRS 21, 16, 9
167 RESTORE_VSX 16, 224, 9
168 RESTORE_VSX 17, 240, 9
186 RESTORE_GPR 16, 128, 1
187 RESTORE_GPR 17, 136, 1
204 ld 0, 16(1)
238 vmulouw 16, 4, 28
241 vaddudm 16, 16, 10
242 vaddudm 16, 16, 11
245 vaddudm 16, 16, 12
246 vaddudm 16, 16, 13 # x2
247 vmulouw 17, 4, 29
250 vaddudm 17, 17, 10
251 vaddudm 17, 17, 11
254 vaddudm 17, 17, 12
255 vaddudm 17, 17, 13 # x3
295 vaddudm 16, 16, 9
296 vaddudm 16, 16, 10
297 vaddudm 16, 16, 11
298 vaddudm 16, 16, 12
299 vaddudm 16, 16, 13 # x2
306 vaddudm 17, 17, 9
307 vaddudm 17, 17, 10
308 vaddudm 17, 17, 11
309 vaddudm 17, 17, 12
310 vaddudm 17, 17, 13 # x3
444 vsrd 11, 17, 31
445 vand 7, 17, 25
456 vaddudm 6, 16, 11
482 li 14, 16
486 lvx 25, 0, 10 # v25 - mask
502 extrdi 16, 9, 12, 0
504 insrdi 16, 10, 14, 38
506 extrdi 17, 10, 26, 24
507 mtvsrdd 60, 0, 16
509 mtvsrdd 61, 0, 17
545 ld 19, 16(3)
550 extrdi 16, 9, 12, 0
552 insrdi 16, 10, 14, 38
554 extrdi 17, 10, 26, 24
555 mtvsrdd 38, 0, 16
557 mtvsrdd 39, 0, 17
566 addi 17, 20, 16
567 lxvw4x 44, 0, 17
568 vperm 14, 11, 12, 17
575 vand 16, 15, 25
576 vsld 12, 16, 13
591 addi 17, 17, 16
592 lxvw4x 43, 0, 17
593 addi 17, 17, 16
594 lxvw4x 44, 0, 17
595 vperm 14, 11, 12, 17
602 vand 16, 15, 25
603 vsld 12, 16, 13
619 addi 5, 5, -64 # len -= 64
633 # h3 = (h1 + m3) * r^2, h4 = (h2 + m4) * r^2 --> (h0 + m1) r*4 + (h3 + m3) r^2, (h0 + m2) r^4 + (h…
635 # h5 = (h3 + m5) * r^2, h6 = (h4 + m6) * r^2 -->
636 # h7 = (h5 + m7) * r^2, h8 = (h6 + m8) * r^1 --> m5 * r^4 + m6 * r^3 + m7 * r^2 + m8 * r
646 vsrd 11, 17, 31
647 vand 7, 17, 25
658 vaddudm 6, 16, 11
677 addi 17, 20, 16
678 lxvw4x 44, 0, 17
679 vperm 14, 11, 12, 17
681 addi 17, 17, 16
682 lxvw4x 43, 0, 17
683 addi 17, 17, 16
684 lxvw4x 44, 0, 17
685 vperm 17, 11, 12, 17
689 vand 9, 17, 25 # a0
692 vsrd 10, 17, 31 # >> 26
699 vand 16, 15, 25
700 vsld 23, 16, 13
703 vand 16, 18, 25
704 vsld 12, 16, 13
729 addi 5, 5, -64 # len -= 64
757 vaddudm 6, 16, 11
760 vaddudm 7, 17, 12
813 mfvsrld 16, 40 # save last 2 bytes
817 mfvsrld 17, 52
819 srdi 16, 16, 24
821 std 17, 0(3)
823 stw 16, 16(3)
857 add 19, 21, 10 # s1: r19 - (r1 >> 2) *5
923 # - no highbit if final leftover block (highbit = 0)
930 std 0, 16(1)
931 stdu 1,-400(1)
935 SAVE_GPR 16, 128, 1
936 SAVE_GPR 17, 136, 1
963 lwz 29, 16(3)
965 li 30, 16
977 addi 11, 11, 16
995 stw 29, 16(3)
1001 RESTORE_GPR 16, 128, 1
1002 RESTORE_GPR 17, 136, 1
1019 ld 0, 16(1)
1036 ld 12, 16(3)
1039 # h + 5 + (-p)