bn-586.S revision 1.11
1#include <machine/asm.h>
2.text
3.globl	bn_mul_add_words
4.type	bn_mul_add_words,@function
5.align	16
6bn_mul_add_words:
7.L_bn_mul_add_words_begin:
8	#ifdef __CET__
9
10.byte	243,15,30,251
11	#endif
12
13	call	.L000PIC_me_up
14.L000PIC_me_up:
15	popl	%eax
16	leal	OPENSSL_ia32cap_P-.L000PIC_me_up(%eax),%eax
17	btl	$26,(%eax)
18	jnc	.L001maw_non_sse2
19	movl	4(%esp),%eax
20	movl	8(%esp),%edx
21	movl	12(%esp),%ecx
22	movd	16(%esp),%mm0
23	pxor	%mm1,%mm1
24	jmp	.L002maw_sse2_entry
25.align	16
26.L003maw_sse2_unrolled:
27	movd	(%eax),%mm3
28	paddq	%mm3,%mm1
29	movd	(%edx),%mm2
30	pmuludq	%mm0,%mm2
31	movd	4(%edx),%mm4
32	pmuludq	%mm0,%mm4
33	movd	8(%edx),%mm6
34	pmuludq	%mm0,%mm6
35	movd	12(%edx),%mm7
36	pmuludq	%mm0,%mm7
37	paddq	%mm2,%mm1
38	movd	4(%eax),%mm3
39	paddq	%mm4,%mm3
40	movd	8(%eax),%mm5
41	paddq	%mm6,%mm5
42	movd	12(%eax),%mm4
43	paddq	%mm4,%mm7
44	movd	%mm1,(%eax)
45	movd	16(%edx),%mm2
46	pmuludq	%mm0,%mm2
47	psrlq	$32,%mm1
48	movd	20(%edx),%mm4
49	pmuludq	%mm0,%mm4
50	paddq	%mm3,%mm1
51	movd	24(%edx),%mm6
52	pmuludq	%mm0,%mm6
53	movd	%mm1,4(%eax)
54	psrlq	$32,%mm1
55	movd	28(%edx),%mm3
56	addl	$32,%edx
57	pmuludq	%mm0,%mm3
58	paddq	%mm5,%mm1
59	movd	16(%eax),%mm5
60	paddq	%mm5,%mm2
61	movd	%mm1,8(%eax)
62	psrlq	$32,%mm1
63	paddq	%mm7,%mm1
64	movd	20(%eax),%mm5
65	paddq	%mm5,%mm4
66	movd	%mm1,12(%eax)
67	psrlq	$32,%mm1
68	paddq	%mm2,%mm1
69	movd	24(%eax),%mm5
70	paddq	%mm5,%mm6
71	movd	%mm1,16(%eax)
72	psrlq	$32,%mm1
73	paddq	%mm4,%mm1
74	movd	28(%eax),%mm5
75	paddq	%mm5,%mm3
76	movd	%mm1,20(%eax)
77	psrlq	$32,%mm1
78	paddq	%mm6,%mm1
79	movd	%mm1,24(%eax)
80	psrlq	$32,%mm1
81	paddq	%mm3,%mm1
82	movd	%mm1,28(%eax)
83	leal	32(%eax),%eax
84	psrlq	$32,%mm1
85	subl	$8,%ecx
86	jz	.L004maw_sse2_exit
87.L002maw_sse2_entry:
88	testl	$4294967288,%ecx
89	jnz	.L003maw_sse2_unrolled
90.align	4
91.L005maw_sse2_loop:
92	movd	(%edx),%mm2
93	movd	(%eax),%mm3
94	pmuludq	%mm0,%mm2
95	leal	4(%edx),%edx
96	paddq	%mm3,%mm1
97	paddq	%mm2,%mm1
98	movd	%mm1,(%eax)
99	subl	$1,%ecx
100	psrlq	$32,%mm1
101	leal	4(%eax),%eax
102	jnz	.L005maw_sse2_loop
103.L004maw_sse2_exit:
104	movd	%mm1,%eax
105	emms
106	ret
107.align	16
108.L001maw_non_sse2:
109	pushl	%ebp
110	pushl	%ebx
111	pushl	%esi
112	pushl	%edi
113
114	xorl	%esi,%esi
115	movl	20(%esp),%edi
116	movl	28(%esp),%ecx
117	movl	24(%esp),%ebx
118	andl	$4294967288,%ecx
119	movl	32(%esp),%ebp
120	pushl	%ecx
121	jz	.L006maw_finish
122.align	16
123.L007maw_loop:
124
125	movl	(%ebx),%eax
126	mull	%ebp
127	addl	%esi,%eax
128	adcl	$0,%edx
129	addl	(%edi),%eax
130	adcl	$0,%edx
131	movl	%eax,(%edi)
132	movl	%edx,%esi
133
134	movl	4(%ebx),%eax
135	mull	%ebp
136	addl	%esi,%eax
137	adcl	$0,%edx
138	addl	4(%edi),%eax
139	adcl	$0,%edx
140	movl	%eax,4(%edi)
141	movl	%edx,%esi
142
143	movl	8(%ebx),%eax
144	mull	%ebp
145	addl	%esi,%eax
146	adcl	$0,%edx
147	addl	8(%edi),%eax
148	adcl	$0,%edx
149	movl	%eax,8(%edi)
150	movl	%edx,%esi
151
152	movl	12(%ebx),%eax
153	mull	%ebp
154	addl	%esi,%eax
155	adcl	$0,%edx
156	addl	12(%edi),%eax
157	adcl	$0,%edx
158	movl	%eax,12(%edi)
159	movl	%edx,%esi
160
161	movl	16(%ebx),%eax
162	mull	%ebp
163	addl	%esi,%eax
164	adcl	$0,%edx
165	addl	16(%edi),%eax
166	adcl	$0,%edx
167	movl	%eax,16(%edi)
168	movl	%edx,%esi
169
170	movl	20(%ebx),%eax
171	mull	%ebp
172	addl	%esi,%eax
173	adcl	$0,%edx
174	addl	20(%edi),%eax
175	adcl	$0,%edx
176	movl	%eax,20(%edi)
177	movl	%edx,%esi
178
179	movl	24(%ebx),%eax
180	mull	%ebp
181	addl	%esi,%eax
182	adcl	$0,%edx
183	addl	24(%edi),%eax
184	adcl	$0,%edx
185	movl	%eax,24(%edi)
186	movl	%edx,%esi
187
188	movl	28(%ebx),%eax
189	mull	%ebp
190	addl	%esi,%eax
191	adcl	$0,%edx
192	addl	28(%edi),%eax
193	adcl	$0,%edx
194	movl	%eax,28(%edi)
195	movl	%edx,%esi
196
197	subl	$8,%ecx
198	leal	32(%ebx),%ebx
199	leal	32(%edi),%edi
200	jnz	.L007maw_loop
201.L006maw_finish:
202	movl	32(%esp),%ecx
203	andl	$7,%ecx
204	jnz	.L008maw_finish2
205	jmp	.L009maw_end
206.L008maw_finish2:
207
208	movl	(%ebx),%eax
209	mull	%ebp
210	addl	%esi,%eax
211	adcl	$0,%edx
212	addl	(%edi),%eax
213	adcl	$0,%edx
214	decl	%ecx
215	movl	%eax,(%edi)
216	movl	%edx,%esi
217	jz	.L009maw_end
218
219	movl	4(%ebx),%eax
220	mull	%ebp
221	addl	%esi,%eax
222	adcl	$0,%edx
223	addl	4(%edi),%eax
224	adcl	$0,%edx
225	decl	%ecx
226	movl	%eax,4(%edi)
227	movl	%edx,%esi
228	jz	.L009maw_end
229
230	movl	8(%ebx),%eax
231	mull	%ebp
232	addl	%esi,%eax
233	adcl	$0,%edx
234	addl	8(%edi),%eax
235	adcl	$0,%edx
236	decl	%ecx
237	movl	%eax,8(%edi)
238	movl	%edx,%esi
239	jz	.L009maw_end
240
241	movl	12(%ebx),%eax
242	mull	%ebp
243	addl	%esi,%eax
244	adcl	$0,%edx
245	addl	12(%edi),%eax
246	adcl	$0,%edx
247	decl	%ecx
248	movl	%eax,12(%edi)
249	movl	%edx,%esi
250	jz	.L009maw_end
251
252	movl	16(%ebx),%eax
253	mull	%ebp
254	addl	%esi,%eax
255	adcl	$0,%edx
256	addl	16(%edi),%eax
257	adcl	$0,%edx
258	decl	%ecx
259	movl	%eax,16(%edi)
260	movl	%edx,%esi
261	jz	.L009maw_end
262
263	movl	20(%ebx),%eax
264	mull	%ebp
265	addl	%esi,%eax
266	adcl	$0,%edx
267	addl	20(%edi),%eax
268	adcl	$0,%edx
269	decl	%ecx
270	movl	%eax,20(%edi)
271	movl	%edx,%esi
272	jz	.L009maw_end
273
274	movl	24(%ebx),%eax
275	mull	%ebp
276	addl	%esi,%eax
277	adcl	$0,%edx
278	addl	24(%edi),%eax
279	adcl	$0,%edx
280	movl	%eax,24(%edi)
281	movl	%edx,%esi
282.L009maw_end:
283	movl	%esi,%eax
284	popl	%ecx
285	popl	%edi
286	popl	%esi
287	popl	%ebx
288	popl	%ebp
289	ret
290.size	bn_mul_add_words,.-.L_bn_mul_add_words_begin
291.globl	bn_mul_words
292.type	bn_mul_words,@function
293.align	16
294bn_mul_words:
295.L_bn_mul_words_begin:
296	#ifdef __CET__
297
298.byte	243,15,30,251
299	#endif
300
301	call	.L010PIC_me_up
302.L010PIC_me_up:
303	popl	%eax
304	leal	OPENSSL_ia32cap_P-.L010PIC_me_up(%eax),%eax
305	btl	$26,(%eax)
306	jnc	.L011mw_non_sse2
307	movl	4(%esp),%eax
308	movl	8(%esp),%edx
309	movl	12(%esp),%ecx
310	movd	16(%esp),%mm0
311	pxor	%mm1,%mm1
312.align	16
313.L012mw_sse2_loop:
314	movd	(%edx),%mm2
315	pmuludq	%mm0,%mm2
316	leal	4(%edx),%edx
317	paddq	%mm2,%mm1
318	movd	%mm1,(%eax)
319	subl	$1,%ecx
320	psrlq	$32,%mm1
321	leal	4(%eax),%eax
322	jnz	.L012mw_sse2_loop
323	movd	%mm1,%eax
324	emms
325	ret
326.align	16
327.L011mw_non_sse2:
328	pushl	%ebp
329	pushl	%ebx
330	pushl	%esi
331	pushl	%edi
332
333	xorl	%esi,%esi
334	movl	20(%esp),%edi
335	movl	24(%esp),%ebx
336	movl	28(%esp),%ebp
337	movl	32(%esp),%ecx
338	andl	$4294967288,%ebp
339	jz	.L013mw_finish
340.L014mw_loop:
341
342	movl	(%ebx),%eax
343	mull	%ecx
344	addl	%esi,%eax
345	adcl	$0,%edx
346	movl	%eax,(%edi)
347	movl	%edx,%esi
348
349	movl	4(%ebx),%eax
350	mull	%ecx
351	addl	%esi,%eax
352	adcl	$0,%edx
353	movl	%eax,4(%edi)
354	movl	%edx,%esi
355
356	movl	8(%ebx),%eax
357	mull	%ecx
358	addl	%esi,%eax
359	adcl	$0,%edx
360	movl	%eax,8(%edi)
361	movl	%edx,%esi
362
363	movl	12(%ebx),%eax
364	mull	%ecx
365	addl	%esi,%eax
366	adcl	$0,%edx
367	movl	%eax,12(%edi)
368	movl	%edx,%esi
369
370	movl	16(%ebx),%eax
371	mull	%ecx
372	addl	%esi,%eax
373	adcl	$0,%edx
374	movl	%eax,16(%edi)
375	movl	%edx,%esi
376
377	movl	20(%ebx),%eax
378	mull	%ecx
379	addl	%esi,%eax
380	adcl	$0,%edx
381	movl	%eax,20(%edi)
382	movl	%edx,%esi
383
384	movl	24(%ebx),%eax
385	mull	%ecx
386	addl	%esi,%eax
387	adcl	$0,%edx
388	movl	%eax,24(%edi)
389	movl	%edx,%esi
390
391	movl	28(%ebx),%eax
392	mull	%ecx
393	addl	%esi,%eax
394	adcl	$0,%edx
395	movl	%eax,28(%edi)
396	movl	%edx,%esi
397
398	addl	$32,%ebx
399	addl	$32,%edi
400	subl	$8,%ebp
401	jz	.L013mw_finish
402	jmp	.L014mw_loop
403.L013mw_finish:
404	movl	28(%esp),%ebp
405	andl	$7,%ebp
406	jnz	.L015mw_finish2
407	jmp	.L016mw_end
408.L015mw_finish2:
409
410	movl	(%ebx),%eax
411	mull	%ecx
412	addl	%esi,%eax
413	adcl	$0,%edx
414	movl	%eax,(%edi)
415	movl	%edx,%esi
416	decl	%ebp
417	jz	.L016mw_end
418
419	movl	4(%ebx),%eax
420	mull	%ecx
421	addl	%esi,%eax
422	adcl	$0,%edx
423	movl	%eax,4(%edi)
424	movl	%edx,%esi
425	decl	%ebp
426	jz	.L016mw_end
427
428	movl	8(%ebx),%eax
429	mull	%ecx
430	addl	%esi,%eax
431	adcl	$0,%edx
432	movl	%eax,8(%edi)
433	movl	%edx,%esi
434	decl	%ebp
435	jz	.L016mw_end
436
437	movl	12(%ebx),%eax
438	mull	%ecx
439	addl	%esi,%eax
440	adcl	$0,%edx
441	movl	%eax,12(%edi)
442	movl	%edx,%esi
443	decl	%ebp
444	jz	.L016mw_end
445
446	movl	16(%ebx),%eax
447	mull	%ecx
448	addl	%esi,%eax
449	adcl	$0,%edx
450	movl	%eax,16(%edi)
451	movl	%edx,%esi
452	decl	%ebp
453	jz	.L016mw_end
454
455	movl	20(%ebx),%eax
456	mull	%ecx
457	addl	%esi,%eax
458	adcl	$0,%edx
459	movl	%eax,20(%edi)
460	movl	%edx,%esi
461	decl	%ebp
462	jz	.L016mw_end
463
464	movl	24(%ebx),%eax
465	mull	%ecx
466	addl	%esi,%eax
467	adcl	$0,%edx
468	movl	%eax,24(%edi)
469	movl	%edx,%esi
470.L016mw_end:
471	movl	%esi,%eax
472	popl	%edi
473	popl	%esi
474	popl	%ebx
475	popl	%ebp
476	ret
477.size	bn_mul_words,.-.L_bn_mul_words_begin
478.globl	bn_sqr_words
479.type	bn_sqr_words,@function
480.align	16
481bn_sqr_words:
482.L_bn_sqr_words_begin:
483	#ifdef __CET__
484
485.byte	243,15,30,251
486	#endif
487
488	call	.L017PIC_me_up
489.L017PIC_me_up:
490	popl	%eax
491	leal	OPENSSL_ia32cap_P-.L017PIC_me_up(%eax),%eax
492	btl	$26,(%eax)
493	jnc	.L018sqr_non_sse2
494	movl	4(%esp),%eax
495	movl	8(%esp),%edx
496	movl	12(%esp),%ecx
497.align	16
498.L019sqr_sse2_loop:
499	movd	(%edx),%mm0
500	pmuludq	%mm0,%mm0
501	leal	4(%edx),%edx
502	movq	%mm0,(%eax)
503	subl	$1,%ecx
504	leal	8(%eax),%eax
505	jnz	.L019sqr_sse2_loop
506	emms
507	ret
508.align	16
509.L018sqr_non_sse2:
510	pushl	%ebp
511	pushl	%ebx
512	pushl	%esi
513	pushl	%edi
514
515	movl	20(%esp),%esi
516	movl	24(%esp),%edi
517	movl	28(%esp),%ebx
518	andl	$4294967288,%ebx
519	jz	.L020sw_finish
520.L021sw_loop:
521
522	movl	(%edi),%eax
523	mull	%eax
524	movl	%eax,(%esi)
525	movl	%edx,4(%esi)
526
527	movl	4(%edi),%eax
528	mull	%eax
529	movl	%eax,8(%esi)
530	movl	%edx,12(%esi)
531
532	movl	8(%edi),%eax
533	mull	%eax
534	movl	%eax,16(%esi)
535	movl	%edx,20(%esi)
536
537	movl	12(%edi),%eax
538	mull	%eax
539	movl	%eax,24(%esi)
540	movl	%edx,28(%esi)
541
542	movl	16(%edi),%eax
543	mull	%eax
544	movl	%eax,32(%esi)
545	movl	%edx,36(%esi)
546
547	movl	20(%edi),%eax
548	mull	%eax
549	movl	%eax,40(%esi)
550	movl	%edx,44(%esi)
551
552	movl	24(%edi),%eax
553	mull	%eax
554	movl	%eax,48(%esi)
555	movl	%edx,52(%esi)
556
557	movl	28(%edi),%eax
558	mull	%eax
559	movl	%eax,56(%esi)
560	movl	%edx,60(%esi)
561
562	addl	$32,%edi
563	addl	$64,%esi
564	subl	$8,%ebx
565	jnz	.L021sw_loop
566.L020sw_finish:
567	movl	28(%esp),%ebx
568	andl	$7,%ebx
569	jz	.L022sw_end
570
571	movl	(%edi),%eax
572	mull	%eax
573	movl	%eax,(%esi)
574	decl	%ebx
575	movl	%edx,4(%esi)
576	jz	.L022sw_end
577
578	movl	4(%edi),%eax
579	mull	%eax
580	movl	%eax,8(%esi)
581	decl	%ebx
582	movl	%edx,12(%esi)
583	jz	.L022sw_end
584
585	movl	8(%edi),%eax
586	mull	%eax
587	movl	%eax,16(%esi)
588	decl	%ebx
589	movl	%edx,20(%esi)
590	jz	.L022sw_end
591
592	movl	12(%edi),%eax
593	mull	%eax
594	movl	%eax,24(%esi)
595	decl	%ebx
596	movl	%edx,28(%esi)
597	jz	.L022sw_end
598
599	movl	16(%edi),%eax
600	mull	%eax
601	movl	%eax,32(%esi)
602	decl	%ebx
603	movl	%edx,36(%esi)
604	jz	.L022sw_end
605
606	movl	20(%edi),%eax
607	mull	%eax
608	movl	%eax,40(%esi)
609	decl	%ebx
610	movl	%edx,44(%esi)
611	jz	.L022sw_end
612
613	movl	24(%edi),%eax
614	mull	%eax
615	movl	%eax,48(%esi)
616	movl	%edx,52(%esi)
617.L022sw_end:
618	popl	%edi
619	popl	%esi
620	popl	%ebx
621	popl	%ebp
622	ret
623.size	bn_sqr_words,.-.L_bn_sqr_words_begin
624.globl	bn_div_words
625.type	bn_div_words,@function
626.align	16
627bn_div_words:
628.L_bn_div_words_begin:
629	#ifdef __CET__
630
631.byte	243,15,30,251
632	#endif
633
634	movl	4(%esp),%edx
635	movl	8(%esp),%eax
636	movl	12(%esp),%ecx
637	divl	%ecx
638	ret
639.size	bn_div_words,.-.L_bn_div_words_begin
640.globl	bn_add_words
641.type	bn_add_words,@function
642.align	16
643bn_add_words:
644.L_bn_add_words_begin:
645	#ifdef __CET__
646
647.byte	243,15,30,251
648	#endif
649
650	pushl	%ebp
651	pushl	%ebx
652	pushl	%esi
653	pushl	%edi
654
655	movl	20(%esp),%ebx
656	movl	24(%esp),%esi
657	movl	28(%esp),%edi
658	movl	32(%esp),%ebp
659	xorl	%eax,%eax
660	andl	$4294967288,%ebp
661	jz	.L023aw_finish
662.L024aw_loop:
663
664	movl	(%esi),%ecx
665	movl	(%edi),%edx
666	addl	%eax,%ecx
667	movl	$0,%eax
668	adcl	%eax,%eax
669	addl	%edx,%ecx
670	adcl	$0,%eax
671	movl	%ecx,(%ebx)
672
673	movl	4(%esi),%ecx
674	movl	4(%edi),%edx
675	addl	%eax,%ecx
676	movl	$0,%eax
677	adcl	%eax,%eax
678	addl	%edx,%ecx
679	adcl	$0,%eax
680	movl	%ecx,4(%ebx)
681
682	movl	8(%esi),%ecx
683	movl	8(%edi),%edx
684	addl	%eax,%ecx
685	movl	$0,%eax
686	adcl	%eax,%eax
687	addl	%edx,%ecx
688	adcl	$0,%eax
689	movl	%ecx,8(%ebx)
690
691	movl	12(%esi),%ecx
692	movl	12(%edi),%edx
693	addl	%eax,%ecx
694	movl	$0,%eax
695	adcl	%eax,%eax
696	addl	%edx,%ecx
697	adcl	$0,%eax
698	movl	%ecx,12(%ebx)
699
700	movl	16(%esi),%ecx
701	movl	16(%edi),%edx
702	addl	%eax,%ecx
703	movl	$0,%eax
704	adcl	%eax,%eax
705	addl	%edx,%ecx
706	adcl	$0,%eax
707	movl	%ecx,16(%ebx)
708
709	movl	20(%esi),%ecx
710	movl	20(%edi),%edx
711	addl	%eax,%ecx
712	movl	$0,%eax
713	adcl	%eax,%eax
714	addl	%edx,%ecx
715	adcl	$0,%eax
716	movl	%ecx,20(%ebx)
717
718	movl	24(%esi),%ecx
719	movl	24(%edi),%edx
720	addl	%eax,%ecx
721	movl	$0,%eax
722	adcl	%eax,%eax
723	addl	%edx,%ecx
724	adcl	$0,%eax
725	movl	%ecx,24(%ebx)
726
727	movl	28(%esi),%ecx
728	movl	28(%edi),%edx
729	addl	%eax,%ecx
730	movl	$0,%eax
731	adcl	%eax,%eax
732	addl	%edx,%ecx
733	adcl	$0,%eax
734	movl	%ecx,28(%ebx)
735
736	addl	$32,%esi
737	addl	$32,%edi
738	addl	$32,%ebx
739	subl	$8,%ebp
740	jnz	.L024aw_loop
741.L023aw_finish:
742	movl	32(%esp),%ebp
743	andl	$7,%ebp
744	jz	.L025aw_end
745
746	movl	(%esi),%ecx
747	movl	(%edi),%edx
748	addl	%eax,%ecx
749	movl	$0,%eax
750	adcl	%eax,%eax
751	addl	%edx,%ecx
752	adcl	$0,%eax
753	decl	%ebp
754	movl	%ecx,(%ebx)
755	jz	.L025aw_end
756
757	movl	4(%esi),%ecx
758	movl	4(%edi),%edx
759	addl	%eax,%ecx
760	movl	$0,%eax
761	adcl	%eax,%eax
762	addl	%edx,%ecx
763	adcl	$0,%eax
764	decl	%ebp
765	movl	%ecx,4(%ebx)
766	jz	.L025aw_end
767
768	movl	8(%esi),%ecx
769	movl	8(%edi),%edx
770	addl	%eax,%ecx
771	movl	$0,%eax
772	adcl	%eax,%eax
773	addl	%edx,%ecx
774	adcl	$0,%eax
775	decl	%ebp
776	movl	%ecx,8(%ebx)
777	jz	.L025aw_end
778
779	movl	12(%esi),%ecx
780	movl	12(%edi),%edx
781	addl	%eax,%ecx
782	movl	$0,%eax
783	adcl	%eax,%eax
784	addl	%edx,%ecx
785	adcl	$0,%eax
786	decl	%ebp
787	movl	%ecx,12(%ebx)
788	jz	.L025aw_end
789
790	movl	16(%esi),%ecx
791	movl	16(%edi),%edx
792	addl	%eax,%ecx
793	movl	$0,%eax
794	adcl	%eax,%eax
795	addl	%edx,%ecx
796	adcl	$0,%eax
797	decl	%ebp
798	movl	%ecx,16(%ebx)
799	jz	.L025aw_end
800
801	movl	20(%esi),%ecx
802	movl	20(%edi),%edx
803	addl	%eax,%ecx
804	movl	$0,%eax
805	adcl	%eax,%eax
806	addl	%edx,%ecx
807	adcl	$0,%eax
808	decl	%ebp
809	movl	%ecx,20(%ebx)
810	jz	.L025aw_end
811
812	movl	24(%esi),%ecx
813	movl	24(%edi),%edx
814	addl	%eax,%ecx
815	movl	$0,%eax
816	adcl	%eax,%eax
817	addl	%edx,%ecx
818	adcl	$0,%eax
819	movl	%ecx,24(%ebx)
820.L025aw_end:
821	popl	%edi
822	popl	%esi
823	popl	%ebx
824	popl	%ebp
825	ret
826.size	bn_add_words,.-.L_bn_add_words_begin
827.globl	bn_sub_words
828.type	bn_sub_words,@function
829.align	16
830bn_sub_words:
831.L_bn_sub_words_begin:
832	#ifdef __CET__
833
834.byte	243,15,30,251
835	#endif
836
837	pushl	%ebp
838	pushl	%ebx
839	pushl	%esi
840	pushl	%edi
841
842	movl	20(%esp),%ebx
843	movl	24(%esp),%esi
844	movl	28(%esp),%edi
845	movl	32(%esp),%ebp
846	xorl	%eax,%eax
847	andl	$4294967288,%ebp
848	jz	.L026aw_finish
849.L027aw_loop:
850
851	movl	(%esi),%ecx
852	movl	(%edi),%edx
853	subl	%eax,%ecx
854	movl	$0,%eax
855	adcl	%eax,%eax
856	subl	%edx,%ecx
857	adcl	$0,%eax
858	movl	%ecx,(%ebx)
859
860	movl	4(%esi),%ecx
861	movl	4(%edi),%edx
862	subl	%eax,%ecx
863	movl	$0,%eax
864	adcl	%eax,%eax
865	subl	%edx,%ecx
866	adcl	$0,%eax
867	movl	%ecx,4(%ebx)
868
869	movl	8(%esi),%ecx
870	movl	8(%edi),%edx
871	subl	%eax,%ecx
872	movl	$0,%eax
873	adcl	%eax,%eax
874	subl	%edx,%ecx
875	adcl	$0,%eax
876	movl	%ecx,8(%ebx)
877
878	movl	12(%esi),%ecx
879	movl	12(%edi),%edx
880	subl	%eax,%ecx
881	movl	$0,%eax
882	adcl	%eax,%eax
883	subl	%edx,%ecx
884	adcl	$0,%eax
885	movl	%ecx,12(%ebx)
886
887	movl	16(%esi),%ecx
888	movl	16(%edi),%edx
889	subl	%eax,%ecx
890	movl	$0,%eax
891	adcl	%eax,%eax
892	subl	%edx,%ecx
893	adcl	$0,%eax
894	movl	%ecx,16(%ebx)
895
896	movl	20(%esi),%ecx
897	movl	20(%edi),%edx
898	subl	%eax,%ecx
899	movl	$0,%eax
900	adcl	%eax,%eax
901	subl	%edx,%ecx
902	adcl	$0,%eax
903	movl	%ecx,20(%ebx)
904
905	movl	24(%esi),%ecx
906	movl	24(%edi),%edx
907	subl	%eax,%ecx
908	movl	$0,%eax
909	adcl	%eax,%eax
910	subl	%edx,%ecx
911	adcl	$0,%eax
912	movl	%ecx,24(%ebx)
913
914	movl	28(%esi),%ecx
915	movl	28(%edi),%edx
916	subl	%eax,%ecx
917	movl	$0,%eax
918	adcl	%eax,%eax
919	subl	%edx,%ecx
920	adcl	$0,%eax
921	movl	%ecx,28(%ebx)
922
923	addl	$32,%esi
924	addl	$32,%edi
925	addl	$32,%ebx
926	subl	$8,%ebp
927	jnz	.L027aw_loop
928.L026aw_finish:
929	movl	32(%esp),%ebp
930	andl	$7,%ebp
931	jz	.L028aw_end
932
933	movl	(%esi),%ecx
934	movl	(%edi),%edx
935	subl	%eax,%ecx
936	movl	$0,%eax
937	adcl	%eax,%eax
938	subl	%edx,%ecx
939	adcl	$0,%eax
940	decl	%ebp
941	movl	%ecx,(%ebx)
942	jz	.L028aw_end
943
944	movl	4(%esi),%ecx
945	movl	4(%edi),%edx
946	subl	%eax,%ecx
947	movl	$0,%eax
948	adcl	%eax,%eax
949	subl	%edx,%ecx
950	adcl	$0,%eax
951	decl	%ebp
952	movl	%ecx,4(%ebx)
953	jz	.L028aw_end
954
955	movl	8(%esi),%ecx
956	movl	8(%edi),%edx
957	subl	%eax,%ecx
958	movl	$0,%eax
959	adcl	%eax,%eax
960	subl	%edx,%ecx
961	adcl	$0,%eax
962	decl	%ebp
963	movl	%ecx,8(%ebx)
964	jz	.L028aw_end
965
966	movl	12(%esi),%ecx
967	movl	12(%edi),%edx
968	subl	%eax,%ecx
969	movl	$0,%eax
970	adcl	%eax,%eax
971	subl	%edx,%ecx
972	adcl	$0,%eax
973	decl	%ebp
974	movl	%ecx,12(%ebx)
975	jz	.L028aw_end
976
977	movl	16(%esi),%ecx
978	movl	16(%edi),%edx
979	subl	%eax,%ecx
980	movl	$0,%eax
981	adcl	%eax,%eax
982	subl	%edx,%ecx
983	adcl	$0,%eax
984	decl	%ebp
985	movl	%ecx,16(%ebx)
986	jz	.L028aw_end
987
988	movl	20(%esi),%ecx
989	movl	20(%edi),%edx
990	subl	%eax,%ecx
991	movl	$0,%eax
992	adcl	%eax,%eax
993	subl	%edx,%ecx
994	adcl	$0,%eax
995	decl	%ebp
996	movl	%ecx,20(%ebx)
997	jz	.L028aw_end
998
999	movl	24(%esi),%ecx
1000	movl	24(%edi),%edx
1001	subl	%eax,%ecx
1002	movl	$0,%eax
1003	adcl	%eax,%eax
1004	subl	%edx,%ecx
1005	adcl	$0,%eax
1006	movl	%ecx,24(%ebx)
1007.L028aw_end:
1008	popl	%edi
1009	popl	%esi
1010	popl	%ebx
1011	popl	%ebp
1012	ret
1013.size	bn_sub_words,.-.L_bn_sub_words_begin
1014.globl	bn_sub_part_words
1015.type	bn_sub_part_words,@function
1016.align	16
1017bn_sub_part_words:
1018.L_bn_sub_part_words_begin:
1019	#ifdef __CET__
1020
1021.byte	243,15,30,251
1022	#endif
1023
1024	pushl	%ebp
1025	pushl	%ebx
1026	pushl	%esi
1027	pushl	%edi
1028
1029	movl	20(%esp),%ebx
1030	movl	24(%esp),%esi
1031	movl	28(%esp),%edi
1032	movl	32(%esp),%ebp
1033	xorl	%eax,%eax
1034	andl	$4294967288,%ebp
1035	jz	.L029aw_finish
1036.L030aw_loop:
1037
1038	movl	(%esi),%ecx
1039	movl	(%edi),%edx
1040	subl	%eax,%ecx
1041	movl	$0,%eax
1042	adcl	%eax,%eax
1043	subl	%edx,%ecx
1044	adcl	$0,%eax
1045	movl	%ecx,(%ebx)
1046
1047	movl	4(%esi),%ecx
1048	movl	4(%edi),%edx
1049	subl	%eax,%ecx
1050	movl	$0,%eax
1051	adcl	%eax,%eax
1052	subl	%edx,%ecx
1053	adcl	$0,%eax
1054	movl	%ecx,4(%ebx)
1055
1056	movl	8(%esi),%ecx
1057	movl	8(%edi),%edx
1058	subl	%eax,%ecx
1059	movl	$0,%eax
1060	adcl	%eax,%eax
1061	subl	%edx,%ecx
1062	adcl	$0,%eax
1063	movl	%ecx,8(%ebx)
1064
1065	movl	12(%esi),%ecx
1066	movl	12(%edi),%edx
1067	subl	%eax,%ecx
1068	movl	$0,%eax
1069	adcl	%eax,%eax
1070	subl	%edx,%ecx
1071	adcl	$0,%eax
1072	movl	%ecx,12(%ebx)
1073
1074	movl	16(%esi),%ecx
1075	movl	16(%edi),%edx
1076	subl	%eax,%ecx
1077	movl	$0,%eax
1078	adcl	%eax,%eax
1079	subl	%edx,%ecx
1080	adcl	$0,%eax
1081	movl	%ecx,16(%ebx)
1082
1083	movl	20(%esi),%ecx
1084	movl	20(%edi),%edx
1085	subl	%eax,%ecx
1086	movl	$0,%eax
1087	adcl	%eax,%eax
1088	subl	%edx,%ecx
1089	adcl	$0,%eax
1090	movl	%ecx,20(%ebx)
1091
1092	movl	24(%esi),%ecx
1093	movl	24(%edi),%edx
1094	subl	%eax,%ecx
1095	movl	$0,%eax
1096	adcl	%eax,%eax
1097	subl	%edx,%ecx
1098	adcl	$0,%eax
1099	movl	%ecx,24(%ebx)
1100
1101	movl	28(%esi),%ecx
1102	movl	28(%edi),%edx
1103	subl	%eax,%ecx
1104	movl	$0,%eax
1105	adcl	%eax,%eax
1106	subl	%edx,%ecx
1107	adcl	$0,%eax
1108	movl	%ecx,28(%ebx)
1109
1110	addl	$32,%esi
1111	addl	$32,%edi
1112	addl	$32,%ebx
1113	subl	$8,%ebp
1114	jnz	.L030aw_loop
1115.L029aw_finish:
1116	movl	32(%esp),%ebp
1117	andl	$7,%ebp
1118	jz	.L031aw_end
1119
1120	movl	(%esi),%ecx
1121	movl	(%edi),%edx
1122	subl	%eax,%ecx
1123	movl	$0,%eax
1124	adcl	%eax,%eax
1125	subl	%edx,%ecx
1126	adcl	$0,%eax
1127	movl	%ecx,(%ebx)
1128	addl	$4,%esi
1129	addl	$4,%edi
1130	addl	$4,%ebx
1131	decl	%ebp
1132	jz	.L031aw_end
1133
1134	movl	(%esi),%ecx
1135	movl	(%edi),%edx
1136	subl	%eax,%ecx
1137	movl	$0,%eax
1138	adcl	%eax,%eax
1139	subl	%edx,%ecx
1140	adcl	$0,%eax
1141	movl	%ecx,(%ebx)
1142	addl	$4,%esi
1143	addl	$4,%edi
1144	addl	$4,%ebx
1145	decl	%ebp
1146	jz	.L031aw_end
1147
1148	movl	(%esi),%ecx
1149	movl	(%edi),%edx
1150	subl	%eax,%ecx
1151	movl	$0,%eax
1152	adcl	%eax,%eax
1153	subl	%edx,%ecx
1154	adcl	$0,%eax
1155	movl	%ecx,(%ebx)
1156	addl	$4,%esi
1157	addl	$4,%edi
1158	addl	$4,%ebx
1159	decl	%ebp
1160	jz	.L031aw_end
1161
1162	movl	(%esi),%ecx
1163	movl	(%edi),%edx
1164	subl	%eax,%ecx
1165	movl	$0,%eax
1166	adcl	%eax,%eax
1167	subl	%edx,%ecx
1168	adcl	$0,%eax
1169	movl	%ecx,(%ebx)
1170	addl	$4,%esi
1171	addl	$4,%edi
1172	addl	$4,%ebx
1173	decl	%ebp
1174	jz	.L031aw_end
1175
1176	movl	(%esi),%ecx
1177	movl	(%edi),%edx
1178	subl	%eax,%ecx
1179	movl	$0,%eax
1180	adcl	%eax,%eax
1181	subl	%edx,%ecx
1182	adcl	$0,%eax
1183	movl	%ecx,(%ebx)
1184	addl	$4,%esi
1185	addl	$4,%edi
1186	addl	$4,%ebx
1187	decl	%ebp
1188	jz	.L031aw_end
1189
1190	movl	(%esi),%ecx
1191	movl	(%edi),%edx
1192	subl	%eax,%ecx
1193	movl	$0,%eax
1194	adcl	%eax,%eax
1195	subl	%edx,%ecx
1196	adcl	$0,%eax
1197	movl	%ecx,(%ebx)
1198	addl	$4,%esi
1199	addl	$4,%edi
1200	addl	$4,%ebx
1201	decl	%ebp
1202	jz	.L031aw_end
1203
1204	movl	(%esi),%ecx
1205	movl	(%edi),%edx
1206	subl	%eax,%ecx
1207	movl	$0,%eax
1208	adcl	%eax,%eax
1209	subl	%edx,%ecx
1210	adcl	$0,%eax
1211	movl	%ecx,(%ebx)
1212	addl	$4,%esi
1213	addl	$4,%edi
1214	addl	$4,%ebx
1215.L031aw_end:
1216	cmpl	$0,36(%esp)
1217	je	.L032pw_end
1218	movl	36(%esp),%ebp
1219	cmpl	$0,%ebp
1220	je	.L032pw_end
1221	jge	.L033pw_pos
1222
1223	movl	$0,%edx
1224	subl	%ebp,%edx
1225	movl	%edx,%ebp
1226	andl	$4294967288,%ebp
1227	jz	.L034pw_neg_finish
1228.L035pw_neg_loop:
1229
1230	movl	$0,%ecx
1231	movl	(%edi),%edx
1232	subl	%eax,%ecx
1233	movl	$0,%eax
1234	adcl	%eax,%eax
1235	subl	%edx,%ecx
1236	adcl	$0,%eax
1237	movl	%ecx,(%ebx)
1238
1239	movl	$0,%ecx
1240	movl	4(%edi),%edx
1241	subl	%eax,%ecx
1242	movl	$0,%eax
1243	adcl	%eax,%eax
1244	subl	%edx,%ecx
1245	adcl	$0,%eax
1246	movl	%ecx,4(%ebx)
1247
1248	movl	$0,%ecx
1249	movl	8(%edi),%edx
1250	subl	%eax,%ecx
1251	movl	$0,%eax
1252	adcl	%eax,%eax
1253	subl	%edx,%ecx
1254	adcl	$0,%eax
1255	movl	%ecx,8(%ebx)
1256
1257	movl	$0,%ecx
1258	movl	12(%edi),%edx
1259	subl	%eax,%ecx
1260	movl	$0,%eax
1261	adcl	%eax,%eax
1262	subl	%edx,%ecx
1263	adcl	$0,%eax
1264	movl	%ecx,12(%ebx)
1265
1266	movl	$0,%ecx
1267	movl	16(%edi),%edx
1268	subl	%eax,%ecx
1269	movl	$0,%eax
1270	adcl	%eax,%eax
1271	subl	%edx,%ecx
1272	adcl	$0,%eax
1273	movl	%ecx,16(%ebx)
1274
1275	movl	$0,%ecx
1276	movl	20(%edi),%edx
1277	subl	%eax,%ecx
1278	movl	$0,%eax
1279	adcl	%eax,%eax
1280	subl	%edx,%ecx
1281	adcl	$0,%eax
1282	movl	%ecx,20(%ebx)
1283
1284	movl	$0,%ecx
1285	movl	24(%edi),%edx
1286	subl	%eax,%ecx
1287	movl	$0,%eax
1288	adcl	%eax,%eax
1289	subl	%edx,%ecx
1290	adcl	$0,%eax
1291	movl	%ecx,24(%ebx)
1292
1293	movl	$0,%ecx
1294	movl	28(%edi),%edx
1295	subl	%eax,%ecx
1296	movl	$0,%eax
1297	adcl	%eax,%eax
1298	subl	%edx,%ecx
1299	adcl	$0,%eax
1300	movl	%ecx,28(%ebx)
1301
1302	addl	$32,%edi
1303	addl	$32,%ebx
1304	subl	$8,%ebp
1305	jnz	.L035pw_neg_loop
1306.L034pw_neg_finish:
1307	movl	36(%esp),%edx
1308	movl	$0,%ebp
1309	subl	%edx,%ebp
1310	andl	$7,%ebp
1311	jz	.L032pw_end
1312
1313	movl	$0,%ecx
1314	movl	(%edi),%edx
1315	subl	%eax,%ecx
1316	movl	$0,%eax
1317	adcl	%eax,%eax
1318	subl	%edx,%ecx
1319	adcl	$0,%eax
1320	decl	%ebp
1321	movl	%ecx,(%ebx)
1322	jz	.L032pw_end
1323
1324	movl	$0,%ecx
1325	movl	4(%edi),%edx
1326	subl	%eax,%ecx
1327	movl	$0,%eax
1328	adcl	%eax,%eax
1329	subl	%edx,%ecx
1330	adcl	$0,%eax
1331	decl	%ebp
1332	movl	%ecx,4(%ebx)
1333	jz	.L032pw_end
1334
1335	movl	$0,%ecx
1336	movl	8(%edi),%edx
1337	subl	%eax,%ecx
1338	movl	$0,%eax
1339	adcl	%eax,%eax
1340	subl	%edx,%ecx
1341	adcl	$0,%eax
1342	decl	%ebp
1343	movl	%ecx,8(%ebx)
1344	jz	.L032pw_end
1345
1346	movl	$0,%ecx
1347	movl	12(%edi),%edx
1348	subl	%eax,%ecx
1349	movl	$0,%eax
1350	adcl	%eax,%eax
1351	subl	%edx,%ecx
1352	adcl	$0,%eax
1353	decl	%ebp
1354	movl	%ecx,12(%ebx)
1355	jz	.L032pw_end
1356
1357	movl	$0,%ecx
1358	movl	16(%edi),%edx
1359	subl	%eax,%ecx
1360	movl	$0,%eax
1361	adcl	%eax,%eax
1362	subl	%edx,%ecx
1363	adcl	$0,%eax
1364	decl	%ebp
1365	movl	%ecx,16(%ebx)
1366	jz	.L032pw_end
1367
1368	movl	$0,%ecx
1369	movl	20(%edi),%edx
1370	subl	%eax,%ecx
1371	movl	$0,%eax
1372	adcl	%eax,%eax
1373	subl	%edx,%ecx
1374	adcl	$0,%eax
1375	decl	%ebp
1376	movl	%ecx,20(%ebx)
1377	jz	.L032pw_end
1378
1379	movl	$0,%ecx
1380	movl	24(%edi),%edx
1381	subl	%eax,%ecx
1382	movl	$0,%eax
1383	adcl	%eax,%eax
1384	subl	%edx,%ecx
1385	adcl	$0,%eax
1386	movl	%ecx,24(%ebx)
1387	jmp	.L032pw_end
1388.L033pw_pos:
1389	andl	$4294967288,%ebp
1390	jz	.L036pw_pos_finish
1391.L037pw_pos_loop:
1392
1393	movl	(%esi),%ecx
1394	subl	%eax,%ecx
1395	movl	%ecx,(%ebx)
1396	jnc	.L038pw_nc0
1397
1398	movl	4(%esi),%ecx
1399	subl	%eax,%ecx
1400	movl	%ecx,4(%ebx)
1401	jnc	.L039pw_nc1
1402
1403	movl	8(%esi),%ecx
1404	subl	%eax,%ecx
1405	movl	%ecx,8(%ebx)
1406	jnc	.L040pw_nc2
1407
1408	movl	12(%esi),%ecx
1409	subl	%eax,%ecx
1410	movl	%ecx,12(%ebx)
1411	jnc	.L041pw_nc3
1412
1413	movl	16(%esi),%ecx
1414	subl	%eax,%ecx
1415	movl	%ecx,16(%ebx)
1416	jnc	.L042pw_nc4
1417
1418	movl	20(%esi),%ecx
1419	subl	%eax,%ecx
1420	movl	%ecx,20(%ebx)
1421	jnc	.L043pw_nc5
1422
1423	movl	24(%esi),%ecx
1424	subl	%eax,%ecx
1425	movl	%ecx,24(%ebx)
1426	jnc	.L044pw_nc6
1427
1428	movl	28(%esi),%ecx
1429	subl	%eax,%ecx
1430	movl	%ecx,28(%ebx)
1431	jnc	.L045pw_nc7
1432
1433	addl	$32,%esi
1434	addl	$32,%ebx
1435	subl	$8,%ebp
1436	jnz	.L037pw_pos_loop
1437.L036pw_pos_finish:
1438	movl	36(%esp),%ebp
1439	andl	$7,%ebp
1440	jz	.L032pw_end
1441
1442	movl	(%esi),%ecx
1443	subl	%eax,%ecx
1444	movl	%ecx,(%ebx)
1445	jnc	.L046pw_tail_nc0
1446	decl	%ebp
1447	jz	.L032pw_end
1448
1449	movl	4(%esi),%ecx
1450	subl	%eax,%ecx
1451	movl	%ecx,4(%ebx)
1452	jnc	.L047pw_tail_nc1
1453	decl	%ebp
1454	jz	.L032pw_end
1455
1456	movl	8(%esi),%ecx
1457	subl	%eax,%ecx
1458	movl	%ecx,8(%ebx)
1459	jnc	.L048pw_tail_nc2
1460	decl	%ebp
1461	jz	.L032pw_end
1462
1463	movl	12(%esi),%ecx
1464	subl	%eax,%ecx
1465	movl	%ecx,12(%ebx)
1466	jnc	.L049pw_tail_nc3
1467	decl	%ebp
1468	jz	.L032pw_end
1469
1470	movl	16(%esi),%ecx
1471	subl	%eax,%ecx
1472	movl	%ecx,16(%ebx)
1473	jnc	.L050pw_tail_nc4
1474	decl	%ebp
1475	jz	.L032pw_end
1476
1477	movl	20(%esi),%ecx
1478	subl	%eax,%ecx
1479	movl	%ecx,20(%ebx)
1480	jnc	.L051pw_tail_nc5
1481	decl	%ebp
1482	jz	.L032pw_end
1483
1484	movl	24(%esi),%ecx
1485	subl	%eax,%ecx
1486	movl	%ecx,24(%ebx)
1487	jnc	.L052pw_tail_nc6
1488	movl	$1,%eax
1489	jmp	.L032pw_end
1490.L053pw_nc_loop:
1491	movl	(%esi),%ecx
1492	movl	%ecx,(%ebx)
1493.L038pw_nc0:
1494	movl	4(%esi),%ecx
1495	movl	%ecx,4(%ebx)
1496.L039pw_nc1:
1497	movl	8(%esi),%ecx
1498	movl	%ecx,8(%ebx)
1499.L040pw_nc2:
1500	movl	12(%esi),%ecx
1501	movl	%ecx,12(%ebx)
1502.L041pw_nc3:
1503	movl	16(%esi),%ecx
1504	movl	%ecx,16(%ebx)
1505.L042pw_nc4:
1506	movl	20(%esi),%ecx
1507	movl	%ecx,20(%ebx)
1508.L043pw_nc5:
1509	movl	24(%esi),%ecx
1510	movl	%ecx,24(%ebx)
1511.L044pw_nc6:
1512	movl	28(%esi),%ecx
1513	movl	%ecx,28(%ebx)
1514.L045pw_nc7:
1515
1516	addl	$32,%esi
1517	addl	$32,%ebx
1518	subl	$8,%ebp
1519	jnz	.L053pw_nc_loop
1520	movl	36(%esp),%ebp
1521	andl	$7,%ebp
1522	jz	.L054pw_nc_end
1523	movl	(%esi),%ecx
1524	movl	%ecx,(%ebx)
1525.L046pw_tail_nc0:
1526	decl	%ebp
1527	jz	.L054pw_nc_end
1528	movl	4(%esi),%ecx
1529	movl	%ecx,4(%ebx)
1530.L047pw_tail_nc1:
1531	decl	%ebp
1532	jz	.L054pw_nc_end
1533	movl	8(%esi),%ecx
1534	movl	%ecx,8(%ebx)
1535.L048pw_tail_nc2:
1536	decl	%ebp
1537	jz	.L054pw_nc_end
1538	movl	12(%esi),%ecx
1539	movl	%ecx,12(%ebx)
1540.L049pw_tail_nc3:
1541	decl	%ebp
1542	jz	.L054pw_nc_end
1543	movl	16(%esi),%ecx
1544	movl	%ecx,16(%ebx)
1545.L050pw_tail_nc4:
1546	decl	%ebp
1547	jz	.L054pw_nc_end
1548	movl	20(%esi),%ecx
1549	movl	%ecx,20(%ebx)
1550.L051pw_tail_nc5:
1551	decl	%ebp
1552	jz	.L054pw_nc_end
1553	movl	24(%esi),%ecx
1554	movl	%ecx,24(%ebx)
1555.L052pw_tail_nc6:
1556.L054pw_nc_end:
1557	movl	$0,%eax
1558.L032pw_end:
1559	popl	%edi
1560	popl	%esi
1561	popl	%ebx
1562	popl	%ebp
1563	ret
1564.size	bn_sub_part_words,.-.L_bn_sub_part_words_begin
1565.comm	OPENSSL_ia32cap_P,16,4
1566
1567	.section ".note.gnu.property", "a"
1568	.p2align 2
1569	.long 1f - 0f
1570	.long 4f - 1f
1571	.long 5
15720:
1573	.asciz "GNU"
15741:
1575	.p2align 2
1576	.long 0xc0000002
1577	.long 3f - 2f
15782:
1579	.long 3
15803:
1581	.p2align 2
15824:
1583