• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2.type	__mul_1x1_mmx,@function
3.align	4
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.type	__mul_1x1_ialu,@function
110.align	4
111__mul_1x1_ialu:
112	%ifdef __CET__
113
114.byte	243,15,30,251
115	%endif
116
117	subl	$36,%esp
118	movl	%eax,%ecx
119	leal	(%eax,%eax,1),%edx
120	leal	(,%eax,4),%ebp
121	andl	$1073741823,%ecx
122	leal	(%eax,%eax,1),%edi
123	sarl	$31,%eax
124	movl	$0,(%esp)
125	andl	$2147483647,%edx
126	movl	%ecx,4(%esp)
127	xorl	%edx,%ecx
128	movl	%edx,8(%esp)
129	xorl	%ebp,%edx
130	movl	%ecx,12(%esp)
131	xorl	%edx,%ecx
132	movl	%ebp,16(%esp)
133	xorl	%edx,%ebp
134	movl	%ecx,20(%esp)
135	xorl	%ecx,%ebp
136	sarl	$31,%edi
137	andl	%ebx,%eax
138	movl	%edx,24(%esp)
139	andl	%ebx,%edi
140	movl	%ebp,28(%esp)
141	movl	%eax,%edx
142	shll	$31,%eax
143	movl	%edi,%ecx
144	shrl	$1,%edx
145	movl	$7,%esi
146	shll	$30,%edi
147	andl	%ebx,%esi
148	shrl	$2,%ecx
149	xorl	%edi,%eax
150	shrl	$3,%ebx
151	movl	$7,%edi
152	andl	%ebx,%edi
153	shrl	$3,%ebx
154	xorl	%ecx,%edx
155	xorl	(%esp,%esi,4),%eax
156	movl	$7,%esi
157	andl	%ebx,%esi
158	shrl	$3,%ebx
159	movl	(%esp,%edi,4),%ebp
160	movl	$7,%edi
161	movl	%ebp,%ecx
162	shll	$3,%ebp
163	andl	%ebx,%edi
164	shrl	$29,%ecx
165	xorl	%ebp,%eax
166	shrl	$3,%ebx
167	xorl	%ecx,%edx
168	movl	(%esp,%esi,4),%ecx
169	movl	$7,%esi
170	movl	%ecx,%ebp
171	shll	$6,%ecx
172	andl	%ebx,%esi
173	shrl	$26,%ebp
174	xorl	%ecx,%eax
175	shrl	$3,%ebx
176	xorl	%ebp,%edx
177	movl	(%esp,%edi,4),%ebp
178	movl	$7,%edi
179	movl	%ebp,%ecx
180	shll	$9,%ebp
181	andl	%ebx,%edi
182	shrl	$23,%ecx
183	xorl	%ebp,%eax
184	shrl	$3,%ebx
185	xorl	%ecx,%edx
186	movl	(%esp,%esi,4),%ecx
187	movl	$7,%esi
188	movl	%ecx,%ebp
189	shll	$12,%ecx
190	andl	%ebx,%esi
191	shrl	$20,%ebp
192	xorl	%ecx,%eax
193	shrl	$3,%ebx
194	xorl	%ebp,%edx
195	movl	(%esp,%edi,4),%ebp
196	movl	$7,%edi
197	movl	%ebp,%ecx
198	shll	$15,%ebp
199	andl	%ebx,%edi
200	shrl	$17,%ecx
201	xorl	%ebp,%eax
202	shrl	$3,%ebx
203	xorl	%ecx,%edx
204	movl	(%esp,%esi,4),%ecx
205	movl	$7,%esi
206	movl	%ecx,%ebp
207	shll	$18,%ecx
208	andl	%ebx,%esi
209	shrl	$14,%ebp
210	xorl	%ecx,%eax
211	shrl	$3,%ebx
212	xorl	%ebp,%edx
213	movl	(%esp,%edi,4),%ebp
214	movl	$7,%edi
215	movl	%ebp,%ecx
216	shll	$21,%ebp
217	andl	%ebx,%edi
218	shrl	$11,%ecx
219	xorl	%ebp,%eax
220	shrl	$3,%ebx
221	xorl	%ecx,%edx
222	movl	(%esp,%esi,4),%ecx
223	movl	$7,%esi
224	movl	%ecx,%ebp
225	shll	$24,%ecx
226	andl	%ebx,%esi
227	shrl	$8,%ebp
228	xorl	%ecx,%eax
229	shrl	$3,%ebx
230	xorl	%ebp,%edx
231	movl	(%esp,%edi,4),%ebp
232	movl	%ebp,%ecx
233	shll	$27,%ebp
234	movl	(%esp,%esi,4),%edi
235	shrl	$5,%ecx
236	movl	%edi,%esi
237	xorl	%ebp,%eax
238	shll	$30,%edi
239	xorl	%ecx,%edx
240	shrl	$2,%esi
241	xorl	%edi,%eax
242	xorl	%esi,%edx
243	addl	$36,%esp
244	ret
245.globl	_bn_GF2m_mul_2x2
246.type	_bn_GF2m_mul_2x2,@function
247.align	4
248_bn_GF2m_mul_2x2:
249L_bn_GF2m_mul_2x2_begin:
250	%ifdef __CET__
251
252.byte	243,15,30,251
253	%endif
254
255	call	L000PIC_me_up
256L000PIC_me_up:
257	popl	%edx
258	leal	__GLOBAL_OFFSET_TABLE_+[.-L000PIC_me_up](%edx),%edx
259	movl	_OPENSSL_ia32cap_P@GOT(%edx),%edx
260	movl	(%edx),%eax
261	movl	4(%edx),%edx
262	testl	$8388608,%eax
263	jz	L001ialu
264	testl	$16777216,%eax
265	jz	L002mmx
266	testl	$2,%edx
267	jz	L002mmx
268	movups	8(%esp),%xmm0
269	shufps	$177,%xmm0,%xmm0
270.byte	102,15,58,68,192,1
271	movl	4(%esp),%eax
272	movups	%xmm0,(%eax)
273	ret
274.align	4,0x90
275L002mmx:
276	pushl	%ebp
277	pushl	%ebx
278	pushl	%esi
279	pushl	%edi
280	movl	24(%esp),%eax
281	movl	32(%esp),%ebx
282	call	__mul_1x1_mmx
283	movq	%mm0,%mm7
284	movl	28(%esp),%eax
285	movl	36(%esp),%ebx
286	call	__mul_1x1_mmx
287	movq	%mm0,%mm6
288	movl	24(%esp),%eax
289	movl	32(%esp),%ebx
290	xorl	28(%esp),%eax
291	xorl	36(%esp),%ebx
292	call	__mul_1x1_mmx
293	pxor	%mm7,%mm0
294	movl	20(%esp),%eax
295	pxor	%mm6,%mm0
296	movq	%mm0,%mm2
297	psllq	$32,%mm0
298	popl	%edi
299	psrlq	$32,%mm2
300	popl	%esi
301	pxor	%mm6,%mm0
302	popl	%ebx
303	pxor	%mm7,%mm2
304	movq	%mm0,(%eax)
305	popl	%ebp
306	movq	%mm2,8(%eax)
307	emms
308	ret
309.align	4,0x90
310L001ialu:
311	pushl	%ebp
312	pushl	%ebx
313	pushl	%esi
314	pushl	%edi
315	subl	$20,%esp
316	movl	44(%esp),%eax
317	movl	52(%esp),%ebx
318	call	__mul_1x1_ialu
319	movl	%eax,8(%esp)
320	movl	%edx,12(%esp)
321	movl	48(%esp),%eax
322	movl	56(%esp),%ebx
323	call	__mul_1x1_ialu
324	movl	%eax,(%esp)
325	movl	%edx,4(%esp)
326	movl	44(%esp),%eax
327	movl	52(%esp),%ebx
328	xorl	48(%esp),%eax
329	xorl	56(%esp),%ebx
330	call	__mul_1x1_ialu
331	movl	40(%esp),%ebp
332	movl	(%esp),%ebx
333	movl	4(%esp),%ecx
334	movl	8(%esp),%edi
335	movl	12(%esp),%esi
336	xorl	%edx,%eax
337	xorl	%ecx,%edx
338	xorl	%ebx,%eax
339	movl	%ebx,(%ebp)
340	xorl	%edi,%edx
341	movl	%esi,12(%ebp)
342	xorl	%esi,%eax
343	addl	$20,%esp
344	xorl	%esi,%edx
345	popl	%edi
346	xorl	%edx,%eax
347	popl	%esi
348	movl	%edx,8(%ebp)
349	popl	%ebx
350	movl	%eax,4(%ebp)
351	popl	%ebp
352	ret
353.byte	71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105
354.byte	99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32
355.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
356.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
357.byte	62,0
358.comm	_OPENSSL_ia32cap_P,16
359