summaryrefslogtreecommitdiffstats
path: root/crypto/bn/asm/sparcv8plus.S
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2005-11-11 20:07:07 +0000
committerAndy Polyakov <appro@openssl.org>2005-11-11 20:07:07 +0000
commitc52c82ffc1e5427fe16c6ec87fc48f5f0ba61575 (patch)
treedf6a16ec7abd40895f40c5ffbf4bb387ad63f5ba /crypto/bn/asm/sparcv8plus.S
parentd6a03a23a8552070591784935d5aee949d5b9623 (diff)
Attempt to resolve sporadic SEGV crashes in bn_sub_words in OpenSSH. I'm
baffled why it crashes and does it sporadically...
Diffstat (limited to 'crypto/bn/asm/sparcv8plus.S')
-rw-r--r--crypto/bn/asm/sparcv8plus.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/bn/asm/sparcv8plus.S b/crypto/bn/asm/sparcv8plus.S
index 0074dfdb75..8992928ca8 100644
--- a/crypto/bn/asm/sparcv8plus.S
+++ b/crypto/bn/asm/sparcv8plus.S
@@ -445,6 +445,7 @@ bn_div_words:
* int n;
*/
bn_add_words:
+ sra %o3,%g0,%o3 ! signx %o3
brgz,a %o3,.L_bn_add_words_proceed
lduw [%o1],%o4
retl
@@ -454,7 +455,6 @@ bn_add_words:
andcc %o3,-4,%g0
bz,pn %icc,.L_bn_add_words_tail
addcc %g0,0,%g0 ! clear carry flag
- nop
.L_bn_add_words_loop: ! wow! 32 aligned!
dec 4,%o3
@@ -523,6 +523,7 @@ bn_add_words:
* int n;
*/
bn_sub_words:
+ sra %o3,%g0,%o3 ! signx %o3
brgz,a %o3,.L_bn_sub_words_proceed
lduw [%o1],%o4
retl
@@ -532,7 +533,6 @@ bn_sub_words:
andcc %o3,-4,%g0
bz,pn %icc,.L_bn_sub_words_tail
addcc %g0,0,%g0 ! clear carry flag
- nop
.L_bn_sub_words_loop: ! wow! 32 aligned!
dec 4,%o3