Sync usage with man page.
[netbsd-mini2440.git] / crypto / external / bsd / openssl / lib / libcrypto / arch / powerpc / ppc-mont.S
blob0432c3112151d589dbb0766bd716604d39f408fe
1 .machine        "any"
2 .text
4 .globl  bn_mul_mont
5 .type   bn_mul_mont,@function
6 .align  4
7 bn_mul_mont:
8         cmpwi   8,4
9         mr      9,3
10         li      3,0
11         bclr    12,0
13         slwi    8,8,2
14         li      12,-4096
15         addi    3,8,288
16         subf    3,3,1
17         and     3,3,12
18         subf    3,1,3
19         srwi    8,8,2
20         stwux   1,1,3
22         stw     14,16(1)
23         stw     15,20(1)
24         stw     16,24(1)
25         stw     17,28(1)
26         stw     18,32(1)
27         stw     19,36(1)
28         stw     20,40(1)
29         stw     21,44(1)
30         stw     22,48(1)
31         stw     23,52(1)
32         stw     24,56(1)
33         stw     25,60(1)
35         lwz     7,0(7)
36         addi    8,8,-2
38         lwz     17,0(5)
39         lwz     10,0(4)
40         addi    16,1,64
41         mullw   19,10,17
42         mulhwu  20,10,17
44         lwz     10,4(4)
45         lwz     11,0(6)
47         mullw   18,19,7
49         mullw   23,10,17
50         mulhwu  24,10,17
52         mullw   21,11,18
53         mulhwu  22,11,18
54         lwz     11,4(6)
55         addc    21,21,19
56         addze   22,22
58         mullw   25,11,18
59         mulhwu  0,11,18
61         mtctr   8
62         li      15,8
63 .align  4
64 .L1st:
65         lwzx    10,4,15
66         addc    19,23,20
67         lwzx    11,6,15
68         addze   20,24
69         mullw   23,10,17
70         addc    21,25,22
71         mulhwu  24,10,17
72         addze   22,0
73         mullw   25,11,18
74         addc    21,21,19
75         mulhwu  0,11,18
76         addze   22,22
77         stw     21,0(16)
79         addi    15,15,4
80         addi    16,16,4
81         bdnz+   .L1st
83         addc    19,23,20
84         addze   20,24
86         addc    21,25,22
87         addze   22,0
88         addc    21,21,19
89         addze   22,22
90         stw     21,0(16)
92         li      3,0
93         addc    22,22,20
94         addze   3,3
95         stw     22,4(16)
97         li      14,4
98 .align  4
99 .Louter:
100         lwzx    17,5,14
101         lwz     10,0(4)
102         addi    16,1,64
103         lwz     12,64(1)
104         mullw   19,10,17
105         mulhwu  20,10,17
106         lwz     10,4(4)
107         lwz     11,0(6)
108         addc    19,19,12
109         mullw   23,10,17
110         addze   20,20
111         mullw   18,19,7
112         mulhwu  24,10,17
113         mullw   21,11,18
114         mulhwu  22,11,18
115         lwz     11,4(6)
116         addc    21,21,19
117         mullw   25,11,18
118         addze   22,22
119         mulhwu  0,11,18
121         mtctr   8
122         li      15,8
123 .align  4
124 .Linner:
125         lwzx    10,4,15
126         addc    19,23,20
127         lwz     12,4(16)
128         addze   20,24
129         lwzx    11,6,15
130         addc    21,25,22
131         mullw   23,10,17
132         addze   22,0
133         mulhwu  24,10,17
134         addc    19,19,12
135         mullw   25,11,18
136         addze   20,20
137         mulhwu  0,11,18
138         addc    21,21,19
139         addi    15,15,4
140         addze   22,22
141         stw     21,0(16)
142         addi    16,16,4
143         bdnz+   .Linner
145         lwz     12,4(16)
146         addc    19,23,20
147         addze   20,24
148         addc    19,19,12
149         addze   20,20
151         addc    21,25,22
152         addze   22,0
153         addc    21,21,19
154         addze   22,22
155         stw     21,0(16)
157         addic   3,3,-1
158         li      3,0
159         adde    22,22,20
160         addze   3,3
161         stw     22,4(16)
163         slwi    12,8,2
164         .long   0x7c0e6040
165         addi    14,14,4
166         ble-    .Louter
168         addi    8,8,2
169         subfc   15,15,15
170         addi    16,1,64
171         mtctr   8
173 .align  4
174 .Lsub:  lwzx    12,16,15
175         lwzx    11,6,15
176         subfe   10,11,12
177         stwx    10,9,15
178         addi    15,15,4
179         bdnz+   .Lsub
181         li      15,0
182         mtctr   8
183         subfe   3,15,3
184         and     4,16,3
185         andc    6,9,3
186         or      4,4,6
188 .align  4
189 .Lcopy:
190         lwzx    12,4,15
191         stwx    12,9,15
192         stwx    15,16,15
193         addi    15,15,4
194         bdnz+   .Lcopy
196         lwz     14,16(1)
197         lwz     15,20(1)
198         lwz     16,24(1)
199         lwz     17,28(1)
200         lwz     18,32(1)
201         lwz     19,36(1)
202         lwz     20,40(1)
203         lwz     21,44(1)
204         lwz     22,48(1)
205         lwz     23,52(1)
206         lwz     24,56(1)
207         lwz     25,60(1)
208         lwz     1,0(1)
209         li      3,1
210         blr     
211 .long   0
212 .byte   77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,102,121,46,99,104,97,108,109,101,114,115,46,115,101,62,0
213 .align  2