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