1 #if defined(__aarch64__)
7 .globl sha1_block_data_order
8 .type sha1_block_data_order,%function
10 sha1_block_data_order:
11 ldr x16,.LOPENSSL_armcap_P
12 adr x17,.LOPENSSL_armcap_P
18 stp x29,x30,[sp,#-96]!
34 movk w28,#0x5a82,lsl#16
40 add w24,w24,w28 // warm it up
47 add w23,w23,w28 // future e+=K
49 add w24,w24,w27 // e+=rot(a,5)
51 add w23,w23,w4 // future e+=X[i]
52 add w24,w24,w25 // e+=F(b,c,d)
61 add w22,w22,w28 // future e+=K
63 add w23,w23,w27 // e+=rot(a,5)
65 add w22,w22,w5 // future e+=X[i]
66 add w23,w23,w25 // e+=F(b,c,d)
72 add w21,w21,w28 // future e+=K
74 add w22,w22,w27 // e+=rot(a,5)
76 add w21,w21,w6 // future e+=X[i]
77 add w22,w22,w25 // e+=F(b,c,d)
86 add w20,w20,w28 // future e+=K
88 add w21,w21,w27 // e+=rot(a,5)
90 add w20,w20,w7 // future e+=X[i]
91 add w21,w21,w25 // e+=F(b,c,d)
97 add w24,w24,w28 // future e+=K
99 add w20,w20,w27 // e+=rot(a,5)
101 add w24,w24,w8 // future e+=X[i]
102 add w20,w20,w25 // e+=F(b,c,d)
111 add w23,w23,w28 // future e+=K
113 add w24,w24,w27 // e+=rot(a,5)
115 add w23,w23,w9 // future e+=X[i]
116 add w24,w24,w25 // e+=F(b,c,d)
122 add w22,w22,w28 // future e+=K
124 add w23,w23,w27 // e+=rot(a,5)
126 add w22,w22,w10 // future e+=X[i]
127 add w23,w23,w25 // e+=F(b,c,d)
136 add w21,w21,w28 // future e+=K
138 add w22,w22,w27 // e+=rot(a,5)
140 add w21,w21,w11 // future e+=X[i]
141 add w22,w22,w25 // e+=F(b,c,d)
147 add w20,w20,w28 // future e+=K
149 add w21,w21,w27 // e+=rot(a,5)
151 add w20,w20,w12 // future e+=X[i]
152 add w21,w21,w25 // e+=F(b,c,d)
161 add w24,w24,w28 // future e+=K
163 add w20,w20,w27 // e+=rot(a,5)
165 add w24,w24,w13 // future e+=X[i]
166 add w20,w20,w25 // e+=F(b,c,d)
172 add w23,w23,w28 // future e+=K
174 add w24,w24,w27 // e+=rot(a,5)
176 add w23,w23,w14 // future e+=X[i]
177 add w24,w24,w25 // e+=F(b,c,d)
186 add w22,w22,w28 // future e+=K
188 add w23,w23,w27 // e+=rot(a,5)
190 add w22,w22,w15 // future e+=X[i]
191 add w23,w23,w25 // e+=F(b,c,d)
197 add w21,w21,w28 // future e+=K
199 add w22,w22,w27 // e+=rot(a,5)
201 add w21,w21,w16 // future e+=X[i]
202 add w22,w22,w25 // e+=F(b,c,d)
211 add w20,w20,w28 // future e+=K
213 add w21,w21,w27 // e+=rot(a,5)
215 add w20,w20,w17 // future e+=X[i]
216 add w21,w21,w25 // e+=F(b,c,d)
223 add w24,w24,w28 // future e+=K
225 add w20,w20,w27 // e+=rot(a,5)
228 add w24,w24,w19 // future e+=X[i]
229 add w20,w20,w25 // e+=F(b,c,d)
236 add w23,w23,w28 // future e+=K
238 add w24,w24,w27 // e+=rot(a,5)
241 add w23,w23,w3 // future e+=X[i]
242 add w24,w24,w25 // e+=F(b,c,d)
249 add w22,w22,w28 // future e+=K
251 add w23,w23,w27 // e+=rot(a,5)
254 add w22,w22,w4 // future e+=X[i]
255 add w23,w23,w25 // e+=F(b,c,d)
262 add w21,w21,w28 // future e+=K
264 add w22,w22,w27 // e+=rot(a,5)
267 add w21,w21,w5 // future e+=X[i]
268 add w22,w22,w25 // e+=F(b,c,d)
275 add w20,w20,w28 // future e+=K
277 add w21,w21,w27 // e+=rot(a,5)
280 add w20,w20,w6 // future e+=X[i]
281 add w21,w21,w25 // e+=F(b,c,d)
284 movk w28,#0x6ed9,lsl#16
290 add w24,w24,w28 // future e+=K
292 add w20,w20,w27 // e+=rot(a,5)
295 add w24,w24,w7 // future e+=X[i]
296 add w20,w20,w25 // e+=F(b,c,d)
301 add w23,w23,w28 // future e+=K
304 add w24,w24,w27 // e+=rot(a,5)
307 add w23,w23,w8 // future e+=X[i]
308 add w24,w24,w25 // e+=F(b,c,d)
313 add w22,w22,w28 // future e+=K
316 add w23,w23,w27 // e+=rot(a,5)
319 add w22,w22,w9 // future e+=X[i]
320 add w23,w23,w25 // e+=F(b,c,d)
325 add w21,w21,w28 // future e+=K
328 add w22,w22,w27 // e+=rot(a,5)
331 add w21,w21,w10 // future e+=X[i]
332 add w22,w22,w25 // e+=F(b,c,d)
337 add w20,w20,w28 // future e+=K
340 add w21,w21,w27 // e+=rot(a,5)
343 add w20,w20,w11 // future e+=X[i]
344 add w21,w21,w25 // e+=F(b,c,d)
349 add w24,w24,w28 // future e+=K
352 add w20,w20,w27 // e+=rot(a,5)
355 add w24,w24,w12 // future e+=X[i]
356 add w20,w20,w25 // e+=F(b,c,d)
361 add w23,w23,w28 // future e+=K
364 add w24,w24,w27 // e+=rot(a,5)
367 add w23,w23,w13 // future e+=X[i]
368 add w24,w24,w25 // e+=F(b,c,d)
373 add w22,w22,w28 // future e+=K
376 add w23,w23,w27 // e+=rot(a,5)
379 add w22,w22,w14 // future e+=X[i]
380 add w23,w23,w25 // e+=F(b,c,d)
385 add w21,w21,w28 // future e+=K
388 add w22,w22,w27 // e+=rot(a,5)
391 add w21,w21,w15 // future e+=X[i]
392 add w22,w22,w25 // e+=F(b,c,d)
397 add w20,w20,w28 // future e+=K
400 add w21,w21,w27 // e+=rot(a,5)
403 add w20,w20,w16 // future e+=X[i]
404 add w21,w21,w25 // e+=F(b,c,d)
409 add w24,w24,w28 // future e+=K
412 add w20,w20,w27 // e+=rot(a,5)
415 add w24,w24,w17 // future e+=X[i]
416 add w20,w20,w25 // e+=F(b,c,d)
421 add w23,w23,w28 // future e+=K
424 add w24,w24,w27 // e+=rot(a,5)
427 add w23,w23,w19 // future e+=X[i]
428 add w24,w24,w25 // e+=F(b,c,d)
433 add w22,w22,w28 // future e+=K
436 add w23,w23,w27 // e+=rot(a,5)
439 add w22,w22,w3 // future e+=X[i]
440 add w23,w23,w25 // e+=F(b,c,d)
445 add w21,w21,w28 // future e+=K
448 add w22,w22,w27 // e+=rot(a,5)
451 add w21,w21,w4 // future e+=X[i]
452 add w22,w22,w25 // e+=F(b,c,d)
457 add w20,w20,w28 // future e+=K
460 add w21,w21,w27 // e+=rot(a,5)
463 add w20,w20,w5 // future e+=X[i]
464 add w21,w21,w25 // e+=F(b,c,d)
469 add w24,w24,w28 // future e+=K
472 add w20,w20,w27 // e+=rot(a,5)
475 add w24,w24,w6 // future e+=X[i]
476 add w20,w20,w25 // e+=F(b,c,d)
481 add w23,w23,w28 // future e+=K
484 add w24,w24,w27 // e+=rot(a,5)
487 add w23,w23,w7 // future e+=X[i]
488 add w24,w24,w25 // e+=F(b,c,d)
493 add w22,w22,w28 // future e+=K
496 add w23,w23,w27 // e+=rot(a,5)
499 add w22,w22,w8 // future e+=X[i]
500 add w23,w23,w25 // e+=F(b,c,d)
505 add w21,w21,w28 // future e+=K
508 add w22,w22,w27 // e+=rot(a,5)
511 add w21,w21,w9 // future e+=X[i]
512 add w22,w22,w25 // e+=F(b,c,d)
517 add w20,w20,w28 // future e+=K
520 add w21,w21,w27 // e+=rot(a,5)
523 add w20,w20,w10 // future e+=X[i]
524 add w21,w21,w25 // e+=F(b,c,d)
527 movk w28,#0x8f1b,lsl#16
531 add w24,w24,w28 // future e+=K
534 add w20,w20,w27 // e+=rot(a,5)
537 add w24,w24,w11 // future e+=X[i]
538 add w20,w20,w25 // e+=F(b,c,d)
545 add w23,w23,w28 // future e+=K
547 add w24,w24,w27 // e+=rot(a,5)
551 add w23,w23,w12 // future e+=X[i]
552 add w24,w24,w25 // e+=F(b,c,d)
559 add w22,w22,w28 // future e+=K
561 add w23,w23,w27 // e+=rot(a,5)
565 add w22,w22,w13 // future e+=X[i]
566 add w23,w23,w25 // e+=F(b,c,d)
573 add w21,w21,w28 // future e+=K
575 add w22,w22,w27 // e+=rot(a,5)
579 add w21,w21,w14 // future e+=X[i]
580 add w22,w22,w25 // e+=F(b,c,d)
587 add w20,w20,w28 // future e+=K
589 add w21,w21,w27 // e+=rot(a,5)
593 add w20,w20,w15 // future e+=X[i]
594 add w21,w21,w25 // e+=F(b,c,d)
601 add w24,w24,w28 // future e+=K
603 add w20,w20,w27 // e+=rot(a,5)
607 add w24,w24,w16 // future e+=X[i]
608 add w20,w20,w25 // e+=F(b,c,d)
615 add w23,w23,w28 // future e+=K
617 add w24,w24,w27 // e+=rot(a,5)
621 add w23,w23,w17 // future e+=X[i]
622 add w24,w24,w25 // e+=F(b,c,d)
629 add w22,w22,w28 // future e+=K
631 add w23,w23,w27 // e+=rot(a,5)
635 add w22,w22,w19 // future e+=X[i]
636 add w23,w23,w25 // e+=F(b,c,d)
643 add w21,w21,w28 // future e+=K
645 add w22,w22,w27 // e+=rot(a,5)
649 add w21,w21,w3 // future e+=X[i]
650 add w22,w22,w25 // e+=F(b,c,d)
657 add w20,w20,w28 // future e+=K
659 add w21,w21,w27 // e+=rot(a,5)
663 add w20,w20,w4 // future e+=X[i]
664 add w21,w21,w25 // e+=F(b,c,d)
671 add w24,w24,w28 // future e+=K
673 add w20,w20,w27 // e+=rot(a,5)
677 add w24,w24,w5 // future e+=X[i]
678 add w20,w20,w25 // e+=F(b,c,d)
685 add w23,w23,w28 // future e+=K
687 add w24,w24,w27 // e+=rot(a,5)
691 add w23,w23,w6 // future e+=X[i]
692 add w24,w24,w25 // e+=F(b,c,d)
699 add w22,w22,w28 // future e+=K
701 add w23,w23,w27 // e+=rot(a,5)
705 add w22,w22,w7 // future e+=X[i]
706 add w23,w23,w25 // e+=F(b,c,d)
713 add w21,w21,w28 // future e+=K
715 add w22,w22,w27 // e+=rot(a,5)
719 add w21,w21,w8 // future e+=X[i]
720 add w22,w22,w25 // e+=F(b,c,d)
727 add w20,w20,w28 // future e+=K
729 add w21,w21,w27 // e+=rot(a,5)
733 add w20,w20,w9 // future e+=X[i]
734 add w21,w21,w25 // e+=F(b,c,d)
741 add w24,w24,w28 // future e+=K
743 add w20,w20,w27 // e+=rot(a,5)
747 add w24,w24,w10 // future e+=X[i]
748 add w20,w20,w25 // e+=F(b,c,d)
755 add w23,w23,w28 // future e+=K
757 add w24,w24,w27 // e+=rot(a,5)
761 add w23,w23,w11 // future e+=X[i]
762 add w24,w24,w25 // e+=F(b,c,d)
769 add w22,w22,w28 // future e+=K
771 add w23,w23,w27 // e+=rot(a,5)
775 add w22,w22,w12 // future e+=X[i]
776 add w23,w23,w25 // e+=F(b,c,d)
783 add w21,w21,w28 // future e+=K
785 add w22,w22,w27 // e+=rot(a,5)
789 add w21,w21,w13 // future e+=X[i]
790 add w22,w22,w25 // e+=F(b,c,d)
797 add w20,w20,w28 // future e+=K
799 add w21,w21,w27 // e+=rot(a,5)
803 add w20,w20,w14 // future e+=X[i]
804 add w21,w21,w25 // e+=F(b,c,d)
807 movk w28,#0xca62,lsl#16
813 add w24,w24,w28 // future e+=K
815 add w20,w20,w27 // e+=rot(a,5)
819 add w24,w24,w15 // future e+=X[i]
820 add w20,w20,w25 // e+=F(b,c,d)
825 add w23,w23,w28 // future e+=K
828 add w24,w24,w27 // e+=rot(a,5)
831 add w23,w23,w16 // future e+=X[i]
832 add w24,w24,w25 // e+=F(b,c,d)
837 add w22,w22,w28 // future e+=K
840 add w23,w23,w27 // e+=rot(a,5)
843 add w22,w22,w17 // future e+=X[i]
844 add w23,w23,w25 // e+=F(b,c,d)
849 add w21,w21,w28 // future e+=K
852 add w22,w22,w27 // e+=rot(a,5)
855 add w21,w21,w19 // future e+=X[i]
856 add w22,w22,w25 // e+=F(b,c,d)
861 add w20,w20,w28 // future e+=K
864 add w21,w21,w27 // e+=rot(a,5)
867 add w20,w20,w3 // future e+=X[i]
868 add w21,w21,w25 // e+=F(b,c,d)
873 add w24,w24,w28 // future e+=K
876 add w20,w20,w27 // e+=rot(a,5)
879 add w24,w24,w4 // future e+=X[i]
880 add w20,w20,w25 // e+=F(b,c,d)
885 add w23,w23,w28 // future e+=K
888 add w24,w24,w27 // e+=rot(a,5)
891 add w23,w23,w5 // future e+=X[i]
892 add w24,w24,w25 // e+=F(b,c,d)
897 add w22,w22,w28 // future e+=K
900 add w23,w23,w27 // e+=rot(a,5)
903 add w22,w22,w6 // future e+=X[i]
904 add w23,w23,w25 // e+=F(b,c,d)
909 add w21,w21,w28 // future e+=K
912 add w22,w22,w27 // e+=rot(a,5)
915 add w21,w21,w7 // future e+=X[i]
916 add w22,w22,w25 // e+=F(b,c,d)
921 add w20,w20,w28 // future e+=K
924 add w21,w21,w27 // e+=rot(a,5)
927 add w20,w20,w8 // future e+=X[i]
928 add w21,w21,w25 // e+=F(b,c,d)
933 add w24,w24,w28 // future e+=K
936 add w20,w20,w27 // e+=rot(a,5)
939 add w24,w24,w9 // future e+=X[i]
940 add w20,w20,w25 // e+=F(b,c,d)
945 add w23,w23,w28 // future e+=K
948 add w24,w24,w27 // e+=rot(a,5)
951 add w23,w23,w10 // future e+=X[i]
952 add w24,w24,w25 // e+=F(b,c,d)
957 add w22,w22,w28 // future e+=K
960 add w23,w23,w27 // e+=rot(a,5)
963 add w22,w22,w11 // future e+=X[i]
964 add w23,w23,w25 // e+=F(b,c,d)
969 add w21,w21,w28 // future e+=K
972 add w22,w22,w27 // e+=rot(a,5)
975 add w21,w21,w12 // future e+=X[i]
976 add w22,w22,w25 // e+=F(b,c,d)
981 add w20,w20,w28 // future e+=K
984 add w21,w21,w27 // e+=rot(a,5)
987 add w20,w20,w13 // future e+=X[i]
988 add w21,w21,w25 // e+=F(b,c,d)
993 add w24,w24,w28 // future e+=K
996 add w20,w20,w27 // e+=rot(a,5)
999 add w24,w24,w14 // future e+=X[i]
1000 add w20,w20,w25 // e+=F(b,c,d)
1005 add w23,w23,w28 // future e+=K
1008 add w24,w24,w27 // e+=rot(a,5)
1011 add w23,w23,w15 // future e+=X[i]
1012 add w24,w24,w25 // e+=F(b,c,d)
1017 add w22,w22,w28 // future e+=K
1020 add w23,w23,w27 // e+=rot(a,5)
1023 add w22,w22,w16 // future e+=X[i]
1024 add w23,w23,w25 // e+=F(b,c,d)
1029 add w21,w21,w28 // future e+=K
1032 add w22,w22,w27 // e+=rot(a,5)
1035 add w21,w21,w17 // future e+=X[i]
1036 add w22,w22,w25 // e+=F(b,c,d)
1041 add w20,w20,w28 // future e+=K
1043 add w21,w21,w27 // e+=rot(a,5)
1045 add w20,w20,w19 // future e+=X[i]
1046 add w21,w21,w25 // e+=F(b,c,d)
1051 add w20,w20,w27 // e+=rot(a,5)
1054 add w20,w20,w25 // e+=F(b,c,d)
1065 ldp x19,x20,[sp,#16]
1066 ldp x21,x22,[sp,#32]
1067 ldp x23,x24,[sp,#48]
1068 ldp x25,x26,[sp,#64]
1069 ldp x27,x28,[sp,#80]
1072 .size sha1_block_data_order,.-sha1_block_data_order
1073 .type sha1_block_armv8,%function
1077 stp x29,x30,[sp,#-16]!
1081 eor v1.16b,v1.16b,v1.16b
1082 ld1 {v0.4s},[x0],#16
1085 ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x4]
1088 ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
1093 add v20.4s,v16.4s,v4.4s
1095 orr v22.16b,v0.16b,v0.16b // offload
1097 add v21.4s,v16.4s,v5.4s
1099 .inst 0x5e280803 //sha1h v3.16b,v0.16b
1100 .inst 0x5e140020 //sha1c v0.16b,v1.16b,v20.4s // 0
1101 add v20.4s,v16.4s,v6.4s
1102 .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
1103 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 1
1104 .inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
1105 add v21.4s,v16.4s,v7.4s
1106 .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
1107 .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
1108 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 2
1109 .inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
1110 add v20.4s,v16.4s,v4.4s
1111 .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
1112 .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
1113 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 3
1114 .inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s
1115 add v21.4s,v17.4s,v5.4s
1116 .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
1117 .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
1118 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 4
1119 .inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s
1120 add v20.4s,v17.4s,v6.4s
1121 .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
1122 .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
1123 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 5
1124 .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
1125 add v21.4s,v17.4s,v7.4s
1126 .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
1127 .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
1128 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 6
1129 .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
1130 add v20.4s,v17.4s,v4.4s
1131 .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
1132 .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
1133 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 7
1134 .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
1135 add v21.4s,v17.4s,v5.4s
1136 .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
1137 .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
1138 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 8
1139 .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
1140 add v20.4s,v18.4s,v6.4s
1141 .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
1142 .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
1143 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 9
1144 .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
1145 add v21.4s,v18.4s,v7.4s
1146 .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
1147 .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
1148 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 10
1149 .inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
1150 add v20.4s,v18.4s,v4.4s
1151 .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
1152 .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
1153 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 11
1154 .inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
1155 add v21.4s,v18.4s,v5.4s
1156 .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
1157 .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
1158 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 12
1159 .inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
1160 add v20.4s,v18.4s,v6.4s
1161 .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
1162 .inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b
1163 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 13
1164 .inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s
1165 add v21.4s,v19.4s,v7.4s
1166 .inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b
1167 .inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b
1168 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 14
1169 .inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s
1170 add v20.4s,v19.4s,v4.4s
1171 .inst 0x5e281885 //sha1su1 v5.16b,v4.16b
1172 .inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b
1173 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 15
1174 .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
1175 add v21.4s,v19.4s,v5.4s
1176 .inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b
1177 .inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b
1178 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 16
1179 .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
1180 add v20.4s,v19.4s,v6.4s
1181 .inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b
1182 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 17
1183 .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
1184 add v21.4s,v19.4s,v7.4s
1186 .inst 0x5e280803 //sha1h v3.16b,v0.16b // 18
1187 .inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s
1189 .inst 0x5e280802 //sha1h v2.16b,v0.16b // 19
1190 .inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s
1192 add v1.4s,v1.4s,v2.4s
1193 add v0.4s,v0.4s,v22.4s
1197 st1 {v0.4s},[x0],#16
1202 .size sha1_block_armv8,.-sha1_block_armv8
1205 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19
1206 .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 //K_20_39
1207 .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc //K_40_59
1208 .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 //K_60_79
1210 .quad OPENSSL_armcap_P-.
1211 .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
1214 .comm OPENSSL_armcap_P,4,4