Lines Matching +full:1 +full:- +full:v0
2 * linux/arch/arm64/crypto/aes-modes.S - chaining mode wrappers for AES
4 * Copyright (C) 2013 - 2017 Linaro Ltd <ard.biesheuvel@linaro.org>
11 /* included by aes-ce.S and aes-neon.S */
17 encrypt_block4x v0, v1, v2, v3, w22, x21, x8, w7
22 decrypt_block4x v0, v1, v2, v3, w22, x21, x8, w7
48 ld1 {v0.16b-v3.16b}, [x20], #64 /* get 4 pt blocks */
50 st1 {v0.16b-v3.16b}, [x19], #64
57 ld1 {v0.16b}, [x20], #16 /* get next pt block */
58 encrypt_block v0, w22, x21, x5, w6
59 st1 {v0.16b}, [x19], #16
60 subs w23, w23, #1
83 ld1 {v0.16b-v3.16b}, [x20], #64 /* get 4 ct blocks */
85 st1 {v0.16b-v3.16b}, [x19], #64
92 ld1 {v0.16b}, [x20], #16 /* get next ct block */
93 decrypt_block v0, w22, x21, x5, w6
94 st1 {v0.16b}, [x19], #16
95 subs w23, w23, #1
127 ld1 {v0.16b-v3.16b}, [x20], #64 /* get 4 pt blocks */
128 eor v0.16b, v0.16b, v4.16b /* ..and xor with iv */
129 encrypt_block v0, w22, x21, x6, w7
130 eor v1.16b, v1.16b, v0.16b
136 st1 {v0.16b-v3.16b}, [x19], #64
145 ld1 {v0.16b}, [x20], #16 /* get next pt block */
146 eor v4.16b, v4.16b, v0.16b /* ..and xor with iv */
149 subs w23, w23, #1
175 ld1 {v0.16b-v3.16b}, [x20], #64 /* get 4 ct blocks */
176 mov v4.16b, v0.16b
181 eor v0.16b, v0.16b, v7.16b
183 ld1 {v7.16b}, [x20], #16 /* reload 1 ct block */
186 st1 {v0.16b-v3.16b}, [x19], #64
195 mov v0.16b, v1.16b /* ...and copy to v0 */
196 decrypt_block v0, w22, x21, x6, w7
197 eor v0.16b, v0.16b, v7.16b /* xor with iv => pt */
199 st1 {v0.16b}, [x19], #16
200 subs w23, w23, #1
228 umov x6, v4.d[1] /* keep swabbed ctr in reg */
235 ldr q8, =0x30000000200000001 /* addends 1,2,3[,0] */
237 mov v0.16b, v4.16b
244 mov v2.s[3], v8.s[1]
246 ld1 {v5.16b-v7.16b}, [x20], #48 /* get 3 input blocks */
248 eor v0.16b, v5.16b, v0.16b
249 ld1 {v5.16b}, [x20], #16 /* get 1 input block */
253 st1 {v0.16b-v3.16b}, [x19], #64
256 ins v4.d[1], x7
265 mov v0.16b, v4.16b
266 encrypt_block v0, w22, x21, x8, w7
268 adds x6, x6, #1 /* increment BE ctr */
270 ins v4.d[1], x7
274 subs w23, w23, #1
277 eor v3.16b, v0.16b, v3.16b
288 st1 {v0.16b}, [x19]
294 add x7, x7, #1
318 CPU_LE( .quad 1, 0x87 )
319 CPU_BE( .quad 0x87, 1 )
350 ld1 {v0.16b-v3.16b}, [x20], #64 /* get 4 pt blocks */
352 eor v0.16b, v0.16b, v4.16b
360 eor v0.16b, v0.16b, v4.16b
363 st1 {v0.16b-v3.16b}, [x19], #64
374 eor v0.16b, v1.16b, v4.16b
375 encrypt_block v0, w22, x21, x8, w7
376 eor v0.16b, v0.16b, v4.16b
377 st1 {v0.16b}, [x19], #16
378 subs w23, w23, #1
418 ld1 {v0.16b-v3.16b}, [x20], #64 /* get 4 ct blocks */
420 eor v0.16b, v0.16b, v4.16b
428 eor v0.16b, v0.16b, v4.16b
431 st1 {v0.16b-v3.16b}, [x19], #64
442 eor v0.16b, v1.16b, v4.16b
443 decrypt_block v0, w22, x21, x8, w7
444 eor v0.16b, v0.16b, v4.16b
445 st1 {v0.16b}, [x19], #16
446 subs w23, w23, #1
470 ld1 {v0.16b}, [x23] /* get dg */
474 encrypt_block v0, w2, x1, x7, w8
479 ld1 {v1.16b-v4.16b}, [x19], #64 /* get next pt block */
480 eor v0.16b, v0.16b, v1.16b /* ..and xor with dg */
481 encrypt_block v0, w21, x20, x7, w8
482 eor v0.16b, v0.16b, v2.16b
483 encrypt_block v0, w21, x20, x7, w8
484 eor v0.16b, v0.16b, v3.16b
485 encrypt_block v0, w21, x20, x7, w8
486 eor v0.16b, v0.16b, v4.16b
490 encrypt_block v0, w21, x20, x7, w8
491 st1 {v0.16b}, [x23] /* return dg */
499 eor v0.16b, v0.16b, v1.16b /* ..and xor with dg */
501 subs w22, w22, #1
506 encrypt_block v0, w21, x20, x7, w8
510 st1 {v0.16b}, [x23] /* return dg */
515 ld1 {v0.16b}, [x23] /* get dg */