Lines Matching +full:1 +full:- +full:v0
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
5 * https://tools.ietf.org/id/draft-ribose-cfrg-sm4-10.html
14 .arch armv8-a+crypto
16 .irp b, 0, 1, 2, 3, 4, 5, 6, 7, 16, 20, 24, 25, 26, 27, 28, 29, 30, 31
40 ld1 {v24.16b-v27.16b}, [x0], #64; \
41 ld1 {v28.16b-v31.16b}, [x0];
209 * x0: 128-bit key
215 ld1 {v0.16b}, [x0];
216 rev32 v0.16b, v0.16b;
219 ld1 {v24.16b-v27.16b}, [x4], #64;
220 ld1 {v28.16b-v31.16b}, [x4];
223 eor v0.16b, v0.16b, v1.16b;
225 sm4ekey v0.4s, v0.4s, v24.4s;
226 sm4ekey v1.4s, v0.4s, v25.4s;
234 st1 {v0.16b-v3.16b}, [x1], #64;
235 st1 {v4.16b-v7.16b}, [x1];
243 rev64 v0.4s, v0.4s;
251 ext v0.16b, v0.16b, v0.16b, #8;
259 st1 {v0.16b}, [x2];
273 ld1 {v0.16b}, [x2];
274 SM4_CRYPT_BLK(v0);
275 st1 {v0.16b}, [x1];
294 ld1 {v0.16b-v3.16b}, [x2], #64;
295 ld1 {v4.16b-v7.16b}, [x2], #64;
297 SM4_CRYPT_BLK8(v0, v1, v2, v3, v4, v5, v6, v7);
299 st1 {v0.16b-v3.16b}, [x1], #64;
300 st1 {v4.16b-v7.16b}, [x1], #64;
312 ld1 {v0.16b-v3.16b}, [x2], #64;
313 SM4_CRYPT_BLK4(v0, v1, v2, v3);
314 st1 {v0.16b-v3.16b}, [x1], #64;
319 sub w3, w3, #1;
321 ld1 {v0.16b}, [x2], #16;
322 SM4_CRYPT_BLK(v0);
323 st1 {v0.16b}, [x1], #16;
345 sub w4, w4, #1;
379 ld1 {v0.16b-v3.16b}, [x2], #64;
380 ld1 {v4.16b-v7.16b}, [x2];
382 SM4_CRYPT_BLK8(v0, v1, v2, v3, v4, v5, v6, v7);
385 eor v0.16b, v0.16b, RIV.16b;
386 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
390 st1 {v0.16b-v3.16b}, [x1], #64;
393 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
399 st1 {v4.16b-v7.16b}, [x1], #64;
411 ld1 {v0.16b-v3.16b}, [x2];
413 SM4_CRYPT_BLK4(v0, v1, v2, v3);
415 eor v0.16b, v0.16b, RIV.16b;
416 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
422 st1 {v0.16b-v3.16b}, [x1], #64;
427 sub w4, w4, #1;
429 ld1 {v0.16b}, [x2];
431 SM4_CRYPT_BLK(v0);
433 eor v0.16b, v0.16b, RIV.16b;
435 st1 {v0.16b}, [x1], #16;
460 sub w4, w4, #1;
487 ld1 {v0.16b}, [x3];
494 ld1 {v4.16b-v7.16b}, [x2];
496 SM4_CRYPT_BLK8(v0, v1, v2, v3, v4, v5, v6, v7);
499 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
500 eor v0.16b, v0.16b, RTMP0.16b;
504 st1 {v0.16b-v3.16b}, [x1], #64;
506 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
511 st1 {v4.16b-v7.16b}, [x1], #64;
513 mov v0.16b, RTMP3.16b;
527 SM4_CRYPT_BLK4(v0, v1, v2, v3);
529 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
530 eor v0.16b, v0.16b, RTMP0.16b;
534 st1 {v0.16b-v3.16b}, [x1], #64;
536 mov v0.16b, RTMP3.16b;
541 sub w4, w4, #1;
543 SM4_CRYPT_BLK(v0);
546 eor v0.16b, v0.16b, RTMP0.16b;
547 st1 {v0.16b}, [x1], #16;
549 mov v0.16b, RTMP0.16b;
555 st1 {v0.16b}, [x3];
580 mov vctr.d[1], x8; \
582 adds x8, x8, #1; \
587 inc_le128(v0); /* +0 */
588 inc_le128(v1); /* +1 */
596 SM4_CRYPT_BLK8(v0, v1, v2, v3, v4, v5, v6, v7);
598 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
599 eor v0.16b, v0.16b, RTMP0.16b;
603 st1 {v0.16b-v3.16b}, [x1], #64;
605 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
610 st1 {v4.16b-v7.16b}, [x1], #64;
623 inc_le128(v0); /* +0 */
624 inc_le128(v1); /* +1 */
628 SM4_CRYPT_BLK4(v0, v1, v2, v3);
630 ld1 {RTMP0.16b-RTMP3.16b}, [x2], #64;
631 eor v0.16b, v0.16b, RTMP0.16b;
635 st1 {v0.16b-v3.16b}, [x1], #64;
640 sub w4, w4, #1;
643 inc_le128(v0);
645 SM4_CRYPT_BLK(v0);
648 eor v0.16b, v0.16b, RTMP0.16b;
649 st1 {v0.16b}, [x1], #16;