VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.9/crypto/genasm-elf/x86-gf2m.S@ 100942

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

libs: Switch to openssl-3.0.7, bugref:10317

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