VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/crypto/genasm-macosx/x86-gf2m.S@ 98024

Last change on this file since 98024 was 97372, checked in by vboxsync, 2 years ago

libs: Switch to openssl-3.0.7, bugref:10317

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