Lines Matching +full:25 +full:- +full:18

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 # Accelerated AES-GCM stitched implementation for ppc64le.
5 # Copyright 2022- IBM Inc. All rights reserved
22 # Hash keys = v3 - v14
29 # v31 - counter 1
32 # vs0 - vs14 for round keys
35 # This implementation uses stitched AES-GCM approach to improve overall performance.
48 # v15 - v18 - input states
49 # vs1 - vs9 - round keys
60 vcipher 18, 18, 19
65 vcipher 18, 18, 20
70 vcipher 18, 18, 21
75 vcipher 18, 18, 22
85 vcipher 18, 18, 19
90 vcipher 18, 18, 20
95 vcipher 18, 18, 21
100 vcipher 18, 18, 22
106 vcipher 18, 18, 23
110 # v15 - v22 - input states
111 # vs1 - vs9 - round keys
116 xxlor 25+32, 3, 3
122 vcipher 18, 18, 23
131 vcipher 18, 18, 24
137 vcipher 15, 15, 25
138 vcipher 16, 16, 25
139 vcipher 17, 17, 25
140 vcipher 18, 18, 25
141 vcipher 19, 19, 25
142 vcipher 20, 20, 25
143 vcipher 21, 21, 25
144 vcipher 22, 22, 25
149 vcipher 18, 18, 26
157 xxlor 25+32, 7, 7
163 vcipher 18, 18, 23
172 vcipher 18, 18, 24
178 vcipher 15, 15, 25
179 vcipher 16, 16, 25
180 vcipher 17, 17, 25
181 vcipher 18, 18, 25
182 vcipher 19, 19, 25
183 vcipher 20, 20, 25
184 vcipher 21, 21, 25
185 vcipher 22, 22, 25
190 vcipher 18, 18, 26
200 vcipher 18, 18, 23
240 vpmsumd 25, 6, 17
241 vpmsumd 26, 3, 18
244 vxor 23, 23, 25
248 vpmsumd 25, 10, 16 # H3.L * X1.H + H3.H * X1.L
250 vpmsumd 27, 4, 18
252 vxor 24, 24, 25
268 vpmsumd 25, 11, 16
270 vpmsumd 27, 5, 18
272 vxor 24, 24, 25
290 # v15 - v22 - input blocks
298 vpmsumd 25, 6, 17
299 vpmsumd 26, 3, 18
302 vxor 23, 23, 25
306 vpmsumd 25, 10, 16 # H3.L * X1.H + H3.H * X1.L
308 vpmsumd 27, 4, 18
310 vxor 24, 24, 25
327 vpmsumd 25, 11, 16
329 vpmsumd 27, 5, 18
331 vxor 24, 24, 25
345 vpmsumd 25, 6, 21
351 vxor 23, 23, 25
355 vpmsumd 25, 10, 20 # H3.L * X1.H + H3.H * X1.L
359 vxor 24, 24, 25
376 vpmsumd 25, 11, 20
380 vxor 24, 24, 25
410 vsldoi 25, 23, 19, 8 # mL
412 vxor 22, 22, 25 # LL + LL
428 stdu 1,-640(1)
435 std 18,144(1)
450 stvx 25, 9, 1
467 stxv 18, 528(1)
480 lxv 18, 528(1)
496 lvx 25, 9, 1
515 ld 18,144(1)
528 # load Hash - h^4, h^3, h^2, h
564 # r3 - inp
565 # r4 - out
566 # r5 - len
567 # r6 - AES round keys
568 # r7 - iv and other data
569 # r8 - Xi, HPoli, hash keys
581 # initialize ICB: GHASH( IV ), IV - r7
582 lxvb16x 30+32, 0, 7 # load IV - v30
605 # load rounds - 10 (128), 12 (192), 14 (256)
611 vxor 15, 30, 29 # IV + round key - add round key 0
650 divdu 10, 12, 10 # n 128 bytes-blocks
659 vxor 18, 30, 29
674 li 18, 64
686 lxvb16x 18, 17, 14 # load block
687 lxvb16x 19, 18, 14 # load block
706 vcipher 18, 18, 23
715 vcipher 18, 18, 24
732 vcipher 18, 18, 23
741 vcipher 18, 18, 24
766 vcipherlast 18, 18, 23
770 xxlxor 50, 50, 18
777 stxvb16x 51, 18, 9 # store output
803 vxor 18, 30, 27
813 addi 12, 12, -128
879 addi 12, 12, -16
947 vspltisb 16, -1 # first 16 bytes - 0xffff...ff
948 vspltisb 17, 0 # second 16 bytes - 0x0000...00
976 vspltisb 16, -1 # first 16 bytes - 0xffff...ff
977 vspltisb 17, 0 # second 16 bytes - 0x0000...00
997 GEN_MASK 18, 15, 5
1002 GEN_MASK 18, 15, 16
1010 xxland 47, 47, 18
1017 xxland 32+28, 32+17, 18
1037 sub 17, 16, 15 # 16 - partial
1049 addi 10, 9, -1
1054 lbzu 18, 1(16)
1055 stbu 18, 1(10)
1071 vxor 15, 30, 29 # IV + round key - add round key 0
1073 std 15, 56(7) # partial done - clear
1083 # r9 - output
1084 # r12 - remaining bytes
1085 # v15 - partial input data
1091 addi 10, 9, -1
1122 # initialize ICB: GHASH( IV ), IV - r7
1123 lxvb16x 30+32, 0, 7 # load IV - v30
1146 # load rounds - 10 (128), 12 (192), 14 (256)
1152 vxor 15, 30, 29 # IV + round key - add round key 0
1191 divdu 10, 12, 10 # n 128 bytes-blocks
1200 vxor 18, 30, 29
1215 li 18, 64
1227 lxvb16x 18, 17, 14 # load block
1228 lxvb16x 19, 18, 14 # load block
1247 vcipher 18, 18, 23
1256 vcipher 18, 18, 24
1273 vcipher 18, 18, 23
1282 vcipher 18, 18, 24
1307 vcipherlast 18, 18, 23
1311 xxlxor 50, 50, 18
1318 stxvb16x 51, 18, 9 # store output
1335 xxlor 18+32, 18, 18
1353 vxor 18, 30, 27
1363 addi 12, 12, -128
1430 addi 12, 12, -16
1497 vspltisb 16, -1 # first 16 bytes - 0xffff...ff
1498 vspltisb 17, 0 # second 16 bytes - 0x0000...00