Lines Matching +full:v1 +full:- +full:v6
1 /* Do not modify. This file is auto-generated from aesv8-armx.pl. */
5 .arch armv8-a+crypto
11 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat
20 // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
21 stp x29,x30,[sp,#-16]!
23 mov x3,#-1
28 mov x3,#-2
43 ld1 {v1.4s,v2.4s},[x3],#32
51 tbl v6.16b,{v3.16b},v2.16b
54 aese v6.16b,v0.16b
61 eor v6.16b,v6.16b,v1.16b
63 shl v1.16b,v1.16b,#1
64 eor v3.16b,v3.16b,v6.16b
67 ld1 {v1.4s},[x3]
69 tbl v6.16b,{v3.16b},v2.16b
72 aese v6.16b,v0.16b
78 eor v6.16b,v6.16b,v1.16b
80 shl v1.16b,v1.16b,#1
81 eor v3.16b,v3.16b,v6.16b
83 tbl v6.16b,{v3.16b},v2.16b
86 aese v6.16b,v0.16b
92 eor v6.16b,v6.16b,v1.16b
94 eor v3.16b,v3.16b,v6.16b
104 movi v6.16b,#8 // borrow v6.16b
106 sub v2.16b,v2.16b,v6.16b // adjust the mask
109 tbl v6.16b,{v4.16b},v2.16b
117 aese v6.16b,v0.16b
128 eor v6.16b,v6.16b,v1.16b
130 shl v1.16b,v1.16b,#1
132 eor v3.16b,v3.16b,v6.16b
133 eor v4.16b,v4.16b,v6.16b
149 tbl v6.16b,{v4.16b},v2.16b
152 aese v6.16b,v0.16b
159 eor v6.16b,v6.16b,v1.16b
161 shl v1.16b,v1.16b,#1
162 eor v3.16b,v3.16b,v6.16b
166 dup v6.4s,v3.s[3] // just splat
168 aese v6.16b,v0.16b
176 eor v4.16b,v4.16b,v6.16b
187 .size aes_v8_set_encrypt_key,.-aes_v8_set_encrypt_key
194 stp x29,x30,[sp,#-16]!
202 mov x4,#-16
206 ld1 {v1.4s},[x0]
208 st1 {v1.4s},[x2],#16
212 ld1 {v1.4s},[x0]
214 aesimc v1.16b,v1.16b
216 st1 {v1.4s},[x2],#16
229 .size aes_v8_set_decrypt_key,.-aes_v8_set_decrypt_key
239 ld1 {v1.4s},[x2],#16
246 aese v2.16b,v1.16b
248 ld1 {v1.4s},[x2],#16
254 aese v2.16b,v1.16b
259 .size aes_v8_encrypt,.-aes_v8_encrypt
269 ld1 {v1.4s},[x2],#16
276 aesd v2.16b,v1.16b
278 ld1 {v1.4s},[x2],#16
284 aesd v2.16b,v1.16b
289 .size aes_v8_decrypt,.-aes_v8_decrypt
299 cmp w4,#0 // en- or decrypting?
301 ld1 {v5.4s,v6.4s},[x3],#32 // load key schedule...
307 aese v0.16b,v6.16b
309 subs w5,w5,#10 // if rounds==10, jump to aes-128-ecb processing
347 aesd v0.16b,v6.16b
384 stp x29,x30,[sp,#-16]!
390 cmp w4,#0 // en- or decrypting?
392 and x2,x2,#-16
408 ld1 {v1.16b},[x0],#16
411 orr v3.16b,v1.16b,v1.16b
412 orr v24.16b,v1.16b,v1.16b
413 orr v1.16b,v0.16b,v0.16b
416 orr v1.16b,v3.16b,v3.16b
429 aese v1.16b,v16.16b
430 aesmc v1.16b,v1.16b
441 aese v1.16b,v17.16b
442 aesmc v1.16b,v1.16b
454 aese v1.16b,v16.16b
455 aesmc v1.16b,v1.16b
467 aese v1.16b,v17.16b
468 aesmc v1.16b,v1.16b
480 aese v1.16b,v18.16b
481 aesmc v1.16b,v1.16b
489 // at exit from the loop v1.16b-v26.16b
495 aese v1.16b,v19.16b
496 aesmc v1.16b,v1.16b
506 aese v1.16b,v20.16b
507 aesmc v1.16b,v1.16b
517 aese v1.16b,v21.16b
518 aesmc v1.16b,v1.16b
528 aese v1.16b,v22.16b
529 aesmc v1.16b,v1.16b
539 aese v1.16b,v23.16b
548 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
551 eor v5.16b,v7.16b,v1.16b
552 orr v1.16b,v3.16b,v3.16b
563 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
574 orr v1.16b,v28.16b,v28.16b
582 eor v5.16b,v7.16b,v1.16b
596 aese v1.16b,v16.16b
597 aesmc v1.16b,v1.16b
604 aese v1.16b,v17.16b
605 aesmc v1.16b,v1.16b
613 aese v1.16b,v16.16b
614 aesmc v1.16b,v1.16b
621 aese v1.16b,v17.16b
622 aesmc v1.16b,v1.16b
626 // at exit from the loop v1.16b-v24.16b
631 aese v1.16b,v20.16b
632 aesmc v1.16b,v1.16b
638 aese v1.16b,v21.16b
639 aesmc v1.16b,v1.16b
645 aese v1.16b,v22.16b
646 aesmc v1.16b,v1.16b
651 aese v1.16b,v23.16b
653 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
656 eor v5.16b,v7.16b,v1.16b
658 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
662 orr v1.16b,v3.16b,v3.16b
672 aese v1.16b,v16.16b
673 aesmc v1.16b,v1.16b
678 aese v1.16b,v17.16b
679 aesmc v1.16b,v1.16b
685 aese v1.16b,v16.16b
686 aesmc v1.16b,v1.16b
689 aese v1.16b,v17.16b
690 aesmc v1.16b,v1.16b
693 aese v1.16b,v20.16b
694 aesmc v1.16b,v1.16b
698 aese v1.16b,v21.16b
699 aesmc v1.16b,v1.16b
702 aese v1.16b,v22.16b
703 aesmc v1.16b,v1.16b
706 aese v1.16b,v23.16b
709 eor v5.16b,v7.16b,v1.16b
721 ld1 {v1.16b},[x0],#16
724 orr v3.16b,v1.16b,v1.16b
725 orr v24.16b,v1.16b,v1.16b
726 orr v1.16b,v0.16b,v0.16b
729 orr v1.16b,v3.16b,v3.16b
742 aesd v1.16b,v16.16b
743 aesimc v1.16b,v1.16b
754 aesd v1.16b,v17.16b
755 aesimc v1.16b,v1.16b
767 aesd v1.16b,v16.16b
768 aesimc v1.16b,v1.16b
780 aesd v1.16b,v17.16b
781 aesimc v1.16b,v1.16b
793 aesd v1.16b,v18.16b
794 aesimc v1.16b,v1.16b
802 // at exit from the loop v1.16b-v26.16b
808 aesd v1.16b,v19.16b
809 aesimc v1.16b,v1.16b
819 aesd v1.16b,v20.16b
820 aesimc v1.16b,v1.16b
830 aesd v1.16b,v21.16b
831 aesimc v1.16b,v1.16b
841 aesd v1.16b,v22.16b
842 aesimc v1.16b,v1.16b
852 aesd v1.16b,v23.16b
861 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
864 eor v5.16b,v7.16b,v1.16b
865 orr v1.16b,v3.16b,v3.16b
876 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
887 orr v1.16b,v28.16b,v28.16b
895 eor v5.16b,v7.16b,v1.16b
909 aesd v1.16b,v16.16b
910 aesimc v1.16b,v1.16b
917 aesd v1.16b,v17.16b
918 aesimc v1.16b,v1.16b
926 aesd v1.16b,v16.16b
927 aesimc v1.16b,v1.16b
934 aesd v1.16b,v17.16b
935 aesimc v1.16b,v1.16b
939 // at exit from the loop v1.16b-v24.16b
944 aesd v1.16b,v20.16b
945 aesimc v1.16b,v1.16b
951 aesd v1.16b,v21.16b
952 aesimc v1.16b,v1.16b
958 aesd v1.16b,v22.16b
959 aesimc v1.16b,v1.16b
964 aesd v1.16b,v23.16b
966 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
969 eor v5.16b,v7.16b,v1.16b
971 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
975 orr v1.16b,v3.16b,v3.16b
985 aesd v1.16b,v16.16b
986 aesimc v1.16b,v1.16b
991 aesd v1.16b,v17.16b
992 aesimc v1.16b,v1.16b
998 aesd v1.16b,v16.16b
999 aesimc v1.16b,v1.16b
1002 aesd v1.16b,v17.16b
1003 aesimc v1.16b,v1.16b
1006 aesd v1.16b,v20.16b
1007 aesimc v1.16b,v1.16b
1011 aesd v1.16b,v21.16b
1012 aesimc v1.16b,v1.16b
1015 aesd v1.16b,v22.16b
1016 aesimc v1.16b,v1.16b
1019 aesd v1.16b,v23.16b
1022 eor v5.16b,v7.16b,v1.16b
1036 .size aes_v8_ecb_encrypt,.-aes_v8_ecb_encrypt
1042 // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
1043 stp x29,x30,[sp,#-16]!
1050 cmp w5,#0 // en- or decrypting?
1052 and x2,x2,#-16
1053 ld1 {v6.16b},[x4]
1070 eor v0.16b,v0.16b,v6.16b
1088 st1 {v6.16b},[x1],#16
1126 ld1 {v17.4s},[x7] // re-pre-load rndkey[1]
1130 eor v6.16b,v0.16b,v7.16b
1133 st1 {v6.16b},[x1],#16
1145 st1 {v6.16b},[x1],#16
1168 eor v6.16b,v0.16b,v7.16b
1171 st1 {v6.16b},[x1],#16
1179 orr v1.16b,v0.16b,v0.16b
1183 orr v1.16b,v24.16b,v24.16b
1186 orr v3.16b,v1.16b,v1.16b
1201 aesd v1.16b,v16.16b
1202 aesimc v1.16b,v1.16b
1213 aesd v1.16b,v17.16b
1214 aesimc v1.16b,v1.16b
1226 aesd v1.16b,v16.16b
1227 aesimc v1.16b,v1.16b
1239 aesd v1.16b,v17.16b
1240 aesimc v1.16b,v1.16b
1252 aesd v1.16b,v18.16b
1253 aesimc v1.16b,v1.16b
1261 // at exit from the loop v1.16b-v26.16b
1267 aesd v1.16b,v19.16b
1268 aesimc v1.16b,v1.16b
1278 aesd v1.16b,v20.16b
1279 aesimc v1.16b,v1.16b
1289 aesd v1.16b,v21.16b
1290 aesimc v1.16b,v1.16b
1300 aesd v1.16b,v22.16b
1301 aesimc v1.16b,v1.16b
1309 eor v4.16b,v6.16b,v7.16b
1313 aesd v1.16b,v23.16b
1323 orr v6.16b,v29.16b,v29.16b
1326 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
1329 eor v5.16b,v5.16b,v1.16b
1330 orr v1.16b,v3.16b,v3.16b
1341 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
1353 orr v1.16b,v28.16b,v28.16b
1363 eor v5.16b,v4.16b,v1.16b
1377 aesd v1.16b,v16.16b
1378 aesimc v1.16b,v1.16b
1385 aesd v1.16b,v17.16b
1386 aesimc v1.16b,v1.16b
1394 aesd v1.16b,v16.16b
1395 aesimc v1.16b,v1.16b
1398 eor v4.16b,v6.16b,v7.16b
1404 aesd v1.16b,v17.16b
1405 aesimc v1.16b,v1.16b
1410 // at exit from the loop v1.16b-v24.16b
1412 orr v6.16b,v27.16b,v27.16b
1416 aesd v1.16b,v20.16b
1417 aesimc v1.16b,v1.16b
1423 aesd v1.16b,v21.16b
1424 aesimc v1.16b,v1.16b
1430 aesd v1.16b,v22.16b
1431 aesimc v1.16b,v1.16b
1436 aesd v1.16b,v23.16b
1438 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
1441 eor v5.16b,v5.16b,v1.16b
1443 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
1447 orr v1.16b,v3.16b,v3.16b
1457 aesd v1.16b,v16.16b
1458 aesimc v1.16b,v1.16b
1463 aesd v1.16b,v17.16b
1464 aesimc v1.16b,v1.16b
1470 aesd v1.16b,v16.16b
1471 aesimc v1.16b,v1.16b
1474 aesd v1.16b,v17.16b
1475 aesimc v1.16b,v1.16b
1478 aesd v1.16b,v20.16b
1479 aesimc v1.16b,v1.16b
1483 aesd v1.16b,v21.16b
1484 aesimc v1.16b,v1.16b
1487 eor v5.16b,v6.16b,v7.16b
1488 aesd v1.16b,v22.16b
1489 aesimc v1.16b,v1.16b
1493 aesd v1.16b,v23.16b
1496 eor v5.16b,v5.16b,v1.16b
1498 orr v6.16b,v27.16b,v27.16b
1505 orr v6.16b,v27.16b,v27.16b
1509 st1 {v6.16b},[x4]
1513 .size aes_v8_cbc_encrypt,.-aes_v8_cbc_encrypt
1519 // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
1520 stp x29,x30,[sp,#-80]!
1541 ld1 {v1.4s},[x7]
1578 stp x19,x20,[sp,#-16]!
1579 stp x21,x22,[sp,#-16]!
1580 stp x23,x24,[sp,#-16]!
1581 stp d8,d9,[sp,#-32]!
1582 stp d10,d11,[sp,#-32]!
1777 ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
1823 ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0]
1826 .inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b
1829 .inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b
1832 .inst 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b
1835 .inst 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b
1838 .inst 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b
1841 .inst 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b
1844 .inst 0xce017a52 //eor3 v18.16b,v18.16b,v1.16b,v30.16b
1847 .inst 0xce017e73 //eor3 v19.16b,v19.16b,v1.16b,v31.16b
1850 .inst 0xce012294 //eor3 v20.16b,v20.16b,v1.16b,v8.16b
1853 .inst 0xce0126b5 //eor3 v21.16b,v21.16b,v1.16b,v9.16b
1856 .inst 0xce012ad6 //eor3 v22.16b,v22.16b,v1.16b,v10.16b
1859 .inst 0xce012ef7 //eor3 v23.16b,v23.16b,v1.16b,v11.16b
1861 ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1]
1867 st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
1997 ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
2022 ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0]
2025 .inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b
2027 .inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b
2029 .inst 0xce0168c6 //eor3 v6.16b,v6.16b,v1.16b,v26.16b
2031 .inst 0xce016ce7 //eor3 v7.16b,v7.16b,v1.16b,v27.16b
2033 .inst 0xce017210 //eor3 v16.16b,v16.16b,v1.16b,v28.16b
2035 .inst 0xce017631 //eor3 v17.16b,v17.16b,v1.16b,v29.16b
2036 ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1]
2047 st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
2087 ld1 {v4.16b,v5.16b,v6.16b},[x0],#48
2138 .inst 0xce012484 //eor3 v4.16b,v4.16b,v1.16b,v9.16b
2139 ld1 {v2.4s},[x7],#16 // re-pre-load rndkey[0]
2140 .inst 0xce0128a5 //eor3 v5.16b,v5.16b,v1.16b,v10.16b
2142 .inst 0xce012cc6 //eor3 v6.16b,v6.16b,v1.16b,v11.16b
2143 ld1 {v3.4s},[x7],#16 // re-pre-load rndkey[1]
2144 st1 {v4.16b,v5.16b,v6.16b},[x1],#48
2194 .inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b
2195 .inst 0xce0164a5 //eor3 v5.16b,v5.16b,v1.16b,v25.16b
2226 .inst 0xce016084 //eor3 v4.16b,v4.16b,v1.16b,v24.16b
2236 .size aes_v8_ctr32_encrypt_blocks_unroll12_eor3,.-aes_v8_ctr32_encrypt_blocks_unroll12_eor3
2242 // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
2243 stp x29,x30,[sp,#-16]!
2268 orr v1.16b,v0.16b,v0.16b
2272 orr v6.16b,v0.16b,v0.16b
2274 mov v1.s[3],w10
2298 aese v1.16b,v16.16b
2299 aesmc v1.16b,v1.16b
2310 aese v1.16b,v17.16b
2311 aesmc v1.16b,v1.16b
2324 aese v1.16b,v16.16b
2325 aesmc v1.16b,v1.16b
2332 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
2336 aese v1.16b,v17.16b
2337 aesmc v1.16b,v1.16b
2344 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
2350 aese v1.16b,v20.16b
2351 aesmc v1.16b,v1.16b
2369 aese v1.16b,v21.16b
2370 aesmc v1.16b,v1.16b
2381 aese v1.16b,v22.16b
2382 aesmc v1.16b,v1.16b
2396 aese v1.16b,v23.16b
2406 orr v0.16b,v6.16b,v6.16b
2407 eor v3.16b,v3.16b,v1.16b
2408 orr v1.16b,v6.16b,v6.16b
2410 orr v18.16b,v6.16b,v6.16b
2412 orr v24.16b,v6.16b,v6.16b
2414 orr v25.16b,v6.16b,v6.16b
2419 mov v1.s[3],w10
2450 aese v1.16b,v16.16b
2451 aesmc v1.16b,v1.16b
2458 aese v1.16b,v17.16b
2459 aesmc v1.16b,v1.16b
2467 aese v1.16b,v16.16b
2468 aesmc v5.16b,v1.16b
2470 orr v0.16b,v6.16b,v6.16b
2474 orr v1.16b,v6.16b,v6.16b
2483 orr v18.16b,v6.16b,v6.16b
2509 mov v1.s[3], w10
2520 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
2526 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
2539 aese v1.16b,v16.16b
2540 aesmc v1.16b,v1.16b
2545 aese v1.16b,v17.16b
2546 aesmc v1.16b,v1.16b
2552 aese v1.16b,v16.16b
2553 aesmc v1.16b,v1.16b
2556 aese v1.16b,v17.16b
2557 aesmc v1.16b,v1.16b
2561 aese v1.16b,v20.16b
2562 aesmc v1.16b,v1.16b
2566 aese v1.16b,v21.16b
2567 aesmc v1.16b,v1.16b
2571 aese v1.16b,v22.16b
2572 aesmc v1.16b,v1.16b
2575 aese v1.16b,v23.16b
2579 eor v3.16b,v3.16b,v1.16b
2587 .size aes_v8_ctr32_encrypt_blocks,.-aes_v8_ctr32_encrypt_blocks
2599 ld1 {v6.16b},[x5]
2601 ld1 {v1.4s},[x4],#16
2604 aese v6.16b,v0.16b
2605 aesmc v6.16b,v6.16b
2608 aese v6.16b,v1.16b
2609 aesmc v6.16b,v6.16b
2610 ld1 {v1.4s},[x4],#16
2613 aese v6.16b,v0.16b
2614 aesmc v6.16b,v6.16b
2616 aese v6.16b,v1.16b
2617 eor v6.16b,v6.16b,v0.16b
2620 eor v0.16b,v6.16b,v0.16b
2630 subs w6,w6,#10 // if rounds==10, jump to aes-128-xts processing
2662 eor v0.16b,v0.16b,v6.16b
2668 stp x19,x20,[sp,#-64]!
2675 and x2,x2,#-16
2684 ld1 {v6.16b},[x5]
2686 ld1 {v1.4s},[x4],#16
2689 aese v6.16b,v0.16b
2690 aesmc v6.16b,v6.16b
2693 aese v6.16b,v1.16b
2694 aesmc v6.16b,v6.16b
2695 ld1 {v1.4s},[x4],#16
2698 aese v6.16b,v0.16b
2699 aesmc v6.16b,v6.16b
2701 aese v6.16b,v1.16b
2702 eor v6.16b,v6.16b,v0.16b
2705 // x9- iv(low), x10 - iv(high)
2706 // the five ivs stored into, v6.16b,v8.16b,v9.16b,v10.16b,v11.16b
2708 fmov x10,v6.d[1]
2738 orr v1.16b,v0.16b,v0.16b
2743 eor v0.16b,v0.16b,v6.16b // before encryption, xor with iv
2755 orr v1.16b,v24.16b,v24.16b
2758 orr v3.16b,v1.16b,v1.16b
2792 aese v1.16b,v16.16b
2793 aesmc v1.16b,v1.16b
2804 aese v1.16b,v17.16b
2805 aesmc v1.16b,v1.16b
2817 aese v1.16b,v16.16b
2818 aesmc v1.16b,v1.16b
2829 aese v1.16b,v17.16b
2830 aesmc v1.16b,v1.16b
2842 aese v1.16b,v18.16b
2843 aesmc v1.16b,v1.16b
2851 // at exit from the loop v1.16b-v26.16b
2857 aese v1.16b,v19.16b
2858 aesmc v1.16b,v1.16b
2868 aese v1.16b,v20.16b
2869 aesmc v1.16b,v1.16b
2879 aese v1.16b,v21.16b
2880 aesmc v1.16b,v1.16b
2890 aese v1.16b,v22.16b
2891 aesmc v1.16b,v1.16b
2899 eor v4.16b,v7.16b,v6.16b
2907 fmov v6.d[1],x10
2910 aese v1.16b,v23.16b
2952 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
2954 eor v0.16b,v2.16b,v6.16b
2955 eor v5.16b,v5.16b,v1.16b
2956 eor v1.16b,v3.16b,v8.16b
2967 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
2979 orr v8.16b,v6.16b,v6.16b
2982 eor v0.16b,v6.16b,v2.16b
2983 eor v1.16b,v8.16b,v3.16b
2997 eor v0.16b,v6.16b,v27.16b
2998 eor v1.16b,v8.16b,v28.16b
3005 eor v5.16b,v1.16b,v5.16b
3018 aese v1.16b,v16.16b
3019 aesmc v1.16b,v1.16b
3026 aese v1.16b,v17.16b
3027 aesmc v1.16b,v1.16b
3035 aese v1.16b,v16.16b
3036 aesmc v1.16b,v1.16b
3039 eor v4.16b,v6.16b,v7.16b
3050 fmov v6.d[1],x10
3055 aese v1.16b,v17.16b
3056 aesmc v1.16b,v1.16b
3067 aese v1.16b,v20.16b
3068 aesmc v1.16b,v1.16b
3073 aese v1.16b,v21.16b
3074 aesmc v1.16b,v1.16b
3079 aese v1.16b,v22.16b
3080 aesmc v1.16b,v1.16b
3084 aese v1.16b,v23.16b
3088 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
3090 eor v5.16b,v5.16b,v1.16b
3092 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
3105 eor v1.16b,v28.16b,v6.16b
3108 eor v24.16b,v29.16b,v6.16b
3110 aese v1.16b,v16.16b
3111 aesmc v1.16b,v1.16b
3116 aese v1.16b,v17.16b
3117 aesmc v1.16b,v1.16b
3123 aese v1.16b,v16.16b
3124 aesmc v1.16b,v1.16b
3127 aese v1.16b,v17.16b
3128 aesmc v1.16b,v1.16b
3131 aese v1.16b,v20.16b
3132 aesmc v1.16b,v1.16b
3136 aese v1.16b,v21.16b
3137 aesmc v1.16b,v1.16b
3140 eor v5.16b,v6.16b,v7.16b
3141 aese v1.16b,v22.16b
3142 aesmc v1.16b,v1.16b
3146 aese v1.16b,v23.16b
3149 eor v5.16b,v5.16b,v1.16b
3152 orr v6.16b,v8.16b,v8.16b
3162 fmov v6.d[1],x10
3167 orr v6.16b,v6.16b,v6.16b
3170 fmov x10,v6.d[1]
3177 fmov v6.d[1],x10
3197 eor v26.16b,v26.16b,v6.16b
3203 ld1 {v1.4s},[x3],#16 // load key schedule...
3209 aese v26.16b,v1.16b
3211 ld1 {v1.4s},[x3],#16
3217 aese v26.16b,v1.16b
3219 eor v26.16b,v26.16b,v6.16b
3229 .size aes_v8_xts_encrypt,.-aes_v8_xts_encrypt
3241 ld1 {v6.16b},[x5]
3243 ld1 {v1.4s},[x4],#16
3246 aese v6.16b,v0.16b
3247 aesmc v6.16b,v6.16b
3250 aese v6.16b,v1.16b
3251 aesmc v6.16b,v6.16b
3252 ld1 {v1.4s},[x4],#16
3255 aese v6.16b,v0.16b
3256 aesmc v6.16b,v6.16b
3258 aese v6.16b,v1.16b
3259 eor v6.16b,v6.16b,v0.16b
3262 eor v0.16b,v6.16b,v0.16b
3304 eor v0.16b,v6.16b,v0.16b
3308 stp x19,x20,[sp,#-64]!
3314 and x2,x2,#-16
3322 ld1 {v6.16b},[x5]
3324 ld1 {v1.4s},[x4],#16
3327 aese v6.16b,v0.16b
3328 aesmc v6.16b,v6.16b
3331 aese v6.16b,v1.16b
3332 aesmc v6.16b,v6.16b
3333 ld1 {v1.4s},[x4],#16
3336 aese v6.16b,v0.16b
3337 aesmc v6.16b,v6.16b
3339 aese v6.16b,v1.16b
3340 eor v6.16b,v6.16b,v0.16b
3343 // x9- iv(low), x10 - iv(high)
3344 // the five ivs stored into, v6.16b,v8.16b,v9.16b,v10.16b,v11.16b
3346 fmov x10,v6.d[1]
3401 orr v1.16b,v0.16b,v0.16b
3407 eor v0.16b,v0.16b,v6.16b // before decryt, xor with iv
3410 orr v1.16b,v24.16b,v24.16b
3413 orr v3.16b,v1.16b,v1.16b
3440 aesd v1.16b,v16.16b
3441 aesimc v1.16b,v1.16b
3452 aesd v1.16b,v17.16b
3453 aesimc v1.16b,v1.16b
3465 aesd v1.16b,v16.16b
3466 aesimc v1.16b,v1.16b
3477 aesd v1.16b,v17.16b
3478 aesimc v1.16b,v1.16b
3490 aesd v1.16b,v18.16b
3491 aesimc v1.16b,v1.16b
3499 // at exit from the loop v1.16b-v26.16b
3505 aesd v1.16b,v19.16b
3506 aesimc v1.16b,v1.16b
3516 aesd v1.16b,v20.16b
3517 aesimc v1.16b,v1.16b
3527 aesd v1.16b,v21.16b
3528 aesimc v1.16b,v1.16b
3538 aesd v1.16b,v22.16b
3539 aesimc v1.16b,v1.16b
3547 eor v4.16b,v7.16b,v6.16b
3555 fmov v6.d[1],x10
3558 aesd v1.16b,v23.16b
3600 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
3602 eor v0.16b,v2.16b,v6.16b
3603 eor v5.16b,v5.16b,v1.16b
3604 eor v1.16b,v3.16b,v8.16b
3615 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
3622 // If x2(x2) equal to -0x10, the left blocks is 4.
3624 // It will use the following IVs: v6.16b,v6.16b,v8.16b,v9.16b,v10.16b.
3628 orr v8.16b,v6.16b,v6.16b
3631 eor v0.16b,v6.16b,v2.16b
3632 eor v1.16b,v8.16b,v3.16b
3646 eor v0.16b,v6.16b,v27.16b
3647 eor v1.16b,v8.16b,v28.16b
3655 eor v5.16b,v1.16b,v4.16b
3670 aesd v1.16b,v16.16b
3671 aesimc v1.16b,v1.16b
3678 aesd v1.16b,v17.16b
3679 aesimc v1.16b,v1.16b
3687 aesd v1.16b,v16.16b
3688 aesimc v1.16b,v1.16b
3691 eor v4.16b,v6.16b,v7.16b
3702 fmov v6.d[1],x10
3707 aesd v1.16b,v17.16b
3708 aesimc v1.16b,v1.16b
3735 aesd v1.16b,v20.16b
3736 aesimc v1.16b,v1.16b
3741 aesd v1.16b,v21.16b
3742 aesimc v1.16b,v1.16b
3747 aesd v1.16b,v22.16b
3748 aesimc v1.16b,v1.16b
3753 aesd v1.16b,v23.16b
3755 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
3758 eor v5.16b,v5.16b,v1.16b
3760 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
3774 // x2 == -0x10 means two blocks left.
3776 eor v1.16b,v28.16b,v6.16b
3779 eor v24.16b,v29.16b,v6.16b
3781 aesd v1.16b,v16.16b
3782 aesimc v1.16b,v1.16b
3787 aesd v1.16b,v17.16b
3788 aesimc v1.16b,v1.16b
3794 aesd v1.16b,v16.16b
3795 aesimc v1.16b,v1.16b
3798 aesd v1.16b,v17.16b
3799 aesimc v1.16b,v1.16b
3802 aesd v1.16b,v20.16b
3803 aesimc v1.16b,v1.16b
3807 aesd v1.16b,v21.16b
3808 aesimc v1.16b,v1.16b
3811 eor v5.16b,v6.16b,v7.16b
3812 aesd v1.16b,v22.16b
3813 aesimc v1.16b,v1.16b
3817 aesd v1.16b,v23.16b
3820 eor v5.16b,v5.16b,v1.16b
3822 orr v6.16b,v9.16b,v9.16b
3831 orr v6.16b,v8.16b,v8.16b
3850 ld1 {v1.4s},[x3],#16
3856 aesd v26.16b,v1.16b
3858 ld1 {v1.4s},[x3],#16 // load key schedule...
3864 aesd v26.16b,v1.16b
3883 eor v26.16b,v26.16b,v6.16b
3889 ld1 {v1.4s},[x7],#16
3895 aesd v26.16b,v1.16b
3897 ld1 {v1.4s},[x7],#16 // load key schedule...
3903 aesd v26.16b,v1.16b
3905 eor v26.16b,v26.16b,v6.16b
3916 .size aes_v8_xts_decrypt,.-aes_v8_xts_decrypt