Lines Matching +full:sub +full:- +full:blocks
1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * Copyright (C) 2014 - 2018 Linaro Ltd. <ard.biesheuvel@linaro.org>
60 .arch armv8-a+crypto
148 ld1 {HH.2d-HH4.2d}, [x8]
196 // PMULL (64x64->128) based reduction for CPUs that can do
213 // 64x64->128 PMULL instruction
252 tbnz w0, #0, 2f // skip until #blocks is a
255 1: ld1 {XM3.16b-TT4.16b}, [x2], #64
257 sub w0, w0, #4
319 sub w0, w0, #1
350 * void pmull_ghash_update(int blocks, u64 dg[], const char *src,
387 ld1 {K0.4s-K3.4s}, [\rk]
388 ld1 {K4.4s-K5.4s}, [\tmp]
390 sub \tmp, \tmp, #32
391 ld1 {KK.4s-KM.4s}, [\tmp]
408 ld1 {K6.4s-K7.4s}, [\tmp], #32
425 ld1 {K8.4s-K9.4s}, [\tmp], #32
428 ld1 {K6.4s-K7.4s}, [\tmp]
438 stp x29, x30, [sp, #-32]!
445 ld1 {HH.2d-HH4.2d}, [x3]
462 0: mov w9, #4 // max blocks per round
464 lsr x10, x10, #4 // remaining blocks
471 ld1 {INP0.16b-INP3.16b}, [x2], #64
494 sub x11, x15, x19
496 sub x17, x17, x11
498 sub x10, x1, x11
499 sub x11, x2, x11
501 cmp x0, #-16
503 cmp x0, #-32
505 cmp x0, #-48
525 st1 {INP0.16b-INP3.16b}, [x1], #64
558 mvn XL.16b, XL.16b // -1 for fail, 0 for pass
573 6: ld1 {T1.16b-T2.16b}, [x17], #32 // permute vectors
574 sub x17, x17, x19, lsl #1
594 tbl INP3.16b, {INP3.16b}, T1.16b // clear non-data bits
601 * void pmull_gcm_encrypt(int blocks, u8 dst[], const u8 src[],
610 * void pmull_gcm_decrypt(int blocks, u8 dst[], const u8 src[],
629 tbz w9, #2, 0f // <4 blocks?
635 tbz w9, #0, 1f // 2 blocks?
703 sub w10, w8, #4
704 sub w11, w8, #3
705 sub w12, w8, #2
706 sub w13, w8, #1
720 ld1 {K6.4s-K7.4s}, [x10], #32
728 ld1 {K8.4s-K9.4s}, [x10], #32
732 ld1 {K6.4s-K7.4s}, [x10]