OLD | NEW |
| (Empty) |
1 .file "crypto/bn/asm/x86-gf2m.s" | |
2 .text | |
3 .type _mul_1x1_mmx,@function | |
4 .align 16 | |
5 _mul_1x1_mmx: | |
6 subl $36,%esp | |
7 movl %eax,%ecx | |
8 leal (%eax,%eax,1),%edx | |
9 andl $1073741823,%ecx | |
10 leal (%edx,%edx,1),%ebp | |
11 movl $0,(%esp) | |
12 andl $2147483647,%edx | |
13 movd %eax,%mm2 | |
14 movd %ebx,%mm3 | |
15 movl %ecx,4(%esp) | |
16 xorl %edx,%ecx | |
17 pxor %mm5,%mm5 | |
18 pxor %mm4,%mm4 | |
19 movl %edx,8(%esp) | |
20 xorl %ebp,%edx | |
21 movl %ecx,12(%esp) | |
22 pcmpgtd %mm2,%mm5 | |
23 paddd %mm2,%mm2 | |
24 xorl %edx,%ecx | |
25 movl %ebp,16(%esp) | |
26 xorl %edx,%ebp | |
27 pand %mm3,%mm5 | |
28 pcmpgtd %mm2,%mm4 | |
29 movl %ecx,20(%esp) | |
30 xorl %ecx,%ebp | |
31 psllq $31,%mm5 | |
32 pand %mm3,%mm4 | |
33 movl %edx,24(%esp) | |
34 movl $7,%esi | |
35 movl %ebp,28(%esp) | |
36 movl %esi,%ebp | |
37 andl %ebx,%esi | |
38 shrl $3,%ebx | |
39 movl %ebp,%edi | |
40 psllq $30,%mm4 | |
41 andl %ebx,%edi | |
42 shrl $3,%ebx | |
43 movd (%esp,%esi,4),%mm0 | |
44 movl %ebp,%esi | |
45 andl %ebx,%esi | |
46 shrl $3,%ebx | |
47 movd (%esp,%edi,4),%mm2 | |
48 movl %ebp,%edi | |
49 psllq $3,%mm2 | |
50 andl %ebx,%edi | |
51 shrl $3,%ebx | |
52 pxor %mm2,%mm0 | |
53 movd (%esp,%esi,4),%mm1 | |
54 movl %ebp,%esi | |
55 psllq $6,%mm1 | |
56 andl %ebx,%esi | |
57 shrl $3,%ebx | |
58 pxor %mm1,%mm0 | |
59 movd (%esp,%edi,4),%mm2 | |
60 movl %ebp,%edi | |
61 psllq $9,%mm2 | |
62 andl %ebx,%edi | |
63 shrl $3,%ebx | |
64 pxor %mm2,%mm0 | |
65 movd (%esp,%esi,4),%mm1 | |
66 movl %ebp,%esi | |
67 psllq $12,%mm1 | |
68 andl %ebx,%esi | |
69 shrl $3,%ebx | |
70 pxor %mm1,%mm0 | |
71 movd (%esp,%edi,4),%mm2 | |
72 movl %ebp,%edi | |
73 psllq $15,%mm2 | |
74 andl %ebx,%edi | |
75 shrl $3,%ebx | |
76 pxor %mm2,%mm0 | |
77 movd (%esp,%esi,4),%mm1 | |
78 movl %ebp,%esi | |
79 psllq $18,%mm1 | |
80 andl %ebx,%esi | |
81 shrl $3,%ebx | |
82 pxor %mm1,%mm0 | |
83 movd (%esp,%edi,4),%mm2 | |
84 movl %ebp,%edi | |
85 psllq $21,%mm2 | |
86 andl %ebx,%edi | |
87 shrl $3,%ebx | |
88 pxor %mm2,%mm0 | |
89 movd (%esp,%esi,4),%mm1 | |
90 movl %ebp,%esi | |
91 psllq $24,%mm1 | |
92 andl %ebx,%esi | |
93 shrl $3,%ebx | |
94 pxor %mm1,%mm0 | |
95 movd (%esp,%edi,4),%mm2 | |
96 pxor %mm4,%mm0 | |
97 psllq $27,%mm2 | |
98 pxor %mm2,%mm0 | |
99 movd (%esp,%esi,4),%mm1 | |
100 pxor %mm5,%mm0 | |
101 psllq $30,%mm1 | |
102 addl $36,%esp | |
103 pxor %mm1,%mm0 | |
104 ret | |
105 .size _mul_1x1_mmx,.-_mul_1x1_mmx | |
106 .type _mul_1x1_ialu,@function | |
107 .align 16 | |
108 _mul_1x1_ialu: | |
109 subl $36,%esp | |
110 movl %eax,%ecx | |
111 leal (%eax,%eax,1),%edx | |
112 leal (,%eax,4),%ebp | |
113 andl $1073741823,%ecx | |
114 leal (%eax,%eax,1),%edi | |
115 sarl $31,%eax | |
116 movl $0,(%esp) | |
117 andl $2147483647,%edx | |
118 movl %ecx,4(%esp) | |
119 xorl %edx,%ecx | |
120 movl %edx,8(%esp) | |
121 xorl %ebp,%edx | |
122 movl %ecx,12(%esp) | |
123 xorl %edx,%ecx | |
124 movl %ebp,16(%esp) | |
125 xorl %edx,%ebp | |
126 movl %ecx,20(%esp) | |
127 xorl %ecx,%ebp | |
128 sarl $31,%edi | |
129 andl %ebx,%eax | |
130 movl %edx,24(%esp) | |
131 andl %ebx,%edi | |
132 movl %ebp,28(%esp) | |
133 movl %eax,%edx | |
134 shll $31,%eax | |
135 movl %edi,%ecx | |
136 shrl $1,%edx | |
137 movl $7,%esi | |
138 shll $30,%edi | |
139 andl %ebx,%esi | |
140 shrl $2,%ecx | |
141 xorl %edi,%eax | |
142 shrl $3,%ebx | |
143 movl $7,%edi | |
144 andl %ebx,%edi | |
145 shrl $3,%ebx | |
146 xorl %ecx,%edx | |
147 xorl (%esp,%esi,4),%eax | |
148 movl $7,%esi | |
149 andl %ebx,%esi | |
150 shrl $3,%ebx | |
151 movl (%esp,%edi,4),%ebp | |
152 movl $7,%edi | |
153 movl %ebp,%ecx | |
154 shll $3,%ebp | |
155 andl %ebx,%edi | |
156 shrl $29,%ecx | |
157 xorl %ebp,%eax | |
158 shrl $3,%ebx | |
159 xorl %ecx,%edx | |
160 movl (%esp,%esi,4),%ecx | |
161 movl $7,%esi | |
162 movl %ecx,%ebp | |
163 shll $6,%ecx | |
164 andl %ebx,%esi | |
165 shrl $26,%ebp | |
166 xorl %ecx,%eax | |
167 shrl $3,%ebx | |
168 xorl %ebp,%edx | |
169 movl (%esp,%edi,4),%ebp | |
170 movl $7,%edi | |
171 movl %ebp,%ecx | |
172 shll $9,%ebp | |
173 andl %ebx,%edi | |
174 shrl $23,%ecx | |
175 xorl %ebp,%eax | |
176 shrl $3,%ebx | |
177 xorl %ecx,%edx | |
178 movl (%esp,%esi,4),%ecx | |
179 movl $7,%esi | |
180 movl %ecx,%ebp | |
181 shll $12,%ecx | |
182 andl %ebx,%esi | |
183 shrl $20,%ebp | |
184 xorl %ecx,%eax | |
185 shrl $3,%ebx | |
186 xorl %ebp,%edx | |
187 movl (%esp,%edi,4),%ebp | |
188 movl $7,%edi | |
189 movl %ebp,%ecx | |
190 shll $15,%ebp | |
191 andl %ebx,%edi | |
192 shrl $17,%ecx | |
193 xorl %ebp,%eax | |
194 shrl $3,%ebx | |
195 xorl %ecx,%edx | |
196 movl (%esp,%esi,4),%ecx | |
197 movl $7,%esi | |
198 movl %ecx,%ebp | |
199 shll $18,%ecx | |
200 andl %ebx,%esi | |
201 shrl $14,%ebp | |
202 xorl %ecx,%eax | |
203 shrl $3,%ebx | |
204 xorl %ebp,%edx | |
205 movl (%esp,%edi,4),%ebp | |
206 movl $7,%edi | |
207 movl %ebp,%ecx | |
208 shll $21,%ebp | |
209 andl %ebx,%edi | |
210 shrl $11,%ecx | |
211 xorl %ebp,%eax | |
212 shrl $3,%ebx | |
213 xorl %ecx,%edx | |
214 movl (%esp,%esi,4),%ecx | |
215 movl $7,%esi | |
216 movl %ecx,%ebp | |
217 shll $24,%ecx | |
218 andl %ebx,%esi | |
219 shrl $8,%ebp | |
220 xorl %ecx,%eax | |
221 shrl $3,%ebx | |
222 xorl %ebp,%edx | |
223 movl (%esp,%edi,4),%ebp | |
224 movl %ebp,%ecx | |
225 shll $27,%ebp | |
226 movl (%esp,%esi,4),%edi | |
227 shrl $5,%ecx | |
228 movl %edi,%esi | |
229 xorl %ebp,%eax | |
230 shll $30,%edi | |
231 xorl %ecx,%edx | |
232 shrl $2,%esi | |
233 xorl %edi,%eax | |
234 xorl %esi,%edx | |
235 addl $36,%esp | |
236 ret | |
237 .size _mul_1x1_ialu,.-_mul_1x1_ialu | |
238 .globl bn_GF2m_mul_2x2 | |
239 .type bn_GF2m_mul_2x2,@function | |
240 .align 16 | |
241 bn_GF2m_mul_2x2: | |
242 .L_bn_GF2m_mul_2x2_begin: | |
243 call .L000PIC_me_up | |
244 .L000PIC_me_up: | |
245 popl %edx | |
246 leal _GLOBAL_OFFSET_TABLE_+[.-.L000PIC_me_up](%edx),%edx | |
247 movl OPENSSL_ia32cap_P@GOT(%edx),%edx | |
248 movl (%edx),%eax | |
249 movl 4(%edx),%edx | |
250 testl $8388608,%eax | |
251 jz .L001ialu | |
252 pushl %ebp | |
253 pushl %ebx | |
254 pushl %esi | |
255 pushl %edi | |
256 movl 24(%esp),%eax | |
257 movl 32(%esp),%ebx | |
258 call _mul_1x1_mmx | |
259 movq %mm0,%mm7 | |
260 movl 28(%esp),%eax | |
261 movl 36(%esp),%ebx | |
262 call _mul_1x1_mmx | |
263 movq %mm0,%mm6 | |
264 movl 24(%esp),%eax | |
265 movl 32(%esp),%ebx | |
266 xorl 28(%esp),%eax | |
267 xorl 36(%esp),%ebx | |
268 call _mul_1x1_mmx | |
269 pxor %mm7,%mm0 | |
270 movl 20(%esp),%eax | |
271 pxor %mm6,%mm0 | |
272 movq %mm0,%mm2 | |
273 psllq $32,%mm0 | |
274 popl %edi | |
275 psrlq $32,%mm2 | |
276 popl %esi | |
277 pxor %mm6,%mm0 | |
278 popl %ebx | |
279 pxor %mm7,%mm2 | |
280 movq %mm0,(%eax) | |
281 popl %ebp | |
282 movq %mm2,8(%eax) | |
283 emms | |
284 ret | |
285 .align 16 | |
286 .L001ialu: | |
287 pushl %ebp | |
288 pushl %ebx | |
289 pushl %esi | |
290 pushl %edi | |
291 subl $20,%esp | |
292 movl 44(%esp),%eax | |
293 movl 52(%esp),%ebx | |
294 call _mul_1x1_ialu | |
295 movl %eax,8(%esp) | |
296 movl %edx,12(%esp) | |
297 movl 48(%esp),%eax | |
298 movl 56(%esp),%ebx | |
299 call _mul_1x1_ialu | |
300 movl %eax,(%esp) | |
301 movl %edx,4(%esp) | |
302 movl 44(%esp),%eax | |
303 movl 52(%esp),%ebx | |
304 xorl 48(%esp),%eax | |
305 xorl 56(%esp),%ebx | |
306 call _mul_1x1_ialu | |
307 movl 40(%esp),%ebp | |
308 movl (%esp),%ebx | |
309 movl 4(%esp),%ecx | |
310 movl 8(%esp),%edi | |
311 movl 12(%esp),%esi | |
312 xorl %edx,%eax | |
313 xorl %ecx,%edx | |
314 xorl %ebx,%eax | |
315 movl %ebx,(%ebp) | |
316 xorl %edi,%edx | |
317 movl %esi,12(%ebp) | |
318 xorl %esi,%eax | |
319 addl $20,%esp | |
320 xorl %esi,%edx | |
321 popl %edi | |
322 xorl %edx,%eax | |
323 popl %esi | |
324 movl %edx,8(%ebp) | |
325 popl %ebx | |
326 movl %eax,4(%ebp) | |
327 popl %ebp | |
328 ret | |
329 .size bn_GF2m_mul_2x2,.-.L_bn_GF2m_mul_2x2_begin | |
330 .byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105 | |
331 .byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32 | |
332 .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 | |
333 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 | |
334 .byte 62,0 | |
335 .comm OPENSSL_ia32cap_P,8,4 | |
OLD | NEW |