| 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 |