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