Lines Matching +full:v1 +full:- +full:v6
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * linux/arch/arm64/crypto/aes-modes.S - chaining mode wrappers for AES
5 * Copyright (C) 2013 - 2017 Linaro Ltd <ard.biesheuvel@linaro.org>
8 /* included by aes-ce.S and aes-neon.S */
26 encrypt_block4x v0, v1, v2, v3, w3, x2, x8, w7
31 decrypt_block4x v0, v1, v2, v3, w3, x2, x8, w7
37 encrypt_block5x v0, v1, v2, v3, v4, w3, x2, x8, w7
42 decrypt_block5x v0, v1, v2, v3, v4, w3, x2, x8, w7
55 stp x29, x30, [sp, #-16]!
63 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 pt blocks */
67 st1 {v0.16b-v3.16b}, [x0], #64
86 stp x29, x30, [sp, #-16]!
94 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 ct blocks */
98 st1 {v0.16b-v3.16b}, [x0], #64
132 mov w8, #14 /* AES-256: 14 rounds */
145 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 pt blocks */
148 eor v1.16b, v1.16b, v0.16b
149 encrypt_block v1, w3, x2, x6, w7
150 eor v2.16b, v2.16b, v1.16b
154 st1 {v0.16b-v3.16b}, [x0], #64
174 stp x29, x30, [sp, #-16]!
179 mov w8, #14 /* AES-256: 14 rounds */
185 stp x29, x30, [sp, #-16]!
195 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 ct blocks */
199 mov v6.16b, v1.16b
204 eor v1.16b, v1.16b, v5.16b
207 eor v2.16b, v2.16b, v6.16b
212 mov v5.16b, v1.16b
213 mov v6.16b, v2.16b
217 eor v1.16b, v1.16b, v4.16b
220 eor v3.16b, v3.16b, v6.16b
222 st1 {v0.16b-v3.16b}, [x0], #64
229 ld1 {v1.16b}, [x1], #16 /* get next ct block */
230 mov v0.16b, v1.16b /* ...and copy to v0 */
233 mov cbciv.16b, v1.16b /* ct is next iv */
262 ld1 {v1.16b}, [x1]
268 tbl v1.16b, {v1.16b}, v4.16b
271 eor v1.16b, v1.16b, v0.16b
273 encrypt_block v1, w3, x2, x6, w7
277 st1 {v1.16b}, [x0]
291 ld1 {v1.16b}, [x1]
298 eor v2.16b, v2.16b, v1.16b
300 tbx v0.16b, {v1.16b}, v4.16b
328 stp x29, x30, [sp, #-16]!
344 mov v1.16b, vctr.16b
352 mov v1.s[3], w7
359 ld1 {v5.16b-v7.16b}, [x1], #48 /* get 3 input blocks */
364 eor v1.16b, v6.16b, v1.16b
365 ST5( ld1 {v5.16b-v6.16b}, [x1], #32 )
368 ST5( eor v4.16b, v6.16b, v4.16b )
369 st1 {v0.16b-v3.16b}, [x0], #64
437 stp x29, x30, [sp, #-16]!
457 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 pt blocks */
460 next_tweak v6, v5, v8
461 eor v1.16b, v1.16b, v5.16b
462 eor v2.16b, v2.16b, v6.16b
463 next_tweak v7, v6, v8
468 eor v1.16b, v1.16b, v5.16b
469 eor v2.16b, v2.16b, v6.16b
470 st1 {v0.16b-v3.16b}, [x0], #64
512 ld1 {v1.16b}, [x1] /* load final block */
517 tbx v0.16b, {v1.16b}, v3.16b
524 stp x29, x30, [sp, #-16]!
550 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 ct blocks */
553 next_tweak v6, v5, v8
554 eor v1.16b, v1.16b, v5.16b
555 eor v2.16b, v2.16b, v6.16b
556 next_tweak v7, v6, v8
561 eor v1.16b, v1.16b, v5.16b
562 eor v2.16b, v2.16b, v6.16b
563 st1 {v0.16b-v3.16b}, [x0], #64
601 ld1 {v1.16b}, [x1] /* load final block */
610 tbx v0.16b, {v1.16b}, v3.16b
631 ld1 {v1.16b-v4.16b}, [x0], #64 /* get next pt block */
632 eor v0.16b, v0.16b, v1.16b /* ..and xor with dg */
650 ld1 {v1.16b}, [x0], #16 /* get next pt block */
651 eor v0.16b, v0.16b, v1.16b /* ..and xor with dg */