Lines Matching +full:lo +full:- +full:x2 +full:- +full:en

1 /* Do not modify. This file is auto-generated from aesv8-armx.pl. */
5 .arch armv8-a+crypto
10 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat
19 // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
20 stp x29,x30,[sp,#-16]!
22 mov x3,#-1
25 cmp x2,#0
27 mov x3,#-2
51 st1 {v3.4s},[x2],#16
69 st1 {v3.4s},[x2],#16
83 st1 {v3.4s},[x2],#16
93 st1 {v3.4s},[x2]
94 add x2,x2,#0x50
103 st1 {v3.4s},[x2],#16
110 st1 {v4.4s},[x2],#16
111 sub x2,x2,#8
113 st1 {v4.8b},[x2],#8
132 st1 {v3.4s},[x2],#16
136 add x2,x2,#0x20
144 st1 {v3.4s},[x2],#16
149 st1 {v4.4s},[x2],#16
161 st1 {v3.4s},[x2],#16
178 str w12,[x2]
185 .size aes_v8_set_encrypt_key,.-aes_v8_set_encrypt_key
192 stp x29,x30,[sp,#-16]!
199 sub x2,x2,#240 // restore original x2
200 mov x4,#-16
201 add x0,x2,x12,lsl#4 // end of key schedule
203 ld1 {v0.4s},[x2]
206 st1 {v1.4s},[x2],#16
209 ld1 {v0.4s},[x2]
214 st1 {v1.4s},[x2],#16
215 cmp x0,x2
218 ld1 {v0.4s},[x2]
227 .size aes_v8_set_decrypt_key,.-aes_v8_set_decrypt_key
233 ldr w3,[x2,#240]
234 ld1 {v0.4s},[x2],#16
237 ld1 {v1.4s},[x2],#16
242 ld1 {v0.4s},[x2],#16
246 ld1 {v1.4s},[x2],#16
251 ld1 {v0.4s},[x2]
257 .size aes_v8_encrypt,.-aes_v8_encrypt
263 ldr w3,[x2,#240]
264 ld1 {v0.4s},[x2],#16
267 ld1 {v1.4s},[x2],#16
272 ld1 {v0.4s},[x2],#16
276 ld1 {v1.4s},[x2],#16
281 ld1 {v0.4s},[x2]
287 .size aes_v8_decrypt,.-aes_v8_decrypt
293 subs x2,x2,#16
297 cmp w4,#0 // en- or decrypting?
307 subs w5,w5,#10 // if rounds==10, jump to aes-128-ecb processing
382 stp x29,x30,[sp,#-16]!
385 b.lo .Lecb_done
388 cmp w4,#0 // en- or decrypting?
390 and x2,x2,#-16
407 subs x2,x2,#32 // bias
412 b.lo .Lecb_enc_tail
416 cmp x2,#32
417 b.lo .Loop3x_ecb_enc
421 sub x2,x2,#32 // bias
460 cmp x2,#0x40 // because .Lecb_enc_tail4x
461 sub x2,x2,#0x50
473 csel x6,xzr,x2,gt // borrow x6, w6, "gt" is not typo
487 // at exit from the loop v1.16b-v26.16b
489 add x6,x2,#0x60 // because .Lecb_enc_tail4x
546 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
561 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
566 add x2,x2,#0x50
567 cbz x2,.Lecb_done
570 subs x2,x2,#0x30
574 b.lo .Lecb_enc_tail
615 subs x2,x2,#0x30
616 csel x6,x2,x6,lo // x6, w6, is zero at this point
624 // at exit from the loop v1.16b-v24.16b
651 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
656 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
665 cmn x2,#0x30
695 cmn x2,#0x20
720 subs x2,x2,#32 // bias
725 b.lo .Lecb_dec_tail
729 cmp x2,#32
730 b.lo .Loop3x_ecb_dec
734 sub x2,x2,#32 // bias
773 cmp x2,#0x40 // because .Lecb_tail4x
774 sub x2,x2,#0x50
786 csel x6,xzr,x2,gt // borrow x6, w6, "gt" is not typo
800 // at exit from the loop v1.16b-v26.16b
802 add x6,x2,#0x60 // because .Lecb_tail4x
859 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
874 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
879 add x2,x2,#0x50
880 cbz x2,.Lecb_done
883 subs x2,x2,#0x30
887 b.lo .Lecb_dec_tail
928 subs x2,x2,#0x30
929 csel x6,x2,x6,lo // x6, w6, is zero at this point
937 // at exit from the loop v1.16b-v24.16b
964 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
969 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
978 cmn x2,#0x30
1008 cmn x2,#0x20
1034 .size aes_v8_ecb_encrypt,.-aes_v8_ecb_encrypt
1040 // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
1041 stp x29,x30,[sp,#-16]!
1043 subs x2,x2,#16
1045 b.lo .Lcbc_abort
1048 cmp w5,#0 // en- or decrypting?
1050 and x2,x2,#-16
1110 subs x2,x2,#16
1124 ld1 {v17.4s},[x7] // re-pre-load rndkey[1]
1147 subs x2,x2,#16
1174 subs x2,x2,#32 // bias
1179 b.lo .Lcbc_dec_tail
1186 cmp x2,#32
1187 b.lo .Loop3x_cbc_dec
1191 sub x2,x2,#32 // bias
1232 cmp x2,#0x40 // because .Lcbc_tail4x
1233 sub x2,x2,#0x50
1245 csel x6,xzr,x2,gt // borrow x6, w6, "gt" is not typo
1259 // at exit from the loop v1.16b-v26.16b
1261 add x6,x2,#0x60 // because .Lcbc_tail4x
1324 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
1339 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
1344 add x2,x2,#0x50
1345 cbz x2,.Lcbc_done
1348 subs x2,x2,#0x30
1355 b.lo .Lcbc_dec_tail
1397 subs x2,x2,#0x30
1399 csel x6,x2,x6,lo // x6, w6, is zero at this point
1408 // at exit from the loop v1.16b-v24.16b
1436 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
1441 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
1450 cmn x2,#0x30
1480 cmn x2,#0x20
1511 .size aes_v8_cbc_encrypt,.-aes_v8_cbc_encrypt
1517 // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
1518 stp x29,x30,[sp,#-16]!
1531 cmp x2,#2
1539 csel x12,xzr,x12,lo
1552 sub x2,x2,#3 // bias
1554 cmp x2,#32
1555 b.lo .Loop3x_ctr32
1564 sub x2,x2,#2 // bias
1607 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
1619 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
1703 cbz x2,.Lctr32_done
1706 subs x2,x2,#5
1709 add x2,x2,#5
1712 cmp x2,#2
1714 csel x12,xzr,x12,lo
1717 sub x2,x2,#3 // bias
1789 subs x2,x2,#3
1795 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
1801 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
1805 adds x2,x2,#3
1807 cmp x2,#1
1852 cmp x2,#1
1862 .size aes_v8_ctr32_encrypt_blocks,.-aes_v8_ctr32_encrypt_blocks
1868 cmp x2,#16
1905 subs w6,w6,#10 // if rounds==10, jump to aes-128-xts processing
1943 stp x19,x20,[sp,#-64]!
1949 and x21,x2,#0xf
1950 and x2,x2,#-16
1951 subs x2,x2,#16
1953 b.lo .Lxts_abort
1980 // x9- iv(low), x10 - iv(high)
2010 subs x2,x2,#32 // bias
2017 b.lo .Lxts_inner_enc_tail
2036 cmp x2,#32
2037 b.lo .Lxts_outer_enc_tail
2059 sub x2,x2,#32 // bias
2100 subs x2,x2,#0x50 // because .Lxts_enc_tail4x
2112 csel x6,xzr,x2,gt // borrow x6, w6, "gt" is not typo
2126 // at exit from the loop v1.16b-v26.16b
2128 add x6,x2,#0x60 // because .Lxts_enc_tail4x
2227 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
2242 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
2249 cmn x2,#0x10
2265 add x2,x2,#0x50
2266 cbz x2,.Lxts_enc_done
2269 subs x2,x2,#0x30
2270 b.lo .Lxts_inner_enc_tail
2315 subs x2,x2,#0x30
2327 csel x6,x2,x6,lo // x6, w6, is zero at this point
2363 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
2367 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
2371 cmn x2,#0x30
2379 cmn x2,#0x10
2410 cmn x2,#0x20
2504 .size aes_v8_xts_encrypt,.-aes_v8_xts_encrypt
2510 cmp x2,#16
2583 stp x19,x20,[sp,#-64]!
2588 and x21,x2,#0xf
2589 and x2,x2,#-16
2590 subs x2,x2,#16
2592 b.lo .Lxts_dec_abort
2618 // x9- iv(low), x10 - iv(high)
2666 subs x2,x2,#16
2669 b.lo .Lxts_done
2673 subs x2,x2,#32 // bias
2681 b.lo .Lxts_inner_dec_tail
2691 cmp x2,#32
2692 b.lo .Lxts_outer_dec_tail
2707 sub x2,x2,#32 // bias
2748 subs x2,x2,#0x50 // because .Lxts_dec_tail4x
2760 csel x6,xzr,x2,gt // borrow x6, w6, "gt" is not typo
2774 // at exit from the loop v1.16b-v26.16b
2776 add x6,x2,#0x60 // because .Lxts_dec_tail4x
2875 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
2890 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
2895 cmn x2,#0x10
2897 // If x2(x2) equal to -0x10, the left blocks is 4.
2914 add x2,x2,#0x50
2915 cbz x2,.Lxts_done
2918 subs x2,x2,#0x30
2919 b.lo .Lxts_inner_dec_tail
2967 subs x2,x2,#0x30
2979 csel x6,x2,x6,lo // x6, w6, is zero at this point
3030 ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0]
3035 ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1]
3040 cmn x2,#0x30
3041 add x2,x2,#0x30
3043 sub x2,x2,#0x30
3049 // x2 == -0x10 means two blocks left.
3050 cmn x2,#0x10
3081 cmn x2,#0x20
3101 add x2,x2,#16
3109 add x2,x2,#32
3116 cbnz x2,.Lxts_dec_1st_done
3191 .size aes_v8_xts_decrypt,.-aes_v8_xts_decrypt