Deleted Added
full compact
sparcv9-mont.pl (325335) sparcv9-mont.pl (337982)
1#!/usr/bin/env perl
2
3# ====================================================================
4# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
5# project. The module is, however, dual licensed under OpenSSL and
6# CRYPTOGAMS licenses depending on where you obtain it. For further
7# details see http://www.openssl.org/~appro/cryptogams/.
8# ====================================================================

--- 241 unchanged lines hidden (view full) ---

250 ld [$bp+$i],$mul0 ! bp[i]
251!.Louter
252
253 add $tp,12,$tp
254
255.Ltail:
256 add $np,$num,$np
257 add $rp,$num,$rp
1#!/usr/bin/env perl
2
3# ====================================================================
4# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
5# project. The module is, however, dual licensed under OpenSSL and
6# CRYPTOGAMS licenses depending on where you obtain it. For further
7# details see http://www.openssl.org/~appro/cryptogams/.
8# ====================================================================

--- 241 unchanged lines hidden (view full) ---

250 ld [$bp+$i],$mul0 ! bp[i]
251!.Louter
252
253 add $tp,12,$tp
254
255.Ltail:
256 add $np,$num,$np
257 add $rp,$num,$rp
258 mov $tp,$ap
259 sub %g0,$num,%o7 ! k=-num
260 ba .Lsub
261 subcc %g0,%g0,%g0 ! clear %icc.c
262.align 16
263.Lsub:
264 ld [$tp+%o7],%o0
265 ld [$np+%o7],%o1
266 subccc %o0,%o1,%o1 ! tp[j]-np[j]
267 add $rp,%o7,$i
268 add %o7,4,%o7
269 brnz %o7,.Lsub
270 st %o1,[$i]
258 sub %g0,$num,%o7 ! k=-num
259 ba .Lsub
260 subcc %g0,%g0,%g0 ! clear %icc.c
261.align 16
262.Lsub:
263 ld [$tp+%o7],%o0
264 ld [$np+%o7],%o1
265 subccc %o0,%o1,%o1 ! tp[j]-np[j]
266 add $rp,%o7,$i
267 add %o7,4,%o7
268 brnz %o7,.Lsub
269 st %o1,[$i]
271 subc $car2,0,$car2 ! handle upmost overflow bit
272 and $tp,$car2,$ap
273 andn $rp,$car2,$np
274 or $ap,$np,$ap
270 subccc $car2,0,$car2 ! handle upmost overflow bit
275 sub %g0,$num,%o7
276
277.Lcopy:
271 sub %g0,$num,%o7
272
273.Lcopy:
278 ld [$ap+%o7],%o0 ! copy or in-place refresh
274 ld [$tp+%o7],%o1 ! conditional copy
275 ld [$rp+%o7],%o0
279 st %g0,[$tp+%o7] ! zap tp
276 st %g0,[$tp+%o7] ! zap tp
277 movcs %icc,%o1,%o0
280 st %o0,[$rp+%o7]
281 add %o7,4,%o7
282 brnz %o7,.Lcopy
283 nop
284 mov 1,%i0
285 ret
286 restore
287___

--- 192 unchanged lines hidden (view full) ---

480 add $tp,4,$tp
481!.Lsqr_inner1
482
483 add $j,4,$j
484 ld [$ap+$j],$apj ! ap[j]
485 mulx $npj,$mul1,$acc1
486 add $tpj,$car1,$car1
487 ld [$np+$j],$npj ! np[j]
278 st %o0,[$rp+%o7]
279 add %o7,4,%o7
280 brnz %o7,.Lcopy
281 nop
282 mov 1,%i0
283 ret
284 restore
285___

--- 192 unchanged lines hidden (view full) ---

478 add $tp,4,$tp
479!.Lsqr_inner1
480
481 add $j,4,$j
482 ld [$ap+$j],$apj ! ap[j]
483 mulx $npj,$mul1,$acc1
484 add $tpj,$car1,$car1
485 ld [$np+$j],$npj ! np[j]
486 srlx $car1,32,$tmp0
487 and $car1,$mask,$car1
488 add $tmp0,$sbit,$sbit
488 add $acc0,$car1,$car1
489 ld [$tp+8],$tpj ! tp[j]
490 add $acc1,$car1,$car1
491 st $car1,[$tp]
492 srlx $car1,32,$car1
493
494 add $j,4,$j
495 cmp $j,$num

--- 114 unchanged lines hidden ---
489 add $acc0,$car1,$car1
490 ld [$tp+8],$tpj ! tp[j]
491 add $acc1,$car1,$car1
492 st $car1,[$tp]
493 srlx $car1,32,$car1
494
495 add $j,4,$j
496 cmp $j,$num

--- 114 unchanged lines hidden ---