etc/services - sync with NetBSD-8
[minix.git] / crypto / external / bsd / openssl / lib / libcrypto / arch / powerpc / ppc-mont.S
blobaa7de65746ab1c56e9b2ef62f8eeeb7bc88ddf77
1 .machine        "any"
2 .text
4 .globl  bn_mul_mont_int
5 .type   bn_mul_mont_int,@function
6 .align  4
7 bn_mul_mont_int:
8         cmpwi   8,4
9         mr      9,3
10         li      3,0
11         bclr    12,0
12         cmpwi   8,32
13         bgelr   
14         slwi    8,8,2
15         li      12,-4096
16         addi    3,8,256
17         subf    3,3,1
18         and     3,3,12
19         subf    3,1,3
20         mr      12,1
21         srwi    8,8,2
22         stwux   1,1,3
24         stw     20,-48(12)
25         stw     21,-44(12)
26         stw     22,-40(12)
27         stw     23,-36(12)
28         stw     24,-32(12)
29         stw     25,-28(12)
30         stw     26,-24(12)
31         stw     27,-20(12)
32         stw     28,-16(12)
33         stw     29,-12(12)
34         stw     30,-8(12)
35         stw     31,-4(12)
37         lwz     7,0(7)
38         addi    8,8,-2
40         lwz     23,0(5)
41         lwz     10,0(4)
42         addi    22,1,32
43         mullw   25,10,23
44         mulhwu  26,10,23
46         lwz     10,4(4)
47         lwz     11,0(6)
49         mullw   24,25,7
51         mullw   29,10,23
52         mulhwu  30,10,23
54         mullw   27,11,24
55         mulhwu  28,11,24
56         lwz     11,4(6)
57         addc    27,27,25
58         addze   28,28
60         mullw   31,11,24
61         mulhwu  0,11,24
63         mtctr   8
64         li      21,8
65 .align  4
66 .L1st:
67         lwzx    10,4,21
68         addc    25,29,26
69         lwzx    11,6,21
70         addze   26,30
71         mullw   29,10,23
72         addc    27,31,28
73         mulhwu  30,10,23
74         addze   28,0
75         mullw   31,11,24
76         addc    27,27,25
77         mulhwu  0,11,24
78         addze   28,28
79         stw     27,0(22)
81         addi    21,21,4
82         addi    22,22,4
83         bdnz+   .L1st
85         addc    25,29,26
86         addze   26,30
88         addc    27,31,28
89         addze   28,0
90         addc    27,27,25
91         addze   28,28
92         stw     27,0(22)
94         li      3,0
95         addc    28,28,26
96         addze   3,3
97         stw     28,4(22)
99         li      20,4
100 .align  4
101 .Louter:
102         lwzx    23,5,20
103         lwz     10,0(4)
104         addi    22,1,32
105         lwz     12,32(1)
106         mullw   25,10,23
107         mulhwu  26,10,23
108         lwz     10,4(4)
109         lwz     11,0(6)
110         addc    25,25,12
111         mullw   29,10,23
112         addze   26,26
113         mullw   24,25,7
114         mulhwu  30,10,23
115         mullw   27,11,24
116         mulhwu  28,11,24
117         lwz     11,4(6)
118         addc    27,27,25
119         mullw   31,11,24
120         addze   28,28
121         mulhwu  0,11,24
123         mtctr   8
124         li      21,8
125 .align  4
126 .Linner:
127         lwzx    10,4,21
128         addc    25,29,26
129         lwz     12,4(22)
130         addze   26,30
131         lwzx    11,6,21
132         addc    27,31,28
133         mullw   29,10,23
134         addze   28,0
135         mulhwu  30,10,23
136         addc    25,25,12
137         mullw   31,11,24
138         addze   26,26
139         mulhwu  0,11,24
140         addc    27,27,25
141         addi    21,21,4
142         addze   28,28
143         stw     27,0(22)
144         addi    22,22,4
145         bdnz+   .Linner
147         lwz     12,4(22)
148         addc    25,29,26
149         addze   26,30
150         addc    25,25,12
151         addze   26,26
153         addc    27,31,28
154         addze   28,0
155         addc    27,27,25
156         addze   28,28
157         stw     27,0(22)
159         addic   3,3,-1
160         li      3,0
161         adde    28,28,26
162         addze   3,3
163         stw     28,4(22)
165         slwi    12,8,2
166         .long   0x7c146040
167         addi    20,20,4
168         ble-    .Louter
170         addi    8,8,2
171         subfc   21,21,21
172         addi    22,1,32
173         mtctr   8
175 .align  4
176 .Lsub:  lwzx    12,22,21
177         lwzx    11,6,21
178         subfe   10,11,12
179         stwx    10,9,21
180         addi    21,21,4
181         bdnz+   .Lsub
183         li      21,0
184         mtctr   8
185         subfe   3,21,3
186         and     4,22,3
187         andc    6,9,3
188         or      4,4,6
190 .align  4
191 .Lcopy:
192         lwzx    12,4,21
193         stwx    12,9,21
194         stwx    21,22,21
195         addi    21,21,4
196         bdnz+   .Lcopy
198         lwz     12,0(1)
199         li      3,1
200         lwz     20,-48(12)
201         lwz     21,-44(12)
202         lwz     22,-40(12)
203         lwz     23,-36(12)
204         lwz     24,-32(12)
205         lwz     25,-28(12)
206         lwz     26,-24(12)
207         lwz     27,-20(12)
208         lwz     28,-16(12)
209         lwz     29,-12(12)
210         lwz     30,-8(12)
211         lwz     31,-4(12)
212         mr      1,12
213         blr     
214 .long   0
215 .byte   0,12,4,0,0x80,12,6,0
216 .long   0
218 .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,111,112,101,110,115,115,108,46,111,114,103,62,0
219 .align  2