OLD | NEW |
1 | 1 |
2 @ ==================================================================== | 2 @ ==================================================================== |
3 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL | 3 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL |
4 @ project. The module is, however, dual licensed under OpenSSL and | 4 @ project. The module is, however, dual licensed under OpenSSL and |
5 @ CRYPTOGAMS licenses depending on where you obtain it. For further | 5 @ CRYPTOGAMS licenses depending on where you obtain it. For further |
6 @ details see http://www.openssl.org/~appro/cryptogams/. | 6 @ details see http://www.openssl.org/~appro/cryptogams/. |
7 @ | 7 @ |
8 @ Permission to use under GPL terms is granted. | 8 @ Permission to use under GPL terms is granted. |
9 @ ==================================================================== | 9 @ ==================================================================== |
10 | 10 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 # define LO 0 | 60 # define LO 0 |
61 # define HI 4 | 61 # define HI 4 |
62 # define WORD64(hi0,lo0,hi1,lo1) .word lo0,hi0, lo1,hi1 | 62 # define WORD64(hi0,lo0,hi1,lo1) .word lo0,hi0, lo1,hi1 |
63 #else | 63 #else |
64 # define HI 0 | 64 # define HI 0 |
65 # define LO 4 | 65 # define LO 4 |
66 # define WORD64(hi0,lo0,hi1,lo1) .word hi0,lo0, hi1,lo1 | 66 # define WORD64(hi0,lo0,hi1,lo1) .word hi0,lo0, hi1,lo1 |
67 #endif | 67 #endif |
68 | 68 |
69 .text | 69 .text |
70 #if __ARM_ARCH__<7 | 70 #if __ARM_ARCH__<7 || defined(__APPLE__) |
71 .code 32 | 71 .code 32 |
72 #else | 72 #else |
73 .syntax unified | 73 .syntax»unified |
74 # ifdef __thumb2__ | 74 # ifdef __thumb2__ |
75 # define adrl adr | 75 # define adrl adr |
76 .thumb | 76 .thumb |
77 # else | 77 # else |
78 .code 32 | 78 .code» 32 |
79 # endif | 79 # endif |
80 #endif | 80 #endif |
81 | 81 |
82 .type K512,%object | 82 .type K512,%object |
83 .align 5 | 83 .align 5 |
84 K512: | 84 K512: |
85 WORD64(0x428a2f98,0xd728ae22, 0x71374491,0x23ef65cd) | 85 » WORD64(0x428a2f98,0xd728ae22,» 0x71374491,0x23ef65cd) |
86 WORD64(0xb5c0fbcf,0xec4d3b2f, 0xe9b5dba5,0x8189dbbc) | 86 » WORD64(0xb5c0fbcf,0xec4d3b2f,» 0xe9b5dba5,0x8189dbbc) |
87 WORD64(0x3956c25b,0xf348b538, 0x59f111f1,0xb605d019) | 87 » WORD64(0x3956c25b,0xf348b538,» 0x59f111f1,0xb605d019) |
88 WORD64(0x923f82a4,0xaf194f9b, 0xab1c5ed5,0xda6d8118) | 88 » WORD64(0x923f82a4,0xaf194f9b,» 0xab1c5ed5,0xda6d8118) |
89 WORD64(0xd807aa98,0xa3030242, 0x12835b01,0x45706fbe) | 89 » WORD64(0xd807aa98,0xa3030242,» 0x12835b01,0x45706fbe) |
90 WORD64(0x243185be,0x4ee4b28c, 0x550c7dc3,0xd5ffb4e2) | 90 » WORD64(0x243185be,0x4ee4b28c,» 0x550c7dc3,0xd5ffb4e2) |
91 WORD64(0x72be5d74,0xf27b896f, 0x80deb1fe,0x3b1696b1) | 91 » WORD64(0x72be5d74,0xf27b896f,» 0x80deb1fe,0x3b1696b1) |
92 WORD64(0x9bdc06a7,0x25c71235, 0xc19bf174,0xcf692694) | 92 » WORD64(0x9bdc06a7,0x25c71235,» 0xc19bf174,0xcf692694) |
93 WORD64(0xe49b69c1,0x9ef14ad2, 0xefbe4786,0x384f25e3) | 93 » WORD64(0xe49b69c1,0x9ef14ad2,» 0xefbe4786,0x384f25e3) |
94 WORD64(0x0fc19dc6,0x8b8cd5b5, 0x240ca1cc,0x77ac9c65) | 94 » WORD64(0x0fc19dc6,0x8b8cd5b5,» 0x240ca1cc,0x77ac9c65) |
95 WORD64(0x2de92c6f,0x592b0275, 0x4a7484aa,0x6ea6e483) | 95 » WORD64(0x2de92c6f,0x592b0275,» 0x4a7484aa,0x6ea6e483) |
96 WORD64(0x5cb0a9dc,0xbd41fbd4, 0x76f988da,0x831153b5) | 96 » WORD64(0x5cb0a9dc,0xbd41fbd4,» 0x76f988da,0x831153b5) |
97 WORD64(0x983e5152,0xee66dfab, 0xa831c66d,0x2db43210) | 97 » WORD64(0x983e5152,0xee66dfab,» 0xa831c66d,0x2db43210) |
98 WORD64(0xb00327c8,0x98fb213f, 0xbf597fc7,0xbeef0ee4) | 98 » WORD64(0xb00327c8,0x98fb213f,» 0xbf597fc7,0xbeef0ee4) |
99 WORD64(0xc6e00bf3,0x3da88fc2, 0xd5a79147,0x930aa725) | 99 » WORD64(0xc6e00bf3,0x3da88fc2,» 0xd5a79147,0x930aa725) |
100 WORD64(0x06ca6351,0xe003826f, 0x14292967,0x0a0e6e70) | 100 » WORD64(0x06ca6351,0xe003826f,» 0x14292967,0x0a0e6e70) |
101 WORD64(0x27b70a85,0x46d22ffc, 0x2e1b2138,0x5c26c926) | 101 » WORD64(0x27b70a85,0x46d22ffc,» 0x2e1b2138,0x5c26c926) |
102 WORD64(0x4d2c6dfc,0x5ac42aed, 0x53380d13,0x9d95b3df) | 102 » WORD64(0x4d2c6dfc,0x5ac42aed,» 0x53380d13,0x9d95b3df) |
103 WORD64(0x650a7354,0x8baf63de, 0x766a0abb,0x3c77b2a8) | 103 » WORD64(0x650a7354,0x8baf63de,» 0x766a0abb,0x3c77b2a8) |
104 WORD64(0x81c2c92e,0x47edaee6, 0x92722c85,0x1482353b) | 104 » WORD64(0x81c2c92e,0x47edaee6,» 0x92722c85,0x1482353b) |
105 WORD64(0xa2bfe8a1,0x4cf10364, 0xa81a664b,0xbc423001) | 105 » WORD64(0xa2bfe8a1,0x4cf10364,» 0xa81a664b,0xbc423001) |
106 WORD64(0xc24b8b70,0xd0f89791, 0xc76c51a3,0x0654be30) | 106 » WORD64(0xc24b8b70,0xd0f89791,» 0xc76c51a3,0x0654be30) |
107 WORD64(0xd192e819,0xd6ef5218, 0xd6990624,0x5565a910) | 107 » WORD64(0xd192e819,0xd6ef5218,» 0xd6990624,0x5565a910) |
108 WORD64(0xf40e3585,0x5771202a, 0x106aa070,0x32bbd1b8) | 108 » WORD64(0xf40e3585,0x5771202a,» 0x106aa070,0x32bbd1b8) |
109 WORD64(0x19a4c116,0xb8d2d0c8, 0x1e376c08,0x5141ab53) | 109 » WORD64(0x19a4c116,0xb8d2d0c8,» 0x1e376c08,0x5141ab53) |
110 WORD64(0x2748774c,0xdf8eeb99, 0x34b0bcb5,0xe19b48a8) | 110 » WORD64(0x2748774c,0xdf8eeb99,» 0x34b0bcb5,0xe19b48a8) |
111 WORD64(0x391c0cb3,0xc5c95a63, 0x4ed8aa4a,0xe3418acb) | 111 » WORD64(0x391c0cb3,0xc5c95a63,» 0x4ed8aa4a,0xe3418acb) |
112 WORD64(0x5b9cca4f,0x7763e373, 0x682e6ff3,0xd6b2b8a3) | 112 » WORD64(0x5b9cca4f,0x7763e373,» 0x682e6ff3,0xd6b2b8a3) |
113 WORD64(0x748f82ee,0x5defb2fc, 0x78a5636f,0x43172f60) | 113 » WORD64(0x748f82ee,0x5defb2fc,» 0x78a5636f,0x43172f60) |
114 WORD64(0x84c87814,0xa1f0ab72, 0x8cc70208,0x1a6439ec) | 114 » WORD64(0x84c87814,0xa1f0ab72,» 0x8cc70208,0x1a6439ec) |
115 WORD64(0x90befffa,0x23631e28, 0xa4506ceb,0xde82bde9) | 115 » WORD64(0x90befffa,0x23631e28,» 0xa4506ceb,0xde82bde9) |
116 WORD64(0xbef9a3f7,0xb2c67915, 0xc67178f2,0xe372532b) | 116 » WORD64(0xbef9a3f7,0xb2c67915,» 0xc67178f2,0xe372532b) |
117 WORD64(0xca273ece,0xea26619c, 0xd186b8c7,0x21c0c207) | 117 » WORD64(0xca273ece,0xea26619c,» 0xd186b8c7,0x21c0c207) |
118 WORD64(0xeada7dd6,0xcde0eb1e, 0xf57d4f7f,0xee6ed178) | 118 » WORD64(0xeada7dd6,0xcde0eb1e,» 0xf57d4f7f,0xee6ed178) |
119 WORD64(0x06f067aa,0x72176fba, 0x0a637dc5,0xa2c898a6) | 119 » WORD64(0x06f067aa,0x72176fba,» 0x0a637dc5,0xa2c898a6) |
120 WORD64(0x113f9804,0xbef90dae, 0x1b710b35,0x131c471b) | 120 » WORD64(0x113f9804,0xbef90dae,» 0x1b710b35,0x131c471b) |
121 WORD64(0x28db77f5,0x23047d84, 0x32caab7b,0x40c72493) | 121 » WORD64(0x28db77f5,0x23047d84,» 0x32caab7b,0x40c72493) |
122 WORD64(0x3c9ebe0a,0x15c9bebc, 0x431d67c4,0x9c100d4c) | 122 » WORD64(0x3c9ebe0a,0x15c9bebc,» 0x431d67c4,0x9c100d4c) |
123 WORD64(0x4cc5d4be,0xcb3e42b6, 0x597f299c,0xfc657e2a) | 123 » WORD64(0x4cc5d4be,0xcb3e42b6,» 0x597f299c,0xfc657e2a) |
124 WORD64(0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817) | 124 » WORD64(0x5fcb6fab,0x3ad6faec,» 0x6c44198c,0x4a475817) |
125 .size K512,.-K512 | 125 .size K512,.-K512 |
126 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 126 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
127 .LOPENSSL_armcap: | 127 .LOPENSSL_armcap: |
128 .word» OPENSSL_armcap_P-sha512_block_data_order | 128 .word» OPENSSL_armcap_P-.Lsha512_block_data_order |
129 .skip 32-4 | 129 .skip 32-4 |
130 #else | 130 #else |
131 .skip 32 | 131 .skip 32 |
132 #endif | 132 #endif |
133 | 133 |
134 .global»sha512_block_data_order | 134 .globl» sha512_block_data_order |
135 .type sha512_block_data_order,%function | 135 .type sha512_block_data_order,%function |
136 sha512_block_data_order: | 136 sha512_block_data_order: |
| 137 .Lsha512_block_data_order: |
137 #if __ARM_ARCH__<7 | 138 #if __ARM_ARCH__<7 |
138 sub r3,pc,#8 @ sha512_block_data_order | 139 sub r3,pc,#8 @ sha512_block_data_order |
139 #else | 140 #else |
140 adr r3,sha512_block_data_order | 141 adr r3,sha512_block_data_order |
141 #endif | 142 #endif |
142 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 143 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
143 ldr r12,.LOPENSSL_armcap | 144 ldr r12,.LOPENSSL_armcap |
144 ldr r12,[r3,r12] @ OPENSSL_armcap_P | 145 ldr r12,[r3,r12] @ OPENSSL_armcap_P |
| 146 #ifdef __APPLE__ |
| 147 ldr r12,[r12] |
| 148 #endif |
145 tst r12,#1 | 149 tst r12,#1 |
146 bne .LNEON | 150 bne .LNEON |
147 #endif | 151 #endif |
148 add r2,r1,r2,lsl#7 @ len to point at the end of inp | 152 add r2,r1,r2,lsl#7 @ len to point at the end of inp |
149 » stmdb» sp!,{r4-r12,lr} | 153 » stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
150 sub r14,r3,#672 @ K512 | 154 sub r14,r3,#672 @ K512 |
151 sub sp,sp,#9*8 | 155 sub sp,sp,#9*8 |
152 | 156 |
153 ldr r7,[r0,#32+LO] | 157 ldr r7,[r0,#32+LO] |
154 ldr r8,[r0,#32+HI] | 158 ldr r8,[r0,#32+HI] |
155 ldr r9, [r0,#48+LO] | 159 ldr r9, [r0,#48+LO] |
156 ldr r10, [r0,#48+HI] | 160 ldr r10, [r0,#48+HI] |
157 ldr r11, [r0,#56+LO] | 161 ldr r11, [r0,#56+LO] |
158 ldr r12, [r0,#56+HI] | 162 ldr r12, [r0,#56+HI] |
159 .Loop: | 163 .Loop: |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 str r12, [r0,#56+HI] | 512 str r12, [r0,#56+HI] |
509 | 513 |
510 add sp,sp,#640 | 514 add sp,sp,#640 |
511 sub r14,r14,#640 | 515 sub r14,r14,#640 |
512 | 516 |
513 teq r1,r2 | 517 teq r1,r2 |
514 bne .Loop | 518 bne .Loop |
515 | 519 |
516 add sp,sp,#8*9 @ destroy frame | 520 add sp,sp,#8*9 @ destroy frame |
517 #if __ARM_ARCH__>=5 | 521 #if __ARM_ARCH__>=5 |
518 » ldmia» sp!,{r4-r12,pc} | 522 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} |
519 #else | 523 #else |
520 » ldmia» sp!,{r4-r12,lr} | 524 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
521 tst lr,#1 | 525 tst lr,#1 |
522 moveq pc,lr @ be binary compatible with V4, yet | 526 moveq pc,lr @ be binary compatible with V4, yet |
523 » .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-
) | 527 .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-) |
524 #endif | 528 #endif |
525 .size sha512_block_data_order,.-sha512_block_data_order | 529 .size sha512_block_data_order,.-sha512_block_data_order |
526 #if __ARM_MAX_ARCH__>=7 | 530 #if __ARM_MAX_ARCH__>=7 |
527 .arch armv7-a | 531 .arch armv7-a |
528 .fpu neon | 532 .fpu neon |
529 | 533 |
530 .global»sha512_block_data_order_neon | 534 .globl» sha512_block_data_order_neon |
531 .type sha512_block_data_order_neon,%function | 535 .type sha512_block_data_order_neon,%function |
532 .align 4 | 536 .align 4 |
533 sha512_block_data_order_neon: | 537 sha512_block_data_order_neon: |
534 .LNEON: | 538 .LNEON: |
535 » dmb» » » » @ errata #451034 on early Cortex A8 | 539 » dmb» @ errata #451034 on early Cortex A8 |
536 add r2,r1,r2,lsl#7 @ len to point at the end of inp | 540 add r2,r1,r2,lsl#7 @ len to point at the end of inp |
| 541 adr r3,K512 |
537 VFP_ABI_PUSH | 542 VFP_ABI_PUSH |
538 » adrl» r3,K512 | 543 » vldmia» r0,{d16,d17,d18,d19,d20,d21,d22,d23}» » @ load context |
539 » vldmia» r0,{d16-d23}» » @ load context | |
540 .Loop_neon: | 544 .Loop_neon: |
541 vshr.u64 d24,d20,#14 @ 0 | 545 vshr.u64 d24,d20,#14 @ 0 |
542 #if 0<16 | 546 #if 0<16 |
543 » vld1.64»» {d0},[r1]!» @ handles unaligned | 547 » vld1.64»{d0},[r1]!» @ handles unaligned |
544 #endif | 548 #endif |
545 vshr.u64 d25,d20,#18 | 549 vshr.u64 d25,d20,#18 |
546 #if 0>0 | 550 #if 0>0 |
547 » vadd.i64» d16,d30»» » @ h+=Maj from the past | 551 » vadd.i64» d16,d30»» » @ h+=Maj from the past |
548 #endif | 552 #endif |
549 vshr.u64 d26,d20,#41 | 553 vshr.u64 d26,d20,#41 |
550 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 554 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
551 » vsli.64»» d24,d20,#50 | 555 » vsli.64»d24,d20,#50 |
552 » vsli.64»» d25,d20,#46 | 556 » vsli.64»d25,d20,#46 |
553 » vmov» » d29,d20 | 557 » vmov» d29,d20 |
554 » vsli.64»» d26,d20,#23 | 558 » vsli.64»d26,d20,#23 |
555 #if 0<16 && defined(__ARMEL__) | 559 #if 0<16 && defined(__ARMEL__) |
556 vrev64.8 d0,d0 | 560 vrev64.8 d0,d0 |
557 #endif | 561 #endif |
558 » veor» » d25,d24 | 562 » veor» d25,d24 |
559 » vbsl» » d29,d21,d22» » @ Ch(e,f,g) | 563 » vbsl» d29,d21,d22» » @ Ch(e,f,g) |
560 vshr.u64 d24,d16,#28 | 564 vshr.u64 d24,d16,#28 |
561 » veor» » d26,d25»» » @ Sigma1(e) | 565 » veor» d26,d25»» » @ Sigma1(e) |
562 vadd.i64 d27,d29,d23 | 566 vadd.i64 d27,d29,d23 |
563 vshr.u64 d25,d16,#34 | 567 vshr.u64 d25,d16,#34 |
564 » vsli.64»» d24,d16,#36 | 568 » vsli.64»d24,d16,#36 |
565 vadd.i64 d27,d26 | 569 vadd.i64 d27,d26 |
566 vshr.u64 d26,d16,#39 | 570 vshr.u64 d26,d16,#39 |
567 vadd.i64 d28,d0 | 571 vadd.i64 d28,d0 |
568 » vsli.64»» d25,d16,#30 | 572 » vsli.64»d25,d16,#30 |
569 » veor» » d30,d16,d17 | 573 » veor» d30,d16,d17 |
570 » vsli.64»» d26,d16,#25 | 574 » vsli.64»d26,d16,#25 |
571 » veor» » d23,d24,d25 | 575 » veor» d23,d24,d25 |
572 » vadd.i64» d27,d28 | 576 » vadd.i64» d27,d28 |
573 » vbsl» » d30,d18,d17» » @ Maj(a,b,c) | 577 » vbsl» d30,d18,d17» » @ Maj(a,b,c) |
574 » veor» » d23,d26»» » @ Sigma0(a) | 578 » veor» d23,d26»» » @ Sigma0(a) |
575 vadd.i64 d19,d27 | 579 vadd.i64 d19,d27 |
576 vadd.i64 d30,d27 | 580 vadd.i64 d30,d27 |
577 @ vadd.i64 d23,d30 | 581 @ vadd.i64 d23,d30 |
578 vshr.u64 d24,d19,#14 @ 1 | 582 vshr.u64 d24,d19,#14 @ 1 |
579 #if 1<16 | 583 #if 1<16 |
580 » vld1.64»» {d1},[r1]!» @ handles unaligned | 584 » vld1.64»{d1},[r1]!» @ handles unaligned |
581 #endif | 585 #endif |
582 vshr.u64 d25,d19,#18 | 586 vshr.u64 d25,d19,#18 |
583 #if 1>0 | 587 #if 1>0 |
584 » vadd.i64» d23,d30»» » @ h+=Maj from the past | 588 » vadd.i64» d23,d30»» » @ h+=Maj from the past |
585 #endif | 589 #endif |
586 vshr.u64 d26,d19,#41 | 590 vshr.u64 d26,d19,#41 |
587 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 591 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
588 » vsli.64»» d24,d19,#50 | 592 » vsli.64»d24,d19,#50 |
589 » vsli.64»» d25,d19,#46 | 593 » vsli.64»d25,d19,#46 |
590 » vmov» » d29,d19 | 594 » vmov» d29,d19 |
591 » vsli.64»» d26,d19,#23 | 595 » vsli.64»d26,d19,#23 |
592 #if 1<16 && defined(__ARMEL__) | 596 #if 1<16 && defined(__ARMEL__) |
593 vrev64.8 d1,d1 | 597 vrev64.8 d1,d1 |
594 #endif | 598 #endif |
595 » veor» » d25,d24 | 599 » veor» d25,d24 |
596 » vbsl» » d29,d20,d21» » @ Ch(e,f,g) | 600 » vbsl» d29,d20,d21» » @ Ch(e,f,g) |
597 vshr.u64 d24,d23,#28 | 601 vshr.u64 d24,d23,#28 |
598 » veor» » d26,d25»» » @ Sigma1(e) | 602 » veor» d26,d25»» » @ Sigma1(e) |
599 vadd.i64 d27,d29,d22 | 603 vadd.i64 d27,d29,d22 |
600 vshr.u64 d25,d23,#34 | 604 vshr.u64 d25,d23,#34 |
601 » vsli.64»» d24,d23,#36 | 605 » vsli.64»d24,d23,#36 |
602 vadd.i64 d27,d26 | 606 vadd.i64 d27,d26 |
603 vshr.u64 d26,d23,#39 | 607 vshr.u64 d26,d23,#39 |
604 vadd.i64 d28,d1 | 608 vadd.i64 d28,d1 |
605 » vsli.64»» d25,d23,#30 | 609 » vsli.64»d25,d23,#30 |
606 » veor» » d30,d23,d16 | 610 » veor» d30,d23,d16 |
607 » vsli.64»» d26,d23,#25 | 611 » vsli.64»d26,d23,#25 |
608 » veor» » d22,d24,d25 | 612 » veor» d22,d24,d25 |
609 » vadd.i64» d27,d28 | 613 » vadd.i64» d27,d28 |
610 » vbsl» » d30,d17,d16» » @ Maj(a,b,c) | 614 » vbsl» d30,d17,d16» » @ Maj(a,b,c) |
611 » veor» » d22,d26»» » @ Sigma0(a) | 615 » veor» d22,d26»» » @ Sigma0(a) |
612 vadd.i64 d18,d27 | 616 vadd.i64 d18,d27 |
613 vadd.i64 d30,d27 | 617 vadd.i64 d30,d27 |
614 @ vadd.i64 d22,d30 | 618 @ vadd.i64 d22,d30 |
615 vshr.u64 d24,d18,#14 @ 2 | 619 vshr.u64 d24,d18,#14 @ 2 |
616 #if 2<16 | 620 #if 2<16 |
617 » vld1.64»» {d2},[r1]!» @ handles unaligned | 621 » vld1.64»{d2},[r1]!» @ handles unaligned |
618 #endif | 622 #endif |
619 vshr.u64 d25,d18,#18 | 623 vshr.u64 d25,d18,#18 |
620 #if 2>0 | 624 #if 2>0 |
621 » vadd.i64» d22,d30»» » @ h+=Maj from the past | 625 » vadd.i64» d22,d30»» » @ h+=Maj from the past |
622 #endif | 626 #endif |
623 vshr.u64 d26,d18,#41 | 627 vshr.u64 d26,d18,#41 |
624 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 628 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
625 » vsli.64»» d24,d18,#50 | 629 » vsli.64»d24,d18,#50 |
626 » vsli.64»» d25,d18,#46 | 630 » vsli.64»d25,d18,#46 |
627 » vmov» » d29,d18 | 631 » vmov» d29,d18 |
628 » vsli.64»» d26,d18,#23 | 632 » vsli.64»d26,d18,#23 |
629 #if 2<16 && defined(__ARMEL__) | 633 #if 2<16 && defined(__ARMEL__) |
630 vrev64.8 d2,d2 | 634 vrev64.8 d2,d2 |
631 #endif | 635 #endif |
632 » veor» » d25,d24 | 636 » veor» d25,d24 |
633 » vbsl» » d29,d19,d20» » @ Ch(e,f,g) | 637 » vbsl» d29,d19,d20» » @ Ch(e,f,g) |
634 vshr.u64 d24,d22,#28 | 638 vshr.u64 d24,d22,#28 |
635 » veor» » d26,d25»» » @ Sigma1(e) | 639 » veor» d26,d25»» » @ Sigma1(e) |
636 vadd.i64 d27,d29,d21 | 640 vadd.i64 d27,d29,d21 |
637 vshr.u64 d25,d22,#34 | 641 vshr.u64 d25,d22,#34 |
638 » vsli.64»» d24,d22,#36 | 642 » vsli.64»d24,d22,#36 |
639 vadd.i64 d27,d26 | 643 vadd.i64 d27,d26 |
640 vshr.u64 d26,d22,#39 | 644 vshr.u64 d26,d22,#39 |
641 vadd.i64 d28,d2 | 645 vadd.i64 d28,d2 |
642 » vsli.64»» d25,d22,#30 | 646 » vsli.64»d25,d22,#30 |
643 » veor» » d30,d22,d23 | 647 » veor» d30,d22,d23 |
644 » vsli.64»» d26,d22,#25 | 648 » vsli.64»d26,d22,#25 |
645 » veor» » d21,d24,d25 | 649 » veor» d21,d24,d25 |
646 » vadd.i64» d27,d28 | 650 » vadd.i64» d27,d28 |
647 » vbsl» » d30,d16,d23» » @ Maj(a,b,c) | 651 » vbsl» d30,d16,d23» » @ Maj(a,b,c) |
648 » veor» » d21,d26»» » @ Sigma0(a) | 652 » veor» d21,d26»» » @ Sigma0(a) |
649 vadd.i64 d17,d27 | 653 vadd.i64 d17,d27 |
650 vadd.i64 d30,d27 | 654 vadd.i64 d30,d27 |
651 @ vadd.i64 d21,d30 | 655 @ vadd.i64 d21,d30 |
652 vshr.u64 d24,d17,#14 @ 3 | 656 vshr.u64 d24,d17,#14 @ 3 |
653 #if 3<16 | 657 #if 3<16 |
654 » vld1.64»» {d3},[r1]!» @ handles unaligned | 658 » vld1.64»{d3},[r1]!» @ handles unaligned |
655 #endif | 659 #endif |
656 vshr.u64 d25,d17,#18 | 660 vshr.u64 d25,d17,#18 |
657 #if 3>0 | 661 #if 3>0 |
658 » vadd.i64» d21,d30»» » @ h+=Maj from the past | 662 » vadd.i64» d21,d30»» » @ h+=Maj from the past |
659 #endif | 663 #endif |
660 vshr.u64 d26,d17,#41 | 664 vshr.u64 d26,d17,#41 |
661 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 665 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
662 » vsli.64»» d24,d17,#50 | 666 » vsli.64»d24,d17,#50 |
663 » vsli.64»» d25,d17,#46 | 667 » vsli.64»d25,d17,#46 |
664 » vmov» » d29,d17 | 668 » vmov» d29,d17 |
665 » vsli.64»» d26,d17,#23 | 669 » vsli.64»d26,d17,#23 |
666 #if 3<16 && defined(__ARMEL__) | 670 #if 3<16 && defined(__ARMEL__) |
667 vrev64.8 d3,d3 | 671 vrev64.8 d3,d3 |
668 #endif | 672 #endif |
669 » veor» » d25,d24 | 673 » veor» d25,d24 |
670 » vbsl» » d29,d18,d19» » @ Ch(e,f,g) | 674 » vbsl» d29,d18,d19» » @ Ch(e,f,g) |
671 vshr.u64 d24,d21,#28 | 675 vshr.u64 d24,d21,#28 |
672 » veor» » d26,d25»» » @ Sigma1(e) | 676 » veor» d26,d25»» » @ Sigma1(e) |
673 vadd.i64 d27,d29,d20 | 677 vadd.i64 d27,d29,d20 |
674 vshr.u64 d25,d21,#34 | 678 vshr.u64 d25,d21,#34 |
675 » vsli.64»» d24,d21,#36 | 679 » vsli.64»d24,d21,#36 |
676 vadd.i64 d27,d26 | 680 vadd.i64 d27,d26 |
677 vshr.u64 d26,d21,#39 | 681 vshr.u64 d26,d21,#39 |
678 vadd.i64 d28,d3 | 682 vadd.i64 d28,d3 |
679 » vsli.64»» d25,d21,#30 | 683 » vsli.64»d25,d21,#30 |
680 » veor» » d30,d21,d22 | 684 » veor» d30,d21,d22 |
681 » vsli.64»» d26,d21,#25 | 685 » vsli.64»d26,d21,#25 |
682 » veor» » d20,d24,d25 | 686 » veor» d20,d24,d25 |
683 » vadd.i64» d27,d28 | 687 » vadd.i64» d27,d28 |
684 » vbsl» » d30,d23,d22» » @ Maj(a,b,c) | 688 » vbsl» d30,d23,d22» » @ Maj(a,b,c) |
685 » veor» » d20,d26»» » @ Sigma0(a) | 689 » veor» d20,d26»» » @ Sigma0(a) |
686 vadd.i64 d16,d27 | 690 vadd.i64 d16,d27 |
687 vadd.i64 d30,d27 | 691 vadd.i64 d30,d27 |
688 @ vadd.i64 d20,d30 | 692 @ vadd.i64 d20,d30 |
689 vshr.u64 d24,d16,#14 @ 4 | 693 vshr.u64 d24,d16,#14 @ 4 |
690 #if 4<16 | 694 #if 4<16 |
691 » vld1.64»» {d4},[r1]!» @ handles unaligned | 695 » vld1.64»{d4},[r1]!» @ handles unaligned |
692 #endif | 696 #endif |
693 vshr.u64 d25,d16,#18 | 697 vshr.u64 d25,d16,#18 |
694 #if 4>0 | 698 #if 4>0 |
695 » vadd.i64» d20,d30»» » @ h+=Maj from the past | 699 » vadd.i64» d20,d30»» » @ h+=Maj from the past |
696 #endif | 700 #endif |
697 vshr.u64 d26,d16,#41 | 701 vshr.u64 d26,d16,#41 |
698 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 702 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
699 » vsli.64»» d24,d16,#50 | 703 » vsli.64»d24,d16,#50 |
700 » vsli.64»» d25,d16,#46 | 704 » vsli.64»d25,d16,#46 |
701 » vmov» » d29,d16 | 705 » vmov» d29,d16 |
702 » vsli.64»» d26,d16,#23 | 706 » vsli.64»d26,d16,#23 |
703 #if 4<16 && defined(__ARMEL__) | 707 #if 4<16 && defined(__ARMEL__) |
704 vrev64.8 d4,d4 | 708 vrev64.8 d4,d4 |
705 #endif | 709 #endif |
706 » veor» » d25,d24 | 710 » veor» d25,d24 |
707 » vbsl» » d29,d17,d18» » @ Ch(e,f,g) | 711 » vbsl» d29,d17,d18» » @ Ch(e,f,g) |
708 vshr.u64 d24,d20,#28 | 712 vshr.u64 d24,d20,#28 |
709 » veor» » d26,d25»» » @ Sigma1(e) | 713 » veor» d26,d25»» » @ Sigma1(e) |
710 vadd.i64 d27,d29,d19 | 714 vadd.i64 d27,d29,d19 |
711 vshr.u64 d25,d20,#34 | 715 vshr.u64 d25,d20,#34 |
712 » vsli.64»» d24,d20,#36 | 716 » vsli.64»d24,d20,#36 |
713 vadd.i64 d27,d26 | 717 vadd.i64 d27,d26 |
714 vshr.u64 d26,d20,#39 | 718 vshr.u64 d26,d20,#39 |
715 vadd.i64 d28,d4 | 719 vadd.i64 d28,d4 |
716 » vsli.64»» d25,d20,#30 | 720 » vsli.64»d25,d20,#30 |
717 » veor» » d30,d20,d21 | 721 » veor» d30,d20,d21 |
718 » vsli.64»» d26,d20,#25 | 722 » vsli.64»d26,d20,#25 |
719 » veor» » d19,d24,d25 | 723 » veor» d19,d24,d25 |
720 » vadd.i64» d27,d28 | 724 » vadd.i64» d27,d28 |
721 » vbsl» » d30,d22,d21» » @ Maj(a,b,c) | 725 » vbsl» d30,d22,d21» » @ Maj(a,b,c) |
722 » veor» » d19,d26»» » @ Sigma0(a) | 726 » veor» d19,d26»» » @ Sigma0(a) |
723 vadd.i64 d23,d27 | 727 vadd.i64 d23,d27 |
724 vadd.i64 d30,d27 | 728 vadd.i64 d30,d27 |
725 @ vadd.i64 d19,d30 | 729 @ vadd.i64 d19,d30 |
726 vshr.u64 d24,d23,#14 @ 5 | 730 vshr.u64 d24,d23,#14 @ 5 |
727 #if 5<16 | 731 #if 5<16 |
728 » vld1.64»» {d5},[r1]!» @ handles unaligned | 732 » vld1.64»{d5},[r1]!» @ handles unaligned |
729 #endif | 733 #endif |
730 vshr.u64 d25,d23,#18 | 734 vshr.u64 d25,d23,#18 |
731 #if 5>0 | 735 #if 5>0 |
732 » vadd.i64» d19,d30»» » @ h+=Maj from the past | 736 » vadd.i64» d19,d30»» » @ h+=Maj from the past |
733 #endif | 737 #endif |
734 vshr.u64 d26,d23,#41 | 738 vshr.u64 d26,d23,#41 |
735 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 739 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
736 » vsli.64»» d24,d23,#50 | 740 » vsli.64»d24,d23,#50 |
737 » vsli.64»» d25,d23,#46 | 741 » vsli.64»d25,d23,#46 |
738 » vmov» » d29,d23 | 742 » vmov» d29,d23 |
739 » vsli.64»» d26,d23,#23 | 743 » vsli.64»d26,d23,#23 |
740 #if 5<16 && defined(__ARMEL__) | 744 #if 5<16 && defined(__ARMEL__) |
741 vrev64.8 d5,d5 | 745 vrev64.8 d5,d5 |
742 #endif | 746 #endif |
743 » veor» » d25,d24 | 747 » veor» d25,d24 |
744 » vbsl» » d29,d16,d17» » @ Ch(e,f,g) | 748 » vbsl» d29,d16,d17» » @ Ch(e,f,g) |
745 vshr.u64 d24,d19,#28 | 749 vshr.u64 d24,d19,#28 |
746 » veor» » d26,d25»» » @ Sigma1(e) | 750 » veor» d26,d25»» » @ Sigma1(e) |
747 vadd.i64 d27,d29,d18 | 751 vadd.i64 d27,d29,d18 |
748 vshr.u64 d25,d19,#34 | 752 vshr.u64 d25,d19,#34 |
749 » vsli.64»» d24,d19,#36 | 753 » vsli.64»d24,d19,#36 |
750 vadd.i64 d27,d26 | 754 vadd.i64 d27,d26 |
751 vshr.u64 d26,d19,#39 | 755 vshr.u64 d26,d19,#39 |
752 vadd.i64 d28,d5 | 756 vadd.i64 d28,d5 |
753 » vsli.64»» d25,d19,#30 | 757 » vsli.64»d25,d19,#30 |
754 » veor» » d30,d19,d20 | 758 » veor» d30,d19,d20 |
755 » vsli.64»» d26,d19,#25 | 759 » vsli.64»d26,d19,#25 |
756 » veor» » d18,d24,d25 | 760 » veor» d18,d24,d25 |
757 » vadd.i64» d27,d28 | 761 » vadd.i64» d27,d28 |
758 » vbsl» » d30,d21,d20» » @ Maj(a,b,c) | 762 » vbsl» d30,d21,d20» » @ Maj(a,b,c) |
759 » veor» » d18,d26»» » @ Sigma0(a) | 763 » veor» d18,d26»» » @ Sigma0(a) |
760 vadd.i64 d22,d27 | 764 vadd.i64 d22,d27 |
761 vadd.i64 d30,d27 | 765 vadd.i64 d30,d27 |
762 @ vadd.i64 d18,d30 | 766 @ vadd.i64 d18,d30 |
763 vshr.u64 d24,d22,#14 @ 6 | 767 vshr.u64 d24,d22,#14 @ 6 |
764 #if 6<16 | 768 #if 6<16 |
765 » vld1.64»» {d6},[r1]!» @ handles unaligned | 769 » vld1.64»{d6},[r1]!» @ handles unaligned |
766 #endif | 770 #endif |
767 vshr.u64 d25,d22,#18 | 771 vshr.u64 d25,d22,#18 |
768 #if 6>0 | 772 #if 6>0 |
769 » vadd.i64» d18,d30»» » @ h+=Maj from the past | 773 » vadd.i64» d18,d30»» » @ h+=Maj from the past |
770 #endif | 774 #endif |
771 vshr.u64 d26,d22,#41 | 775 vshr.u64 d26,d22,#41 |
772 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 776 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
773 » vsli.64»» d24,d22,#50 | 777 » vsli.64»d24,d22,#50 |
774 » vsli.64»» d25,d22,#46 | 778 » vsli.64»d25,d22,#46 |
775 » vmov» » d29,d22 | 779 » vmov» d29,d22 |
776 » vsli.64»» d26,d22,#23 | 780 » vsli.64»d26,d22,#23 |
777 #if 6<16 && defined(__ARMEL__) | 781 #if 6<16 && defined(__ARMEL__) |
778 vrev64.8 d6,d6 | 782 vrev64.8 d6,d6 |
779 #endif | 783 #endif |
780 » veor» » d25,d24 | 784 » veor» d25,d24 |
781 » vbsl» » d29,d23,d16» » @ Ch(e,f,g) | 785 » vbsl» d29,d23,d16» » @ Ch(e,f,g) |
782 vshr.u64 d24,d18,#28 | 786 vshr.u64 d24,d18,#28 |
783 » veor» » d26,d25»» » @ Sigma1(e) | 787 » veor» d26,d25»» » @ Sigma1(e) |
784 vadd.i64 d27,d29,d17 | 788 vadd.i64 d27,d29,d17 |
785 vshr.u64 d25,d18,#34 | 789 vshr.u64 d25,d18,#34 |
786 » vsli.64»» d24,d18,#36 | 790 » vsli.64»d24,d18,#36 |
787 vadd.i64 d27,d26 | 791 vadd.i64 d27,d26 |
788 vshr.u64 d26,d18,#39 | 792 vshr.u64 d26,d18,#39 |
789 vadd.i64 d28,d6 | 793 vadd.i64 d28,d6 |
790 » vsli.64»» d25,d18,#30 | 794 » vsli.64»d25,d18,#30 |
791 » veor» » d30,d18,d19 | 795 » veor» d30,d18,d19 |
792 » vsli.64»» d26,d18,#25 | 796 » vsli.64»d26,d18,#25 |
793 » veor» » d17,d24,d25 | 797 » veor» d17,d24,d25 |
794 » vadd.i64» d27,d28 | 798 » vadd.i64» d27,d28 |
795 » vbsl» » d30,d20,d19» » @ Maj(a,b,c) | 799 » vbsl» d30,d20,d19» » @ Maj(a,b,c) |
796 » veor» » d17,d26»» » @ Sigma0(a) | 800 » veor» d17,d26»» » @ Sigma0(a) |
797 vadd.i64 d21,d27 | 801 vadd.i64 d21,d27 |
798 vadd.i64 d30,d27 | 802 vadd.i64 d30,d27 |
799 @ vadd.i64 d17,d30 | 803 @ vadd.i64 d17,d30 |
800 vshr.u64 d24,d21,#14 @ 7 | 804 vshr.u64 d24,d21,#14 @ 7 |
801 #if 7<16 | 805 #if 7<16 |
802 » vld1.64»» {d7},[r1]!» @ handles unaligned | 806 » vld1.64»{d7},[r1]!» @ handles unaligned |
803 #endif | 807 #endif |
804 vshr.u64 d25,d21,#18 | 808 vshr.u64 d25,d21,#18 |
805 #if 7>0 | 809 #if 7>0 |
806 » vadd.i64» d17,d30»» » @ h+=Maj from the past | 810 » vadd.i64» d17,d30»» » @ h+=Maj from the past |
807 #endif | 811 #endif |
808 vshr.u64 d26,d21,#41 | 812 vshr.u64 d26,d21,#41 |
809 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 813 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
810 » vsli.64»» d24,d21,#50 | 814 » vsli.64»d24,d21,#50 |
811 » vsli.64»» d25,d21,#46 | 815 » vsli.64»d25,d21,#46 |
812 » vmov» » d29,d21 | 816 » vmov» d29,d21 |
813 » vsli.64»» d26,d21,#23 | 817 » vsli.64»d26,d21,#23 |
814 #if 7<16 && defined(__ARMEL__) | 818 #if 7<16 && defined(__ARMEL__) |
815 vrev64.8 d7,d7 | 819 vrev64.8 d7,d7 |
816 #endif | 820 #endif |
817 » veor» » d25,d24 | 821 » veor» d25,d24 |
818 » vbsl» » d29,d22,d23» » @ Ch(e,f,g) | 822 » vbsl» d29,d22,d23» » @ Ch(e,f,g) |
819 vshr.u64 d24,d17,#28 | 823 vshr.u64 d24,d17,#28 |
820 » veor» » d26,d25»» » @ Sigma1(e) | 824 » veor» d26,d25»» » @ Sigma1(e) |
821 vadd.i64 d27,d29,d16 | 825 vadd.i64 d27,d29,d16 |
822 vshr.u64 d25,d17,#34 | 826 vshr.u64 d25,d17,#34 |
823 » vsli.64»» d24,d17,#36 | 827 » vsli.64»d24,d17,#36 |
824 vadd.i64 d27,d26 | 828 vadd.i64 d27,d26 |
825 vshr.u64 d26,d17,#39 | 829 vshr.u64 d26,d17,#39 |
826 vadd.i64 d28,d7 | 830 vadd.i64 d28,d7 |
827 » vsli.64»» d25,d17,#30 | 831 » vsli.64»d25,d17,#30 |
828 » veor» » d30,d17,d18 | 832 » veor» d30,d17,d18 |
829 » vsli.64»» d26,d17,#25 | 833 » vsli.64»d26,d17,#25 |
830 » veor» » d16,d24,d25 | 834 » veor» d16,d24,d25 |
831 » vadd.i64» d27,d28 | 835 » vadd.i64» d27,d28 |
832 » vbsl» » d30,d19,d18» » @ Maj(a,b,c) | 836 » vbsl» d30,d19,d18» » @ Maj(a,b,c) |
833 » veor» » d16,d26»» » @ Sigma0(a) | 837 » veor» d16,d26»» » @ Sigma0(a) |
834 vadd.i64 d20,d27 | 838 vadd.i64 d20,d27 |
835 vadd.i64 d30,d27 | 839 vadd.i64 d30,d27 |
836 @ vadd.i64 d16,d30 | 840 @ vadd.i64 d16,d30 |
837 vshr.u64 d24,d20,#14 @ 8 | 841 vshr.u64 d24,d20,#14 @ 8 |
838 #if 8<16 | 842 #if 8<16 |
839 » vld1.64»» {d8},[r1]!» @ handles unaligned | 843 » vld1.64»{d8},[r1]!» @ handles unaligned |
840 #endif | 844 #endif |
841 vshr.u64 d25,d20,#18 | 845 vshr.u64 d25,d20,#18 |
842 #if 8>0 | 846 #if 8>0 |
843 » vadd.i64» d16,d30»» » @ h+=Maj from the past | 847 » vadd.i64» d16,d30»» » @ h+=Maj from the past |
844 #endif | 848 #endif |
845 vshr.u64 d26,d20,#41 | 849 vshr.u64 d26,d20,#41 |
846 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 850 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
847 » vsli.64»» d24,d20,#50 | 851 » vsli.64»d24,d20,#50 |
848 » vsli.64»» d25,d20,#46 | 852 » vsli.64»d25,d20,#46 |
849 » vmov» » d29,d20 | 853 » vmov» d29,d20 |
850 » vsli.64»» d26,d20,#23 | 854 » vsli.64»d26,d20,#23 |
851 #if 8<16 && defined(__ARMEL__) | 855 #if 8<16 && defined(__ARMEL__) |
852 vrev64.8 d8,d8 | 856 vrev64.8 d8,d8 |
853 #endif | 857 #endif |
854 » veor» » d25,d24 | 858 » veor» d25,d24 |
855 » vbsl» » d29,d21,d22» » @ Ch(e,f,g) | 859 » vbsl» d29,d21,d22» » @ Ch(e,f,g) |
856 vshr.u64 d24,d16,#28 | 860 vshr.u64 d24,d16,#28 |
857 » veor» » d26,d25»» » @ Sigma1(e) | 861 » veor» d26,d25»» » @ Sigma1(e) |
858 vadd.i64 d27,d29,d23 | 862 vadd.i64 d27,d29,d23 |
859 vshr.u64 d25,d16,#34 | 863 vshr.u64 d25,d16,#34 |
860 » vsli.64»» d24,d16,#36 | 864 » vsli.64»d24,d16,#36 |
861 vadd.i64 d27,d26 | 865 vadd.i64 d27,d26 |
862 vshr.u64 d26,d16,#39 | 866 vshr.u64 d26,d16,#39 |
863 vadd.i64 d28,d8 | 867 vadd.i64 d28,d8 |
864 » vsli.64»» d25,d16,#30 | 868 » vsli.64»d25,d16,#30 |
865 » veor» » d30,d16,d17 | 869 » veor» d30,d16,d17 |
866 » vsli.64»» d26,d16,#25 | 870 » vsli.64»d26,d16,#25 |
867 » veor» » d23,d24,d25 | 871 » veor» d23,d24,d25 |
868 » vadd.i64» d27,d28 | 872 » vadd.i64» d27,d28 |
869 » vbsl» » d30,d18,d17» » @ Maj(a,b,c) | 873 » vbsl» d30,d18,d17» » @ Maj(a,b,c) |
870 » veor» » d23,d26»» » @ Sigma0(a) | 874 » veor» d23,d26»» » @ Sigma0(a) |
871 vadd.i64 d19,d27 | 875 vadd.i64 d19,d27 |
872 vadd.i64 d30,d27 | 876 vadd.i64 d30,d27 |
873 @ vadd.i64 d23,d30 | 877 @ vadd.i64 d23,d30 |
874 vshr.u64 d24,d19,#14 @ 9 | 878 vshr.u64 d24,d19,#14 @ 9 |
875 #if 9<16 | 879 #if 9<16 |
876 » vld1.64»» {d9},[r1]!» @ handles unaligned | 880 » vld1.64»{d9},[r1]!» @ handles unaligned |
877 #endif | 881 #endif |
878 vshr.u64 d25,d19,#18 | 882 vshr.u64 d25,d19,#18 |
879 #if 9>0 | 883 #if 9>0 |
880 » vadd.i64» d23,d30»» » @ h+=Maj from the past | 884 » vadd.i64» d23,d30»» » @ h+=Maj from the past |
881 #endif | 885 #endif |
882 vshr.u64 d26,d19,#41 | 886 vshr.u64 d26,d19,#41 |
883 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 887 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
884 » vsli.64»» d24,d19,#50 | 888 » vsli.64»d24,d19,#50 |
885 » vsli.64»» d25,d19,#46 | 889 » vsli.64»d25,d19,#46 |
886 » vmov» » d29,d19 | 890 » vmov» d29,d19 |
887 » vsli.64»» d26,d19,#23 | 891 » vsli.64»d26,d19,#23 |
888 #if 9<16 && defined(__ARMEL__) | 892 #if 9<16 && defined(__ARMEL__) |
889 vrev64.8 d9,d9 | 893 vrev64.8 d9,d9 |
890 #endif | 894 #endif |
891 » veor» » d25,d24 | 895 » veor» d25,d24 |
892 » vbsl» » d29,d20,d21» » @ Ch(e,f,g) | 896 » vbsl» d29,d20,d21» » @ Ch(e,f,g) |
893 vshr.u64 d24,d23,#28 | 897 vshr.u64 d24,d23,#28 |
894 » veor» » d26,d25»» » @ Sigma1(e) | 898 » veor» d26,d25»» » @ Sigma1(e) |
895 vadd.i64 d27,d29,d22 | 899 vadd.i64 d27,d29,d22 |
896 vshr.u64 d25,d23,#34 | 900 vshr.u64 d25,d23,#34 |
897 » vsli.64»» d24,d23,#36 | 901 » vsli.64»d24,d23,#36 |
898 vadd.i64 d27,d26 | 902 vadd.i64 d27,d26 |
899 vshr.u64 d26,d23,#39 | 903 vshr.u64 d26,d23,#39 |
900 vadd.i64 d28,d9 | 904 vadd.i64 d28,d9 |
901 » vsli.64»» d25,d23,#30 | 905 » vsli.64»d25,d23,#30 |
902 » veor» » d30,d23,d16 | 906 » veor» d30,d23,d16 |
903 » vsli.64»» d26,d23,#25 | 907 » vsli.64»d26,d23,#25 |
904 » veor» » d22,d24,d25 | 908 » veor» d22,d24,d25 |
905 » vadd.i64» d27,d28 | 909 » vadd.i64» d27,d28 |
906 » vbsl» » d30,d17,d16» » @ Maj(a,b,c) | 910 » vbsl» d30,d17,d16» » @ Maj(a,b,c) |
907 » veor» » d22,d26»» » @ Sigma0(a) | 911 » veor» d22,d26»» » @ Sigma0(a) |
908 vadd.i64 d18,d27 | 912 vadd.i64 d18,d27 |
909 vadd.i64 d30,d27 | 913 vadd.i64 d30,d27 |
910 @ vadd.i64 d22,d30 | 914 @ vadd.i64 d22,d30 |
911 vshr.u64 d24,d18,#14 @ 10 | 915 vshr.u64 d24,d18,#14 @ 10 |
912 #if 10<16 | 916 #if 10<16 |
913 » vld1.64»» {d10},[r1]!» @ handles unaligned | 917 » vld1.64»{d10},[r1]!» @ handles unaligned |
914 #endif | 918 #endif |
915 vshr.u64 d25,d18,#18 | 919 vshr.u64 d25,d18,#18 |
916 #if 10>0 | 920 #if 10>0 |
917 » vadd.i64» d22,d30»» » @ h+=Maj from the past | 921 » vadd.i64» d22,d30»» » @ h+=Maj from the past |
918 #endif | 922 #endif |
919 vshr.u64 d26,d18,#41 | 923 vshr.u64 d26,d18,#41 |
920 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 924 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
921 » vsli.64»» d24,d18,#50 | 925 » vsli.64»d24,d18,#50 |
922 » vsli.64»» d25,d18,#46 | 926 » vsli.64»d25,d18,#46 |
923 » vmov» » d29,d18 | 927 » vmov» d29,d18 |
924 » vsli.64»» d26,d18,#23 | 928 » vsli.64»d26,d18,#23 |
925 #if 10<16 && defined(__ARMEL__) | 929 #if 10<16 && defined(__ARMEL__) |
926 vrev64.8 d10,d10 | 930 vrev64.8 d10,d10 |
927 #endif | 931 #endif |
928 » veor» » d25,d24 | 932 » veor» d25,d24 |
929 » vbsl» » d29,d19,d20» » @ Ch(e,f,g) | 933 » vbsl» d29,d19,d20» » @ Ch(e,f,g) |
930 vshr.u64 d24,d22,#28 | 934 vshr.u64 d24,d22,#28 |
931 » veor» » d26,d25»» » @ Sigma1(e) | 935 » veor» d26,d25»» » @ Sigma1(e) |
932 vadd.i64 d27,d29,d21 | 936 vadd.i64 d27,d29,d21 |
933 vshr.u64 d25,d22,#34 | 937 vshr.u64 d25,d22,#34 |
934 » vsli.64»» d24,d22,#36 | 938 » vsli.64»d24,d22,#36 |
935 vadd.i64 d27,d26 | 939 vadd.i64 d27,d26 |
936 vshr.u64 d26,d22,#39 | 940 vshr.u64 d26,d22,#39 |
937 vadd.i64 d28,d10 | 941 vadd.i64 d28,d10 |
938 » vsli.64»» d25,d22,#30 | 942 » vsli.64»d25,d22,#30 |
939 » veor» » d30,d22,d23 | 943 » veor» d30,d22,d23 |
940 » vsli.64»» d26,d22,#25 | 944 » vsli.64»d26,d22,#25 |
941 » veor» » d21,d24,d25 | 945 » veor» d21,d24,d25 |
942 » vadd.i64» d27,d28 | 946 » vadd.i64» d27,d28 |
943 » vbsl» » d30,d16,d23» » @ Maj(a,b,c) | 947 » vbsl» d30,d16,d23» » @ Maj(a,b,c) |
944 » veor» » d21,d26»» » @ Sigma0(a) | 948 » veor» d21,d26»» » @ Sigma0(a) |
945 vadd.i64 d17,d27 | 949 vadd.i64 d17,d27 |
946 vadd.i64 d30,d27 | 950 vadd.i64 d30,d27 |
947 @ vadd.i64 d21,d30 | 951 @ vadd.i64 d21,d30 |
948 vshr.u64 d24,d17,#14 @ 11 | 952 vshr.u64 d24,d17,#14 @ 11 |
949 #if 11<16 | 953 #if 11<16 |
950 » vld1.64»» {d11},[r1]!» @ handles unaligned | 954 » vld1.64»{d11},[r1]!» @ handles unaligned |
951 #endif | 955 #endif |
952 vshr.u64 d25,d17,#18 | 956 vshr.u64 d25,d17,#18 |
953 #if 11>0 | 957 #if 11>0 |
954 » vadd.i64» d21,d30»» » @ h+=Maj from the past | 958 » vadd.i64» d21,d30»» » @ h+=Maj from the past |
955 #endif | 959 #endif |
956 vshr.u64 d26,d17,#41 | 960 vshr.u64 d26,d17,#41 |
957 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 961 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
958 » vsli.64»» d24,d17,#50 | 962 » vsli.64»d24,d17,#50 |
959 » vsli.64»» d25,d17,#46 | 963 » vsli.64»d25,d17,#46 |
960 » vmov» » d29,d17 | 964 » vmov» d29,d17 |
961 » vsli.64»» d26,d17,#23 | 965 » vsli.64»d26,d17,#23 |
962 #if 11<16 && defined(__ARMEL__) | 966 #if 11<16 && defined(__ARMEL__) |
963 vrev64.8 d11,d11 | 967 vrev64.8 d11,d11 |
964 #endif | 968 #endif |
965 » veor» » d25,d24 | 969 » veor» d25,d24 |
966 » vbsl» » d29,d18,d19» » @ Ch(e,f,g) | 970 » vbsl» d29,d18,d19» » @ Ch(e,f,g) |
967 vshr.u64 d24,d21,#28 | 971 vshr.u64 d24,d21,#28 |
968 » veor» » d26,d25»» » @ Sigma1(e) | 972 » veor» d26,d25»» » @ Sigma1(e) |
969 vadd.i64 d27,d29,d20 | 973 vadd.i64 d27,d29,d20 |
970 vshr.u64 d25,d21,#34 | 974 vshr.u64 d25,d21,#34 |
971 » vsli.64»» d24,d21,#36 | 975 » vsli.64»d24,d21,#36 |
972 vadd.i64 d27,d26 | 976 vadd.i64 d27,d26 |
973 vshr.u64 d26,d21,#39 | 977 vshr.u64 d26,d21,#39 |
974 vadd.i64 d28,d11 | 978 vadd.i64 d28,d11 |
975 » vsli.64»» d25,d21,#30 | 979 » vsli.64»d25,d21,#30 |
976 » veor» » d30,d21,d22 | 980 » veor» d30,d21,d22 |
977 » vsli.64»» d26,d21,#25 | 981 » vsli.64»d26,d21,#25 |
978 » veor» » d20,d24,d25 | 982 » veor» d20,d24,d25 |
979 » vadd.i64» d27,d28 | 983 » vadd.i64» d27,d28 |
980 » vbsl» » d30,d23,d22» » @ Maj(a,b,c) | 984 » vbsl» d30,d23,d22» » @ Maj(a,b,c) |
981 » veor» » d20,d26»» » @ Sigma0(a) | 985 » veor» d20,d26»» » @ Sigma0(a) |
982 vadd.i64 d16,d27 | 986 vadd.i64 d16,d27 |
983 vadd.i64 d30,d27 | 987 vadd.i64 d30,d27 |
984 @ vadd.i64 d20,d30 | 988 @ vadd.i64 d20,d30 |
985 vshr.u64 d24,d16,#14 @ 12 | 989 vshr.u64 d24,d16,#14 @ 12 |
986 #if 12<16 | 990 #if 12<16 |
987 » vld1.64»» {d12},[r1]!» @ handles unaligned | 991 » vld1.64»{d12},[r1]!» @ handles unaligned |
988 #endif | 992 #endif |
989 vshr.u64 d25,d16,#18 | 993 vshr.u64 d25,d16,#18 |
990 #if 12>0 | 994 #if 12>0 |
991 » vadd.i64» d20,d30»» » @ h+=Maj from the past | 995 » vadd.i64» d20,d30»» » @ h+=Maj from the past |
992 #endif | 996 #endif |
993 vshr.u64 d26,d16,#41 | 997 vshr.u64 d26,d16,#41 |
994 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 998 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
995 » vsli.64»» d24,d16,#50 | 999 » vsli.64»d24,d16,#50 |
996 » vsli.64»» d25,d16,#46 | 1000 » vsli.64»d25,d16,#46 |
997 » vmov» » d29,d16 | 1001 » vmov» d29,d16 |
998 » vsli.64»» d26,d16,#23 | 1002 » vsli.64»d26,d16,#23 |
999 #if 12<16 && defined(__ARMEL__) | 1003 #if 12<16 && defined(__ARMEL__) |
1000 vrev64.8 d12,d12 | 1004 vrev64.8 d12,d12 |
1001 #endif | 1005 #endif |
1002 » veor» » d25,d24 | 1006 » veor» d25,d24 |
1003 » vbsl» » d29,d17,d18» » @ Ch(e,f,g) | 1007 » vbsl» d29,d17,d18» » @ Ch(e,f,g) |
1004 vshr.u64 d24,d20,#28 | 1008 vshr.u64 d24,d20,#28 |
1005 » veor» » d26,d25»» » @ Sigma1(e) | 1009 » veor» d26,d25»» » @ Sigma1(e) |
1006 vadd.i64 d27,d29,d19 | 1010 vadd.i64 d27,d29,d19 |
1007 vshr.u64 d25,d20,#34 | 1011 vshr.u64 d25,d20,#34 |
1008 » vsli.64»» d24,d20,#36 | 1012 » vsli.64»d24,d20,#36 |
1009 vadd.i64 d27,d26 | 1013 vadd.i64 d27,d26 |
1010 vshr.u64 d26,d20,#39 | 1014 vshr.u64 d26,d20,#39 |
1011 vadd.i64 d28,d12 | 1015 vadd.i64 d28,d12 |
1012 » vsli.64»» d25,d20,#30 | 1016 » vsli.64»d25,d20,#30 |
1013 » veor» » d30,d20,d21 | 1017 » veor» d30,d20,d21 |
1014 » vsli.64»» d26,d20,#25 | 1018 » vsli.64»d26,d20,#25 |
1015 » veor» » d19,d24,d25 | 1019 » veor» d19,d24,d25 |
1016 » vadd.i64» d27,d28 | 1020 » vadd.i64» d27,d28 |
1017 » vbsl» » d30,d22,d21» » @ Maj(a,b,c) | 1021 » vbsl» d30,d22,d21» » @ Maj(a,b,c) |
1018 » veor» » d19,d26»» » @ Sigma0(a) | 1022 » veor» d19,d26»» » @ Sigma0(a) |
1019 vadd.i64 d23,d27 | 1023 vadd.i64 d23,d27 |
1020 vadd.i64 d30,d27 | 1024 vadd.i64 d30,d27 |
1021 @ vadd.i64 d19,d30 | 1025 @ vadd.i64 d19,d30 |
1022 vshr.u64 d24,d23,#14 @ 13 | 1026 vshr.u64 d24,d23,#14 @ 13 |
1023 #if 13<16 | 1027 #if 13<16 |
1024 » vld1.64»» {d13},[r1]!» @ handles unaligned | 1028 » vld1.64»{d13},[r1]!» @ handles unaligned |
1025 #endif | 1029 #endif |
1026 vshr.u64 d25,d23,#18 | 1030 vshr.u64 d25,d23,#18 |
1027 #if 13>0 | 1031 #if 13>0 |
1028 » vadd.i64» d19,d30»» » @ h+=Maj from the past | 1032 » vadd.i64» d19,d30»» » @ h+=Maj from the past |
1029 #endif | 1033 #endif |
1030 vshr.u64 d26,d23,#41 | 1034 vshr.u64 d26,d23,#41 |
1031 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1035 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1032 » vsli.64»» d24,d23,#50 | 1036 » vsli.64»d24,d23,#50 |
1033 » vsli.64»» d25,d23,#46 | 1037 » vsli.64»d25,d23,#46 |
1034 » vmov» » d29,d23 | 1038 » vmov» d29,d23 |
1035 » vsli.64»» d26,d23,#23 | 1039 » vsli.64»d26,d23,#23 |
1036 #if 13<16 && defined(__ARMEL__) | 1040 #if 13<16 && defined(__ARMEL__) |
1037 vrev64.8 d13,d13 | 1041 vrev64.8 d13,d13 |
1038 #endif | 1042 #endif |
1039 » veor» » d25,d24 | 1043 » veor» d25,d24 |
1040 » vbsl» » d29,d16,d17» » @ Ch(e,f,g) | 1044 » vbsl» d29,d16,d17» » @ Ch(e,f,g) |
1041 vshr.u64 d24,d19,#28 | 1045 vshr.u64 d24,d19,#28 |
1042 » veor» » d26,d25»» » @ Sigma1(e) | 1046 » veor» d26,d25»» » @ Sigma1(e) |
1043 vadd.i64 d27,d29,d18 | 1047 vadd.i64 d27,d29,d18 |
1044 vshr.u64 d25,d19,#34 | 1048 vshr.u64 d25,d19,#34 |
1045 » vsli.64»» d24,d19,#36 | 1049 » vsli.64»d24,d19,#36 |
1046 vadd.i64 d27,d26 | 1050 vadd.i64 d27,d26 |
1047 vshr.u64 d26,d19,#39 | 1051 vshr.u64 d26,d19,#39 |
1048 vadd.i64 d28,d13 | 1052 vadd.i64 d28,d13 |
1049 » vsli.64»» d25,d19,#30 | 1053 » vsli.64»d25,d19,#30 |
1050 » veor» » d30,d19,d20 | 1054 » veor» d30,d19,d20 |
1051 » vsli.64»» d26,d19,#25 | 1055 » vsli.64»d26,d19,#25 |
1052 » veor» » d18,d24,d25 | 1056 » veor» d18,d24,d25 |
1053 » vadd.i64» d27,d28 | 1057 » vadd.i64» d27,d28 |
1054 » vbsl» » d30,d21,d20» » @ Maj(a,b,c) | 1058 » vbsl» d30,d21,d20» » @ Maj(a,b,c) |
1055 » veor» » d18,d26»» » @ Sigma0(a) | 1059 » veor» d18,d26»» » @ Sigma0(a) |
1056 vadd.i64 d22,d27 | 1060 vadd.i64 d22,d27 |
1057 vadd.i64 d30,d27 | 1061 vadd.i64 d30,d27 |
1058 @ vadd.i64 d18,d30 | 1062 @ vadd.i64 d18,d30 |
1059 vshr.u64 d24,d22,#14 @ 14 | 1063 vshr.u64 d24,d22,#14 @ 14 |
1060 #if 14<16 | 1064 #if 14<16 |
1061 » vld1.64»» {d14},[r1]!» @ handles unaligned | 1065 » vld1.64»{d14},[r1]!» @ handles unaligned |
1062 #endif | 1066 #endif |
1063 vshr.u64 d25,d22,#18 | 1067 vshr.u64 d25,d22,#18 |
1064 #if 14>0 | 1068 #if 14>0 |
1065 » vadd.i64» d18,d30»» » @ h+=Maj from the past | 1069 » vadd.i64» d18,d30»» » @ h+=Maj from the past |
1066 #endif | 1070 #endif |
1067 vshr.u64 d26,d22,#41 | 1071 vshr.u64 d26,d22,#41 |
1068 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1072 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1069 » vsli.64»» d24,d22,#50 | 1073 » vsli.64»d24,d22,#50 |
1070 » vsli.64»» d25,d22,#46 | 1074 » vsli.64»d25,d22,#46 |
1071 » vmov» » d29,d22 | 1075 » vmov» d29,d22 |
1072 » vsli.64»» d26,d22,#23 | 1076 » vsli.64»d26,d22,#23 |
1073 #if 14<16 && defined(__ARMEL__) | 1077 #if 14<16 && defined(__ARMEL__) |
1074 vrev64.8 d14,d14 | 1078 vrev64.8 d14,d14 |
1075 #endif | 1079 #endif |
1076 » veor» » d25,d24 | 1080 » veor» d25,d24 |
1077 » vbsl» » d29,d23,d16» » @ Ch(e,f,g) | 1081 » vbsl» d29,d23,d16» » @ Ch(e,f,g) |
1078 vshr.u64 d24,d18,#28 | 1082 vshr.u64 d24,d18,#28 |
1079 » veor» » d26,d25»» » @ Sigma1(e) | 1083 » veor» d26,d25»» » @ Sigma1(e) |
1080 vadd.i64 d27,d29,d17 | 1084 vadd.i64 d27,d29,d17 |
1081 vshr.u64 d25,d18,#34 | 1085 vshr.u64 d25,d18,#34 |
1082 » vsli.64»» d24,d18,#36 | 1086 » vsli.64»d24,d18,#36 |
1083 vadd.i64 d27,d26 | 1087 vadd.i64 d27,d26 |
1084 vshr.u64 d26,d18,#39 | 1088 vshr.u64 d26,d18,#39 |
1085 vadd.i64 d28,d14 | 1089 vadd.i64 d28,d14 |
1086 » vsli.64»» d25,d18,#30 | 1090 » vsli.64»d25,d18,#30 |
1087 » veor» » d30,d18,d19 | 1091 » veor» d30,d18,d19 |
1088 » vsli.64»» d26,d18,#25 | 1092 » vsli.64»d26,d18,#25 |
1089 » veor» » d17,d24,d25 | 1093 » veor» d17,d24,d25 |
1090 » vadd.i64» d27,d28 | 1094 » vadd.i64» d27,d28 |
1091 » vbsl» » d30,d20,d19» » @ Maj(a,b,c) | 1095 » vbsl» d30,d20,d19» » @ Maj(a,b,c) |
1092 » veor» » d17,d26»» » @ Sigma0(a) | 1096 » veor» d17,d26»» » @ Sigma0(a) |
1093 vadd.i64 d21,d27 | 1097 vadd.i64 d21,d27 |
1094 vadd.i64 d30,d27 | 1098 vadd.i64 d30,d27 |
1095 @ vadd.i64 d17,d30 | 1099 @ vadd.i64 d17,d30 |
1096 vshr.u64 d24,d21,#14 @ 15 | 1100 vshr.u64 d24,d21,#14 @ 15 |
1097 #if 15<16 | 1101 #if 15<16 |
1098 » vld1.64»» {d15},[r1]!» @ handles unaligned | 1102 » vld1.64»{d15},[r1]!» @ handles unaligned |
1099 #endif | 1103 #endif |
1100 vshr.u64 d25,d21,#18 | 1104 vshr.u64 d25,d21,#18 |
1101 #if 15>0 | 1105 #if 15>0 |
1102 » vadd.i64» d17,d30»» » @ h+=Maj from the past | 1106 » vadd.i64» d17,d30»» » @ h+=Maj from the past |
1103 #endif | 1107 #endif |
1104 vshr.u64 d26,d21,#41 | 1108 vshr.u64 d26,d21,#41 |
1105 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1109 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1106 » vsli.64»» d24,d21,#50 | 1110 » vsli.64»d24,d21,#50 |
1107 » vsli.64»» d25,d21,#46 | 1111 » vsli.64»d25,d21,#46 |
1108 » vmov» » d29,d21 | 1112 » vmov» d29,d21 |
1109 » vsli.64»» d26,d21,#23 | 1113 » vsli.64»d26,d21,#23 |
1110 #if 15<16 && defined(__ARMEL__) | 1114 #if 15<16 && defined(__ARMEL__) |
1111 vrev64.8 d15,d15 | 1115 vrev64.8 d15,d15 |
1112 #endif | 1116 #endif |
1113 » veor» » d25,d24 | 1117 » veor» d25,d24 |
1114 » vbsl» » d29,d22,d23» » @ Ch(e,f,g) | 1118 » vbsl» d29,d22,d23» » @ Ch(e,f,g) |
1115 vshr.u64 d24,d17,#28 | 1119 vshr.u64 d24,d17,#28 |
1116 » veor» » d26,d25»» » @ Sigma1(e) | 1120 » veor» d26,d25»» » @ Sigma1(e) |
1117 vadd.i64 d27,d29,d16 | 1121 vadd.i64 d27,d29,d16 |
1118 vshr.u64 d25,d17,#34 | 1122 vshr.u64 d25,d17,#34 |
1119 » vsli.64»» d24,d17,#36 | 1123 » vsli.64»d24,d17,#36 |
1120 vadd.i64 d27,d26 | 1124 vadd.i64 d27,d26 |
1121 vshr.u64 d26,d17,#39 | 1125 vshr.u64 d26,d17,#39 |
1122 vadd.i64 d28,d15 | 1126 vadd.i64 d28,d15 |
1123 » vsli.64»» d25,d17,#30 | 1127 » vsli.64»d25,d17,#30 |
1124 » veor» » d30,d17,d18 | 1128 » veor» d30,d17,d18 |
1125 » vsli.64»» d26,d17,#25 | 1129 » vsli.64»d26,d17,#25 |
1126 » veor» » d16,d24,d25 | 1130 » veor» d16,d24,d25 |
1127 » vadd.i64» d27,d28 | 1131 » vadd.i64» d27,d28 |
1128 » vbsl» » d30,d19,d18» » @ Maj(a,b,c) | 1132 » vbsl» d30,d19,d18» » @ Maj(a,b,c) |
1129 » veor» » d16,d26»» » @ Sigma0(a) | 1133 » veor» d16,d26»» » @ Sigma0(a) |
1130 vadd.i64 d20,d27 | 1134 vadd.i64 d20,d27 |
1131 vadd.i64 d30,d27 | 1135 vadd.i64 d30,d27 |
1132 @ vadd.i64 d16,d30 | 1136 @ vadd.i64 d16,d30 |
1133 » mov» » r12,#4 | 1137 » mov» r12,#4 |
1134 .L16_79_neon: | 1138 .L16_79_neon: |
1135 » subs» » r12,#1 | 1139 » subs» r12,#1 |
1136 vshr.u64 q12,q7,#19 | 1140 vshr.u64 q12,q7,#19 |
1137 vshr.u64 q13,q7,#61 | 1141 vshr.u64 q13,q7,#61 |
1138 » vadd.i64» d16,d30»» » @ h+=Maj from the past | 1142 » vadd.i64» d16,d30»» » @ h+=Maj from the past |
1139 vshr.u64 q15,q7,#6 | 1143 vshr.u64 q15,q7,#6 |
1140 » vsli.64»» q12,q7,#45 | 1144 » vsli.64»q12,q7,#45 |
1141 » vext.8» » q14,q0,q1,#8» @ X[i+1] | 1145 » vext.8» q14,q0,q1,#8» @ X[i+1] |
1142 » vsli.64»» q13,q7,#3 | 1146 » vsli.64»q13,q7,#3 |
1143 » veor» » q15,q12 | 1147 » veor» q15,q12 |
1144 vshr.u64 q12,q14,#1 | 1148 vshr.u64 q12,q14,#1 |
1145 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1149 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1146 vshr.u64 q13,q14,#8 | 1150 vshr.u64 q13,q14,#8 |
1147 vadd.i64 q0,q15 | 1151 vadd.i64 q0,q15 |
1148 vshr.u64 q15,q14,#7 | 1152 vshr.u64 q15,q14,#7 |
1149 » vsli.64»» q12,q14,#63 | 1153 » vsli.64»q12,q14,#63 |
1150 » vsli.64»» q13,q14,#56 | 1154 » vsli.64»q13,q14,#56 |
1151 » vext.8» » q14,q4,q5,#8» @ X[i+9] | 1155 » vext.8» q14,q4,q5,#8» @ X[i+9] |
1152 » veor» » q15,q12 | 1156 » veor» q15,q12 |
1153 vshr.u64 d24,d20,#14 @ from NEON_00_15 | 1157 vshr.u64 d24,d20,#14 @ from NEON_00_15 |
1154 vadd.i64 q0,q14 | 1158 vadd.i64 q0,q14 |
1155 vshr.u64 d25,d20,#18 @ from NEON_00_15 | 1159 vshr.u64 d25,d20,#18 @ from NEON_00_15 |
1156 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1160 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1157 vshr.u64 d26,d20,#41 @ from NEON_00_15 | 1161 vshr.u64 d26,d20,#41 @ from NEON_00_15 |
1158 vadd.i64 q0,q15 | 1162 vadd.i64 q0,q15 |
1159 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1163 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1160 » vsli.64»» d24,d20,#50 | 1164 » vsli.64»d24,d20,#50 |
1161 » vsli.64»» d25,d20,#46 | 1165 » vsli.64»d25,d20,#46 |
1162 » vmov» » d29,d20 | 1166 » vmov» d29,d20 |
1163 » vsli.64»» d26,d20,#23 | 1167 » vsli.64»d26,d20,#23 |
1164 #if 16<16 && defined(__ARMEL__) | 1168 #if 16<16 && defined(__ARMEL__) |
1165 vrev64.8 , | 1169 vrev64.8 , |
1166 #endif | 1170 #endif |
1167 » veor» » d25,d24 | 1171 » veor» d25,d24 |
1168 » vbsl» » d29,d21,d22» » @ Ch(e,f,g) | 1172 » vbsl» d29,d21,d22» » @ Ch(e,f,g) |
1169 vshr.u64 d24,d16,#28 | 1173 vshr.u64 d24,d16,#28 |
1170 » veor» » d26,d25»» » @ Sigma1(e) | 1174 » veor» d26,d25»» » @ Sigma1(e) |
1171 vadd.i64 d27,d29,d23 | 1175 vadd.i64 d27,d29,d23 |
1172 vshr.u64 d25,d16,#34 | 1176 vshr.u64 d25,d16,#34 |
1173 » vsli.64»» d24,d16,#36 | 1177 » vsli.64»d24,d16,#36 |
1174 vadd.i64 d27,d26 | 1178 vadd.i64 d27,d26 |
1175 vshr.u64 d26,d16,#39 | 1179 vshr.u64 d26,d16,#39 |
1176 vadd.i64 d28,d0 | 1180 vadd.i64 d28,d0 |
1177 » vsli.64»» d25,d16,#30 | 1181 » vsli.64»d25,d16,#30 |
1178 » veor» » d30,d16,d17 | 1182 » veor» d30,d16,d17 |
1179 » vsli.64»» d26,d16,#25 | 1183 » vsli.64»d26,d16,#25 |
1180 » veor» » d23,d24,d25 | 1184 » veor» d23,d24,d25 |
1181 » vadd.i64» d27,d28 | 1185 » vadd.i64» d27,d28 |
1182 » vbsl» » d30,d18,d17» » @ Maj(a,b,c) | 1186 » vbsl» d30,d18,d17» » @ Maj(a,b,c) |
1183 » veor» » d23,d26»» » @ Sigma0(a) | 1187 » veor» d23,d26»» » @ Sigma0(a) |
1184 vadd.i64 d19,d27 | 1188 vadd.i64 d19,d27 |
1185 vadd.i64 d30,d27 | 1189 vadd.i64 d30,d27 |
1186 @ vadd.i64 d23,d30 | 1190 @ vadd.i64 d23,d30 |
1187 vshr.u64 d24,d19,#14 @ 17 | 1191 vshr.u64 d24,d19,#14 @ 17 |
1188 #if 17<16 | 1192 #if 17<16 |
1189 » vld1.64»» {d1},[r1]!» @ handles unaligned | 1193 » vld1.64»{d1},[r1]!» @ handles unaligned |
1190 #endif | 1194 #endif |
1191 vshr.u64 d25,d19,#18 | 1195 vshr.u64 d25,d19,#18 |
1192 #if 17>0 | 1196 #if 17>0 |
1193 » vadd.i64» d23,d30»» » @ h+=Maj from the past | 1197 » vadd.i64» d23,d30»» » @ h+=Maj from the past |
1194 #endif | 1198 #endif |
1195 vshr.u64 d26,d19,#41 | 1199 vshr.u64 d26,d19,#41 |
1196 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1200 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1197 » vsli.64»» d24,d19,#50 | 1201 » vsli.64»d24,d19,#50 |
1198 » vsli.64»» d25,d19,#46 | 1202 » vsli.64»d25,d19,#46 |
1199 » vmov» » d29,d19 | 1203 » vmov» d29,d19 |
1200 » vsli.64»» d26,d19,#23 | 1204 » vsli.64»d26,d19,#23 |
1201 #if 17<16 && defined(__ARMEL__) | 1205 #if 17<16 && defined(__ARMEL__) |
1202 vrev64.8 , | 1206 vrev64.8 , |
1203 #endif | 1207 #endif |
1204 » veor» » d25,d24 | 1208 » veor» d25,d24 |
1205 » vbsl» » d29,d20,d21» » @ Ch(e,f,g) | 1209 » vbsl» d29,d20,d21» » @ Ch(e,f,g) |
1206 vshr.u64 d24,d23,#28 | 1210 vshr.u64 d24,d23,#28 |
1207 » veor» » d26,d25»» » @ Sigma1(e) | 1211 » veor» d26,d25»» » @ Sigma1(e) |
1208 vadd.i64 d27,d29,d22 | 1212 vadd.i64 d27,d29,d22 |
1209 vshr.u64 d25,d23,#34 | 1213 vshr.u64 d25,d23,#34 |
1210 » vsli.64»» d24,d23,#36 | 1214 » vsli.64»d24,d23,#36 |
1211 vadd.i64 d27,d26 | 1215 vadd.i64 d27,d26 |
1212 vshr.u64 d26,d23,#39 | 1216 vshr.u64 d26,d23,#39 |
1213 vadd.i64 d28,d1 | 1217 vadd.i64 d28,d1 |
1214 » vsli.64»» d25,d23,#30 | 1218 » vsli.64»d25,d23,#30 |
1215 » veor» » d30,d23,d16 | 1219 » veor» d30,d23,d16 |
1216 » vsli.64»» d26,d23,#25 | 1220 » vsli.64»d26,d23,#25 |
1217 » veor» » d22,d24,d25 | 1221 » veor» d22,d24,d25 |
1218 » vadd.i64» d27,d28 | 1222 » vadd.i64» d27,d28 |
1219 » vbsl» » d30,d17,d16» » @ Maj(a,b,c) | 1223 » vbsl» d30,d17,d16» » @ Maj(a,b,c) |
1220 » veor» » d22,d26»» » @ Sigma0(a) | 1224 » veor» d22,d26»» » @ Sigma0(a) |
1221 vadd.i64 d18,d27 | 1225 vadd.i64 d18,d27 |
1222 vadd.i64 d30,d27 | 1226 vadd.i64 d30,d27 |
1223 @ vadd.i64 d22,d30 | 1227 @ vadd.i64 d22,d30 |
1224 vshr.u64 q12,q0,#19 | 1228 vshr.u64 q12,q0,#19 |
1225 vshr.u64 q13,q0,#61 | 1229 vshr.u64 q13,q0,#61 |
1226 » vadd.i64» d22,d30»» » @ h+=Maj from the past | 1230 » vadd.i64» d22,d30»» » @ h+=Maj from the past |
1227 vshr.u64 q15,q0,#6 | 1231 vshr.u64 q15,q0,#6 |
1228 » vsli.64»» q12,q0,#45 | 1232 » vsli.64»q12,q0,#45 |
1229 » vext.8» » q14,q1,q2,#8» @ X[i+1] | 1233 » vext.8» q14,q1,q2,#8» @ X[i+1] |
1230 » vsli.64»» q13,q0,#3 | 1234 » vsli.64»q13,q0,#3 |
1231 » veor» » q15,q12 | 1235 » veor» q15,q12 |
1232 vshr.u64 q12,q14,#1 | 1236 vshr.u64 q12,q14,#1 |
1233 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1237 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1234 vshr.u64 q13,q14,#8 | 1238 vshr.u64 q13,q14,#8 |
1235 vadd.i64 q1,q15 | 1239 vadd.i64 q1,q15 |
1236 vshr.u64 q15,q14,#7 | 1240 vshr.u64 q15,q14,#7 |
1237 » vsli.64»» q12,q14,#63 | 1241 » vsli.64»q12,q14,#63 |
1238 » vsli.64»» q13,q14,#56 | 1242 » vsli.64»q13,q14,#56 |
1239 » vext.8» » q14,q5,q6,#8» @ X[i+9] | 1243 » vext.8» q14,q5,q6,#8» @ X[i+9] |
1240 » veor» » q15,q12 | 1244 » veor» q15,q12 |
1241 vshr.u64 d24,d18,#14 @ from NEON_00_15 | 1245 vshr.u64 d24,d18,#14 @ from NEON_00_15 |
1242 vadd.i64 q1,q14 | 1246 vadd.i64 q1,q14 |
1243 vshr.u64 d25,d18,#18 @ from NEON_00_15 | 1247 vshr.u64 d25,d18,#18 @ from NEON_00_15 |
1244 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1248 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1245 vshr.u64 d26,d18,#41 @ from NEON_00_15 | 1249 vshr.u64 d26,d18,#41 @ from NEON_00_15 |
1246 vadd.i64 q1,q15 | 1250 vadd.i64 q1,q15 |
1247 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1251 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1248 » vsli.64»» d24,d18,#50 | 1252 » vsli.64»d24,d18,#50 |
1249 » vsli.64»» d25,d18,#46 | 1253 » vsli.64»d25,d18,#46 |
1250 » vmov» » d29,d18 | 1254 » vmov» d29,d18 |
1251 » vsli.64»» d26,d18,#23 | 1255 » vsli.64»d26,d18,#23 |
1252 #if 18<16 && defined(__ARMEL__) | 1256 #if 18<16 && defined(__ARMEL__) |
1253 vrev64.8 , | 1257 vrev64.8 , |
1254 #endif | 1258 #endif |
1255 » veor» » d25,d24 | 1259 » veor» d25,d24 |
1256 » vbsl» » d29,d19,d20» » @ Ch(e,f,g) | 1260 » vbsl» d29,d19,d20» » @ Ch(e,f,g) |
1257 vshr.u64 d24,d22,#28 | 1261 vshr.u64 d24,d22,#28 |
1258 » veor» » d26,d25»» » @ Sigma1(e) | 1262 » veor» d26,d25»» » @ Sigma1(e) |
1259 vadd.i64 d27,d29,d21 | 1263 vadd.i64 d27,d29,d21 |
1260 vshr.u64 d25,d22,#34 | 1264 vshr.u64 d25,d22,#34 |
1261 » vsli.64»» d24,d22,#36 | 1265 » vsli.64»d24,d22,#36 |
1262 vadd.i64 d27,d26 | 1266 vadd.i64 d27,d26 |
1263 vshr.u64 d26,d22,#39 | 1267 vshr.u64 d26,d22,#39 |
1264 vadd.i64 d28,d2 | 1268 vadd.i64 d28,d2 |
1265 » vsli.64»» d25,d22,#30 | 1269 » vsli.64»d25,d22,#30 |
1266 » veor» » d30,d22,d23 | 1270 » veor» d30,d22,d23 |
1267 » vsli.64»» d26,d22,#25 | 1271 » vsli.64»d26,d22,#25 |
1268 » veor» » d21,d24,d25 | 1272 » veor» d21,d24,d25 |
1269 » vadd.i64» d27,d28 | 1273 » vadd.i64» d27,d28 |
1270 » vbsl» » d30,d16,d23» » @ Maj(a,b,c) | 1274 » vbsl» d30,d16,d23» » @ Maj(a,b,c) |
1271 » veor» » d21,d26»» » @ Sigma0(a) | 1275 » veor» d21,d26»» » @ Sigma0(a) |
1272 vadd.i64 d17,d27 | 1276 vadd.i64 d17,d27 |
1273 vadd.i64 d30,d27 | 1277 vadd.i64 d30,d27 |
1274 @ vadd.i64 d21,d30 | 1278 @ vadd.i64 d21,d30 |
1275 vshr.u64 d24,d17,#14 @ 19 | 1279 vshr.u64 d24,d17,#14 @ 19 |
1276 #if 19<16 | 1280 #if 19<16 |
1277 » vld1.64»» {d3},[r1]!» @ handles unaligned | 1281 » vld1.64»{d3},[r1]!» @ handles unaligned |
1278 #endif | 1282 #endif |
1279 vshr.u64 d25,d17,#18 | 1283 vshr.u64 d25,d17,#18 |
1280 #if 19>0 | 1284 #if 19>0 |
1281 » vadd.i64» d21,d30»» » @ h+=Maj from the past | 1285 » vadd.i64» d21,d30»» » @ h+=Maj from the past |
1282 #endif | 1286 #endif |
1283 vshr.u64 d26,d17,#41 | 1287 vshr.u64 d26,d17,#41 |
1284 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1288 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1285 » vsli.64»» d24,d17,#50 | 1289 » vsli.64»d24,d17,#50 |
1286 » vsli.64»» d25,d17,#46 | 1290 » vsli.64»d25,d17,#46 |
1287 » vmov» » d29,d17 | 1291 » vmov» d29,d17 |
1288 » vsli.64»» d26,d17,#23 | 1292 » vsli.64»d26,d17,#23 |
1289 #if 19<16 && defined(__ARMEL__) | 1293 #if 19<16 && defined(__ARMEL__) |
1290 vrev64.8 , | 1294 vrev64.8 , |
1291 #endif | 1295 #endif |
1292 » veor» » d25,d24 | 1296 » veor» d25,d24 |
1293 » vbsl» » d29,d18,d19» » @ Ch(e,f,g) | 1297 » vbsl» d29,d18,d19» » @ Ch(e,f,g) |
1294 vshr.u64 d24,d21,#28 | 1298 vshr.u64 d24,d21,#28 |
1295 » veor» » d26,d25»» » @ Sigma1(e) | 1299 » veor» d26,d25»» » @ Sigma1(e) |
1296 vadd.i64 d27,d29,d20 | 1300 vadd.i64 d27,d29,d20 |
1297 vshr.u64 d25,d21,#34 | 1301 vshr.u64 d25,d21,#34 |
1298 » vsli.64»» d24,d21,#36 | 1302 » vsli.64»d24,d21,#36 |
1299 vadd.i64 d27,d26 | 1303 vadd.i64 d27,d26 |
1300 vshr.u64 d26,d21,#39 | 1304 vshr.u64 d26,d21,#39 |
1301 vadd.i64 d28,d3 | 1305 vadd.i64 d28,d3 |
1302 » vsli.64»» d25,d21,#30 | 1306 » vsli.64»d25,d21,#30 |
1303 » veor» » d30,d21,d22 | 1307 » veor» d30,d21,d22 |
1304 » vsli.64»» d26,d21,#25 | 1308 » vsli.64»d26,d21,#25 |
1305 » veor» » d20,d24,d25 | 1309 » veor» d20,d24,d25 |
1306 » vadd.i64» d27,d28 | 1310 » vadd.i64» d27,d28 |
1307 » vbsl» » d30,d23,d22» » @ Maj(a,b,c) | 1311 » vbsl» d30,d23,d22» » @ Maj(a,b,c) |
1308 » veor» » d20,d26»» » @ Sigma0(a) | 1312 » veor» d20,d26»» » @ Sigma0(a) |
1309 vadd.i64 d16,d27 | 1313 vadd.i64 d16,d27 |
1310 vadd.i64 d30,d27 | 1314 vadd.i64 d30,d27 |
1311 @ vadd.i64 d20,d30 | 1315 @ vadd.i64 d20,d30 |
1312 vshr.u64 q12,q1,#19 | 1316 vshr.u64 q12,q1,#19 |
1313 vshr.u64 q13,q1,#61 | 1317 vshr.u64 q13,q1,#61 |
1314 » vadd.i64» d20,d30»» » @ h+=Maj from the past | 1318 » vadd.i64» d20,d30»» » @ h+=Maj from the past |
1315 vshr.u64 q15,q1,#6 | 1319 vshr.u64 q15,q1,#6 |
1316 » vsli.64»» q12,q1,#45 | 1320 » vsli.64»q12,q1,#45 |
1317 » vext.8» » q14,q2,q3,#8» @ X[i+1] | 1321 » vext.8» q14,q2,q3,#8» @ X[i+1] |
1318 » vsli.64»» q13,q1,#3 | 1322 » vsli.64»q13,q1,#3 |
1319 » veor» » q15,q12 | 1323 » veor» q15,q12 |
1320 vshr.u64 q12,q14,#1 | 1324 vshr.u64 q12,q14,#1 |
1321 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1325 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1322 vshr.u64 q13,q14,#8 | 1326 vshr.u64 q13,q14,#8 |
1323 vadd.i64 q2,q15 | 1327 vadd.i64 q2,q15 |
1324 vshr.u64 q15,q14,#7 | 1328 vshr.u64 q15,q14,#7 |
1325 » vsli.64»» q12,q14,#63 | 1329 » vsli.64»q12,q14,#63 |
1326 » vsli.64»» q13,q14,#56 | 1330 » vsli.64»q13,q14,#56 |
1327 » vext.8» » q14,q6,q7,#8» @ X[i+9] | 1331 » vext.8» q14,q6,q7,#8» @ X[i+9] |
1328 » veor» » q15,q12 | 1332 » veor» q15,q12 |
1329 vshr.u64 d24,d16,#14 @ from NEON_00_15 | 1333 vshr.u64 d24,d16,#14 @ from NEON_00_15 |
1330 vadd.i64 q2,q14 | 1334 vadd.i64 q2,q14 |
1331 vshr.u64 d25,d16,#18 @ from NEON_00_15 | 1335 vshr.u64 d25,d16,#18 @ from NEON_00_15 |
1332 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1336 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1333 vshr.u64 d26,d16,#41 @ from NEON_00_15 | 1337 vshr.u64 d26,d16,#41 @ from NEON_00_15 |
1334 vadd.i64 q2,q15 | 1338 vadd.i64 q2,q15 |
1335 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1339 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1336 » vsli.64»» d24,d16,#50 | 1340 » vsli.64»d24,d16,#50 |
1337 » vsli.64»» d25,d16,#46 | 1341 » vsli.64»d25,d16,#46 |
1338 » vmov» » d29,d16 | 1342 » vmov» d29,d16 |
1339 » vsli.64»» d26,d16,#23 | 1343 » vsli.64»d26,d16,#23 |
1340 #if 20<16 && defined(__ARMEL__) | 1344 #if 20<16 && defined(__ARMEL__) |
1341 vrev64.8 , | 1345 vrev64.8 , |
1342 #endif | 1346 #endif |
1343 » veor» » d25,d24 | 1347 » veor» d25,d24 |
1344 » vbsl» » d29,d17,d18» » @ Ch(e,f,g) | 1348 » vbsl» d29,d17,d18» » @ Ch(e,f,g) |
1345 vshr.u64 d24,d20,#28 | 1349 vshr.u64 d24,d20,#28 |
1346 » veor» » d26,d25»» » @ Sigma1(e) | 1350 » veor» d26,d25»» » @ Sigma1(e) |
1347 vadd.i64 d27,d29,d19 | 1351 vadd.i64 d27,d29,d19 |
1348 vshr.u64 d25,d20,#34 | 1352 vshr.u64 d25,d20,#34 |
1349 » vsli.64»» d24,d20,#36 | 1353 » vsli.64»d24,d20,#36 |
1350 vadd.i64 d27,d26 | 1354 vadd.i64 d27,d26 |
1351 vshr.u64 d26,d20,#39 | 1355 vshr.u64 d26,d20,#39 |
1352 vadd.i64 d28,d4 | 1356 vadd.i64 d28,d4 |
1353 » vsli.64»» d25,d20,#30 | 1357 » vsli.64»d25,d20,#30 |
1354 » veor» » d30,d20,d21 | 1358 » veor» d30,d20,d21 |
1355 » vsli.64»» d26,d20,#25 | 1359 » vsli.64»d26,d20,#25 |
1356 » veor» » d19,d24,d25 | 1360 » veor» d19,d24,d25 |
1357 » vadd.i64» d27,d28 | 1361 » vadd.i64» d27,d28 |
1358 » vbsl» » d30,d22,d21» » @ Maj(a,b,c) | 1362 » vbsl» d30,d22,d21» » @ Maj(a,b,c) |
1359 » veor» » d19,d26»» » @ Sigma0(a) | 1363 » veor» d19,d26»» » @ Sigma0(a) |
1360 vadd.i64 d23,d27 | 1364 vadd.i64 d23,d27 |
1361 vadd.i64 d30,d27 | 1365 vadd.i64 d30,d27 |
1362 @ vadd.i64 d19,d30 | 1366 @ vadd.i64 d19,d30 |
1363 vshr.u64 d24,d23,#14 @ 21 | 1367 vshr.u64 d24,d23,#14 @ 21 |
1364 #if 21<16 | 1368 #if 21<16 |
1365 » vld1.64»» {d5},[r1]!» @ handles unaligned | 1369 » vld1.64»{d5},[r1]!» @ handles unaligned |
1366 #endif | 1370 #endif |
1367 vshr.u64 d25,d23,#18 | 1371 vshr.u64 d25,d23,#18 |
1368 #if 21>0 | 1372 #if 21>0 |
1369 » vadd.i64» d19,d30»» » @ h+=Maj from the past | 1373 » vadd.i64» d19,d30»» » @ h+=Maj from the past |
1370 #endif | 1374 #endif |
1371 vshr.u64 d26,d23,#41 | 1375 vshr.u64 d26,d23,#41 |
1372 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1376 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1373 » vsli.64»» d24,d23,#50 | 1377 » vsli.64»d24,d23,#50 |
1374 » vsli.64»» d25,d23,#46 | 1378 » vsli.64»d25,d23,#46 |
1375 » vmov» » d29,d23 | 1379 » vmov» d29,d23 |
1376 » vsli.64»» d26,d23,#23 | 1380 » vsli.64»d26,d23,#23 |
1377 #if 21<16 && defined(__ARMEL__) | 1381 #if 21<16 && defined(__ARMEL__) |
1378 vrev64.8 , | 1382 vrev64.8 , |
1379 #endif | 1383 #endif |
1380 » veor» » d25,d24 | 1384 » veor» d25,d24 |
1381 » vbsl» » d29,d16,d17» » @ Ch(e,f,g) | 1385 » vbsl» d29,d16,d17» » @ Ch(e,f,g) |
1382 vshr.u64 d24,d19,#28 | 1386 vshr.u64 d24,d19,#28 |
1383 » veor» » d26,d25»» » @ Sigma1(e) | 1387 » veor» d26,d25»» » @ Sigma1(e) |
1384 vadd.i64 d27,d29,d18 | 1388 vadd.i64 d27,d29,d18 |
1385 vshr.u64 d25,d19,#34 | 1389 vshr.u64 d25,d19,#34 |
1386 » vsli.64»» d24,d19,#36 | 1390 » vsli.64»d24,d19,#36 |
1387 vadd.i64 d27,d26 | 1391 vadd.i64 d27,d26 |
1388 vshr.u64 d26,d19,#39 | 1392 vshr.u64 d26,d19,#39 |
1389 vadd.i64 d28,d5 | 1393 vadd.i64 d28,d5 |
1390 » vsli.64»» d25,d19,#30 | 1394 » vsli.64»d25,d19,#30 |
1391 » veor» » d30,d19,d20 | 1395 » veor» d30,d19,d20 |
1392 » vsli.64»» d26,d19,#25 | 1396 » vsli.64»d26,d19,#25 |
1393 » veor» » d18,d24,d25 | 1397 » veor» d18,d24,d25 |
1394 » vadd.i64» d27,d28 | 1398 » vadd.i64» d27,d28 |
1395 » vbsl» » d30,d21,d20» » @ Maj(a,b,c) | 1399 » vbsl» d30,d21,d20» » @ Maj(a,b,c) |
1396 » veor» » d18,d26»» » @ Sigma0(a) | 1400 » veor» d18,d26»» » @ Sigma0(a) |
1397 vadd.i64 d22,d27 | 1401 vadd.i64 d22,d27 |
1398 vadd.i64 d30,d27 | 1402 vadd.i64 d30,d27 |
1399 @ vadd.i64 d18,d30 | 1403 @ vadd.i64 d18,d30 |
1400 vshr.u64 q12,q2,#19 | 1404 vshr.u64 q12,q2,#19 |
1401 vshr.u64 q13,q2,#61 | 1405 vshr.u64 q13,q2,#61 |
1402 » vadd.i64» d18,d30»» » @ h+=Maj from the past | 1406 » vadd.i64» d18,d30»» » @ h+=Maj from the past |
1403 vshr.u64 q15,q2,#6 | 1407 vshr.u64 q15,q2,#6 |
1404 » vsli.64»» q12,q2,#45 | 1408 » vsli.64»q12,q2,#45 |
1405 » vext.8» » q14,q3,q4,#8» @ X[i+1] | 1409 » vext.8» q14,q3,q4,#8» @ X[i+1] |
1406 » vsli.64»» q13,q2,#3 | 1410 » vsli.64»q13,q2,#3 |
1407 » veor» » q15,q12 | 1411 » veor» q15,q12 |
1408 vshr.u64 q12,q14,#1 | 1412 vshr.u64 q12,q14,#1 |
1409 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1413 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1410 vshr.u64 q13,q14,#8 | 1414 vshr.u64 q13,q14,#8 |
1411 vadd.i64 q3,q15 | 1415 vadd.i64 q3,q15 |
1412 vshr.u64 q15,q14,#7 | 1416 vshr.u64 q15,q14,#7 |
1413 » vsli.64»» q12,q14,#63 | 1417 » vsli.64»q12,q14,#63 |
1414 » vsli.64»» q13,q14,#56 | 1418 » vsli.64»q13,q14,#56 |
1415 » vext.8» » q14,q7,q0,#8» @ X[i+9] | 1419 » vext.8» q14,q7,q0,#8» @ X[i+9] |
1416 » veor» » q15,q12 | 1420 » veor» q15,q12 |
1417 vshr.u64 d24,d22,#14 @ from NEON_00_15 | 1421 vshr.u64 d24,d22,#14 @ from NEON_00_15 |
1418 vadd.i64 q3,q14 | 1422 vadd.i64 q3,q14 |
1419 vshr.u64 d25,d22,#18 @ from NEON_00_15 | 1423 vshr.u64 d25,d22,#18 @ from NEON_00_15 |
1420 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1424 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1421 vshr.u64 d26,d22,#41 @ from NEON_00_15 | 1425 vshr.u64 d26,d22,#41 @ from NEON_00_15 |
1422 vadd.i64 q3,q15 | 1426 vadd.i64 q3,q15 |
1423 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1427 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1424 » vsli.64»» d24,d22,#50 | 1428 » vsli.64»d24,d22,#50 |
1425 » vsli.64»» d25,d22,#46 | 1429 » vsli.64»d25,d22,#46 |
1426 » vmov» » d29,d22 | 1430 » vmov» d29,d22 |
1427 » vsli.64»» d26,d22,#23 | 1431 » vsli.64»d26,d22,#23 |
1428 #if 22<16 && defined(__ARMEL__) | 1432 #if 22<16 && defined(__ARMEL__) |
1429 vrev64.8 , | 1433 vrev64.8 , |
1430 #endif | 1434 #endif |
1431 » veor» » d25,d24 | 1435 » veor» d25,d24 |
1432 » vbsl» » d29,d23,d16» » @ Ch(e,f,g) | 1436 » vbsl» d29,d23,d16» » @ Ch(e,f,g) |
1433 vshr.u64 d24,d18,#28 | 1437 vshr.u64 d24,d18,#28 |
1434 » veor» » d26,d25»» » @ Sigma1(e) | 1438 » veor» d26,d25»» » @ Sigma1(e) |
1435 vadd.i64 d27,d29,d17 | 1439 vadd.i64 d27,d29,d17 |
1436 vshr.u64 d25,d18,#34 | 1440 vshr.u64 d25,d18,#34 |
1437 » vsli.64»» d24,d18,#36 | 1441 » vsli.64»d24,d18,#36 |
1438 vadd.i64 d27,d26 | 1442 vadd.i64 d27,d26 |
1439 vshr.u64 d26,d18,#39 | 1443 vshr.u64 d26,d18,#39 |
1440 vadd.i64 d28,d6 | 1444 vadd.i64 d28,d6 |
1441 » vsli.64»» d25,d18,#30 | 1445 » vsli.64»d25,d18,#30 |
1442 » veor» » d30,d18,d19 | 1446 » veor» d30,d18,d19 |
1443 » vsli.64»» d26,d18,#25 | 1447 » vsli.64»d26,d18,#25 |
1444 » veor» » d17,d24,d25 | 1448 » veor» d17,d24,d25 |
1445 » vadd.i64» d27,d28 | 1449 » vadd.i64» d27,d28 |
1446 » vbsl» » d30,d20,d19» » @ Maj(a,b,c) | 1450 » vbsl» d30,d20,d19» » @ Maj(a,b,c) |
1447 » veor» » d17,d26»» » @ Sigma0(a) | 1451 » veor» d17,d26»» » @ Sigma0(a) |
1448 vadd.i64 d21,d27 | 1452 vadd.i64 d21,d27 |
1449 vadd.i64 d30,d27 | 1453 vadd.i64 d30,d27 |
1450 @ vadd.i64 d17,d30 | 1454 @ vadd.i64 d17,d30 |
1451 vshr.u64 d24,d21,#14 @ 23 | 1455 vshr.u64 d24,d21,#14 @ 23 |
1452 #if 23<16 | 1456 #if 23<16 |
1453 » vld1.64»» {d7},[r1]!» @ handles unaligned | 1457 » vld1.64»{d7},[r1]!» @ handles unaligned |
1454 #endif | 1458 #endif |
1455 vshr.u64 d25,d21,#18 | 1459 vshr.u64 d25,d21,#18 |
1456 #if 23>0 | 1460 #if 23>0 |
1457 » vadd.i64» d17,d30»» » @ h+=Maj from the past | 1461 » vadd.i64» d17,d30»» » @ h+=Maj from the past |
1458 #endif | 1462 #endif |
1459 vshr.u64 d26,d21,#41 | 1463 vshr.u64 d26,d21,#41 |
1460 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1464 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1461 » vsli.64»» d24,d21,#50 | 1465 » vsli.64»d24,d21,#50 |
1462 » vsli.64»» d25,d21,#46 | 1466 » vsli.64»d25,d21,#46 |
1463 » vmov» » d29,d21 | 1467 » vmov» d29,d21 |
1464 » vsli.64»» d26,d21,#23 | 1468 » vsli.64»d26,d21,#23 |
1465 #if 23<16 && defined(__ARMEL__) | 1469 #if 23<16 && defined(__ARMEL__) |
1466 vrev64.8 , | 1470 vrev64.8 , |
1467 #endif | 1471 #endif |
1468 » veor» » d25,d24 | 1472 » veor» d25,d24 |
1469 » vbsl» » d29,d22,d23» » @ Ch(e,f,g) | 1473 » vbsl» d29,d22,d23» » @ Ch(e,f,g) |
1470 vshr.u64 d24,d17,#28 | 1474 vshr.u64 d24,d17,#28 |
1471 » veor» » d26,d25»» » @ Sigma1(e) | 1475 » veor» d26,d25»» » @ Sigma1(e) |
1472 vadd.i64 d27,d29,d16 | 1476 vadd.i64 d27,d29,d16 |
1473 vshr.u64 d25,d17,#34 | 1477 vshr.u64 d25,d17,#34 |
1474 » vsli.64»» d24,d17,#36 | 1478 » vsli.64»d24,d17,#36 |
1475 vadd.i64 d27,d26 | 1479 vadd.i64 d27,d26 |
1476 vshr.u64 d26,d17,#39 | 1480 vshr.u64 d26,d17,#39 |
1477 vadd.i64 d28,d7 | 1481 vadd.i64 d28,d7 |
1478 » vsli.64»» d25,d17,#30 | 1482 » vsli.64»d25,d17,#30 |
1479 » veor» » d30,d17,d18 | 1483 » veor» d30,d17,d18 |
1480 » vsli.64»» d26,d17,#25 | 1484 » vsli.64»d26,d17,#25 |
1481 » veor» » d16,d24,d25 | 1485 » veor» d16,d24,d25 |
1482 » vadd.i64» d27,d28 | 1486 » vadd.i64» d27,d28 |
1483 » vbsl» » d30,d19,d18» » @ Maj(a,b,c) | 1487 » vbsl» d30,d19,d18» » @ Maj(a,b,c) |
1484 » veor» » d16,d26»» » @ Sigma0(a) | 1488 » veor» d16,d26»» » @ Sigma0(a) |
1485 vadd.i64 d20,d27 | 1489 vadd.i64 d20,d27 |
1486 vadd.i64 d30,d27 | 1490 vadd.i64 d30,d27 |
1487 @ vadd.i64 d16,d30 | 1491 @ vadd.i64 d16,d30 |
1488 vshr.u64 q12,q3,#19 | 1492 vshr.u64 q12,q3,#19 |
1489 vshr.u64 q13,q3,#61 | 1493 vshr.u64 q13,q3,#61 |
1490 » vadd.i64» d16,d30»» » @ h+=Maj from the past | 1494 » vadd.i64» d16,d30»» » @ h+=Maj from the past |
1491 vshr.u64 q15,q3,#6 | 1495 vshr.u64 q15,q3,#6 |
1492 » vsli.64»» q12,q3,#45 | 1496 » vsli.64»q12,q3,#45 |
1493 » vext.8» » q14,q4,q5,#8» @ X[i+1] | 1497 » vext.8» q14,q4,q5,#8» @ X[i+1] |
1494 » vsli.64»» q13,q3,#3 | 1498 » vsli.64»q13,q3,#3 |
1495 » veor» » q15,q12 | 1499 » veor» q15,q12 |
1496 vshr.u64 q12,q14,#1 | 1500 vshr.u64 q12,q14,#1 |
1497 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1501 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1498 vshr.u64 q13,q14,#8 | 1502 vshr.u64 q13,q14,#8 |
1499 vadd.i64 q4,q15 | 1503 vadd.i64 q4,q15 |
1500 vshr.u64 q15,q14,#7 | 1504 vshr.u64 q15,q14,#7 |
1501 » vsli.64»» q12,q14,#63 | 1505 » vsli.64»q12,q14,#63 |
1502 » vsli.64»» q13,q14,#56 | 1506 » vsli.64»q13,q14,#56 |
1503 » vext.8» » q14,q0,q1,#8» @ X[i+9] | 1507 » vext.8» q14,q0,q1,#8» @ X[i+9] |
1504 » veor» » q15,q12 | 1508 » veor» q15,q12 |
1505 vshr.u64 d24,d20,#14 @ from NEON_00_15 | 1509 vshr.u64 d24,d20,#14 @ from NEON_00_15 |
1506 vadd.i64 q4,q14 | 1510 vadd.i64 q4,q14 |
1507 vshr.u64 d25,d20,#18 @ from NEON_00_15 | 1511 vshr.u64 d25,d20,#18 @ from NEON_00_15 |
1508 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1512 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1509 vshr.u64 d26,d20,#41 @ from NEON_00_15 | 1513 vshr.u64 d26,d20,#41 @ from NEON_00_15 |
1510 vadd.i64 q4,q15 | 1514 vadd.i64 q4,q15 |
1511 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1515 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1512 » vsli.64»» d24,d20,#50 | 1516 » vsli.64»d24,d20,#50 |
1513 » vsli.64»» d25,d20,#46 | 1517 » vsli.64»d25,d20,#46 |
1514 » vmov» » d29,d20 | 1518 » vmov» d29,d20 |
1515 » vsli.64»» d26,d20,#23 | 1519 » vsli.64»d26,d20,#23 |
1516 #if 24<16 && defined(__ARMEL__) | 1520 #if 24<16 && defined(__ARMEL__) |
1517 vrev64.8 , | 1521 vrev64.8 , |
1518 #endif | 1522 #endif |
1519 » veor» » d25,d24 | 1523 » veor» d25,d24 |
1520 » vbsl» » d29,d21,d22» » @ Ch(e,f,g) | 1524 » vbsl» d29,d21,d22» » @ Ch(e,f,g) |
1521 vshr.u64 d24,d16,#28 | 1525 vshr.u64 d24,d16,#28 |
1522 » veor» » d26,d25»» » @ Sigma1(e) | 1526 » veor» d26,d25»» » @ Sigma1(e) |
1523 vadd.i64 d27,d29,d23 | 1527 vadd.i64 d27,d29,d23 |
1524 vshr.u64 d25,d16,#34 | 1528 vshr.u64 d25,d16,#34 |
1525 » vsli.64»» d24,d16,#36 | 1529 » vsli.64»d24,d16,#36 |
1526 vadd.i64 d27,d26 | 1530 vadd.i64 d27,d26 |
1527 vshr.u64 d26,d16,#39 | 1531 vshr.u64 d26,d16,#39 |
1528 vadd.i64 d28,d8 | 1532 vadd.i64 d28,d8 |
1529 » vsli.64»» d25,d16,#30 | 1533 » vsli.64»d25,d16,#30 |
1530 » veor» » d30,d16,d17 | 1534 » veor» d30,d16,d17 |
1531 » vsli.64»» d26,d16,#25 | 1535 » vsli.64»d26,d16,#25 |
1532 » veor» » d23,d24,d25 | 1536 » veor» d23,d24,d25 |
1533 » vadd.i64» d27,d28 | 1537 » vadd.i64» d27,d28 |
1534 » vbsl» » d30,d18,d17» » @ Maj(a,b,c) | 1538 » vbsl» d30,d18,d17» » @ Maj(a,b,c) |
1535 » veor» » d23,d26»» » @ Sigma0(a) | 1539 » veor» d23,d26»» » @ Sigma0(a) |
1536 vadd.i64 d19,d27 | 1540 vadd.i64 d19,d27 |
1537 vadd.i64 d30,d27 | 1541 vadd.i64 d30,d27 |
1538 @ vadd.i64 d23,d30 | 1542 @ vadd.i64 d23,d30 |
1539 vshr.u64 d24,d19,#14 @ 25 | 1543 vshr.u64 d24,d19,#14 @ 25 |
1540 #if 25<16 | 1544 #if 25<16 |
1541 » vld1.64»» {d9},[r1]!» @ handles unaligned | 1545 » vld1.64»{d9},[r1]!» @ handles unaligned |
1542 #endif | 1546 #endif |
1543 vshr.u64 d25,d19,#18 | 1547 vshr.u64 d25,d19,#18 |
1544 #if 25>0 | 1548 #if 25>0 |
1545 » vadd.i64» d23,d30»» » @ h+=Maj from the past | 1549 » vadd.i64» d23,d30»» » @ h+=Maj from the past |
1546 #endif | 1550 #endif |
1547 vshr.u64 d26,d19,#41 | 1551 vshr.u64 d26,d19,#41 |
1548 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1552 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1549 » vsli.64»» d24,d19,#50 | 1553 » vsli.64»d24,d19,#50 |
1550 » vsli.64»» d25,d19,#46 | 1554 » vsli.64»d25,d19,#46 |
1551 » vmov» » d29,d19 | 1555 » vmov» d29,d19 |
1552 » vsli.64»» d26,d19,#23 | 1556 » vsli.64»d26,d19,#23 |
1553 #if 25<16 && defined(__ARMEL__) | 1557 #if 25<16 && defined(__ARMEL__) |
1554 vrev64.8 , | 1558 vrev64.8 , |
1555 #endif | 1559 #endif |
1556 » veor» » d25,d24 | 1560 » veor» d25,d24 |
1557 » vbsl» » d29,d20,d21» » @ Ch(e,f,g) | 1561 » vbsl» d29,d20,d21» » @ Ch(e,f,g) |
1558 vshr.u64 d24,d23,#28 | 1562 vshr.u64 d24,d23,#28 |
1559 » veor» » d26,d25»» » @ Sigma1(e) | 1563 » veor» d26,d25»» » @ Sigma1(e) |
1560 vadd.i64 d27,d29,d22 | 1564 vadd.i64 d27,d29,d22 |
1561 vshr.u64 d25,d23,#34 | 1565 vshr.u64 d25,d23,#34 |
1562 » vsli.64»» d24,d23,#36 | 1566 » vsli.64»d24,d23,#36 |
1563 vadd.i64 d27,d26 | 1567 vadd.i64 d27,d26 |
1564 vshr.u64 d26,d23,#39 | 1568 vshr.u64 d26,d23,#39 |
1565 vadd.i64 d28,d9 | 1569 vadd.i64 d28,d9 |
1566 » vsli.64»» d25,d23,#30 | 1570 » vsli.64»d25,d23,#30 |
1567 » veor» » d30,d23,d16 | 1571 » veor» d30,d23,d16 |
1568 » vsli.64»» d26,d23,#25 | 1572 » vsli.64»d26,d23,#25 |
1569 » veor» » d22,d24,d25 | 1573 » veor» d22,d24,d25 |
1570 » vadd.i64» d27,d28 | 1574 » vadd.i64» d27,d28 |
1571 » vbsl» » d30,d17,d16» » @ Maj(a,b,c) | 1575 » vbsl» d30,d17,d16» » @ Maj(a,b,c) |
1572 » veor» » d22,d26»» » @ Sigma0(a) | 1576 » veor» d22,d26»» » @ Sigma0(a) |
1573 vadd.i64 d18,d27 | 1577 vadd.i64 d18,d27 |
1574 vadd.i64 d30,d27 | 1578 vadd.i64 d30,d27 |
1575 @ vadd.i64 d22,d30 | 1579 @ vadd.i64 d22,d30 |
1576 vshr.u64 q12,q4,#19 | 1580 vshr.u64 q12,q4,#19 |
1577 vshr.u64 q13,q4,#61 | 1581 vshr.u64 q13,q4,#61 |
1578 » vadd.i64» d22,d30»» » @ h+=Maj from the past | 1582 » vadd.i64» d22,d30»» » @ h+=Maj from the past |
1579 vshr.u64 q15,q4,#6 | 1583 vshr.u64 q15,q4,#6 |
1580 » vsli.64»» q12,q4,#45 | 1584 » vsli.64»q12,q4,#45 |
1581 » vext.8» » q14,q5,q6,#8» @ X[i+1] | 1585 » vext.8» q14,q5,q6,#8» @ X[i+1] |
1582 » vsli.64»» q13,q4,#3 | 1586 » vsli.64»q13,q4,#3 |
1583 » veor» » q15,q12 | 1587 » veor» q15,q12 |
1584 vshr.u64 q12,q14,#1 | 1588 vshr.u64 q12,q14,#1 |
1585 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1589 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1586 vshr.u64 q13,q14,#8 | 1590 vshr.u64 q13,q14,#8 |
1587 vadd.i64 q5,q15 | 1591 vadd.i64 q5,q15 |
1588 vshr.u64 q15,q14,#7 | 1592 vshr.u64 q15,q14,#7 |
1589 » vsli.64»» q12,q14,#63 | 1593 » vsli.64»q12,q14,#63 |
1590 » vsli.64»» q13,q14,#56 | 1594 » vsli.64»q13,q14,#56 |
1591 » vext.8» » q14,q1,q2,#8» @ X[i+9] | 1595 » vext.8» q14,q1,q2,#8» @ X[i+9] |
1592 » veor» » q15,q12 | 1596 » veor» q15,q12 |
1593 vshr.u64 d24,d18,#14 @ from NEON_00_15 | 1597 vshr.u64 d24,d18,#14 @ from NEON_00_15 |
1594 vadd.i64 q5,q14 | 1598 vadd.i64 q5,q14 |
1595 vshr.u64 d25,d18,#18 @ from NEON_00_15 | 1599 vshr.u64 d25,d18,#18 @ from NEON_00_15 |
1596 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1600 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1597 vshr.u64 d26,d18,#41 @ from NEON_00_15 | 1601 vshr.u64 d26,d18,#41 @ from NEON_00_15 |
1598 vadd.i64 q5,q15 | 1602 vadd.i64 q5,q15 |
1599 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1603 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1600 » vsli.64»» d24,d18,#50 | 1604 » vsli.64»d24,d18,#50 |
1601 » vsli.64»» d25,d18,#46 | 1605 » vsli.64»d25,d18,#46 |
1602 » vmov» » d29,d18 | 1606 » vmov» d29,d18 |
1603 » vsli.64»» d26,d18,#23 | 1607 » vsli.64»d26,d18,#23 |
1604 #if 26<16 && defined(__ARMEL__) | 1608 #if 26<16 && defined(__ARMEL__) |
1605 vrev64.8 , | 1609 vrev64.8 , |
1606 #endif | 1610 #endif |
1607 » veor» » d25,d24 | 1611 » veor» d25,d24 |
1608 » vbsl» » d29,d19,d20» » @ Ch(e,f,g) | 1612 » vbsl» d29,d19,d20» » @ Ch(e,f,g) |
1609 vshr.u64 d24,d22,#28 | 1613 vshr.u64 d24,d22,#28 |
1610 » veor» » d26,d25»» » @ Sigma1(e) | 1614 » veor» d26,d25»» » @ Sigma1(e) |
1611 vadd.i64 d27,d29,d21 | 1615 vadd.i64 d27,d29,d21 |
1612 vshr.u64 d25,d22,#34 | 1616 vshr.u64 d25,d22,#34 |
1613 » vsli.64»» d24,d22,#36 | 1617 » vsli.64»d24,d22,#36 |
1614 vadd.i64 d27,d26 | 1618 vadd.i64 d27,d26 |
1615 vshr.u64 d26,d22,#39 | 1619 vshr.u64 d26,d22,#39 |
1616 vadd.i64 d28,d10 | 1620 vadd.i64 d28,d10 |
1617 » vsli.64»» d25,d22,#30 | 1621 » vsli.64»d25,d22,#30 |
1618 » veor» » d30,d22,d23 | 1622 » veor» d30,d22,d23 |
1619 » vsli.64»» d26,d22,#25 | 1623 » vsli.64»d26,d22,#25 |
1620 » veor» » d21,d24,d25 | 1624 » veor» d21,d24,d25 |
1621 » vadd.i64» d27,d28 | 1625 » vadd.i64» d27,d28 |
1622 » vbsl» » d30,d16,d23» » @ Maj(a,b,c) | 1626 » vbsl» d30,d16,d23» » @ Maj(a,b,c) |
1623 » veor» » d21,d26»» » @ Sigma0(a) | 1627 » veor» d21,d26»» » @ Sigma0(a) |
1624 vadd.i64 d17,d27 | 1628 vadd.i64 d17,d27 |
1625 vadd.i64 d30,d27 | 1629 vadd.i64 d30,d27 |
1626 @ vadd.i64 d21,d30 | 1630 @ vadd.i64 d21,d30 |
1627 vshr.u64 d24,d17,#14 @ 27 | 1631 vshr.u64 d24,d17,#14 @ 27 |
1628 #if 27<16 | 1632 #if 27<16 |
1629 » vld1.64»» {d11},[r1]!» @ handles unaligned | 1633 » vld1.64»{d11},[r1]!» @ handles unaligned |
1630 #endif | 1634 #endif |
1631 vshr.u64 d25,d17,#18 | 1635 vshr.u64 d25,d17,#18 |
1632 #if 27>0 | 1636 #if 27>0 |
1633 » vadd.i64» d21,d30»» » @ h+=Maj from the past | 1637 » vadd.i64» d21,d30»» » @ h+=Maj from the past |
1634 #endif | 1638 #endif |
1635 vshr.u64 d26,d17,#41 | 1639 vshr.u64 d26,d17,#41 |
1636 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1640 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1637 » vsli.64»» d24,d17,#50 | 1641 » vsli.64»d24,d17,#50 |
1638 » vsli.64»» d25,d17,#46 | 1642 » vsli.64»d25,d17,#46 |
1639 » vmov» » d29,d17 | 1643 » vmov» d29,d17 |
1640 » vsli.64»» d26,d17,#23 | 1644 » vsli.64»d26,d17,#23 |
1641 #if 27<16 && defined(__ARMEL__) | 1645 #if 27<16 && defined(__ARMEL__) |
1642 vrev64.8 , | 1646 vrev64.8 , |
1643 #endif | 1647 #endif |
1644 » veor» » d25,d24 | 1648 » veor» d25,d24 |
1645 » vbsl» » d29,d18,d19» » @ Ch(e,f,g) | 1649 » vbsl» d29,d18,d19» » @ Ch(e,f,g) |
1646 vshr.u64 d24,d21,#28 | 1650 vshr.u64 d24,d21,#28 |
1647 » veor» » d26,d25»» » @ Sigma1(e) | 1651 » veor» d26,d25»» » @ Sigma1(e) |
1648 vadd.i64 d27,d29,d20 | 1652 vadd.i64 d27,d29,d20 |
1649 vshr.u64 d25,d21,#34 | 1653 vshr.u64 d25,d21,#34 |
1650 » vsli.64»» d24,d21,#36 | 1654 » vsli.64»d24,d21,#36 |
1651 vadd.i64 d27,d26 | 1655 vadd.i64 d27,d26 |
1652 vshr.u64 d26,d21,#39 | 1656 vshr.u64 d26,d21,#39 |
1653 vadd.i64 d28,d11 | 1657 vadd.i64 d28,d11 |
1654 » vsli.64»» d25,d21,#30 | 1658 » vsli.64»d25,d21,#30 |
1655 » veor» » d30,d21,d22 | 1659 » veor» d30,d21,d22 |
1656 » vsli.64»» d26,d21,#25 | 1660 » vsli.64»d26,d21,#25 |
1657 » veor» » d20,d24,d25 | 1661 » veor» d20,d24,d25 |
1658 » vadd.i64» d27,d28 | 1662 » vadd.i64» d27,d28 |
1659 » vbsl» » d30,d23,d22» » @ Maj(a,b,c) | 1663 » vbsl» d30,d23,d22» » @ Maj(a,b,c) |
1660 » veor» » d20,d26»» » @ Sigma0(a) | 1664 » veor» d20,d26»» » @ Sigma0(a) |
1661 vadd.i64 d16,d27 | 1665 vadd.i64 d16,d27 |
1662 vadd.i64 d30,d27 | 1666 vadd.i64 d30,d27 |
1663 @ vadd.i64 d20,d30 | 1667 @ vadd.i64 d20,d30 |
1664 vshr.u64 q12,q5,#19 | 1668 vshr.u64 q12,q5,#19 |
1665 vshr.u64 q13,q5,#61 | 1669 vshr.u64 q13,q5,#61 |
1666 » vadd.i64» d20,d30»» » @ h+=Maj from the past | 1670 » vadd.i64» d20,d30»» » @ h+=Maj from the past |
1667 vshr.u64 q15,q5,#6 | 1671 vshr.u64 q15,q5,#6 |
1668 » vsli.64»» q12,q5,#45 | 1672 » vsli.64»q12,q5,#45 |
1669 » vext.8» » q14,q6,q7,#8» @ X[i+1] | 1673 » vext.8» q14,q6,q7,#8» @ X[i+1] |
1670 » vsli.64»» q13,q5,#3 | 1674 » vsli.64»q13,q5,#3 |
1671 » veor» » q15,q12 | 1675 » veor» q15,q12 |
1672 vshr.u64 q12,q14,#1 | 1676 vshr.u64 q12,q14,#1 |
1673 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1677 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1674 vshr.u64 q13,q14,#8 | 1678 vshr.u64 q13,q14,#8 |
1675 vadd.i64 q6,q15 | 1679 vadd.i64 q6,q15 |
1676 vshr.u64 q15,q14,#7 | 1680 vshr.u64 q15,q14,#7 |
1677 » vsli.64»» q12,q14,#63 | 1681 » vsli.64»q12,q14,#63 |
1678 » vsli.64»» q13,q14,#56 | 1682 » vsli.64»q13,q14,#56 |
1679 » vext.8» » q14,q2,q3,#8» @ X[i+9] | 1683 » vext.8» q14,q2,q3,#8» @ X[i+9] |
1680 » veor» » q15,q12 | 1684 » veor» q15,q12 |
1681 vshr.u64 d24,d16,#14 @ from NEON_00_15 | 1685 vshr.u64 d24,d16,#14 @ from NEON_00_15 |
1682 vadd.i64 q6,q14 | 1686 vadd.i64 q6,q14 |
1683 vshr.u64 d25,d16,#18 @ from NEON_00_15 | 1687 vshr.u64 d25,d16,#18 @ from NEON_00_15 |
1684 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1688 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1685 vshr.u64 d26,d16,#41 @ from NEON_00_15 | 1689 vshr.u64 d26,d16,#41 @ from NEON_00_15 |
1686 vadd.i64 q6,q15 | 1690 vadd.i64 q6,q15 |
1687 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1691 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1688 » vsli.64»» d24,d16,#50 | 1692 » vsli.64»d24,d16,#50 |
1689 » vsli.64»» d25,d16,#46 | 1693 » vsli.64»d25,d16,#46 |
1690 » vmov» » d29,d16 | 1694 » vmov» d29,d16 |
1691 » vsli.64»» d26,d16,#23 | 1695 » vsli.64»d26,d16,#23 |
1692 #if 28<16 && defined(__ARMEL__) | 1696 #if 28<16 && defined(__ARMEL__) |
1693 vrev64.8 , | 1697 vrev64.8 , |
1694 #endif | 1698 #endif |
1695 » veor» » d25,d24 | 1699 » veor» d25,d24 |
1696 » vbsl» » d29,d17,d18» » @ Ch(e,f,g) | 1700 » vbsl» d29,d17,d18» » @ Ch(e,f,g) |
1697 vshr.u64 d24,d20,#28 | 1701 vshr.u64 d24,d20,#28 |
1698 » veor» » d26,d25»» » @ Sigma1(e) | 1702 » veor» d26,d25»» » @ Sigma1(e) |
1699 vadd.i64 d27,d29,d19 | 1703 vadd.i64 d27,d29,d19 |
1700 vshr.u64 d25,d20,#34 | 1704 vshr.u64 d25,d20,#34 |
1701 » vsli.64»» d24,d20,#36 | 1705 » vsli.64»d24,d20,#36 |
1702 vadd.i64 d27,d26 | 1706 vadd.i64 d27,d26 |
1703 vshr.u64 d26,d20,#39 | 1707 vshr.u64 d26,d20,#39 |
1704 vadd.i64 d28,d12 | 1708 vadd.i64 d28,d12 |
1705 » vsli.64»» d25,d20,#30 | 1709 » vsli.64»d25,d20,#30 |
1706 » veor» » d30,d20,d21 | 1710 » veor» d30,d20,d21 |
1707 » vsli.64»» d26,d20,#25 | 1711 » vsli.64»d26,d20,#25 |
1708 » veor» » d19,d24,d25 | 1712 » veor» d19,d24,d25 |
1709 » vadd.i64» d27,d28 | 1713 » vadd.i64» d27,d28 |
1710 » vbsl» » d30,d22,d21» » @ Maj(a,b,c) | 1714 » vbsl» d30,d22,d21» » @ Maj(a,b,c) |
1711 » veor» » d19,d26»» » @ Sigma0(a) | 1715 » veor» d19,d26»» » @ Sigma0(a) |
1712 vadd.i64 d23,d27 | 1716 vadd.i64 d23,d27 |
1713 vadd.i64 d30,d27 | 1717 vadd.i64 d30,d27 |
1714 @ vadd.i64 d19,d30 | 1718 @ vadd.i64 d19,d30 |
1715 vshr.u64 d24,d23,#14 @ 29 | 1719 vshr.u64 d24,d23,#14 @ 29 |
1716 #if 29<16 | 1720 #if 29<16 |
1717 » vld1.64»» {d13},[r1]!» @ handles unaligned | 1721 » vld1.64»{d13},[r1]!» @ handles unaligned |
1718 #endif | 1722 #endif |
1719 vshr.u64 d25,d23,#18 | 1723 vshr.u64 d25,d23,#18 |
1720 #if 29>0 | 1724 #if 29>0 |
1721 » vadd.i64» d19,d30»» » @ h+=Maj from the past | 1725 » vadd.i64» d19,d30»» » @ h+=Maj from the past |
1722 #endif | 1726 #endif |
1723 vshr.u64 d26,d23,#41 | 1727 vshr.u64 d26,d23,#41 |
1724 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1728 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1725 » vsli.64»» d24,d23,#50 | 1729 » vsli.64»d24,d23,#50 |
1726 » vsli.64»» d25,d23,#46 | 1730 » vsli.64»d25,d23,#46 |
1727 » vmov» » d29,d23 | 1731 » vmov» d29,d23 |
1728 » vsli.64»» d26,d23,#23 | 1732 » vsli.64»d26,d23,#23 |
1729 #if 29<16 && defined(__ARMEL__) | 1733 #if 29<16 && defined(__ARMEL__) |
1730 vrev64.8 , | 1734 vrev64.8 , |
1731 #endif | 1735 #endif |
1732 » veor» » d25,d24 | 1736 » veor» d25,d24 |
1733 » vbsl» » d29,d16,d17» » @ Ch(e,f,g) | 1737 » vbsl» d29,d16,d17» » @ Ch(e,f,g) |
1734 vshr.u64 d24,d19,#28 | 1738 vshr.u64 d24,d19,#28 |
1735 » veor» » d26,d25»» » @ Sigma1(e) | 1739 » veor» d26,d25»» » @ Sigma1(e) |
1736 vadd.i64 d27,d29,d18 | 1740 vadd.i64 d27,d29,d18 |
1737 vshr.u64 d25,d19,#34 | 1741 vshr.u64 d25,d19,#34 |
1738 » vsli.64»» d24,d19,#36 | 1742 » vsli.64»d24,d19,#36 |
1739 vadd.i64 d27,d26 | 1743 vadd.i64 d27,d26 |
1740 vshr.u64 d26,d19,#39 | 1744 vshr.u64 d26,d19,#39 |
1741 vadd.i64 d28,d13 | 1745 vadd.i64 d28,d13 |
1742 » vsli.64»» d25,d19,#30 | 1746 » vsli.64»d25,d19,#30 |
1743 » veor» » d30,d19,d20 | 1747 » veor» d30,d19,d20 |
1744 » vsli.64»» d26,d19,#25 | 1748 » vsli.64»d26,d19,#25 |
1745 » veor» » d18,d24,d25 | 1749 » veor» d18,d24,d25 |
1746 » vadd.i64» d27,d28 | 1750 » vadd.i64» d27,d28 |
1747 » vbsl» » d30,d21,d20» » @ Maj(a,b,c) | 1751 » vbsl» d30,d21,d20» » @ Maj(a,b,c) |
1748 » veor» » d18,d26»» » @ Sigma0(a) | 1752 » veor» d18,d26»» » @ Sigma0(a) |
1749 vadd.i64 d22,d27 | 1753 vadd.i64 d22,d27 |
1750 vadd.i64 d30,d27 | 1754 vadd.i64 d30,d27 |
1751 @ vadd.i64 d18,d30 | 1755 @ vadd.i64 d18,d30 |
1752 vshr.u64 q12,q6,#19 | 1756 vshr.u64 q12,q6,#19 |
1753 vshr.u64 q13,q6,#61 | 1757 vshr.u64 q13,q6,#61 |
1754 » vadd.i64» d18,d30»» » @ h+=Maj from the past | 1758 » vadd.i64» d18,d30»» » @ h+=Maj from the past |
1755 vshr.u64 q15,q6,#6 | 1759 vshr.u64 q15,q6,#6 |
1756 » vsli.64»» q12,q6,#45 | 1760 » vsli.64»q12,q6,#45 |
1757 » vext.8» » q14,q7,q0,#8» @ X[i+1] | 1761 » vext.8» q14,q7,q0,#8» @ X[i+1] |
1758 » vsli.64»» q13,q6,#3 | 1762 » vsli.64»q13,q6,#3 |
1759 » veor» » q15,q12 | 1763 » veor» q15,q12 |
1760 vshr.u64 q12,q14,#1 | 1764 vshr.u64 q12,q14,#1 |
1761 » veor» » q15,q13»» » » @ sigma1(X[i+14]) | 1765 » veor» q15,q13»» » » @ sigma1(X[i+14]) |
1762 vshr.u64 q13,q14,#8 | 1766 vshr.u64 q13,q14,#8 |
1763 vadd.i64 q7,q15 | 1767 vadd.i64 q7,q15 |
1764 vshr.u64 q15,q14,#7 | 1768 vshr.u64 q15,q14,#7 |
1765 » vsli.64»» q12,q14,#63 | 1769 » vsli.64»q12,q14,#63 |
1766 » vsli.64»» q13,q14,#56 | 1770 » vsli.64»q13,q14,#56 |
1767 » vext.8» » q14,q3,q4,#8» @ X[i+9] | 1771 » vext.8» q14,q3,q4,#8» @ X[i+9] |
1768 » veor» » q15,q12 | 1772 » veor» q15,q12 |
1769 vshr.u64 d24,d22,#14 @ from NEON_00_15 | 1773 vshr.u64 d24,d22,#14 @ from NEON_00_15 |
1770 vadd.i64 q7,q14 | 1774 vadd.i64 q7,q14 |
1771 vshr.u64 d25,d22,#18 @ from NEON_00_15 | 1775 vshr.u64 d25,d22,#18 @ from NEON_00_15 |
1772 » veor» » q15,q13»» » » @ sigma0(X[i+1]) | 1776 » veor» q15,q13»» » » @ sigma0(X[i+1]) |
1773 vshr.u64 d26,d22,#41 @ from NEON_00_15 | 1777 vshr.u64 d26,d22,#41 @ from NEON_00_15 |
1774 vadd.i64 q7,q15 | 1778 vadd.i64 q7,q15 |
1775 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1779 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1776 » vsli.64»» d24,d22,#50 | 1780 » vsli.64»d24,d22,#50 |
1777 » vsli.64»» d25,d22,#46 | 1781 » vsli.64»d25,d22,#46 |
1778 » vmov» » d29,d22 | 1782 » vmov» d29,d22 |
1779 » vsli.64»» d26,d22,#23 | 1783 » vsli.64»d26,d22,#23 |
1780 #if 30<16 && defined(__ARMEL__) | 1784 #if 30<16 && defined(__ARMEL__) |
1781 vrev64.8 , | 1785 vrev64.8 , |
1782 #endif | 1786 #endif |
1783 » veor» » d25,d24 | 1787 » veor» d25,d24 |
1784 » vbsl» » d29,d23,d16» » @ Ch(e,f,g) | 1788 » vbsl» d29,d23,d16» » @ Ch(e,f,g) |
1785 vshr.u64 d24,d18,#28 | 1789 vshr.u64 d24,d18,#28 |
1786 » veor» » d26,d25»» » @ Sigma1(e) | 1790 » veor» d26,d25»» » @ Sigma1(e) |
1787 vadd.i64 d27,d29,d17 | 1791 vadd.i64 d27,d29,d17 |
1788 vshr.u64 d25,d18,#34 | 1792 vshr.u64 d25,d18,#34 |
1789 » vsli.64»» d24,d18,#36 | 1793 » vsli.64»d24,d18,#36 |
1790 vadd.i64 d27,d26 | 1794 vadd.i64 d27,d26 |
1791 vshr.u64 d26,d18,#39 | 1795 vshr.u64 d26,d18,#39 |
1792 vadd.i64 d28,d14 | 1796 vadd.i64 d28,d14 |
1793 » vsli.64»» d25,d18,#30 | 1797 » vsli.64»d25,d18,#30 |
1794 » veor» » d30,d18,d19 | 1798 » veor» d30,d18,d19 |
1795 » vsli.64»» d26,d18,#25 | 1799 » vsli.64»d26,d18,#25 |
1796 » veor» » d17,d24,d25 | 1800 » veor» d17,d24,d25 |
1797 » vadd.i64» d27,d28 | 1801 » vadd.i64» d27,d28 |
1798 » vbsl» » d30,d20,d19» » @ Maj(a,b,c) | 1802 » vbsl» d30,d20,d19» » @ Maj(a,b,c) |
1799 » veor» » d17,d26»» » @ Sigma0(a) | 1803 » veor» d17,d26»» » @ Sigma0(a) |
1800 vadd.i64 d21,d27 | 1804 vadd.i64 d21,d27 |
1801 vadd.i64 d30,d27 | 1805 vadd.i64 d30,d27 |
1802 @ vadd.i64 d17,d30 | 1806 @ vadd.i64 d17,d30 |
1803 vshr.u64 d24,d21,#14 @ 31 | 1807 vshr.u64 d24,d21,#14 @ 31 |
1804 #if 31<16 | 1808 #if 31<16 |
1805 » vld1.64»» {d15},[r1]!» @ handles unaligned | 1809 » vld1.64»{d15},[r1]!» @ handles unaligned |
1806 #endif | 1810 #endif |
1807 vshr.u64 d25,d21,#18 | 1811 vshr.u64 d25,d21,#18 |
1808 #if 31>0 | 1812 #if 31>0 |
1809 » vadd.i64» d17,d30»» » @ h+=Maj from the past | 1813 » vadd.i64» d17,d30»» » @ h+=Maj from the past |
1810 #endif | 1814 #endif |
1811 vshr.u64 d26,d21,#41 | 1815 vshr.u64 d26,d21,#41 |
1812 » vld1.64»» {d28},[r3,:64]!»@ K[i++] | 1816 » vld1.64»{d28},[r3,:64]!»@ K[i++] |
1813 » vsli.64»» d24,d21,#50 | 1817 » vsli.64»d24,d21,#50 |
1814 » vsli.64»» d25,d21,#46 | 1818 » vsli.64»d25,d21,#46 |
1815 » vmov» » d29,d21 | 1819 » vmov» d29,d21 |
1816 » vsli.64»» d26,d21,#23 | 1820 » vsli.64»d26,d21,#23 |
1817 #if 31<16 && defined(__ARMEL__) | 1821 #if 31<16 && defined(__ARMEL__) |
1818 vrev64.8 , | 1822 vrev64.8 , |
1819 #endif | 1823 #endif |
1820 » veor» » d25,d24 | 1824 » veor» d25,d24 |
1821 » vbsl» » d29,d22,d23» » @ Ch(e,f,g) | 1825 » vbsl» d29,d22,d23» » @ Ch(e,f,g) |
1822 vshr.u64 d24,d17,#28 | 1826 vshr.u64 d24,d17,#28 |
1823 » veor» » d26,d25»» » @ Sigma1(e) | 1827 » veor» d26,d25»» » @ Sigma1(e) |
1824 vadd.i64 d27,d29,d16 | 1828 vadd.i64 d27,d29,d16 |
1825 vshr.u64 d25,d17,#34 | 1829 vshr.u64 d25,d17,#34 |
1826 » vsli.64»» d24,d17,#36 | 1830 » vsli.64»d24,d17,#36 |
1827 vadd.i64 d27,d26 | 1831 vadd.i64 d27,d26 |
1828 vshr.u64 d26,d17,#39 | 1832 vshr.u64 d26,d17,#39 |
1829 vadd.i64 d28,d15 | 1833 vadd.i64 d28,d15 |
1830 » vsli.64»» d25,d17,#30 | 1834 » vsli.64»d25,d17,#30 |
1831 » veor» » d30,d17,d18 | 1835 » veor» d30,d17,d18 |
1832 » vsli.64»» d26,d17,#25 | 1836 » vsli.64»d26,d17,#25 |
1833 » veor» » d16,d24,d25 | 1837 » veor» d16,d24,d25 |
1834 » vadd.i64» d27,d28 | 1838 » vadd.i64» d27,d28 |
1835 » vbsl» » d30,d19,d18» » @ Maj(a,b,c) | 1839 » vbsl» d30,d19,d18» » @ Maj(a,b,c) |
1836 » veor» » d16,d26»» » @ Sigma0(a) | 1840 » veor» d16,d26»» » @ Sigma0(a) |
1837 vadd.i64 d20,d27 | 1841 vadd.i64 d20,d27 |
1838 vadd.i64 d30,d27 | 1842 vadd.i64 d30,d27 |
1839 @ vadd.i64 d16,d30 | 1843 @ vadd.i64 d16,d30 |
1840 » bne» » .L16_79_neon | 1844 » bne» .L16_79_neon |
1841 | 1845 |
1842 » vadd.i64» d16,d30»» @ h+=Maj from the past | 1846 » vadd.i64» d16,d30»» @ h+=Maj from the past |
1843 » vldmia» » r0,{d24-d31}» @ load context to temp | 1847 » vldmia» r0,{d24,d25,d26,d27,d28,d29,d30,d31}» @ load context to temp |
1844 vadd.i64 q8,q12 @ vectorized accumulate | 1848 vadd.i64 q8,q12 @ vectorized accumulate |
1845 vadd.i64 q9,q13 | 1849 vadd.i64 q9,q13 |
1846 vadd.i64 q10,q14 | 1850 vadd.i64 q10,q14 |
1847 vadd.i64 q11,q15 | 1851 vadd.i64 q11,q15 |
1848 » vstmia» » r0,{d16-d23}» @ save context | 1852 » vstmia» r0,{d16,d17,d18,d19,d20,d21,d22,d23}» @ save context |
1849 » teq» » r1,r2 | 1853 » teq» r1,r2 |
1850 » sub» » r3,#640»@ rewind K512 | 1854 » sub» r3,#640»@ rewind K512 |
1851 » bne» » .Loop_neon | 1855 » bne» .Loop_neon |
1852 | 1856 |
1853 VFP_ABI_POP | 1857 VFP_ABI_POP |
1854 bx lr @ .word 0xe12fff1e | 1858 bx lr @ .word 0xe12fff1e |
1855 .size sha512_block_data_order_neon,.-sha512_block_data_order_neon | 1859 .size sha512_block_data_order_neon,.-sha512_block_data_order_neon |
1856 #endif | 1860 #endif |
1857 .asciz» "SHA512 block transform for ARMv4/NEON, CRYPTOGAMS by <appro@openssl.org
>" | 1861 .byte» 83,72,65,53,49,50,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,52,47,78,69,79,78,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,1
11,114,103,62,0 |
| 1862 .align» 2 |
1858 .align 2 | 1863 .align 2 |
1859 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 1864 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
1860 .comm OPENSSL_armcap_P,4,4 | 1865 .comm OPENSSL_armcap_P,4,4 |
1861 .hidden OPENSSL_armcap_P | 1866 .hidden OPENSSL_armcap_P |
1862 #endif | 1867 #endif |
OLD | NEW |