diff options
Diffstat (limited to 'src/lib/libcrypto/bn/asm/sparcv8plus.S')
-rw-r--r-- | src/lib/libcrypto/bn/asm/sparcv8plus.S | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/libcrypto/bn/asm/sparcv8plus.S b/src/lib/libcrypto/bn/asm/sparcv8plus.S index 0074dfdb75..8c56e2e7e7 100644 --- a/src/lib/libcrypto/bn/asm/sparcv8plus.S +++ b/src/lib/libcrypto/bn/asm/sparcv8plus.S | |||
@@ -162,10 +162,14 @@ | |||
162 | * BN_ULONG w; | 162 | * BN_ULONG w; |
163 | */ | 163 | */ |
164 | bn_mul_add_words: | 164 | bn_mul_add_words: |
165 | sra %o2,%g0,%o2 ! signx %o2 | ||
165 | brgz,a %o2,.L_bn_mul_add_words_proceed | 166 | brgz,a %o2,.L_bn_mul_add_words_proceed |
166 | lduw [%o1],%g2 | 167 | lduw [%o1],%g2 |
167 | retl | 168 | retl |
168 | clr %o0 | 169 | clr %o0 |
170 | nop | ||
171 | nop | ||
172 | nop | ||
169 | 173 | ||
170 | .L_bn_mul_add_words_proceed: | 174 | .L_bn_mul_add_words_proceed: |
171 | srl %o3,%g0,%o3 ! clruw %o3 | 175 | srl %o3,%g0,%o3 ! clruw %o3 |
@@ -260,10 +264,14 @@ bn_mul_add_words: | |||
260 | * BN_ULONG w; | 264 | * BN_ULONG w; |
261 | */ | 265 | */ |
262 | bn_mul_words: | 266 | bn_mul_words: |
267 | sra %o2,%g0,%o2 ! signx %o2 | ||
263 | brgz,a %o2,.L_bn_mul_words_proceeed | 268 | brgz,a %o2,.L_bn_mul_words_proceeed |
264 | lduw [%o1],%g2 | 269 | lduw [%o1],%g2 |
265 | retl | 270 | retl |
266 | clr %o0 | 271 | clr %o0 |
272 | nop | ||
273 | nop | ||
274 | nop | ||
267 | 275 | ||
268 | .L_bn_mul_words_proceeed: | 276 | .L_bn_mul_words_proceeed: |
269 | srl %o3,%g0,%o3 ! clruw %o3 | 277 | srl %o3,%g0,%o3 ! clruw %o3 |
@@ -344,10 +352,14 @@ bn_mul_words: | |||
344 | * int n; | 352 | * int n; |
345 | */ | 353 | */ |
346 | bn_sqr_words: | 354 | bn_sqr_words: |
355 | sra %o2,%g0,%o2 ! signx %o2 | ||
347 | brgz,a %o2,.L_bn_sqr_words_proceeed | 356 | brgz,a %o2,.L_bn_sqr_words_proceeed |
348 | lduw [%o1],%g2 | 357 | lduw [%o1],%g2 |
349 | retl | 358 | retl |
350 | clr %o0 | 359 | clr %o0 |
360 | nop | ||
361 | nop | ||
362 | nop | ||
351 | 363 | ||
352 | .L_bn_sqr_words_proceeed: | 364 | .L_bn_sqr_words_proceeed: |
353 | andcc %o2,-4,%g0 | 365 | andcc %o2,-4,%g0 |
@@ -445,6 +457,7 @@ bn_div_words: | |||
445 | * int n; | 457 | * int n; |
446 | */ | 458 | */ |
447 | bn_add_words: | 459 | bn_add_words: |
460 | sra %o3,%g0,%o3 ! signx %o3 | ||
448 | brgz,a %o3,.L_bn_add_words_proceed | 461 | brgz,a %o3,.L_bn_add_words_proceed |
449 | lduw [%o1],%o4 | 462 | lduw [%o1],%o4 |
450 | retl | 463 | retl |
@@ -454,7 +467,6 @@ bn_add_words: | |||
454 | andcc %o3,-4,%g0 | 467 | andcc %o3,-4,%g0 |
455 | bz,pn %icc,.L_bn_add_words_tail | 468 | bz,pn %icc,.L_bn_add_words_tail |
456 | addcc %g0,0,%g0 ! clear carry flag | 469 | addcc %g0,0,%g0 ! clear carry flag |
457 | nop | ||
458 | 470 | ||
459 | .L_bn_add_words_loop: ! wow! 32 aligned! | 471 | .L_bn_add_words_loop: ! wow! 32 aligned! |
460 | dec 4,%o3 | 472 | dec 4,%o3 |
@@ -523,6 +535,7 @@ bn_add_words: | |||
523 | * int n; | 535 | * int n; |
524 | */ | 536 | */ |
525 | bn_sub_words: | 537 | bn_sub_words: |
538 | sra %o3,%g0,%o3 ! signx %o3 | ||
526 | brgz,a %o3,.L_bn_sub_words_proceed | 539 | brgz,a %o3,.L_bn_sub_words_proceed |
527 | lduw [%o1],%o4 | 540 | lduw [%o1],%o4 |
528 | retl | 541 | retl |
@@ -532,7 +545,6 @@ bn_sub_words: | |||
532 | andcc %o3,-4,%g0 | 545 | andcc %o3,-4,%g0 |
533 | bz,pn %icc,.L_bn_sub_words_tail | 546 | bz,pn %icc,.L_bn_sub_words_tail |
534 | addcc %g0,0,%g0 ! clear carry flag | 547 | addcc %g0,0,%g0 ! clear carry flag |
535 | nop | ||
536 | 548 | ||
537 | .L_bn_sub_words_loop: ! wow! 32 aligned! | 549 | .L_bn_sub_words_loop: ! wow! 32 aligned! |
538 | dec 4,%o3 | 550 | dec 4,%o3 |