Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/powerpc/poly1305-ppc.S
39482 views
1
/* Do not modify. This file is auto-generated from poly1305-ppc.pl. */
2
.machine "any"
3
.text
4
.globl poly1305_init_int
5
.type poly1305_init_int,@function
6
.align 4
7
poly1305_init_int:
8
xor 0,0,0
9
stw 0,0(3)
10
stw 0,4(3)
11
stw 0,8(3)
12
stw 0,12(3)
13
stw 0,16(3)
14
stw 0,24(3)
15
16
.long 0x7c040040
17
beq- .Lno_key
18
li 8,4
19
lwbrx 7,0,4
20
li 9,8
21
lwbrx 8,8,4
22
li 10,12
23
lwbrx 9,9,4
24
lwbrx 10,10,4
25
lis 0,0xf000
26
li 12,-4
27
andc 12,12,0
28
29
andc 7,7,0
30
and 8,8,12
31
and 9,9,12
32
and 10,10,12
33
34
stw 7,32(3)
35
stw 8,36(3)
36
stw 9,40(3)
37
stw 10,44(3)
38
39
.Lno_key:
40
xor 3,3,3
41
blr
42
.long 0
43
.byte 0,12,0x14,0,0,0,2,0
44
.size poly1305_init_int,.-poly1305_init_int
45
46
.globl poly1305_blocks
47
.type poly1305_blocks,@function
48
.align 4
49
poly1305_blocks:
50
.Lpoly1305_blocks:
51
srwi. 5,5,4
52
beq- .Labort
53
54
stwu 1,-96(1)
55
mflr 0
56
stw 14,24(1)
57
stw 15,28(1)
58
stw 16,32(1)
59
stw 17,36(1)
60
stw 18,40(1)
61
stw 19,44(1)
62
stw 20,48(1)
63
stw 21,52(1)
64
stw 22,56(1)
65
stw 23,60(1)
66
stw 24,64(1)
67
stw 25,68(1)
68
stw 26,72(1)
69
stw 27,76(1)
70
stw 28,80(1)
71
stw 29,84(1)
72
stw 30,88(1)
73
stw 31,92(1)
74
stw 0,100(1)
75
76
lwz 12,32(3)
77
lwz 14,36(3)
78
lwz 15,40(3)
79
lwz 16,44(3)
80
81
lwz 7,0(3)
82
lwz 8,4(3)
83
lwz 9,8(3)
84
lwz 10,12(3)
85
lwz 11,16(3)
86
87
srwi 17,14,2
88
srwi 18,15,2
89
srwi 19,16,2
90
add 17,17,14
91
add 18,18,15
92
add 19,19,16
93
mtctr 5
94
li 0,3
95
b .Loop
96
97
.align 4
98
.Loop:
99
li 29,4
100
lwbrx 28,0,4
101
li 30,8
102
lwbrx 29,29,4
103
li 31,12
104
lwbrx 30,30,4
105
lwbrx 31,31,4
106
addi 4,4,16
107
108
addc 7,7,28
109
adde 8,8,29
110
adde 9,9,30
111
112
mullw 28,7,12
113
mulhwu 24,7,12
114
115
mullw 29,7,14
116
mulhwu 25,7,14
117
118
mullw 30,7,15
119
mulhwu 26,7,15
120
121
adde 10,10,31
122
adde 11,11,6
123
124
mullw 31,7,16
125
mulhwu 27,7,16
126
127
mullw 20,8,19
128
mulhwu 21,8,19
129
130
mullw 22,8,12
131
mulhwu 23,8,12
132
addc 28,28,20
133
adde 24,24,21
134
135
mullw 20,8,14
136
mulhwu 21,8,14
137
addc 29,29,22
138
adde 25,25,23
139
140
mullw 22,8,15
141
mulhwu 23,8,15
142
addc 30,30,20
143
adde 26,26,21
144
145
mullw 20,9,18
146
mulhwu 21,9,18
147
addc 31,31,22
148
adde 27,27,23
149
150
mullw 22,9,19
151
mulhwu 23,9,19
152
addc 28,28,20
153
adde 24,24,21
154
155
mullw 20,9,12
156
mulhwu 21,9,12
157
addc 29,29,22
158
adde 25,25,23
159
160
mullw 22,9,14
161
mulhwu 23,9,14
162
addc 30,30,20
163
adde 26,26,21
164
165
mullw 20,10,17
166
mulhwu 21,10,17
167
addc 31,31,22
168
adde 27,27,23
169
170
mullw 22,10,18
171
mulhwu 23,10,18
172
addc 28,28,20
173
adde 24,24,21
174
175
mullw 20,10,19
176
mulhwu 21,10,19
177
addc 29,29,22
178
adde 25,25,23
179
180
mullw 22,10,12
181
mulhwu 23,10,12
182
addc 30,30,20
183
adde 26,26,21
184
185
mullw 20,11,17
186
addc 31,31,22
187
adde 27,27,23
188
addc 29,29,20
189
190
mullw 21,11,18
191
addze 25,25
192
addc 30,30,21
193
addze 26,26
194
195
mullw 22,11,19
196
addc 31,31,22
197
addze 27,27
198
199
mullw 11,11,12
200
201
addc 8,29,24
202
adde 9,30,25
203
adde 10,31,26
204
adde 11,11,27
205
206
andc 24,11,0
207
and 11,11,0
208
srwi 25,24,2
209
add 24,24,25
210
addc 7,28,24
211
addze 8,8
212
addze 9,9
213
addze 10,10
214
addze 11,11
215
216
bdnz .Loop
217
218
stw 7,0(3)
219
stw 8,4(3)
220
stw 9,8(3)
221
stw 10,12(3)
222
stw 11,16(3)
223
224
lwz 14,24(1)
225
lwz 15,28(1)
226
lwz 16,32(1)
227
lwz 17,36(1)
228
lwz 18,40(1)
229
lwz 19,44(1)
230
lwz 20,48(1)
231
lwz 21,52(1)
232
lwz 22,56(1)
233
lwz 23,60(1)
234
lwz 24,64(1)
235
lwz 25,68(1)
236
lwz 26,72(1)
237
lwz 27,76(1)
238
lwz 28,80(1)
239
lwz 29,84(1)
240
lwz 30,88(1)
241
lwz 31,92(1)
242
addi 1,1,96
243
.Labort:
244
blr
245
.long 0
246
.byte 0,12,4,1,0x80,18,4,0
247
.size poly1305_blocks,.-poly1305_blocks
248
.globl poly1305_emit
249
.type poly1305_emit,@function
250
.align 5
251
poly1305_emit:
252
lwz 0,24(3)
253
lwz 6,0(3)
254
lwz 7,4(3)
255
lwz 8,8(3)
256
lwz 9,12(3)
257
lwz 10,16(3)
258
cmplwi 0,0
259
beq .Lemit_base2_32
260
261
slwi 11,7,26
262
srwi 7,7,6
263
slwi 12,8,20
264
srwi 8,8,12
265
addc 6,6,11
266
slwi 11,9,14
267
srwi 9,9,18
268
adde 7,7,12
269
slwi 12,10,8
270
srwi 10,10,24
271
adde 8,8,11
272
adde 9,9,12
273
addze 10,10
274
275
.Lemit_base2_32:
276
addic 0,6,5
277
addze 0,7
278
addze 0,8
279
addze 0,9
280
addze 0,10
281
282
srwi 0,0,2
283
neg 0,0
284
andi. 0,0,5
285
286
addc 6,6,0
287
lwz 0,0(5)
288
addze 7,7
289
lwz 11,4(5)
290
addze 8,8
291
lwz 12,8(5)
292
addze 9,9
293
lwz 10,12(5)
294
295
addc 6,6,0
296
adde 7,7,11
297
adde 8,8,12
298
adde 9,9,10
299
300
addi 3,4,-1
301
addi 4,4,7
302
303
stbu 6,1(3)
304
srwi 6,6,8
305
stbu 8,1(4)
306
srwi 8,8,8
307
308
stbu 6,1(3)
309
srwi 6,6,8
310
stbu 8,1(4)
311
srwi 8,8,8
312
313
stbu 6,1(3)
314
srwi 6,6,8
315
stbu 8,1(4)
316
srwi 8,8,8
317
318
stbu 6,1(3)
319
stbu 8,1(4)
320
321
stbu 7,1(3)
322
srwi 7,7,8
323
stbu 9,1(4)
324
srwi 9,9,8
325
326
stbu 7,1(3)
327
srwi 7,7,8
328
stbu 9,1(4)
329
srwi 9,9,8
330
331
stbu 7,1(3)
332
srwi 7,7,8
333
stbu 9,1(4)
334
srwi 9,9,8
335
336
stbu 7,1(3)
337
stbu 9,1(4)
338
339
blr
340
.long 0
341
.byte 0,12,0x14,0,0,0,3,0
342
.size poly1305_emit,.-poly1305_emit
343
.globl poly1305_blocks_vsx
344
.type poly1305_blocks_vsx,@function
345
.align 5
346
poly1305_blocks_vsx:
347
lwz 7,24(3)
348
cmplwi 5,128
349
bge __poly1305_blocks_vsx
350
cmplwi 7,0
351
beq .Lpoly1305_blocks
352
353
lwz 7,0(3)
354
lwz 8,4(3)
355
lwz 9,8(3)
356
lwz 10,12(3)
357
lwz 11,16(3)
358
359
slwi 0,8,26
360
srwi 8,8,6
361
slwi 12,9,20
362
srwi 9,9,12
363
addc 7,7,0
364
slwi 0,10,14
365
srwi 10,10,18
366
adde 8,8,12
367
slwi 12,11,8
368
srwi 11,11,24
369
adde 9,9,0
370
li 0,0
371
adde 10,10,12
372
addze 11,11
373
374
stw 7,0(3)
375
stw 8,4(3)
376
stw 9,8(3)
377
stw 10,12(3)
378
stw 11,16(3)
379
stw 0,24(3)
380
381
b .Lpoly1305_blocks
382
.long 0
383
.byte 0,12,0x14,0,0,0,4,0
384
.size poly1305_blocks_vsx,.-poly1305_blocks_vsx
385
386
.align 5
387
__poly1305_mul:
388
.long 0x11E05088
389
.long 0x12015088
390
.long 0x12225088
391
.long 0x12435088
392
.long 0x12645088
393
394
.long 0x12846088
395
.long 0x11EFA0C0
396
.long 0x12805888
397
.long 0x1210A0C0
398
.long 0x12815888
399
.long 0x1231A0C0
400
.long 0x12825888
401
.long 0x1252A0C0
402
.long 0x12835888
403
.long 0x1273A0C0
404
405
.long 0x12837088
406
.long 0x11EFA0C0
407
.long 0x12847088
408
.long 0x1210A0C0
409
.long 0x12806888
410
.long 0x1231A0C0
411
.long 0x12816888
412
.long 0x1252A0C0
413
.long 0x12826888
414
.long 0x1273A0C0
415
416
.long 0x12823888
417
.long 0x11EFA0C0
418
.long 0x12833888
419
.long 0x1210A0C0
420
.long 0x12843888
421
.long 0x1231A0C0
422
.long 0x12803088
423
.long 0x1252A0C0
424
.long 0x12813088
425
.long 0x1273A0C0
426
427
.long 0x12814888
428
.long 0x11EFA0C0
429
.long 0x12824888
430
.long 0x1210A0C0
431
.long 0x12834888
432
.long 0x1231A0C0
433
.long 0x12844888
434
.long 0x1252A0C0
435
.long 0x12804088
436
.long 0x1273A0C0
437
438
439
440
441
vspltisb 20,2
442
.long 0x1092CEC4
443
.long 0x102FCEC4
444
vand 3,18,29
445
vand 0,15,29
446
.long 0x108498C0
447
.long 0x102180C0
448
449
.long 0x1264CEC4
450
.long 0x1201CEC4
451
vand 4,4,29
452
vand 1,1,29
453
.long 0x100098C0
454
.long 0x105180C0
455
456
.long 0x1273A5C4
457
.long 0x1222CEC4
458
vand 2,2,29
459
.long 0x100098C0
460
.long 0x106388C0
461
462
.long 0x11E0CEC4
463
.long 0x1243CEC4
464
vand 0,0,29
465
vand 3,3,29
466
.long 0x102178C0
467
.long 0x108490C0
468
469
blr
470
.long 0
471
.byte 0,12,0x14,0,0,0,0,0
472
.size __poly1305_mul,.-__poly1305_mul
473
474
.align 5
475
__poly1305_blocks_vsx:
476
stwu 1,-368(1)
477
mflr 0
478
li 10,167
479
li 11,183
480
mfspr 12,256
481
stvx 20,10,1
482
addi 10,10,32
483
stvx 21,11,1
484
addi 11,11,32
485
stvx 22,10,1
486
addi 10,10,32
487
stvx 23,11,1
488
addi 11,11,32
489
stvx 24,10,1
490
addi 10,10,32
491
stvx 25,11,1
492
addi 11,11,32
493
stvx 26,10,1
494
addi 10,10,32
495
stvx 27,11,1
496
addi 11,11,32
497
stvx 28,10,1
498
addi 10,10,32
499
stvx 29,11,1
500
addi 11,11,32
501
stvx 30,10,1
502
stvx 31,11,1
503
stw 12,344(1)
504
li 12,-1
505
mtspr 256,12
506
stw 27,348(1)
507
stw 28,352(1)
508
stw 29,356(1)
509
stw 30,360(1)
510
stw 31,364(1)
511
stw 0,372(1)
512
513
bl .LPICmeup
514
515
li 27,0x10
516
li 28,0x20
517
li 29,0x30
518
li 30,0x40
519
li 31,0x50
520
.long 0x7FA06699
521
.long 0x7F3B6699
522
.long 0x7F7C6699
523
.long 0x7FFD6699
524
.long 0x7FDE6699
525
526
cmplwi 7,0
527
bne .Lskip_init_vsx
528
529
lwz 8,32(3)
530
lwz 9,36(3)
531
lwz 10,40(3)
532
lwz 11,44(3)
533
534
extrwi 7,8,26,6
535
extrwi 8,8,6,0
536
insrwi 8,9,20,6
537
extrwi 9,9,12,0
538
insrwi 9,10,14,6
539
extrwi 10,10,18,0
540
insrwi 10,11,8,6
541
extrwi 11,11,24,0
542
543
.long 0x7D4701E7
544
slwi 7,8,2
545
.long 0x7D6801E7
546
add 8,8,7
547
.long 0x7D8801E7
548
slwi 8,9,2
549
.long 0x7DA901E7
550
add 9,9,8
551
.long 0x7DC901E7
552
slwi 9,10,2
553
.long 0x7CCA01E7
554
add 10,10,9
555
.long 0x7CEA01E7
556
slwi 10,11,2
557
.long 0x7D0B01E7
558
add 11,11,10
559
.long 0x7D2B01E7
560
561
vor 0,10,10
562
vor 1,11,11
563
vor 2,13,13
564
vor 3,6,6
565
vor 4,8,8
566
567
bl __poly1305_mul
568
569
.long 0xF1405057
570
.long 0xF1615857
571
.long 0xF1A26857
572
.long 0xF0C33057
573
.long 0xF1044057
574
.long 0xF0000057
575
.long 0xF0210857
576
.long 0xF0421057
577
.long 0xF0631857
578
.long 0xF0842057
579
.long 0x118BA5C4
580
.long 0x11CDA5C4
581
.long 0x10E6A5C4
582
.long 0x1128A5C4
583
.long 0x118C58C0
584
.long 0x11CE68C0
585
.long 0x10E730C0
586
.long 0x112940C0
587
588
bl __poly1305_mul
589
590
addi 7,3,0x60
591
lwz 8,0(3)
592
lwz 9,4(3)
593
lwz 10,8(3)
594
lwz 11,12(3)
595
lwz 0,16(3)
596
597
.long 0x114A068C
598
.long 0x116B0E8C
599
.long 0x11AD168C
600
.long 0x10C61E8C
601
.long 0x1108268C
602
vslw 12,11,20
603
vslw 14,13,20
604
vslw 7,6,20
605
vslw 9,8,20
606
vadduwm 12,12,11
607
vadduwm 14,14,13
608
vadduwm 7,7,6
609
vadduwm 9,9,8
610
611
.long 0x7D5D1F99
612
.long 0x7D7E1F99
613
.long 0x7D9F1F99
614
.long 0x7DA03F99
615
.long 0x7DDB3F99
616
.long 0x7CDC3F99
617
.long 0x7CFD3F99
618
.long 0x7D1E3F99
619
.long 0x7D3F3F99
620
621
extrwi 7,8,26,6
622
extrwi 8,8,6,0
623
.long 0x7C0701E7
624
insrwi 8,9,20,6
625
extrwi 9,9,12,0
626
.long 0x7C2801E7
627
insrwi 9,10,14,6
628
extrwi 10,10,18,0
629
.long 0x7C4901E7
630
insrwi 10,11,8,6
631
extrwi 11,11,24,0
632
.long 0x7C6A01E7
633
insrwi 11,0,3,5
634
.long 0x7C8B01E7
635
li 0,1
636
stw 0,24(3)
637
b .Loaded_vsx
638
639
.align 4
640
.Lskip_init_vsx:
641
li 27,4
642
li 28,8
643
li 29,12
644
li 30,16
645
.long 0x7C001819
646
.long 0x7C3B1819
647
.long 0x7C5C1819
648
.long 0x7C7D1819
649
.long 0x7C9E1819
650
651
.Loaded_vsx:
652
li 27,0x10
653
li 28,0x20
654
li 29,0x30
655
li 30,0x40
656
li 31,0x50
657
li 7,0x60
658
li 8,0x70
659
addi 10,3,64
660
addi 11,1,39
661
662
vxor 20,20,20
663
.long 0xF000A057
664
.long 0xF021A057
665
.long 0xF042A057
666
.long 0xF063A057
667
.long 0xF084A057
668
669
.long 0x7F5F6699
670
.long 0x7EA02699
671
.long 0x7EDB2699
672
.long 0x7EFC2699
673
.long 0x7F1D2699
674
vperm 21,21,21,26
675
vperm 22,22,22,26
676
vperm 23,23,23,26
677
vperm 24,24,24,26
678
679
.long 0xF0B5B057
680
vspltisb 26,4
681
vperm 7,21,22,31
682
vspltisb 28,14
683
.long 0xF115B357
684
685
.long 0x10C5CEC4
686
.long 0x10E7D6C4
687
.long 0x1128DEC4
688
.long 0x1108E6C4
689
vand 5,5,29
690
vand 6,6,29
691
vand 7,7,29
692
vand 8,8,29
693
694
.long 0xF2B7C057
695
vperm 22,23,24,31
696
.long 0xF2F7C357
697
698
.long 0x1295CEC4
699
.long 0x12D6D6C4
700
.long 0x1317DEC4
701
.long 0x12F7E6C4
702
vand 21,21,29
703
vand 20,20,29
704
vand 22,22,29
705
vand 23,23,29
706
707
708
.long 0x11384E8C
709
.long 0x10B52E8C
710
.long 0x10D4368C
711
.long 0x10F63E8C
712
.long 0x1117468C
713
vor 9,9,30
714
715
.long 0x7D5D1A99
716
.long 0x7D605299
717
.long 0x7D9B5299
718
.long 0x7DBC5299
719
.long 0x7DDD5299
720
.long 0x7EBE5299
721
.long 0x7EDF5299
722
.long 0x7EE75299
723
.long 0x7F085299
724
stvx 11,0,11
725
stvx 12,27,11
726
stvx 13,28,11
727
stvx 14,29,11
728
stvx 21,30,11
729
stvx 22,31,11
730
stvx 23,7,11
731
stvx 24,8,11
732
733
addi 4,4,0x40
734
addi 12,12,0x50
735
addi 0,5,-64
736
srdi 0,0,6
737
mtctr 0
738
b .Loop_vsx
739
740
.align 4
741
.Loop_vsx:
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
.long 0x11E55288
757
.long 0x12055A88
758
.long 0x12256A88
759
.long 0x12466A88
760
761
.long 0x12865288
762
.long 0x1210A0C0
763
.long 0x12865A88
764
.long 0x1231A0C0
765
.long 0x12676A88
766
.long 0x12896288
767
.long 0x11EFA0C0
768
.long 0x12875A88
769
.long 0x1252A0C0
770
lvx 12,31,11
771
.long 0x12885A88
772
.long 0x1273A0C0
773
lvx 11,30,11
774
775
.long 0x104238C0
776
.long 0x100028C0
777
.long 0x106340C0
778
.long 0x102130C0
779
.long 0x108448C0
780
781
.long 0x12887288
782
.long 0x11EFA0C0
783
.long 0x12897288
784
.long 0x1210A0C0
785
.long 0x12875288
786
.long 0x1231A0C0
787
.long 0x12885288
788
.long 0x1252A0C0
789
lvx 14,8,11
790
.long 0x12895288
791
.long 0x1273A0C0
792
lvx 13,7,11
793
794
.long 0x12876288
795
.long 0x11EFA0C0
796
.long 0x12886288
797
.long 0x1210A0C0
798
.long 0x12896288
799
.long 0x1231A0C0
800
.long 0x12855A88
801
.long 0x1252A0C0
802
.long 0x12865A88
803
.long 0x1273A0C0
804
805
.long 0x7F406699
806
.long 0x7EA02699
807
.long 0x7EDB2699
808
.long 0x7EFC2699
809
.long 0x7F1D2699
810
vperm 21,21,21,26
811
vperm 22,22,22,26
812
vperm 23,23,23,26
813
vperm 24,24,24,26
814
815
.long 0x12867288
816
.long 0x11EFA0C0
817
.long 0x12877288
818
.long 0x1210A0C0
819
.long 0x12887288
820
.long 0x1231A0C0
821
.long 0x12897288
822
.long 0x1252A0C0
823
.long 0x12856A88
824
.long 0x1273A0C0
825
826
.long 0xF0B5B057
827
vspltisb 26,4
828
vperm 7,21,22,31
829
.long 0xF115B357
830
831
832
.long 0x12805088
833
.long 0x11EFA0C0
834
.long 0x12815088
835
.long 0x1210A0C0
836
.long 0x12825088
837
.long 0x1231A0C0
838
.long 0x12835088
839
.long 0x1252A0C0
840
.long 0x12845088
841
.long 0x1273A0C0
842
843
.long 0xF2B7C057
844
vperm 22,23,24,31
845
.long 0xF2F7C357
846
847
.long 0x12826088
848
.long 0x11EFA0C0
849
.long 0x12836088
850
.long 0x1210A0C0
851
.long 0x12846088
852
.long 0x1231A0C0
853
.long 0x12805888
854
.long 0x1252A0C0
855
lvx 12,27,11
856
.long 0x12815888
857
.long 0x1273A0C0
858
lvx 11,0,11
859
860
.long 0x10C5CEC4
861
.long 0x10E7D6C4
862
.long 0x1128DEC4
863
.long 0x1108E6C4
864
865
.long 0x12817088
866
.long 0x11EFA0C0
867
.long 0x12827088
868
.long 0x1210A0C0
869
.long 0x12837088
870
.long 0x1231A0C0
871
.long 0x12847088
872
.long 0x1252A0C0
873
lvx 14,29,11
874
.long 0x12806888
875
.long 0x1273A0C0
876
lvx 13,28,11
877
878
vand 5,5,29
879
vand 6,6,29
880
vand 7,7,29
881
vand 8,8,29
882
883
.long 0x12846088
884
.long 0x11EFA0C0
885
.long 0x12805888
886
.long 0x1210A0C0
887
.long 0x12815888
888
.long 0x1231A0C0
889
.long 0x12825888
890
.long 0x1252A0C0
891
.long 0x12835888
892
.long 0x1273A0C0
893
894
.long 0x12D6D6C4
895
.long 0x1355CEC4
896
.long 0x1317DEC4
897
.long 0x12F7E6C4
898
899
.long 0x12837088
900
.long 0x11EFA0C0
901
.long 0x12847088
902
.long 0x1210A0C0
903
.long 0x12806888
904
.long 0x1231A0C0
905
.long 0x12816888
906
.long 0x1252A0C0
907
.long 0x12826888
908
.long 0x1273A0C0
909
910
vand 21,21,29
911
vand 26,26,29
912
vand 22,22,29
913
vand 23,23,29
914
915
916
917
918
919
vspltisb 20,2
920
.long 0x1092CEC4
921
.long 0x102FCEC4
922
vand 3,18,29
923
vand 0,15,29
924
.long 0x108498C0
925
.long 0x102180C0
926
927
.long 0x11384E8C
928
.long 0x10B52E8C
929
.long 0x10DA368C
930
.long 0x10F63E8C
931
.long 0x1117468C
932
vor 9,9,30
933
934
.long 0x1264CEC4
935
.long 0x1201CEC4
936
vand 4,4,29
937
vand 1,1,29
938
.long 0x100098C0
939
.long 0x105180C0
940
941
.long 0x1273A5C4
942
.long 0x1222CEC4
943
vand 2,2,29
944
.long 0x100098C0
945
.long 0x106388C0
946
947
.long 0x11E0CEC4
948
.long 0x1243CEC4
949
vand 0,0,29
950
vand 3,3,29
951
.long 0x102178C0
952
.long 0x108490C0
953
954
addi 4,4,0x40
955
bdnz .Loop_vsx
956
957
neg 5,5
958
andi. 5,5,0x30
959
sub 4,4,5
960
961
.long 0x7D5D1E99
962
.long 0x7D605699
963
.long 0x7D9B5699
964
.long 0x7DBC5699
965
.long 0x7DDD5699
966
967
.Last_vsx:
968
.long 0x11E55288
969
.long 0x12065288
970
.long 0x12275288
971
.long 0x12485288
972
.long 0x12695288
973
974
.long 0x12896288
975
.long 0x11EFA0C0
976
.long 0x12855A88
977
.long 0x1210A0C0
978
.long 0x12865A88
979
.long 0x1231A0C0
980
.long 0x12875A88
981
.long 0x1252A0C0
982
.long 0x7D9F5699
983
.long 0x12885A88
984
.long 0x1273A0C0
985
.long 0x7D7E5699
986
987
.long 0x104238C0
988
.long 0x100028C0
989
.long 0x106340C0
990
.long 0x102130C0
991
.long 0x108448C0
992
993
.long 0x12887288
994
.long 0x11EFA0C0
995
.long 0x12897288
996
.long 0x1210A0C0
997
.long 0x12856A88
998
.long 0x1231A0C0
999
.long 0x12866A88
1000
.long 0x1252A0C0
1001
.long 0x7DC85699
1002
.long 0x12876A88
1003
.long 0x1273A0C0
1004
.long 0x7DA75699
1005
1006
.long 0x12876288
1007
.long 0x11EFA0C0
1008
.long 0x12886288
1009
.long 0x1210A0C0
1010
.long 0x12896288
1011
.long 0x1231A0C0
1012
.long 0x12855A88
1013
.long 0x1252A0C0
1014
.long 0x12865A88
1015
.long 0x1273A0C0
1016
1017
.long 0x12867288
1018
.long 0x11EFA0C0
1019
.long 0x12877288
1020
.long 0x1210A0C0
1021
.long 0x12887288
1022
.long 0x1231A0C0
1023
.long 0x12897288
1024
.long 0x1252A0C0
1025
.long 0x12856A88
1026
.long 0x1273A0C0
1027
1028
1029
.long 0x12805088
1030
.long 0x11EFA0C0
1031
.long 0x12815088
1032
.long 0x1210A0C0
1033
.long 0x12825088
1034
.long 0x1231A0C0
1035
.long 0x12835088
1036
.long 0x1252A0C0
1037
.long 0x12845088
1038
.long 0x1273A0C0
1039
1040
.long 0x12826088
1041
.long 0x11EFA0C0
1042
.long 0x12836088
1043
.long 0x1210A0C0
1044
.long 0x12846088
1045
.long 0x1231A0C0
1046
.long 0x12805888
1047
.long 0x1252A0C0
1048
.long 0x7D9B5699
1049
.long 0x12815888
1050
.long 0x1273A0C0
1051
.long 0x7D605699
1052
1053
.long 0x12817088
1054
.long 0x11EFA0C0
1055
.long 0x12827088
1056
.long 0x1210A0C0
1057
.long 0x12837088
1058
.long 0x1231A0C0
1059
.long 0x12847088
1060
.long 0x1252A0C0
1061
.long 0x7DDD5699
1062
.long 0x12806888
1063
.long 0x1273A0C0
1064
.long 0x7DBC5699
1065
1066
.long 0x12846088
1067
.long 0x11EFA0C0
1068
.long 0x12805888
1069
.long 0x1210A0C0
1070
.long 0x12815888
1071
.long 0x1231A0C0
1072
.long 0x12825888
1073
.long 0x1252A0C0
1074
.long 0x12835888
1075
.long 0x1273A0C0
1076
1077
.long 0x12837088
1078
.long 0x11EFA0C0
1079
.long 0x12847088
1080
.long 0x1210A0C0
1081
.long 0x12806888
1082
.long 0x1231A0C0
1083
.long 0x12816888
1084
.long 0x1252A0C0
1085
.long 0x12826888
1086
.long 0x1273A0C0
1087
1088
1089
1090
1091
.long 0xF00F7A57
1092
.long 0xF0308257
1093
.long 0xF0518A57
1094
.long 0xF0729257
1095
.long 0xF0939A57
1096
.long 0x11EF00C0
1097
.long 0x121008C0
1098
.long 0x123110C0
1099
.long 0x125218C0
1100
.long 0x127320C0
1101
1102
1103
1104
1105
vspltisb 20,2
1106
.long 0x1092CEC4
1107
.long 0x102FCEC4
1108
vand 3,18,29
1109
vand 0,15,29
1110
.long 0x108498C0
1111
.long 0x102180C0
1112
1113
.long 0x1264CEC4
1114
.long 0x1201CEC4
1115
vand 4,4,29
1116
vand 1,1,29
1117
.long 0x100098C0
1118
.long 0x105180C0
1119
1120
.long 0x1273A5C4
1121
.long 0x1222CEC4
1122
vand 2,2,29
1123
.long 0x100098C0
1124
.long 0x106388C0
1125
1126
.long 0x11E0CEC4
1127
.long 0x1243CEC4
1128
vand 0,0,29
1129
vand 3,3,29
1130
.long 0x102178C0
1131
.long 0x108490C0
1132
1133
beq .Ldone_vsx
1134
1135
add 6,12,5
1136
1137
.long 0x7F406699
1138
.long 0x7EA02699
1139
.long 0x7EDB2699
1140
.long 0x7EFC2699
1141
.long 0x7F1D2699
1142
vperm 21,21,21,26
1143
vperm 22,22,22,26
1144
vperm 23,23,23,26
1145
vperm 24,24,24,26
1146
1147
.long 0xF0B5B057
1148
vspltisb 26,4
1149
vperm 7,21,22,31
1150
.long 0xF115B357
1151
1152
.long 0x10C5CEC4
1153
.long 0x10E7D6C4
1154
.long 0x1128DEC4
1155
.long 0x1108E6C4
1156
vand 5,5,29
1157
vand 6,6,29
1158
vand 7,7,29
1159
vand 8,8,29
1160
1161
.long 0xF297C057
1162
vperm 21,23,24,31
1163
.long 0xF2D7C357
1164
1165
.long 0x7DE03699
1166
.long 0x7E1D3699
1167
1168
.long 0x12F4CEC4
1169
.long 0x12B5D6C4
1170
.long 0x1316DEC4
1171
.long 0x12D6E6C4
1172
vand 20,20,29
1173
vand 23,23,29
1174
vand 21,21,29
1175
vand 22,22,29
1176
1177
1178
.long 0x11384E8C
1179
.long 0x10B42E8C
1180
.long 0x10D7368C
1181
.long 0x10F53E8C
1182
.long 0x1116468C
1183
vor 9,9,30
1184
1185
vperm 0,0,0,15
1186
vand 5,5, 16
1187
vperm 1,1,1,15
1188
vand 6,6, 16
1189
vperm 2,2,2,15
1190
vand 7,7, 16
1191
vperm 3,3,3,15
1192
vand 8,8, 16
1193
vperm 4,4,4,15
1194
vand 9,9, 16
1195
1196
.long 0x10A500C0
1197
vxor 0,0,0
1198
.long 0x10C608C0
1199
vxor 1,1,1
1200
.long 0x10E710C0
1201
vxor 2,2,2
1202
.long 0x110818C0
1203
vxor 3,3,3
1204
.long 0x112920C0
1205
vxor 4,4,4
1206
1207
xor. 5,5,5
1208
b .Last_vsx
1209
1210
.align 4
1211
.Ldone_vsx:
1212
lwz 0,372(1)
1213
li 27,4
1214
li 28,8
1215
li 29,12
1216
li 30,16
1217
.long 0x7C001919
1218
.long 0x7C3B1919
1219
.long 0x7C5C1919
1220
.long 0x7C7D1919
1221
.long 0x7C9E1919
1222
1223
lwz 12,344(1)
1224
mtlr 0
1225
li 10,167
1226
li 11,183
1227
mtspr 256,12
1228
lvx 20,10,1
1229
addi 10,10,32
1230
lvx 21,11,1
1231
addi 11,11,32
1232
lvx 22,10,1
1233
addi 10,10,32
1234
lvx 23,11,1
1235
addi 11,11,32
1236
lvx 24,10,1
1237
addi 10,10,32
1238
lvx 25,11,1
1239
addi 11,11,32
1240
lvx 26,10,1
1241
addi 10,10,32
1242
lvx 27,11,1
1243
addi 11,11,32
1244
lvx 28,10,1
1245
addi 10,10,32
1246
lvx 29,11,1
1247
addi 11,11,32
1248
lvx 30,10,1
1249
lvx 31,11,1
1250
lwz 27,348(1)
1251
lwz 28,352(1)
1252
lwz 29,356(1)
1253
lwz 30,360(1)
1254
lwz 31,364(1)
1255
addi 1,1,368
1256
blr
1257
.long 0
1258
.byte 0,12,0x04,1,0x80,5,4,0
1259
.long 0
1260
.size __poly1305_blocks_vsx,.-__poly1305_blocks_vsx
1261
1262
.align 6
1263
.LPICmeup:
1264
mflr 0
1265
bcl 20,31,$+4
1266
mflr 12
1267
addi 12,12,56
1268
mtlr 0
1269
blr
1270
.long 0
1271
.byte 0,12,0x14,0,0,0,0,0
1272
.space 28
1273
1274
.long 0x00000000,0x03ffffff
1275
.long 0x00000000,0x03ffffff
1276
.long 0x00000000,0x0000001a
1277
.long 0x00000000,0x0000001a
1278
.long 0x00000000,0x00000028
1279
.long 0x00000000,0x00000028
1280
.long 0x00000000,0x0e0f0001
1281
.long 0x00000000,0x1e1f1011
1282
.long 0x01000000,0x01000000
1283
.long 0x01000000,0x01000000
1284
.long 0x07060504,0x03020100
1285
.long 0x0f0e0d0c,0x0b0a0908
1286
1287
.long 0x00000000,0x00000000
1288
.long 0x00000000,0x04050607
1289
.long 0x04050607,0x00000000
1290
.long 0x00000000,0x00000000
1291
.long 0x00000000,0x00000000
1292
.long 0x04050607,0x00000000
1293
1294
.long 0xffffffff,0x00000000
1295
.long 0xffffffff,0xffffffff
1296
.long 0xffffffff,0x00000000
1297
.long 0xffffffff,0x00000000
1298
.long 0x00000000,0x00000000
1299
.long 0xffffffff,0x00000000
1300
.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0
1301
.align 2
1302
1303