Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/powerpc/chachap10-ppc.S
39482 views
1
/* Do not modify. This file is auto-generated from chachap10-ppc.pl. */
2
3
.globl ChaCha20_ctr32_vsx_p10
4
.type ChaCha20_ctr32_vsx_p10,@function
5
.align 5
6
ChaCha20_ctr32_vsx_p10:
7
cmplwi 5,255
8
ble .Not_greater_than_8x
9
b ChaCha20_ctr32_vsx_8x
10
.Not_greater_than_8x:
11
stwu 1,-200(1)
12
mflr 0
13
li 10,103
14
li 11,119
15
mfspr 12,256
16
stvx 26,10,1
17
addi 10,10,32
18
stvx 27,11,1
19
addi 11,11,32
20
stvx 28,10,1
21
addi 10,10,32
22
stvx 29,11,1
23
addi 11,11,32
24
stvx 30,10,1
25
stvx 31,11,1
26
stw 12,196(1)
27
li 12,-4096+63
28
stw 0, 204(1)
29
mtspr 256,12
30
31
bl .Lconsts
32
.long 0x7E006619
33
addi 12,12,0x70
34
li 8,16
35
li 9,32
36
li 10,48
37
li 11,64
38
39
.long 0x7E203619
40
.long 0x7E483619
41
.long 0x7E603E19
42
43
vxor 27,27,27
44
.long 0x7F8B6619
45
vspltw 26,19,0
46
vsldoi 19,19,27,4
47
vsldoi 19,27,19,12
48
vadduwm 26,26,28
49
50
lvsl 31,0,8
51
vspltisb 27,3
52
vxor 31,31,27
53
54
li 0,10
55
mtctr 0
56
b .Loop_outer_vsx
57
58
.align 5
59
.Loop_outer_vsx:
60
lvx 0,0,12
61
lvx 1,8,12
62
lvx 2,9,12
63
lvx 3,10,12
64
65
vspltw 4,17,0
66
vspltw 5,17,1
67
vspltw 6,17,2
68
vspltw 7,17,3
69
70
vspltw 8,18,0
71
vspltw 9,18,1
72
vspltw 10,18,2
73
vspltw 11,18,3
74
75
vor 12,26,26
76
vspltw 13,19,1
77
vspltw 14,19,2
78
vspltw 15,19,3
79
80
vspltisw 27,-16
81
vspltisw 28,12
82
vspltisw 29,8
83
vspltisw 30,7
84
85
.Loop_vsx_4x:
86
vadduwm 0,0,4
87
vadduwm 1,1,5
88
vadduwm 2,2,6
89
vadduwm 3,3,7
90
vxor 12,12,0
91
vxor 13,13,1
92
vxor 14,14,2
93
vxor 15,15,3
94
vrlw 12,12,27
95
vrlw 13,13,27
96
vrlw 14,14,27
97
vrlw 15,15,27
98
vadduwm 8,8,12
99
vadduwm 9,9,13
100
vadduwm 10,10,14
101
vadduwm 11,11,15
102
vxor 4,4,8
103
vxor 5,5,9
104
vxor 6,6,10
105
vxor 7,7,11
106
vrlw 4,4,28
107
vrlw 5,5,28
108
vrlw 6,6,28
109
vrlw 7,7,28
110
vadduwm 0,0,4
111
vadduwm 1,1,5
112
vadduwm 2,2,6
113
vadduwm 3,3,7
114
vxor 12,12,0
115
vxor 13,13,1
116
vxor 14,14,2
117
vxor 15,15,3
118
vrlw 12,12,29
119
vrlw 13,13,29
120
vrlw 14,14,29
121
vrlw 15,15,29
122
vadduwm 8,8,12
123
vadduwm 9,9,13
124
vadduwm 10,10,14
125
vadduwm 11,11,15
126
vxor 4,4,8
127
vxor 5,5,9
128
vxor 6,6,10
129
vxor 7,7,11
130
vrlw 4,4,30
131
vrlw 5,5,30
132
vrlw 6,6,30
133
vrlw 7,7,30
134
vadduwm 0,0,5
135
vadduwm 1,1,6
136
vadduwm 2,2,7
137
vadduwm 3,3,4
138
vxor 15,15,0
139
vxor 12,12,1
140
vxor 13,13,2
141
vxor 14,14,3
142
vrlw 15,15,27
143
vrlw 12,12,27
144
vrlw 13,13,27
145
vrlw 14,14,27
146
vadduwm 10,10,15
147
vadduwm 11,11,12
148
vadduwm 8,8,13
149
vadduwm 9,9,14
150
vxor 5,5,10
151
vxor 6,6,11
152
vxor 7,7,8
153
vxor 4,4,9
154
vrlw 5,5,28
155
vrlw 6,6,28
156
vrlw 7,7,28
157
vrlw 4,4,28
158
vadduwm 0,0,5
159
vadduwm 1,1,6
160
vadduwm 2,2,7
161
vadduwm 3,3,4
162
vxor 15,15,0
163
vxor 12,12,1
164
vxor 13,13,2
165
vxor 14,14,3
166
vrlw 15,15,29
167
vrlw 12,12,29
168
vrlw 13,13,29
169
vrlw 14,14,29
170
vadduwm 10,10,15
171
vadduwm 11,11,12
172
vadduwm 8,8,13
173
vadduwm 9,9,14
174
vxor 5,5,10
175
vxor 6,6,11
176
vxor 7,7,8
177
vxor 4,4,9
178
vrlw 5,5,30
179
vrlw 6,6,30
180
vrlw 7,7,30
181
vrlw 4,4,30
182
183
bdnz .Loop_vsx_4x
184
185
vadduwm 12,12,26
186
187
.long 0x13600F8C
188
.long 0x13821F8C
189
.long 0x10000E8C
190
.long 0x10421E8C
191
.long 0x13A42F8C
192
.long 0x13C63F8C
193
.long 0xF0201057
194
.long 0xF0601357
195
.long 0xF01BE057
196
.long 0xF05BE357
197
198
.long 0x10842E8C
199
.long 0x10C63E8C
200
.long 0x13684F8C
201
.long 0x138A5F8C
202
.long 0xF0A43057
203
.long 0xF0E43357
204
.long 0xF09DF057
205
.long 0xF0DDF357
206
207
.long 0x11084E8C
208
.long 0x114A5E8C
209
.long 0x13AC6F8C
210
.long 0x13CE7F8C
211
.long 0xF1285057
212
.long 0xF1685357
213
.long 0xF11BE057
214
.long 0xF15BE357
215
216
.long 0x118C6E8C
217
.long 0x11CE7E8C
218
vspltisw 27,4
219
vadduwm 26,26,27
220
.long 0xF1AC7057
221
.long 0xF1EC7357
222
.long 0xF19DF057
223
.long 0xF1DDF357
224
225
vadduwm 0,0,16
226
vadduwm 4,4,17
227
vadduwm 8,8,18
228
vadduwm 12,12,19
229
230
vperm 0,0,0,31
231
vperm 4,4,4,31
232
vperm 8,8,8,31
233
vperm 12,12,12,31
234
235
cmplwi 5,0x40
236
blt .Ltail_vsx
237
238
.long 0x7F602619
239
.long 0x7F882619
240
.long 0x7FA92619
241
.long 0x7FCA2619
242
243
vxor 27,27,0
244
vxor 28,28,4
245
vxor 29,29,8
246
vxor 30,30,12
247
248
.long 0x7F601F19
249
.long 0x7F881F19
250
addi 4,4,0x40
251
.long 0x7FA91F19
252
subi 5,5,0x40
253
.long 0x7FCA1F19
254
addi 3,3,0x40
255
beq .Ldone_vsx
256
257
vadduwm 0,1,16
258
vadduwm 4,5,17
259
vadduwm 8,9,18
260
vadduwm 12,13,19
261
262
vperm 0,0,0,31
263
vperm 4,4,4,31
264
vperm 8,8,8,31
265
vperm 12,12,12,31
266
267
cmplwi 5,0x40
268
blt .Ltail_vsx
269
270
.long 0x7F602619
271
.long 0x7F882619
272
.long 0x7FA92619
273
.long 0x7FCA2619
274
275
vxor 27,27,0
276
vxor 28,28,4
277
vxor 29,29,8
278
vxor 30,30,12
279
280
.long 0x7F601F19
281
.long 0x7F881F19
282
addi 4,4,0x40
283
.long 0x7FA91F19
284
subi 5,5,0x40
285
.long 0x7FCA1F19
286
addi 3,3,0x40
287
beq .Ldone_vsx
288
289
vadduwm 0,2,16
290
vadduwm 4,6,17
291
vadduwm 8,10,18
292
vadduwm 12,14,19
293
294
vperm 0,0,0,31
295
vperm 4,4,4,31
296
vperm 8,8,8,31
297
vperm 12,12,12,31
298
299
cmplwi 5,0x40
300
blt .Ltail_vsx
301
302
.long 0x7F602619
303
.long 0x7F882619
304
.long 0x7FA92619
305
.long 0x7FCA2619
306
307
vxor 27,27,0
308
vxor 28,28,4
309
vxor 29,29,8
310
vxor 30,30,12
311
312
.long 0x7F601F19
313
.long 0x7F881F19
314
addi 4,4,0x40
315
.long 0x7FA91F19
316
subi 5,5,0x40
317
.long 0x7FCA1F19
318
addi 3,3,0x40
319
beq .Ldone_vsx
320
321
vadduwm 0,3,16
322
vadduwm 4,7,17
323
vadduwm 8,11,18
324
vadduwm 12,15,19
325
326
vperm 0,0,0,31
327
vperm 4,4,4,31
328
vperm 8,8,8,31
329
vperm 12,12,12,31
330
331
cmplwi 5,0x40
332
blt .Ltail_vsx
333
334
.long 0x7F602619
335
.long 0x7F882619
336
.long 0x7FA92619
337
.long 0x7FCA2619
338
339
vxor 27,27,0
340
vxor 28,28,4
341
vxor 29,29,8
342
vxor 30,30,12
343
344
.long 0x7F601F19
345
.long 0x7F881F19
346
addi 4,4,0x40
347
.long 0x7FA91F19
348
subi 5,5,0x40
349
.long 0x7FCA1F19
350
addi 3,3,0x40
351
mtctr 0
352
bne .Loop_outer_vsx
353
354
.Ldone_vsx:
355
lwz 12,196(1)
356
li 10,103
357
li 11,119
358
lwz 0, 204(1)
359
mtspr 256,12
360
lvx 26,10,1
361
addi 10,10,32
362
lvx 27,11,1
363
addi 11,11,32
364
lvx 28,10,1
365
addi 10,10,32
366
lvx 29,11,1
367
addi 11,11,32
368
lvx 30,10,1
369
lvx 31,11,1
370
mtlr 0
371
addi 1,1,200
372
blr
373
374
.align 4
375
.Ltail_vsx:
376
addi 11,1,24
377
mtctr 5
378
.long 0x7C005F19
379
.long 0x7C885F19
380
.long 0x7D095F19
381
.long 0x7D8A5F19
382
subi 12,11,1
383
subi 4,4,1
384
subi 3,3,1
385
386
.Loop_tail_vsx:
387
lbzu 6,1(12)
388
lbzu 7,1(4)
389
xor 6,6,7
390
stbu 6,1(3)
391
bdnz .Loop_tail_vsx
392
393
.long 0x7E005F19
394
.long 0x7E085F19
395
.long 0x7E095F19
396
.long 0x7E0A5F19
397
398
b .Ldone_vsx
399
.long 0
400
.byte 0,12,0x04,1,0x80,0,5,0
401
.long 0
402
.size ChaCha20_ctr32_vsx_p10,.-ChaCha20_ctr32_vsx_p10
403
404
.globl ChaCha20_ctr32_vsx_8x
405
.type ChaCha20_ctr32_vsx_8x,@function
406
.align 5
407
ChaCha20_ctr32_vsx_8x:
408
stwu 1,-232(1)
409
mflr 0
410
li 10,103
411
li 11,119
412
mfspr 12,256
413
stvx 24,10,1
414
addi 10,10,32
415
stvx 25,11,1
416
addi 11,11,32
417
stvx 26,10,1
418
addi 10,10,32
419
stvx 27,11,1
420
addi 11,11,32
421
stvx 28,10,1
422
addi 10,10,32
423
stvx 29,11,1
424
addi 11,11,32
425
stvx 30,10,1
426
stvx 31,11,1
427
stw 12,228(1)
428
li 12,-4096+63
429
stw 0, 236(1)
430
mtspr 256,12
431
432
bl .Lconsts
433
434
.long 0x7F606619
435
addi 12,12,0x70
436
li 8,16
437
li 9,32
438
li 10,48
439
li 11,64
440
441
vspltisw 16,-16
442
vspltisw 20,12
443
vspltisw 24,8
444
vspltisw 28,7
445
446
lvx 0,0,12
447
lvx 1,8,12
448
lvx 2,9,12
449
lvx 3,10,12
450
451
.long 0xF1308496
452
.long 0xF154A496
453
.long 0xF178C496
454
.long 0xF19CE496
455
.long 0xF2C00496
456
.long 0xF2E10C96
457
.long 0xF3021496
458
.long 0xF3231C96
459
460
.long 0x7F003619
461
.long 0x7F283619
462
.long 0x7F403E19
463
vspltisw 30,4
464
465
466
vxor 29,29,29
467
.long 0x7F8B6619
468
vspltw 2,26,0
469
vsldoi 26,26,29,4
470
vsldoi 26,29,26,12
471
vadduwm 28,2,28
472
vadduwm 30,28,30
473
vspltw 0,25,2
474
475
lvsl 31,0,8
476
vspltisb 23,3
477
vxor 31,31,23
478
.long 0xF35FFC96
479
480
.long 0xF01BDC96
481
.long 0xF038C496
482
.long 0xF059CC96
483
.long 0xF07AD496
484
.long 0xF09CE496
485
.long 0xF0BEF496
486
.long 0xF1000496
487
488
li 0,10
489
mtctr 0
490
b .Loop_outer_vsx_8x
491
492
.align 5
493
.Loop_outer_vsx_8x:
494
.long 0xF016B491
495
.long 0xF037BC91
496
.long 0xF058C491
497
.long 0xF079CC91
498
.long 0xF216B491
499
.long 0xF237BC91
500
.long 0xF258C491
501
.long 0xF279CC91
502
503
vspltw 4,24,0
504
vspltw 5,24,1
505
vspltw 6,24,2
506
vspltw 7,24,3
507
vspltw 20,24,0
508
vspltw 21,24,1
509
vspltw 22,24,2
510
vspltw 23,24,3
511
512
vspltw 8,25,0
513
vspltw 9,25,1
514
vspltw 10,25,2
515
vspltw 11,25,3
516
vspltw 24,25,0
517
vspltw 27,25,3
518
vspltw 25,25,1
519
520
.long 0xF1842491
521
vspltw 13,26,1
522
vspltw 14,26,2
523
vspltw 15,26,3
524
.long 0xF3852C91
525
vspltw 29,26,1
526
vspltw 30,26,2
527
vspltw 31,26,3
528
.long 0xF3484491
529
530
.Loop_vsx_8x:
531
.long 0xF1FBDC96
532
.long 0xF3694C91
533
vadduwm 0,0,4
534
vadduwm 1,1,5
535
vadduwm 2,2,6
536
vadduwm 3,3,7
537
vadduwm 16,16,20
538
vadduwm 17,17,21
539
vadduwm 18,18,22
540
vadduwm 19,19,23
541
vxor 12,12,0
542
vxor 13,13,1
543
vxor 14,14,2
544
vxor 15,15,3
545
vxor 28,28,16
546
vxor 29,29,17
547
vxor 30,30,18
548
vxor 31,31,19
549
vrlw 12,12,27
550
vrlw 13,13,27
551
vrlw 14,14,27
552
vrlw 15,15,27
553
vrlw 28,28,27
554
vrlw 29,29,27
555
vrlw 30,30,27
556
vrlw 31,31,27
557
.long 0xF1B39C96
558
.long 0xF36F7C91
559
.long 0xF26A5491
560
vadduwm 8,8,12
561
vadduwm 9,9,13
562
vadduwm 10,10,14
563
vadduwm 11,11,15
564
vadduwm 24,24,28
565
vadduwm 25,25,29
566
vadduwm 26,26,30
567
vadduwm 27,27,31
568
vxor 4,4,8
569
vxor 5,5,9
570
vxor 6,6,10
571
vxor 7,7,11
572
vxor 20,20,24
573
vxor 21,21,25
574
vxor 22,22,26
575
vxor 23,23,27
576
vrlw 4,4,19
577
vrlw 5,5,19
578
vrlw 6,6,19
579
vrlw 7,7,19
580
vrlw 20,20,19
581
vrlw 21,21,19
582
vrlw 22,22,19
583
vrlw 23,23,19
584
.long 0xF26D6C91
585
.long 0xF1FBDC96
586
.long 0xF36B5C91
587
vadduwm 0,0,4
588
vadduwm 1,1,5
589
vadduwm 2,2,6
590
vadduwm 3,3,7
591
vadduwm 16,16,20
592
vadduwm 17,17,21
593
vadduwm 18,18,22
594
vadduwm 19,19,23
595
vxor 12,12,0
596
vxor 13,13,1
597
vxor 14,14,2
598
vxor 15,15,3
599
vxor 28,28,16
600
vxor 29,29,17
601
vxor 30,30,18
602
vxor 31,31,19
603
vrlw 12,12,27
604
vrlw 13,13,27
605
vrlw 14,14,27
606
vrlw 15,15,27
607
vrlw 28,28,27
608
vrlw 29,29,27
609
vrlw 30,30,27
610
vrlw 31,31,27
611
.long 0xF36F7C91
612
.long 0xF1B39C96
613
.long 0xF26C6491
614
vadduwm 8,8,12
615
vadduwm 9,9,13
616
vadduwm 10,10,14
617
vadduwm 11,11,15
618
vadduwm 24,24,28
619
vadduwm 25,25,29
620
vadduwm 26,26,30
621
vadduwm 27,27,31
622
vxor 4,4,8
623
vxor 5,5,9
624
vxor 6,6,10
625
vxor 7,7,11
626
vxor 20,20,24
627
vxor 21,21,25
628
vxor 22,22,26
629
vxor 23,23,27
630
vrlw 4,4,19
631
vrlw 5,5,19
632
vrlw 6,6,19
633
vrlw 7,7,19
634
vrlw 20,20,19
635
vrlw 21,21,19
636
vrlw 22,22,19
637
vrlw 23,23,19
638
.long 0xF26D6C91
639
.long 0xF1F9CC96
640
.long 0xF3294C91
641
vadduwm 0,0,5
642
vadduwm 1,1,6
643
vadduwm 2,2,7
644
vadduwm 3,3,4
645
vadduwm 16,16,21
646
vadduwm 17,17,22
647
vadduwm 18,18,23
648
vadduwm 19,19,20
649
vxor 15,15,0
650
vxor 12,12,1
651
vxor 13,13,2
652
vxor 14,14,3
653
vxor 31,31,16
654
vxor 28,28,17
655
vxor 29,29,18
656
vxor 30,30,19
657
vrlw 15,15,25
658
vrlw 12,12,25
659
vrlw 13,13,25
660
vrlw 14,14,25
661
vrlw 31,31,25
662
vrlw 28,28,25
663
vrlw 29,29,25
664
vrlw 30,30,25
665
.long 0xF1B39C96
666
.long 0xF32F7C91
667
.long 0xF26A5491
668
vadduwm 10,10,15
669
vadduwm 11,11,12
670
vadduwm 8,8,13
671
vadduwm 9,9,14
672
vadduwm 26,26,31
673
vadduwm 27,27,28
674
vadduwm 24,24,29
675
vadduwm 25,25,30
676
vxor 5,5,10
677
vxor 6,6,11
678
vxor 7,7,8
679
vxor 4,4,9
680
vxor 21,21,26
681
vxor 22,22,27
682
vxor 23,23,24
683
vxor 20,20,25
684
vrlw 5,5,19
685
vrlw 6,6,19
686
vrlw 7,7,19
687
vrlw 4,4,19
688
vrlw 21,21,19
689
vrlw 22,22,19
690
vrlw 23,23,19
691
vrlw 20,20,19
692
.long 0xF26D6C91
693
.long 0xF1F9CC96
694
.long 0xF32B5C91
695
vadduwm 0,0,5
696
vadduwm 1,1,6
697
vadduwm 2,2,7
698
vadduwm 3,3,4
699
vadduwm 16,16,21
700
vadduwm 17,17,22
701
vadduwm 18,18,23
702
vadduwm 19,19,20
703
vxor 15,15,0
704
vxor 12,12,1
705
vxor 13,13,2
706
vxor 14,14,3
707
vxor 31,31,16
708
vxor 28,28,17
709
vxor 29,29,18
710
vxor 30,30,19
711
vrlw 15,15,25
712
vrlw 12,12,25
713
vrlw 13,13,25
714
vrlw 14,14,25
715
vrlw 31,31,25
716
vrlw 28,28,25
717
vrlw 29,29,25
718
vrlw 30,30,25
719
.long 0xF32F7C91
720
.long 0xF1B39C96
721
.long 0xF26C6491
722
vadduwm 10,10,15
723
vadduwm 11,11,12
724
vadduwm 8,8,13
725
vadduwm 9,9,14
726
vadduwm 26,26,31
727
vadduwm 27,27,28
728
vadduwm 24,24,29
729
vadduwm 25,25,30
730
vxor 5,5,10
731
vxor 6,6,11
732
vxor 7,7,8
733
vxor 4,4,9
734
vxor 21,21,26
735
vxor 22,22,27
736
vxor 23,23,24
737
vxor 20,20,25
738
vrlw 5,5,19
739
vrlw 6,6,19
740
vrlw 7,7,19
741
vrlw 4,4,19
742
vrlw 21,21,19
743
vrlw 22,22,19
744
vrlw 23,23,19
745
vrlw 20,20,19
746
.long 0xF26D6C91
747
748
bdnz .Loop_vsx_8x
749
.long 0xF1BCE496
750
.long 0xF1DDEC96
751
.long 0xF1FEF496
752
.long 0xF21FFC96
753
754
.long 0xF258C496
755
.long 0xF279CC96
756
.long 0xF29AD496
757
.long 0xF2BBDC96
758
759
.long 0xF0D6B496
760
.long 0xF0F7BC96
761
.long 0xF3FAD491
762
763
.long 0xF3600491
764
.long 0xF3010C91
765
.long 0xF3221491
766
.long 0xF3431C91
767
.long 0xF2C42491
768
769
770
.long 0x12E00F8C
771
.long 0x13821F8C
772
.long 0x10000E8C
773
.long 0x10421E8C
774
775
.long 0x13A42F8C
776
.long 0x13C63F8C
777
.long 0x10842E8C
778
.long 0x10C63E8C
779
780
vadduwm 12,12,22
781
782
.long 0xF0201057
783
.long 0xF0601357
784
.long 0xF017E057
785
.long 0xF057E357
786
.long 0xF0A43057
787
.long 0xF0E43357
788
.long 0xF09DF057
789
.long 0xF0DDF357
790
791
.long 0x12E84F8C
792
.long 0x138A5F8C
793
.long 0x11084E8C
794
.long 0x114A5E8C
795
.long 0x13AC6F8C
796
.long 0x13CE7F8C
797
.long 0x118C6E8C
798
.long 0x11CE7E8C
799
800
.long 0xF1285057
801
.long 0xF1685357
802
.long 0xF117E057
803
.long 0xF157E357
804
.long 0xF1AC7057
805
.long 0xF1EC7357
806
.long 0xF19DF057
807
.long 0xF1DDF357
808
809
vspltisw 23,8
810
vadduwm 22,22,23
811
.long 0xF096B496
812
813
vadduwm 0,0,27
814
vadduwm 4,4,24
815
vadduwm 8,8,25
816
vadduwm 12,12,26
817
818
vperm 0,0,0,31
819
vperm 4,4,4,31
820
vperm 8,8,8,31
821
vperm 12,12,12,31
822
823
cmplwi 5,0x40
824
blt .Ltail_vsx_8x
825
826
.long 0x7EE02619
827
.long 0x7F882619
828
.long 0x7FA92619
829
.long 0x7FCA2619
830
831
vxor 23,23,0
832
vxor 28,28,4
833
vxor 29,29,8
834
vxor 30,30,12
835
836
.long 0x7EE01F19
837
.long 0x7F881F19
838
addi 4,4,0x40
839
.long 0x7FA91F19
840
subi 5,5,0x40
841
.long 0x7FCA1F19
842
addi 3,3,0x40
843
beq .Ldone_vsx_8x
844
845
vadduwm 0,1,27
846
vadduwm 4,5,24
847
vadduwm 8,9,25
848
vadduwm 12,13,26
849
850
vperm 0,0,0,31
851
vperm 4,4,4,31
852
vperm 8,8,8,31
853
vperm 12,12,12,31
854
855
cmplwi 5,0x40
856
blt .Ltail_vsx_8x
857
858
.long 0x7EE02619
859
.long 0x7F882619
860
.long 0x7FA92619
861
.long 0x7FCA2619
862
863
vxor 23,23,0
864
vxor 28,28,4
865
vxor 29,29,8
866
vxor 30,30,12
867
868
.long 0x7EE01F19
869
.long 0x7F881F19
870
addi 4,4,0x40
871
.long 0x7FA91F19
872
subi 5,5,0x40
873
.long 0x7FCA1F19
874
addi 3,3,0x40
875
beq .Ldone_vsx_8x
876
877
vadduwm 0,2,27
878
vadduwm 4,6,24
879
vadduwm 8,10,25
880
vadduwm 12,14,26
881
882
vperm 0,0,0,31
883
vperm 4,4,4,31
884
vperm 8,8,8,31
885
vperm 12,12,12,31
886
887
cmplwi 5,0x40
888
blt .Ltail_vsx_8x
889
890
.long 0x7EE02619
891
.long 0x7F882619
892
.long 0x7FA92619
893
.long 0x7FCA2619
894
895
vxor 23,23,0
896
vxor 28,28,4
897
vxor 29,29,8
898
vxor 30,30,12
899
900
.long 0x7EE01F19
901
.long 0x7F881F19
902
addi 4,4,0x40
903
.long 0x7FA91F19
904
subi 5,5,0x40
905
.long 0x7FCA1F19
906
addi 3,3,0x40
907
beq .Ldone_vsx_8x
908
909
vadduwm 0,3,27
910
vadduwm 4,7,24
911
vadduwm 8,11,25
912
vadduwm 12,15,26
913
914
vperm 0,0,0,31
915
vperm 4,4,4,31
916
vperm 8,8,8,31
917
vperm 12,12,12,31
918
919
cmplwi 5,0x40
920
blt .Ltail_vsx_8x
921
922
.long 0x7EE02619
923
.long 0x7F882619
924
.long 0x7FA92619
925
.long 0x7FCA2619
926
927
vxor 23,23,0
928
vxor 28,28,4
929
vxor 29,29,8
930
vxor 30,30,12
931
932
.long 0x7EE01F19
933
.long 0x7F881F19
934
addi 4,4,0x40
935
.long 0x7FA91F19
936
subi 5,5,0x40
937
.long 0x7FCA1F19
938
addi 3,3,0x40
939
beq .Ldone_vsx_8x
940
941
942
943
944
.long 0xF0A52C91
945
946
.long 0xF1129491
947
.long 0xF1339C91
948
.long 0xF154A491
949
.long 0xF175AC91
950
951
.long 0xF18D6C91
952
.long 0xF1AE7491
953
.long 0xF1CF7C91
954
.long 0xF1F08491
955
vadduwm 12,12,5
956
957
.long 0xF2C63491
958
.long 0xF2E73C91
959
960
961
.long 0x10908F8C
962
.long 0x13929F8C
963
.long 0x12108E8C
964
.long 0x12529E8C
965
.long 0x13B4AF8C
966
.long 0x13D6BF8C
967
.long 0x1294AE8C
968
.long 0x12D6BE8C
969
970
.long 0xF2309057
971
.long 0xF2709357
972
.long 0xF204E057
973
.long 0xF244E357
974
.long 0xF2B4B057
975
.long 0xF2F4B357
976
.long 0xF29DF057
977
.long 0xF2DDF357
978
979
.long 0x10884F8C
980
.long 0x138A5F8C
981
.long 0x11084E8C
982
.long 0x114A5E8C
983
.long 0x13AC6F8C
984
.long 0x13CE7F8C
985
.long 0x118C6E8C
986
.long 0x11CE7E8C
987
988
.long 0xF1285057
989
.long 0xF1685357
990
.long 0xF104E057
991
.long 0xF144E357
992
.long 0xF1AC7057
993
.long 0xF1EC7357
994
.long 0xF19DF057
995
.long 0xF1DDF357
996
997
vspltisw 4,8
998
vadduwm 5,5,4
999
.long 0xF0A52C96
1000
1001
vadduwm 0,16,27
1002
vadduwm 1,20,24
1003
vadduwm 2,8,25
1004
vadduwm 3,12,26
1005
1006
vperm 0,0,0,31
1007
vperm 1,1,1,31
1008
vperm 2,2,2,31
1009
vperm 3,3,3,31
1010
1011
cmplwi 5,0x40
1012
blt .Ltail_vsx_8x_1
1013
1014
.long 0x7C802619
1015
.long 0x7F882619
1016
.long 0x7FA92619
1017
.long 0x7FCA2619
1018
1019
vxor 4,4,0
1020
vxor 28,28,1
1021
vxor 29,29,2
1022
vxor 30,30,3
1023
1024
.long 0x7C801F19
1025
.long 0x7F881F19
1026
addi 4,4,0x40
1027
.long 0x7FA91F19
1028
subi 5,5,0x40
1029
.long 0x7FCA1F19
1030
addi 3,3,0x40
1031
beq .Ldone_vsx_8x
1032
1033
vadduwm 0,17,27
1034
vadduwm 1,21,24
1035
vadduwm 2,9,25
1036
vadduwm 3,13,26
1037
1038
vperm 0,0,0,31
1039
vperm 1,1,1,31
1040
vperm 2,2,2,31
1041
vperm 3,3,3,31
1042
1043
cmplwi 5,0x40
1044
blt .Ltail_vsx_8x_1
1045
1046
.long 0x7C802619
1047
.long 0x7F882619
1048
.long 0x7FA92619
1049
.long 0x7FCA2619
1050
1051
vxor 4,4,0
1052
vxor 28,28,1
1053
vxor 29,29,2
1054
vxor 30,30,3
1055
1056
.long 0x7C801F19
1057
.long 0x7F881F19
1058
addi 4,4,0x40
1059
.long 0x7FA91F19
1060
subi 5,5,0x40
1061
.long 0x7FCA1F19
1062
addi 3,3,0x40
1063
beq .Ldone_vsx_8x
1064
1065
vadduwm 0,18,27
1066
vadduwm 1,22,24
1067
vadduwm 2,10,25
1068
vadduwm 3,14,26
1069
1070
vperm 0,0,0,31
1071
vperm 1,1,1,31
1072
vperm 2,2,2,31
1073
vperm 3,3,3,31
1074
1075
cmplwi 5,0x40
1076
blt .Ltail_vsx_8x_1
1077
1078
.long 0x7C802619
1079
.long 0x7F882619
1080
.long 0x7FA92619
1081
.long 0x7FCA2619
1082
1083
vxor 4,4,0
1084
vxor 28,28,1
1085
vxor 29,29,2
1086
vxor 30,30,3
1087
1088
.long 0x7C801F19
1089
.long 0x7F881F19
1090
addi 4,4,0x40
1091
.long 0x7FA91F19
1092
subi 5,5,0x40
1093
.long 0x7FCA1F19
1094
addi 3,3,0x40
1095
beq .Ldone_vsx_8x
1096
1097
vadduwm 0,19,27
1098
vadduwm 1,23,24
1099
vadduwm 2,11,25
1100
vadduwm 3,15,26
1101
1102
vperm 0,0,0,31
1103
vperm 1,1,1,31
1104
vperm 2,2,2,31
1105
vperm 3,3,3,31
1106
1107
cmplwi 5,0x40
1108
blt .Ltail_vsx_8x_1
1109
1110
.long 0x7C802619
1111
.long 0x7F882619
1112
.long 0x7FA92619
1113
.long 0x7FCA2619
1114
1115
vxor 4,4,0
1116
vxor 28,28,1
1117
vxor 29,29,2
1118
vxor 30,30,3
1119
1120
.long 0x7C801F19
1121
.long 0x7F881F19
1122
addi 4,4,0x40
1123
.long 0x7FA91F19
1124
subi 5,5,0x40
1125
.long 0x7FCA1F19
1126
addi 3,3,0x40
1127
beq .Ldone_vsx_8x
1128
1129
mtctr 0
1130
bne .Loop_outer_vsx_8x
1131
1132
.Ldone_vsx_8x:
1133
lwz 12,228(1)
1134
li 10,103
1135
li 11,119
1136
lwz 0, 236(1)
1137
mtspr 256,12
1138
lvx 24,10,1
1139
addi 10,10,32
1140
lvx 25,11,1
1141
addi 11,11,32
1142
lvx 26,10,1
1143
addi 10,10,32
1144
lvx 27,11,1
1145
addi 11,11,32
1146
lvx 28,10,1
1147
addi 10,10,32
1148
lvx 29,11,1
1149
addi 11,11,32
1150
lvx 30,10,1
1151
lvx 31,11,1
1152
mtlr 0
1153
addi 1,1,232
1154
blr
1155
1156
.align 4
1157
.Ltail_vsx_8x:
1158
addi 11,1,24
1159
mtctr 5
1160
.long 0x7C005F19
1161
.long 0x7C885F19
1162
.long 0x7D095F19
1163
.long 0x7D8A5F19
1164
subi 12,11,1
1165
subi 4,4,1
1166
subi 3,3,1
1167
bl .Loop_tail_vsx_8x
1168
.Ltail_vsx_8x_1:
1169
addi 11,1,24
1170
mtctr 5
1171
.long 0x7C005F19
1172
.long 0x7C285F19
1173
.long 0x7C495F19
1174
.long 0x7C6A5F19
1175
subi 12,11,1
1176
subi 4,4,1
1177
subi 3,3,1
1178
bl .Loop_tail_vsx_8x
1179
1180
.Loop_tail_vsx_8x:
1181
lbzu 6,1(12)
1182
lbzu 7,1(4)
1183
xor 6,6,7
1184
stbu 6,1(3)
1185
bdnz .Loop_tail_vsx_8x
1186
1187
.long 0x7F605F19
1188
.long 0x7F685F19
1189
.long 0x7F695F19
1190
.long 0x7F6A5F19
1191
1192
b .Ldone_vsx_8x
1193
.long 0
1194
.byte 0,12,0x04,1,0x80,0,5,0
1195
.long 0
1196
.size ChaCha20_ctr32_vsx_8x,.-ChaCha20_ctr32_vsx_8x
1197
.align 5
1198
.Lconsts:
1199
mflr 0
1200
bcl 20,31,$+4
1201
mflr 12
1202
addi 12,12,56
1203
mtlr 0
1204
blr
1205
.long 0
1206
.byte 0,12,0x14,0,0,0,0,0
1207
.space 28
1208
.Lsigma:
1209
.long 0x61707865,0x3320646e,0x79622d32,0x6b206574
1210
.long 1,0,0,0
1211
.long 2,0,0,0
1212
.long 3,0,0,0
1213
.long 4,0,0,0
1214
.long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d
1215
.long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c
1216
.long 0x61707865,0x61707865,0x61707865,0x61707865
1217
.long 0x3320646e,0x3320646e,0x3320646e,0x3320646e
1218
.long 0x79622d32,0x79622d32,0x79622d32,0x79622d32
1219
.long 0x6b206574,0x6b206574,0x6b206574,0x6b206574
1220
.long 0,1,2,3
1221
.long 0x03020100,0x07060504,0x0b0a0908,0x0f0e0d0c
1222
.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,80,111,119,101,114,80,67,47,65,108,116,105,86,101,99,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
1223
.align 2
1224
.align 2
1225
1226