| OLD | NEW |
| 1 #if defined(__arm__) | 1 #if defined(__arm__) |
| 2 | 2 |
| 3 @ ==================================================================== | 3 @ ==================================================================== |
| 4 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL | 4 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL |
| 5 @ project. The module is, however, dual licensed under OpenSSL and | 5 @ project. The module is, however, dual licensed under OpenSSL and |
| 6 @ CRYPTOGAMS licenses depending on where you obtain it. For further | 6 @ CRYPTOGAMS licenses depending on where you obtain it. For further |
| 7 @ details see http://www.openssl.org/~appro/cryptogams/. | 7 @ details see http://www.openssl.org/~appro/cryptogams/. |
| 8 @ | 8 @ |
| 9 @ Permission to use under GPL terms is granted. | 9 @ Permission to use under GPL terms is granted. |
| 10 @ ==================================================================== | 10 @ ==================================================================== |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 @ for further details. On side note Cortex-A15 processes one byte in | 40 @ for further details. On side note Cortex-A15 processes one byte in |
| 41 @ 16 cycles. | 41 @ 16 cycles. |
| 42 | 42 |
| 43 @ Byte order [in]dependence. ========================================= | 43 @ Byte order [in]dependence. ========================================= |
| 44 @ | 44 @ |
| 45 @ Originally caller was expected to maintain specific *dword* order in | 45 @ Originally caller was expected to maintain specific *dword* order in |
| 46 @ h[0-7], namely with most significant dword at *lower* address, which | 46 @ h[0-7], namely with most significant dword at *lower* address, which |
| 47 @ was reflected in below two parameters as 0 and 4. Now caller is | 47 @ was reflected in below two parameters as 0 and 4. Now caller is |
| 48 @ expected to maintain native byte order for whole 64-bit values. | 48 @ expected to maintain native byte order for whole 64-bit values. |
| 49 #ifndef __KERNEL__ | 49 #ifndef __KERNEL__ |
| 50 # include <openssl/arm_arch.h> | 50 # include "arm_arch.h" |
| 51 # define VFP_ABI_PUSH vstmdb sp!,{d8-d15} | 51 # define VFP_ABI_PUSH vstmdb sp!,{d8-d15} |
| 52 # define VFP_ABI_POP vldmia sp!,{d8-d15} | 52 # define VFP_ABI_POP vldmia sp!,{d8-d15} |
| 53 #else | 53 #else |
| 54 # define __ARM_ARCH__ __LINUX_ARM_ARCH__ | 54 # define __ARM_ARCH__ __LINUX_ARM_ARCH__ |
| 55 # define __ARM_MAX_ARCH__ 7 | 55 # define __ARM_MAX_ARCH__ 7 |
| 56 # define VFP_ABI_PUSH | 56 # define VFP_ABI_PUSH |
| 57 # define VFP_ABI_POP | 57 # define VFP_ABI_POP |
| 58 #endif | 58 #endif |
| 59 | 59 |
| 60 #ifdef __ARMEL__ | 60 #ifdef __ARMEL__ |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 .size K512,.-K512 | 126 .size K512,.-K512 |
| 127 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 127 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
| 128 .LOPENSSL_armcap: | 128 .LOPENSSL_armcap: |
| 129 .word OPENSSL_armcap_P-.Lsha512_block_data_order | 129 .word OPENSSL_armcap_P-.Lsha512_block_data_order |
| 130 .skip 32-4 | 130 .skip 32-4 |
| 131 #else | 131 #else |
| 132 .skip 32 | 132 .skip 32 |
| 133 #endif | 133 #endif |
| 134 | 134 |
| 135 .globl sha512_block_data_order | 135 .globl sha512_block_data_order |
| 136 .hidden sha512_block_data_order | |
| 137 .type sha512_block_data_order,%function | 136 .type sha512_block_data_order,%function |
| 138 sha512_block_data_order: | 137 sha512_block_data_order: |
| 139 .Lsha512_block_data_order: | 138 .Lsha512_block_data_order: |
| 140 #if __ARM_ARCH__<7 | 139 #if __ARM_ARCH__<7 |
| 141 sub r3,pc,#8 @ sha512_block_data_order | 140 sub r3,pc,#8 @ sha512_block_data_order |
| 142 #else | 141 #else |
| 143 adr r3,sha512_block_data_order | 142 adr r3,sha512_block_data_order |
| 144 #endif | 143 #endif |
| 145 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 144 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
| 146 ldr r12,.LOPENSSL_armcap | 145 ldr r12,.LOPENSSL_armcap |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 tst lr,#1 | 526 tst lr,#1 |
| 528 moveq pc,lr @ be binary compatible with V4, yet | 527 moveq pc,lr @ be binary compatible with V4, yet |
| 529 .word 0xe12fff1e @ interoperable with Thumb ISA:-) | 528 .word 0xe12fff1e @ interoperable with Thumb ISA:-) |
| 530 #endif | 529 #endif |
| 531 .size sha512_block_data_order,.-sha512_block_data_order | 530 .size sha512_block_data_order,.-sha512_block_data_order |
| 532 #if __ARM_MAX_ARCH__>=7 | 531 #if __ARM_MAX_ARCH__>=7 |
| 533 .arch armv7-a | 532 .arch armv7-a |
| 534 .fpu neon | 533 .fpu neon |
| 535 | 534 |
| 536 .globl sha512_block_data_order_neon | 535 .globl sha512_block_data_order_neon |
| 537 .hidden sha512_block_data_order_neon | |
| 538 .type sha512_block_data_order_neon,%function | 536 .type sha512_block_data_order_neon,%function |
| 539 .align 4 | 537 .align 4 |
| 540 sha512_block_data_order_neon: | 538 sha512_block_data_order_neon: |
| 541 .LNEON: | 539 .LNEON: |
| 542 dmb @ errata #451034 on early Cortex A8 | 540 dmb @ errata #451034 on early Cortex A8 |
| 543 add r2,r1,r2,lsl#7 @ len to point at the end of inp | 541 add r2,r1,r2,lsl#7 @ len to point at the end of inp |
| 544 adr r3,K512 | 542 adr r3,K512 |
| 545 VFP_ABI_PUSH | 543 VFP_ABI_PUSH |
| 546 vldmia r0,{d16,d17,d18,d19,d20,d21,d22,d23} @ load context | 544 vldmia r0,{d16,d17,d18,d19,d20,d21,d22,d23} @ load context |
| 547 .Loop_neon: | 545 .Loop_neon: |
| (...skipping 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1861 bx lr @ .word 0xe12fff1e | 1859 bx lr @ .word 0xe12fff1e |
| 1862 .size sha512_block_data_order_neon,.-sha512_block_data_order_neon | 1860 .size sha512_block_data_order_neon,.-sha512_block_data_order_neon |
| 1863 #endif | 1861 #endif |
| 1864 .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 .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 |
| 1865 .align 2 | 1863 .align 2 |
| 1866 .align 2 | 1864 .align 2 |
| 1867 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 1865 #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
| 1868 .comm OPENSSL_armcap_P,4,4 | 1866 .comm OPENSSL_armcap_P,4,4 |
| 1869 .hidden OPENSSL_armcap_P | 1867 .hidden OPENSSL_armcap_P |
| 1870 #endif | 1868 #endif |
| 1871 #endif | 1869 #endif |
| OLD | NEW |