• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.machine	"any"
2.csect	.text[PR],7
3
4.globl	.poly1305_init_fpu
5.align	6
6.poly1305_init_fpu:
7	stdu	1,-48(1)
8	mflr	6
9	std	6,64(1)
10
11	bl	LPICmeup
12
13	xor	0,0,0
14	mtlr	6
15
16	lfd	8,8*0(5)
17	lfd	9,8*1(5)
18	lfd	10,8*2(5)
19	lfd	11,8*3(5)
20	lfd	12,8*4(5)
21	lfd	13,8*5(5)
22
23	stfd	8,8*0(3)
24	stfd	9,8*1(3)
25	stfd	10,8*2(3)
26	stfd	11,8*3(3)
27
28	cmpld	4,0
29	beq-	Lno_key
30
31	lfd	6,8*13(5)
32	mffs	7
33
34	stfd	8,8*4(3)
35	stfd	9,8*5(3)
36	stfd	10,8*6(3)
37	stfd	11,8*7(3)
38
39	li	8,4
40	li	9,8
41	li	10,12
42	lwbrx	7,0,4
43	lwbrx	8,8,4
44	lwbrx	9,9,4
45	lwbrx	10,10,4
46
47	lis	11,0xf000
48	ori	12,11,3
49	andc	7,7,11
50	andc	8,8,12
51	andc	9,9,12
52	andc	10,10,12
53
54	stw	7,36(3)
55	stw	8,44(3)
56	stw	9,52(3)
57	stw	10,60(3)
58
59	mtfsf	255,6
60	stfd	8,8*18(3)
61	stfd	9,8*19(3)
62	stfd	10,8*20(3)
63	stfd	11,8*21(3)
64	stfd	12,8*22(3)
65	stfd	13,8*23(3)
66
67	lfd	0,8*4(3)
68	lfd	2,8*5(3)
69	lfd	4,8*6(3)
70	lfd	6,8*7(3)
71
72	fsub	0,0,8
73	fsub	2,2,9
74	fsub	4,4,10
75	fsub	6,6,11
76
77	lfd	8,8*6(5)
78	lfd	9,8*7(5)
79	lfd	10,8*8(5)
80	lfd	11,8*9(5)
81
82	fmul	3,2,13
83	fmul	5,4,13
84	stfd	7,8*15(3)
85	fmul	7,6,13
86
87	fadd	1,0,8
88	stfd	3,8*12(3)
89	fadd	3,2,9
90	stfd	5,8*13(3)
91	fadd	5,4,10
92	stfd	7,8*14(3)
93	fadd	7,6,11
94
95	fsub	1,1,8
96	fsub	3,3,9
97	fsub	5,5,10
98	fsub	7,7,11
99
100	lfd	8,8*10(5)
101	lfd	9,8*11(5)
102	lfd	10,8*12(5)
103
104	fsub	0,0,1
105	fsub	2,2,3
106	fsub	4,4,5
107	fsub	6,6,7
108
109	stfd	1,8*5(3)
110	stfd	3,8*7(3)
111	stfd	5,8*9(3)
112	stfd	7,8*11(3)
113
114	stfd	0,8*4(3)
115	stfd	2,8*6(3)
116	stfd	4,8*8(3)
117	stfd	6,8*10(3)
118
119	lfd	2,8*12(3)
120	lfd	4,8*13(3)
121	lfd	6,8*14(3)
122	lfd	0,8*15(3)
123
124	fadd	3,2,8
125	fadd	5,4,9
126	fadd	7,6,10
127
128	fsub	3,3,8
129	fsub	5,5,9
130	fsub	7,7,10
131
132	fsub	2,2,3
133	fsub	4,4,5
134	fsub	6,6,7
135
136	stfd	3,8*13(3)
137	stfd	5,8*15(3)
138	stfd	7,8*17(3)
139
140	stfd	2,8*12(3)
141	stfd	4,8*14(3)
142	stfd	6,8*16(3)
143
144	mtfsf	255,0
145Lno_key:
146	xor	3,3,3
147	addi	1,1,48
148	blr
149.long	0
150.byte	0,12,4,1,0x80,0,2,0
151
152
153.globl	.poly1305_blocks_fpu
154.align	4
155.poly1305_blocks_fpu:
156	srwi.	5,5,4
157	beq-	Labort
158
159	stdu	1,-240(1)
160	mflr	0
161	stfd	14,96(1)
162	stfd	15,104(1)
163	stfd	16,112(1)
164	stfd	17,120(1)
165	stfd	18,128(1)
166	stfd	19,136(1)
167	stfd	20,144(1)
168	stfd	21,152(1)
169	stfd	22,160(1)
170	stfd	23,168(1)
171	stfd	24,176(1)
172	stfd	25,184(1)
173	stfd	26,192(1)
174	stfd	27,200(1)
175	stfd	28,208(1)
176	stfd	29,216(1)
177	stfd	30,224(1)
178	stfd	31,232(1)
179	std	0,256(1)
180
181	xor	0,0,0
182	li	10,1
183	mtctr	5
184	neg	5,5
185	stw	0,80(1)
186	stw	10,84(1)
187
188	lfd	8,8*18(3)
189	lfd	9,8*19(3)
190	lfd	10,8*20(3)
191	lfd	11,8*21(3)
192	lfd	12,8*22(3)
193	lfd	13,8*23(3)
194
195	lfd	0,8*0(3)
196	lfd	2,8*1(3)
197	lfd	4,8*2(3)
198	lfd	6,8*3(3)
199
200	stfd	8,48(1)
201	oris	10,6,18736
202	stfd	9,56(1)
203	stfd	10,64(1)
204	stw	10,72(1)
205
206	li	11,4
207	li	12,8
208	li	6,12
209	lwbrx	7,0,4
210	lwbrx	8,11,4
211	lwbrx	9,12,4
212	lwbrx	10,6,4
213	addi	4,4,16
214
215	stw	7,52(1)
216	stw	8,60(1)
217	stw	9,68(1)
218	stw	10,76(1)
219
220	mffs	28
221	lfd	29,80(1)
222	lfd	14,8*4(3)
223	lfd	15,8*5(3)
224	lfd	16,8*6(3)
225	lfd	17,8*7(3)
226	lfd	18,8*8(3)
227	lfd	19,8*9(3)
228	lfd	24,8*10(3)
229	lfd	25,8*11(3)
230	lfd	26,8*12(3)
231	lfd	27,8*13(3)
232	lfd	20,8*14(3)
233	lfd	21,8*15(3)
234	lfd	22,8*16(3)
235	lfd	23,8*17(3)
236
237	stfd	28,80(1)
238	mtfsf	255,29
239
240	addic	5,5,1
241	addze	0,0
242	slwi.	0,0,4
243	sub	4,4,0
244
245	lfd	28,48(1)
246	lfd	29,56(1)
247	lfd	30,64(1)
248	lfd	31,72(1)
249
250	fsub	0,0,8
251	lwbrx	7,0,4
252	fsub	2,2,9
253	lwbrx	8,11,4
254	fsub	4,4,10
255	lwbrx	9,12,4
256	fsub	6,6,11
257	lwbrx	10,6,4
258
259	fsub	28,28,8
260	addi	4,4,16
261	fsub	29,29,9
262	fsub	30,30,10
263	fsub	31,31,11
264
265	fadd	28,28,0
266	stw	7,52(1)
267	fadd	29,29,2
268	stw	8,60(1)
269	fadd	30,30,4
270	stw	9,68(1)
271	fadd	31,31,6
272	stw	10,76(1)
273
274	b	Lentry
275
276.align	4
277Loop:
278	fsub	30,30,8
279	addic	5,5,1
280	fsub	31,31,9
281	addze	0,0
282	fsub	26,26,10
283	slwi.	0,0,4
284	fsub	27,27,11
285	sub	4,4,0
286
287	fadd	0,0,30
288	fadd	1,1,31
289	fadd	4,4,26
290	fadd	5,5,27
291
292
293	fadd	26,2,10
294	lwbrx	7,0,4
295	fadd	27,3,10
296	lwbrx	8,11,4
297	fadd	30,6,12
298	lwbrx	9,12,4
299	fadd	31,7,12
300	lwbrx	10,6,4
301	fadd	24,0,9
302	addi	4,4,16
303	fadd	25,1,9
304	fadd	28,4,11
305	fadd	29,5,11
306
307	fsub	26,26,10
308	stw	7,52(1)
309	fsub	27,27,10
310	stw	8,60(1)
311	fsub	30,30,12
312	stw	9,68(1)
313	fsub	31,31,12
314	stw	10,76(1)
315	fsub	24,24,9
316	fsub	25,25,9
317	fsub	28,28,11
318	fsub	29,29,11
319
320	fsub	2,2,26
321	fsub	3,3,27
322	fsub	6,6,30
323	fsub	7,7,31
324	fsub	4,4,28
325	fsub	5,5,29
326	fsub	0,0,24
327	fsub	1,1,25
328
329	fadd	2,2,24
330	fadd	3,3,25
331	fadd	6,6,28
332	fadd	7,7,29
333	fadd	4,4,26
334	fadd	5,5,27
335	fmadd	0,30,13,0
336	fmadd	1,31,13,1
337
338	fadd	29,2,3
339	lfd	26,8*12(3)
340	fadd	31,6,7
341	lfd	27,8*13(3)
342	fadd	30,4,5
343	lfd	24,8*10(3)
344	fadd	28,0,1
345	lfd	25,8*11(3)
346Lentry:
347	fmul	0,22,29
348	fmul	1,23,29
349	fmul	4,16,29
350	fmul	5,17,29
351	fmul	2,14,29
352	fmul	3,15,29
353	fmul	6,18,29
354	fmul	7,19,29
355
356	fmadd	0,26,31,0
357	fmadd	1,27,31,1
358	fmadd	4,22,31,4
359	fmadd	5,23,31,5
360	fmadd	2,20,31,2
361	fmadd	3,21,31,3
362	fmadd	6,14,31,6
363	fmadd	7,15,31,7
364
365	fmadd	0,20,30,0
366	fmadd	1,21,30,1
367	fmadd	4,14,30,4
368	fmadd	5,15,30,5
369	fmadd	2,22,30,2
370	fmadd	3,23,30,3
371	fmadd	6,16,30,6
372	fmadd	7,17,30,7
373
374	fmadd	0,14,28,0
375	lfd	30,48(1)
376	fmadd	1,15,28,1
377	lfd	31,56(1)
378	fmadd	4,18,28,4
379	lfd	26,64(1)
380	fmadd	5,19,28,5
381	lfd	27,72(1)
382	fmadd	2,16,28,2
383	fmadd	3,17,28,3
384	fmadd	6,24,28,6
385	fmadd	7,25,28,7
386
387	bc	16,0,Loop
388
389
390	fadd	24,0,9
391	fadd	25,1,9
392	fadd	28,4,11
393	fadd	29,5,11
394	fadd	26,2,10
395	fadd	27,3,10
396	fadd	30,6,12
397	fadd	31,7,12
398
399	fsub	24,24,9
400	fsub	25,25,9
401	fsub	28,28,11
402	fsub	29,29,11
403	fsub	26,26,10
404	fsub	27,27,10
405	fsub	30,30,12
406	fsub	31,31,12
407
408	fsub	2,2,26
409	fsub	3,3,27
410	fsub	6,6,30
411	fsub	7,7,31
412	fsub	4,4,28
413	fsub	5,5,29
414	fsub	0,0,24
415	fsub	1,1,25
416
417	fadd	2,2,24
418	fadd	3,3,25
419	fadd	6,6,28
420	fadd	7,7,29
421	fadd	4,4,26
422	fadd	5,5,27
423	fmadd	0,30,13,0
424	fmadd	1,31,13,1
425
426	fadd	29,2,3
427	fadd	31,6,7
428	fadd	30,4,5
429	fadd	28,0,1
430
431	lfd	0,80(1)
432	fadd	29,29,9
433	fadd	31,31,11
434	fadd	30,30,10
435	fadd	28,28,8
436
437	stfd	29,8*1(3)
438	stfd	31,8*3(3)
439	stfd	30,8*2(3)
440	stfd	28,8*0(3)
441
442	mtfsf	255,0
443	lfd	14,96(1)
444	lfd	15,104(1)
445	lfd	16,112(1)
446	lfd	17,120(1)
447	lfd	18,128(1)
448	lfd	19,136(1)
449	lfd	20,144(1)
450	lfd	21,152(1)
451	lfd	22,160(1)
452	lfd	23,168(1)
453	lfd	24,176(1)
454	lfd	25,184(1)
455	lfd	26,192(1)
456	lfd	27,200(1)
457	lfd	28,208(1)
458	lfd	29,216(1)
459	lfd	30,224(1)
460	lfd	31,232(1)
461	addi	1,1,240
462Labort:
463	blr
464.long	0
465.byte	0,12,4,1,0x80,0,4,0
466
467.globl	.poly1305_emit_fpu
468.align	4
469.poly1305_emit_fpu:
470	stdu	1,-80(1)
471	mflr	0
472	std	28,48(1)
473	std	29,56(1)
474	std	30,64(1)
475	std	31,72(1)
476	std	0,96(1)
477
478	lwz	28,0(3)
479	lwz	7,4(3)
480	lwz	29,8(3)
481	lwz	8,12(3)
482	lwz	30,16(3)
483	lwz	9,20(3)
484	lwz	31,24(3)
485	lwz	10,28(3)
486
487	lis	0,0xfff0
488	andc	28,28,0
489	andc	29,29,0
490	andc	30,30,0
491	andc	31,31,0
492	li	0,3
493
494	srwi	6,31,2
495	and	11,31,0
496	andc	31,31,0
497	add	31,31,6
498	add	7,7,31
499	add	8,8,28
500	add	9,9,29
501	add	10,10,30
502
503	srdi	28,7,32
504	add	8,8,28
505	srdi	29,8,32
506	add	9,9,29
507	srdi	30,9,32
508	add	10,10,30
509	srdi	31,10,32
510	add	11,11,31
511
512	insrdi	7,8,32,0
513	insrdi	9,10,32,0
514
515	addic	28,7,5
516	addze	29,9
517	addze	30,11
518
519	srdi	0,30,2
520	neg	0,0
521	sradi	0,0,63
522	ld	30,0(5)
523	ld	31,8(5)
524
525	andc	7,7,0
526	and	28,28,0
527	andc	9,9,0
528	and	29,29,0
529	or	7,7,28
530	or	9,9,29
531	rotldi	30,30,32
532	rotldi	31,31,32
533	addc	7,7,30
534	adde	9,9,31
535
536	srdi	8,7,32
537	srdi	10,9,32
538	li	29,4
539	stwbrx	7,0,4
540	li	30,8
541	stwbrx	8,29,4
542	li	31,12
543	stwbrx	9,30,4
544	stwbrx	10,31,4
545	ld	28,48(1)
546	ld	29,56(1)
547	ld	30,64(1)
548	ld	31,72(1)
549	addi	1,1,80
550	blr
551.long	0
552.byte	0,12,4,1,0x80,4,3,0
553
554.align	6
555LPICmeup:
556	mflr	0
557	bcl	20,31,$+4
558	mflr	5
559	addi	5,5,56
560	mtlr	0
561	blr
562.long	0
563.byte	0,12,0x14,0,0,0,0,0
564.space	28
565
566.long	0x43300000,0x00000000
567.long	0x45300000,0x00000000
568.long	0x47300000,0x00000000
569.long	0x49300000,0x00000000
570.long	0x4b500000,0x00000000
571
572.long	0x37f40000,0x00000000
573
574.long	0x44300000,0x00000000
575.long	0x46300000,0x00000000
576.long	0x48300000,0x00000000
577.long	0x4a300000,0x00000000
578.long	0x3e300000,0x00000000
579.long	0x40300000,0x00000000
580.long	0x42300000,0x00000000
581
582.long	0x00000000,0x00000001
583.byte	80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,32,70,80,85,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
584.align	2
585.align	4
586