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