diff options
author | Andy Polyakov <appro@openssl.org> | 2013-09-09 21:40:33 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2013-09-09 21:40:33 +0200 |
commit | 72a158703bf2b33f4eba6920302941560f7a848d (patch) | |
tree | be4caa00eff52c516471ea50b40661822f15cf58 /crypto | |
parent | ce4555967ec0fa7c0b9c15823be52dc23fd09a40 (diff) |
crypto/bn/asm/x86_64-mont.pl: minor optimization.
Diffstat (limited to 'crypto')
-rwxr-xr-x | crypto/bn/asm/x86_64-mont.pl | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/crypto/bn/asm/x86_64-mont.pl b/crypto/bn/asm/x86_64-mont.pl index 78221bae33..ba938d6ccd 100755 --- a/crypto/bn/asm/x86_64-mont.pl +++ b/crypto/bn/asm/x86_64-mont.pl @@ -1378,7 +1378,6 @@ $code.=<<___; lea 8*8($nptr),$nptr xor %rax,%rax mov 8(%rsp),%rdx # pull end of t[] - xor $carry,$carry cmp 0(%rsp),$nptr # end of n[]? jae .L8x_no_tail @@ -1491,17 +1490,10 @@ $code.=<<___; .align 32 .L8x_tail_done: add (%rdx),%r8 # can this overflow? - adc \$0,%r9 - adc \$0,%r10 - adc \$0,%r11 - adc \$0,%r12 - adc \$0,%r13 - adc \$0,%r14 - adc \$0,%r15 - sbb %rax,%rax + xor %rax,%rax -.L8x_no_tail: neg $carry +.L8x_no_tail: adc 8*0($tptr),%r8 adc 8*1($tptr),%r9 adc 8*2($tptr),%r10 @@ -1510,9 +1502,7 @@ $code.=<<___; adc 8*5($tptr),%r13 adc 8*6($tptr),%r14 adc 8*7($tptr),%r15 - sbb $carry,$carry - neg %rax - sub $carry,%rax # top-most carry + adc \$0,%rax # top-most carry mov 40(%rsp),$nptr # restore $nptr |