Re-apply 75b833cc81
I messed up and missed that we were carrying a diff on x86_64-mont5.pl. This was accidentally dropped in https://boringssl-review.googlesource.com/6616. To confirm the merge is good now, check out at this revision and run: git diff e701f16bd69b6f251ed537e40364c281e85a63b2^ crypto/bn/asm/x86_64-mont5.pl > /tmp/A Then in OpenSSL's repository: git diff d73cc256c8e256c32ed959456101b73ba9842f72^ d73cc256c8e256c32ed959456101b73ba9842f72 crypto/bn/asm/x86_64-mont5.pl > /tmp/B And confirm the diffs vary in only metadata: diff -u /tmp/A /tmp/B --- /tmp/A 2015-12-03 11:53:23.127034998 -0500 +++ /tmp/B 2015-12-03 11:53:53.099314287 -0500 @@ -1,8 +1,8 @@ diff --git a/crypto/bn/asm/x86_64-mont5.pl b/crypto/bn/asm/x86_64-mont5.pl -index 38def07..3c5a8fc 100644 +index 388e3c6..64e668f 100755 --- a/crypto/bn/asm/x86_64-mont5.pl +++ b/crypto/bn/asm/x86_64-mont5.pl -@@ -1770,6 +1770,15 @@ sqr8x_reduction: +@@ -1784,6 +1784,15 @@ sqr8x_reduction: .align 32 .L8x_tail_done: add (%rdx),%r8 # can this overflow? @@ -18,7 +18,7 @@ xor %rax,%rax neg $carry -@@ -3116,6 +3125,15 @@ sqrx8x_reduction: +@@ -3130,6 +3139,15 @@ sqrx8x_reduction: .align 32 .Lsqrx8x_tail_done: add 24+8(%rsp),%r8 # can this overflow? @@ -34,7 +34,7 @@ mov $carry,%rax # xor %rax,%rax sub 16+8(%rsp),$carry # mov 16(%rsp),%cf -@@ -3159,13 +3177,11 @@ my ($rptr,$nptr)=("%rdx","%rbp"); +@@ -3173,13 +3191,11 @@ my ($rptr,$nptr)=("%rdx","%rbp"); my @ri=map("%r$_",(10..13)); my @ni=map("%r$_",(14..15)); $code.=<<___; Change-Id: I3fb5253783ed82e4831f5bffde75273bd9609c23 Reviewed-on: https://boringssl-review.googlesource.com/6618 Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
parent
28243c08db
commit
6d9e5a7448
@ -322,17 +322,16 @@ $code.=<<___;
|
||||
|
||||
sbb \$0,%rax # handle upmost overflow bit
|
||||
xor $i,$i
|
||||
and %rax,$ap
|
||||
not %rax
|
||||
mov $rp,$np
|
||||
and %rax,$np
|
||||
mov $num,$j # j=num
|
||||
or $np,$ap # ap=borrow?tp:rp
|
||||
.align 16
|
||||
.Lcopy: # copy or in-place refresh
|
||||
mov ($ap,$i,8),%rax
|
||||
mov (%rsp,$i,8),$ap
|
||||
mov ($rp,$i,8),$np
|
||||
xor $np,$ap # conditional select:
|
||||
and %rax,$ap # ((ap ^ np) & %rax) ^ np
|
||||
xor $np,$ap # ap = borrow?tp:rp
|
||||
mov $i,(%rsp,$i,8) # zap temporary vector
|
||||
mov %rax,($rp,$i,8) # rp[i]=tp[i]
|
||||
mov $ap,($rp,$i,8) # rp[i]=tp[i]
|
||||
lea 1($i),$i
|
||||
sub \$1,$j
|
||||
jnz .Lcopy
|
||||
|
Loading…
Reference in New Issue
Block a user