]>
git.ipfire.org Git - thirdparty/openssl.git/blob - crypto/bn/asm/alpha/sub.pl
17 &function_begin
($name,"");
20 &sub($count,4,$count);
22 &blt
($count,&label
("finish"));
25 &ld
($a0,&QWPw
(0,$ap));
26 &ld
($b0,&QWPw
(0,$bp));
28 ##########################################################
31 ($a1,$tmp,$b1,$a2,$b2,$a3,$b3,$o0)=&NR
(8);
32 &ld
($a1,&QWPw
(1,$ap));
33 &cmpult
($a0,$b0,$tmp); # will we borrow?
34 &ld
($b1,&QWPw
(1,$bp));
35 &sub($a0,$b0,$a0); # do the subtract
36 &ld
($a2,&QWPw
(2,$ap));
37 &cmpult
($a0,$cc,$b0); # will we borrow?
38 &ld
($b2,&QWPw
(2,$bp));
39 &sub($a0,$cc,$o0); # will we borrow?
40 &ld
($a3,&QWPw
(3,$ap));
41 &add
($b0,$tmp,$cc); ($t1,$o1)=&NR
(2); &FR
($tmp);
43 &cmpult
($a1,$b1,$t1); # will we borrow?
44 &sub($a1,$b1,$a1); # do the subtract
45 &ld
($b3,&QWPw
(3,$bp));
46 &cmpult
($a1,$cc,$b1); # will we borrow?
47 &sub($a1,$cc,$o1); # will we borrow?
48 &add
($b1,$t1,$cc); ($tmp,$o2)=&NR
(2); &FR
($t1,$a1,$b1);
50 &cmpult
($a2,$b2,$tmp); # will we borrow?
51 &sub($a2,$b2,$a2); # do the subtract
52 &st
($o0,&QWPw
(0,$rp)); &FR
($o0); # save
53 &cmpult
($a2,$cc,$b2); # will we borrow?
54 &sub($a2,$cc,$o2); # will we borrow?
55 &add
($b2,$tmp,$cc); ($t3,$o3)=&NR
(2); &FR
($tmp,$a2,$b2);
57 &cmpult
($a3,$b3,$t3); # will we borrow?
58 &sub($a3,$b3,$a3); # do the subtract
59 &st
($o1,&QWPw
(1,$rp)); &FR
($o1);
60 &cmpult
($a3,$cc,$b3); # will we borrow?
61 &sub($a3,$cc,$o3); # will we borrow?
62 &add
($b3,$t3,$cc); &FR
($t3,$a3,$b3);
64 &st
($o2,&QWPw
(2,$rp)); &FR
($o2);
65 &sub($count,4,$count); # count-=4
66 &st
($o3,&QWPw
(3,$rp)); &FR
($o3);
67 &add
($ap,4*$QWS,$ap); # count+=4
68 &add
($bp,4*$QWS,$bp); # count+=4
69 &add
($rp,4*$QWS,$rp); # count+=4
71 &blt
($count,&label
("finish"));
72 &ld
($a0,&QWPw
(0,$ap));
73 &ld
($b0,&QWPw
(0,$bp));
75 ##################################################
76 # Do the last 0..3 words
78 &set_label
("last_loop");
80 &ld
($a0,&QWPw
(0,$ap)); # get a
81 &ld
($b0,&QWPw
(0,$bp)); # get b
82 &cmpult
($a0,$b0,$tmp); # will we borrow?
83 &sub($a0,$b0,$a0); # do the subtract
84 &cmpult
($a0,$cc,$b0); # will we borrow?
85 &sub($a0,$cc,$a0); # will we borrow?
86 &st
($a0,&QWPw
(0,$rp)); # save
87 &add
($b0,$tmp,$cc); # add the borrows
92 &sub($count,1,$count);
93 &bgt
($count,&label
("last_loop"));
94 &function_end_A
($name);
96 ######################################################
98 &add
($count,4,$count);
99 &bgt
($count,&label
("last_loop"));
103 &function_end
($name);