VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1k/crypto/genasm-macosx/x86-gf2m.S@ 90293

Last change on this file since 90293 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette