| OLD | NEW |
| 1 #include "arm_arch.h" | 1 #include "arm_arch.h" |
| 2 | 2 |
| 3 .text | 3 .text |
| 4 .code 32 | 4 .code 32 |
| 5 | 5 |
| 6 #if __ARM_ARCH__>=7 | 6 #if __ARM_MAX_ARCH__>=7 |
| 7 .align 5 | 7 .align 5 |
| 8 .LOPENSSL_armcap: | 8 .LOPENSSL_armcap: |
| 9 .word» OPENSSL_armcap_P-bn_mul_mont | 9 .word» OPENSSL_armcap_P-.Lbn_mul_mont |
| 10 #endif | 10 #endif |
| 11 | 11 |
| 12 .global»bn_mul_mont | 12 .globl» bn_mul_mont |
| 13 .hidden bn_mul_mont | 13 .hidden bn_mul_mont |
| 14 .type bn_mul_mont,%function | 14 .type bn_mul_mont,%function |
| 15 | 15 |
| 16 .align 5 | 16 .align 5 |
| 17 bn_mul_mont: | 17 bn_mul_mont: |
| 18 .Lbn_mul_mont: |
| 18 ldr ip,[sp,#4] @ load num | 19 ldr ip,[sp,#4] @ load num |
| 19 stmdb sp!,{r0,r2} @ sp points at argument block | 20 stmdb sp!,{r0,r2} @ sp points at argument block |
| 20 #if __ARM_ARCH__>=7 | 21 #if __ARM_MAX_ARCH__>=7 |
| 21 tst ip,#7 | 22 tst ip,#7 |
| 22 bne .Lialu | 23 bne .Lialu |
| 23 adr r0,bn_mul_mont | 24 adr r0,bn_mul_mont |
| 24 ldr r2,.LOPENSSL_armcap | 25 ldr r2,.LOPENSSL_armcap |
| 25 ldr r0,[r0,r2] | 26 ldr r0,[r0,r2] |
| 27 #ifdef __APPLE__ |
| 28 ldr r0,[r0] |
| 29 #endif |
| 26 tst r0,#1 @ NEON available? | 30 tst r0,#1 @ NEON available? |
| 27 ldmia sp, {r0,r2} | 31 ldmia sp, {r0,r2} |
| 28 beq .Lialu | 32 beq .Lialu |
| 29 add sp,sp,#8 | 33 add sp,sp,#8 |
| 30 b bn_mul8x_mont_neon | 34 b bn_mul8x_mont_neon |
| 31 .align 4 | 35 .align 4 |
| 32 .Lialu: | 36 .Lialu: |
| 33 #endif | 37 #endif |
| 34 cmp ip,#2 | 38 cmp ip,#2 |
| 35 mov r0,ip @ load num | 39 mov r0,ip @ load num |
| 36 movlt r0,#0 | 40 movlt r0,#0 |
| 37 addlt sp,sp,#2*4 | 41 addlt sp,sp,#2*4 |
| 38 blt .Labrt | 42 blt .Labrt |
| 39 | 43 |
| 40 » stmdb» sp!,{r4-r12,lr}»» @ save 10 registers | 44 » stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}» » @ save 10 regist
ers |
| 41 | 45 |
| 42 mov r0,r0,lsl#2 @ rescale r0 for byte count | 46 mov r0,r0,lsl#2 @ rescale r0 for byte count |
| 43 sub sp,sp,r0 @ alloca(4*num) | 47 sub sp,sp,r0 @ alloca(4*num) |
| 44 sub sp,sp,#4 @ +extra dword | 48 sub sp,sp,#4 @ +extra dword |
| 45 sub r0,r0,#4 @ "num=num-1" | 49 sub r0,r0,#4 @ "num=num-1" |
| 46 add r4,r2,r0 @ &bp[num-1] | 50 add r4,r2,r0 @ &bp[num-1] |
| 47 | 51 |
| 48 add r0,sp,r0 @ r0 to point at &tp[num-1] | 52 add r0,sp,r0 @ r0 to point at &tp[num-1] |
| 49 ldr r8,[r0,#14*4] @ &n0 | 53 ldr r8,[r0,#14*4] @ &n0 |
| 50 ldr r2,[r2] @ bp[0] | 54 ldr r2,[r2] @ bp[0] |
| (...skipping 20 matching lines...) Expand all Loading... |
| 71 adds r12,r12,r10 | 75 adds r12,r12,r10 |
| 72 str r12,[r4],#4 @ tp[j-1]=,tp++ | 76 str r12,[r4],#4 @ tp[j-1]=,tp++ |
| 73 adc r12,r14,#0 | 77 adc r12,r14,#0 |
| 74 cmp r4,r0 | 78 cmp r4,r0 |
| 75 bne .L1st | 79 bne .L1st |
| 76 | 80 |
| 77 adds r12,r12,r11 | 81 adds r12,r12,r11 |
| 78 ldr r4,[r0,#13*4] @ restore bp | 82 ldr r4,[r0,#13*4] @ restore bp |
| 79 mov r14,#0 | 83 mov r14,#0 |
| 80 ldr r8,[r0,#14*4] @ restore n0 | 84 ldr r8,[r0,#14*4] @ restore n0 |
error: old chunk mismatch |
None
| OLD | NEW |