| OLD | NEW |
| 1 #if defined(__arm__) | |
| 2 #include "arm_arch.h" | 1 #include "arm_arch.h" |
| 3 #ifdef __ARMEL__ | 2 #ifdef __ARMEL__ |
| 4 # define LO 0 | 3 # define LO 0 |
| 5 # define HI 4 | 4 # define HI 4 |
| 6 # define WORD64(hi0,lo0,hi1,lo1) .word lo0,hi0, lo1,hi1 | 5 # define WORD64(hi0,lo0,hi1,lo1) .word lo0,hi0, lo1,hi1 |
| 7 #else | 6 #else |
| 8 # define HI 0 | 7 # define HI 0 |
| 9 # define LO 4 | 8 # define LO 4 |
| 10 # define WORD64(hi0,lo0,hi1,lo1) .word hi0,lo0, hi1,lo1 | 9 # define WORD64(hi0,lo0,hi1,lo1) .word hi0,lo0, hi1,lo1 |
| 11 #endif | 10 #endif |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 WORD64(0xbef9a3f7,0xb2c67915, 0xc67178f2,0xe372532b) | 48 WORD64(0xbef9a3f7,0xb2c67915, 0xc67178f2,0xe372532b) |
| 50 WORD64(0xca273ece,0xea26619c, 0xd186b8c7,0x21c0c207) | 49 WORD64(0xca273ece,0xea26619c, 0xd186b8c7,0x21c0c207) |
| 51 WORD64(0xeada7dd6,0xcde0eb1e, 0xf57d4f7f,0xee6ed178) | 50 WORD64(0xeada7dd6,0xcde0eb1e, 0xf57d4f7f,0xee6ed178) |
| 52 WORD64(0x06f067aa,0x72176fba, 0x0a637dc5,0xa2c898a6) | 51 WORD64(0x06f067aa,0x72176fba, 0x0a637dc5,0xa2c898a6) |
| 53 WORD64(0x113f9804,0xbef90dae, 0x1b710b35,0x131c471b) | 52 WORD64(0x113f9804,0xbef90dae, 0x1b710b35,0x131c471b) |
| 54 WORD64(0x28db77f5,0x23047d84, 0x32caab7b,0x40c72493) | 53 WORD64(0x28db77f5,0x23047d84, 0x32caab7b,0x40c72493) |
| 55 WORD64(0x3c9ebe0a,0x15c9bebc, 0x431d67c4,0x9c100d4c) | 54 WORD64(0x3c9ebe0a,0x15c9bebc, 0x431d67c4,0x9c100d4c) |
| 56 WORD64(0x4cc5d4be,0xcb3e42b6, 0x597f299c,0xfc657e2a) | 55 WORD64(0x4cc5d4be,0xcb3e42b6, 0x597f299c,0xfc657e2a) |
| 57 WORD64(0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817) | 56 WORD64(0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817) |
| 58 .size K512,.-K512 | 57 .size K512,.-K512 |
| 58 #if __ARM_MAX_ARCH__>=7 |
| 59 .LOPENSSL_armcap: | 59 .LOPENSSL_armcap: |
| 60 .word OPENSSL_armcap_P-sha512_block_data_order | 60 .word OPENSSL_armcap_P-sha512_block_data_order |
| 61 .skip 32-4 | 61 .skip 32-4 |
| 62 #else |
| 63 .skip 32 |
| 64 #endif |
| 62 | 65 |
| 63 .global sha512_block_data_order | 66 .global sha512_block_data_order |
| 64 .hidden sha512_block_data_order | |
| 65 .type sha512_block_data_order,%function | 67 .type sha512_block_data_order,%function |
| 66 sha512_block_data_order: | 68 sha512_block_data_order: |
| 67 sub r3,pc,#8 @ sha512_block_data_order | 69 sub r3,pc,#8 @ sha512_block_data_order |
| 68 add r2,r1,r2,lsl#7 @ len to point at the end of inp | 70 add r2,r1,r2,lsl#7 @ len to point at the end of inp |
| 69 #if __ARM_ARCH__>=7 | 71 #if __ARM_MAX_ARCH__>=7 |
| 70 ldr r12,.LOPENSSL_armcap | 72 ldr r12,.LOPENSSL_armcap |
| 71 ldr r12,[r3,r12] @ OPENSSL_armcap_P | 73 ldr r12,[r3,r12] @ OPENSSL_armcap_P |
| 72 tst r12,#1 | 74 tst r12,#1 |
| 73 bne .LNEON | 75 bne .LNEON |
| 74 #endif | 76 #endif |
| 75 stmdb sp!,{r4-r12,lr} | 77 stmdb sp!,{r4-r12,lr} |
| 76 sub r14,r3,#672 @ K512 | 78 sub r14,r3,#672 @ K512 |
| 77 sub sp,sp,#9*8 | 79 sub sp,sp,#9*8 |
| 78 | 80 |
| 79 ldr r7,[r0,#32+LO] | 81 ldr r7,[r0,#32+LO] |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 | 434 |
| 433 add sp,sp,#8*9 @ destroy frame | 435 add sp,sp,#8*9 @ destroy frame |
| 434 #if __ARM_ARCH__>=5 | 436 #if __ARM_ARCH__>=5 |
| 435 ldmia sp!,{r4-r12,pc} | 437 ldmia sp!,{r4-r12,pc} |
| 436 #else | 438 #else |
| 437 ldmia sp!,{r4-r12,lr} | 439 ldmia sp!,{r4-r12,lr} |
| 438 tst lr,#1 | 440 tst lr,#1 |
| 439 moveq pc,lr @ be binary compatible with V4, yet | 441 moveq pc,lr @ be binary compatible with V4, yet |
| 440 .word 0xe12fff1e @ interoperable with Thumb ISA:-
) | 442 .word 0xe12fff1e @ interoperable with Thumb ISA:-
) |
| 441 #endif | 443 #endif |
| 442 #if __ARM_ARCH__>=7 | 444 #if __ARM_MAX_ARCH__>=7 |
| 445 .arch» armv7-a |
| 443 .fpu neon | 446 .fpu neon |
| 444 | 447 |
| 445 .align 4 | 448 .align 4 |
| 446 .LNEON: | 449 .LNEON: |
| 447 dmb @ errata #451034 on early Cortex A8 | 450 dmb @ errata #451034 on early Cortex A8 |
| 448 vstmdb sp!,{d8-d15} @ ABI specification says so | 451 vstmdb sp!,{d8-d15} @ ABI specification says so |
| 449 sub r3,r3,#672 @ K512 | 452 sub r3,r3,#672 @ K512 |
| 450 vldmia r0,{d16-d23} @ load context | 453 vldmia r0,{d16-d23} @ load context |
| 451 .Loop_neon: | 454 .Loop_neon: |
| 452 vshr.u64 d24,d20,#14 @ 0 | 455 vshr.u64 d24,d20,#14 @ 0 |
| (...skipping 1302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1755 vadd.i64 q8,q12 @ vectorized accumulate | 1758 vadd.i64 q8,q12 @ vectorized accumulate |
| 1756 vadd.i64 q9,q13 | 1759 vadd.i64 q9,q13 |
| 1757 vadd.i64 q10,q14 | 1760 vadd.i64 q10,q14 |
| 1758 vadd.i64 q11,q15 | 1761 vadd.i64 q11,q15 |
| 1759 vstmia r0,{d16-d23} @ save context | 1762 vstmia r0,{d16-d23} @ save context |
| 1760 teq r1,r2 | 1763 teq r1,r2 |
| 1761 sub r3,#640 @ rewind K512 | 1764 sub r3,#640 @ rewind K512 |
| 1762 bne .Loop_neon | 1765 bne .Loop_neon |
| 1763 | 1766 |
| 1764 vldmia sp!,{d8-d15} @ epilogue | 1767 vldmia sp!,{d8-d15} @ epilogue |
| 1765 » .word» 0xe12fff1e | 1768 » bx» lr» » » » @ .word»0xe12fff1e |
| 1766 #endif | 1769 #endif |
| 1767 .size sha512_block_data_order,.-sha512_block_data_order | 1770 .size sha512_block_data_order,.-sha512_block_data_order |
| 1768 .asciz "SHA512 block transform for ARMv4/NEON, CRYPTOGAMS by <appro@openssl.org
>" | 1771 .asciz "SHA512 block transform for ARMv4/NEON, CRYPTOGAMS by <appro@openssl.org
>" |
| 1769 .align 2 | 1772 .align 2 |
| 1773 #if __ARM_MAX_ARCH__>=7 |
| 1770 .comm OPENSSL_armcap_P,4,4 | 1774 .comm OPENSSL_armcap_P,4,4 |
| 1771 | |
| 1772 #endif | 1775 #endif |
| OLD | NEW |