• Home
  • Raw
  • Download

Lines Matching +full:sub +full:- +full:block

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 */
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
74 ld1 {v0.16b}, [x1], #16 /* get next pt block */
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
105 ld1 {v0.16b}, [x1], #16 /* get next ct block */
132 mov w8, #14 /* AES-256: 14 rounds */
145 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 pt blocks */
154 st1 {v0.16b-v3.16b}, [x0], #64
161 ld1 {v0.16b}, [x1], #16 /* get next pt block */
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 */
197 ld1 {v4.16b}, [x1], #16 /* get 1 ct block */
202 sub x1, x1, #32
205 ld1 {v5.16b}, [x1], #16 /* reload 1 ct block */
206 ld1 {cbciv.16b}, [x1], #16 /* reload 1 ct block */
215 sub x1, x1, #16
218 ld1 {cbciv.16b}, [x1], #16 /* reload 1 ct block */
222 st1 {v0.16b-v3.16b}, [x0], #64
229 ld1 {v1.16b}, [x1], #16 /* get next ct block */
254 sub x4, x4, #16
257 sub x9, x9, x4
283 sub x4, x4, #16
286 sub x9, x9, x4
328 stp x29, x30, [sp, #-16]!
359 ld1 {v5.16b-v7.16b}, [x1], #48 /* get 3 input blocks */
365 ST5( ld1 {v5.16b-v6.16b}, [x1], #32 )
369 st1 {v0.16b-v3.16b}, [x0], #64
390 bmi .Lctrtailblock /* blocks <0 means tail block */
437 stp x29, x30, [sp, #-16]!
457 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 pt blocks */
470 st1 {v0.16b-v3.16b}, [x0], #64
501 sub x0, x0, #16
506 add w4, w4, #16 /* # bytes in final block */
509 sub x9, x9, x4
510 add x4, x0, x4 /* output address of final block */
512 ld1 {v1.16b}, [x1] /* load final block */
524 stp x29, x30, [sp, #-16]!
528 sub w8, w4, #0x10
550 ld1 {v0.16b-v3.16b}, [x1], #64 /* get 4 ct blocks */
563 st1 {v0.16b-v3.16b}, [x0], #64
593 add w4, w4, #16 /* # bytes in final block */
596 sub x9, x9, x4
597 add x4, x0, x4 /* output address of final block */
601 ld1 {v1.16b}, [x1] /* load final block */
631 ld1 {v1.16b-v4.16b}, [x0], #64 /* get next pt block */
650 ld1 {v1.16b}, [x0], #16 /* get next pt block */