Lines Matching +full:li +full:-
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
110 # v15 - v22 - input states
111 # vs1 - vs9 - round keys
290 # v15 - v22 - input blocks
428 stdu 1,-640(1)
439 li 9, 256
485 li 9, 256
528 # load Hash - h^4, h^3, h^2, h
529 li 10, 32
531 li 10, 48
533 li 10, 64
535 li 10, 80
538 li 10, 96
540 li 10, 112
542 li 10, 128
545 li 10, 144
547 li 10, 160
549 li 10, 176
552 li 10, 192
554 li 10, 208
556 li 10, 224
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
585 li 11, 0 # block index
605 # load rounds - 10 (128), 12 (192), 14 (256)
611 vxor 15, 30, 29 # IV + round key - add round key 0
649 li 10, 128
650 divdu 10, 12, 10 # n 128 bytes-blocks
671 li 15, 16
672 li 16, 32
673 li 17, 48
674 li 18, 64
675 li 19, 80
676 li 20, 96
677 li 21, 112
813 addi 12, 12, -128
826 li 10, 16
879 addi 12, 12, -16
887 li 15, 0
928 li 21, 0 # encrypt
944 li 15, 16
947 vspltisb 16, -1 # first 16 bytes - 0xffff...ff
948 vspltisb 17, 0 # second 16 bytes - 0x0000...00
949 li 10, 192
966 li 16, 16
976 vspltisb 16, -1 # first 16 bytes - 0xffff...ff
977 vspltisb 17, 0 # second 16 bytes - 0x0000...00
978 li 10, 192
1001 li 16, 16
1023 li 16, 16
1036 li 16, 16
1037 sub 17, 16, 15 # 16 - partial
1046 li 10, 192
1049 addi 10, 9, -1
1071 vxor 15, 30, 29 # IV + round key - add round key 0
1072 li 15, 0
1073 std 15, 56(7) # partial done - clear
1083 # r9 - output
1084 # r12 - remaining bytes
1085 # v15 - partial input data
1088 li 10, 192
1091 addi 10, 9, -1
1095 li 15, 0
1122 # initialize ICB: GHASH( IV ), IV - r7
1123 lxvb16x 30+32, 0, 7 # load IV - v30
1126 li 11, 0 # block index
1146 # load rounds - 10 (128), 12 (192), 14 (256)
1152 vxor 15, 30, 29 # IV + round key - add round key 0
1190 li 10, 128
1191 divdu 10, 12, 10 # n 128 bytes-blocks
1212 li 15, 16
1213 li 16, 32
1214 li 17, 48
1215 li 18, 64
1216 li 19, 80
1217 li 20, 96
1218 li 21, 112
1363 addi 12, 12, -128
1376 li 10, 16
1430 addi 12, 12, -16
1438 li 15, 0
1479 li 21, 1 # decrypt
1494 li 15, 16
1497 vspltisb 16, -1 # first 16 bytes - 0xffff...ff
1498 vspltisb 17, 0 # second 16 bytes - 0x0000...00
1499 li 10, 192
1517 li 16, 16