Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/openzfs/module/icp/asm-ppc64/sha2/sha512-ppc.S
48775 views
1
// SPDX-License-Identifier: Apache-2.0
2
/*
3
* Copyright 2004-2022 The OpenSSL Project Authors. All Rights Reserved.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* https://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
/*
19
* Portions Copyright (c) 2022 Tino Reichardt <[email protected]>
20
* - modified assembly to fit into OpenZFS
21
*/
22
23
#if (defined(__PPC64__) && defined(__BIG_ENDIAN__))
24
25
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
26
.text
27
28
.globl zfs_sha512_ppc
29
.globl .zfs_sha512_ppc
30
.type zfs_sha512_ppc,@function
31
.section ".opd","aw"
32
.align 3
33
zfs_sha512_ppc:
34
.quad .zfs_sha512_ppc,.TOC.@tocbase,0
35
.previous
36
.align 6
37
.zfs_sha512_ppc:
38
#else
39
.abiversion 2
40
.text
41
42
.globl zfs_sha512_ppc
43
.type zfs_sha512_ppc,@function
44
.align 6
45
zfs_sha512_ppc:
46
.localentry zfs_sha512_ppc,0
47
#endif
48
stdu 1,-384(1)
49
mflr 0
50
sldi 5,5,7
51
52
std 3,208(1)
53
54
std 14,240(1)
55
std 15,248(1)
56
std 16,256(1)
57
std 17,264(1)
58
std 18,272(1)
59
std 19,280(1)
60
std 20,288(1)
61
std 21,296(1)
62
std 22,304(1)
63
std 23,312(1)
64
std 24,320(1)
65
std 25,328(1)
66
std 26,336(1)
67
std 27,344(1)
68
std 28,352(1)
69
std 29,360(1)
70
std 30,368(1)
71
std 31,376(1)
72
std 0,400(1)
73
ld 8,0(3)
74
mr 31,4
75
ld 9,8(3)
76
ld 10,16(3)
77
ld 11,24(3)
78
ld 12,32(3)
79
ld 6,40(3)
80
ld 14,48(3)
81
ld 15,56(3)
82
bl .LPICmeup
83
.LPICedup:
84
andi. 0,31,3
85
bne .Lunaligned
86
.Laligned:
87
add 5,31,5
88
std 5,192(1)
89
std 31,200(1)
90
bl .Lsha2_block_private
91
b .Ldone
92
93
94
95
96
97
98
99
.align 4
100
.Lunaligned:
101
subfic 0,31,4096
102
andi. 0,0,3968
103
beq .Lcross_page
104
cmpld 5,0
105
ble .Laligned
106
subfc 5,0,5
107
add 0,31,0
108
std 5,184(1)
109
std 0,192(1)
110
std 31,200(1)
111
bl .Lsha2_block_private
112
113
ld 5,184(1)
114
.Lcross_page:
115
li 0,32
116
mtctr 0
117
addi 20,1,48
118
.Lmemcpy:
119
lbz 16,0(31)
120
lbz 17,1(31)
121
lbz 18,2(31)
122
lbz 19,3(31)
123
addi 31,31,4
124
stb 16,0(20)
125
stb 17,1(20)
126
stb 18,2(20)
127
stb 19,3(20)
128
addi 20,20,4
129
bdnz .Lmemcpy
130
std 31,176(1)
131
addi 0,1,176
132
addi 31,1,48
133
std 5,184(1)
134
std 0,192(1)
135
std 31,200(1)
136
bl .Lsha2_block_private
137
ld 31,176(1)
138
ld 5,184(1)
139
addic. 5,5,-128
140
bne .Lunaligned
141
142
.Ldone:
143
ld 0,400(1)
144
ld 14,240(1)
145
ld 15,248(1)
146
ld 16,256(1)
147
ld 17,264(1)
148
ld 18,272(1)
149
ld 19,280(1)
150
ld 20,288(1)
151
ld 21,296(1)
152
ld 22,304(1)
153
ld 23,312(1)
154
ld 24,320(1)
155
ld 25,328(1)
156
ld 26,336(1)
157
ld 27,344(1)
158
ld 28,352(1)
159
ld 29,360(1)
160
ld 30,368(1)
161
ld 31,376(1)
162
mtlr 0
163
addi 1,1,384
164
blr
165
.long 0
166
.byte 0,12,4,1,0x80,18,3,0
167
.long 0
168
.align 4
169
.Lsha2_block_private:
170
ld 0,0(7)
171
lwz 5,0(31)
172
lwz 16,4(31)
173
insrdi 16,5,32,0
174
rotrdi 3,12,14
175
rotrdi 4,12,18
176
and 5,6,12
177
xor 3,3,4
178
add 15,15,0
179
andc 0,14,12
180
rotrdi 4,4,23
181
or 5,5,0
182
add 15,15,16
183
xor 3,3,4
184
add 15,15,5
185
add 15,15,3
186
187
rotrdi 3,8,28
188
rotrdi 4,8,34
189
and 5,8,9
190
and 0,8,10
191
xor 3,3,4
192
rotrdi 4,4,5
193
xor 5,5,0
194
and 0,9,10
195
xor 3,3,4
196
add 11,11,15
197
xor 5,5,0
198
ld 0,8(7)
199
add 15,15,3
200
add 15,15,5
201
202
lwz 5,8(31)
203
lwz 17,12(31)
204
insrdi 17,5,32,0
205
rotrdi 3,11,14
206
rotrdi 4,11,18
207
and 5,12,11
208
xor 3,3,4
209
add 14,14,0
210
andc 0,6,11
211
rotrdi 4,4,23
212
or 5,5,0
213
add 14,14,17
214
xor 3,3,4
215
add 14,14,5
216
add 14,14,3
217
218
rotrdi 3,15,28
219
rotrdi 4,15,34
220
and 5,15,8
221
and 0,15,9
222
xor 3,3,4
223
rotrdi 4,4,5
224
xor 5,5,0
225
and 0,8,9
226
xor 3,3,4
227
add 10,10,14
228
xor 5,5,0
229
ld 0,16(7)
230
add 14,14,3
231
add 14,14,5
232
233
lwz 5,16(31)
234
lwz 18,20(31)
235
insrdi 18,5,32,0
236
rotrdi 3,10,14
237
rotrdi 4,10,18
238
and 5,11,10
239
xor 3,3,4
240
add 6,6,0
241
andc 0,12,10
242
rotrdi 4,4,23
243
or 5,5,0
244
add 6,6,18
245
xor 3,3,4
246
add 6,6,5
247
add 6,6,3
248
249
rotrdi 3,14,28
250
rotrdi 4,14,34
251
and 5,14,15
252
and 0,14,8
253
xor 3,3,4
254
rotrdi 4,4,5
255
xor 5,5,0
256
and 0,15,8
257
xor 3,3,4
258
add 9,9,6
259
xor 5,5,0
260
ld 0,24(7)
261
add 6,6,3
262
add 6,6,5
263
264
lwz 5,24(31)
265
lwz 19,28(31)
266
insrdi 19,5,32,0
267
rotrdi 3,9,14
268
rotrdi 4,9,18
269
and 5,10,9
270
xor 3,3,4
271
add 12,12,0
272
andc 0,11,9
273
rotrdi 4,4,23
274
or 5,5,0
275
add 12,12,19
276
xor 3,3,4
277
add 12,12,5
278
add 12,12,3
279
280
rotrdi 3,6,28
281
rotrdi 4,6,34
282
and 5,6,14
283
and 0,6,15
284
xor 3,3,4
285
rotrdi 4,4,5
286
xor 5,5,0
287
and 0,14,15
288
xor 3,3,4
289
add 8,8,12
290
xor 5,5,0
291
ld 0,32(7)
292
add 12,12,3
293
add 12,12,5
294
295
lwz 5,32(31)
296
lwz 20,36(31)
297
insrdi 20,5,32,0
298
rotrdi 3,8,14
299
rotrdi 4,8,18
300
and 5,9,8
301
xor 3,3,4
302
add 11,11,0
303
andc 0,10,8
304
rotrdi 4,4,23
305
or 5,5,0
306
add 11,11,20
307
xor 3,3,4
308
add 11,11,5
309
add 11,11,3
310
311
rotrdi 3,12,28
312
rotrdi 4,12,34
313
and 5,12,6
314
and 0,12,14
315
xor 3,3,4
316
rotrdi 4,4,5
317
xor 5,5,0
318
and 0,6,14
319
xor 3,3,4
320
add 15,15,11
321
xor 5,5,0
322
ld 0,40(7)
323
add 11,11,3
324
add 11,11,5
325
326
lwz 5,40(31)
327
lwz 21,44(31)
328
insrdi 21,5,32,0
329
rotrdi 3,15,14
330
rotrdi 4,15,18
331
and 5,8,15
332
xor 3,3,4
333
add 10,10,0
334
andc 0,9,15
335
rotrdi 4,4,23
336
or 5,5,0
337
add 10,10,21
338
xor 3,3,4
339
add 10,10,5
340
add 10,10,3
341
342
rotrdi 3,11,28
343
rotrdi 4,11,34
344
and 5,11,12
345
and 0,11,6
346
xor 3,3,4
347
rotrdi 4,4,5
348
xor 5,5,0
349
and 0,12,6
350
xor 3,3,4
351
add 14,14,10
352
xor 5,5,0
353
ld 0,48(7)
354
add 10,10,3
355
add 10,10,5
356
357
lwz 5,48(31)
358
lwz 22,52(31)
359
insrdi 22,5,32,0
360
rotrdi 3,14,14
361
rotrdi 4,14,18
362
and 5,15,14
363
xor 3,3,4
364
add 9,9,0
365
andc 0,8,14
366
rotrdi 4,4,23
367
or 5,5,0
368
add 9,9,22
369
xor 3,3,4
370
add 9,9,5
371
add 9,9,3
372
373
rotrdi 3,10,28
374
rotrdi 4,10,34
375
and 5,10,11
376
and 0,10,12
377
xor 3,3,4
378
rotrdi 4,4,5
379
xor 5,5,0
380
and 0,11,12
381
xor 3,3,4
382
add 6,6,9
383
xor 5,5,0
384
ld 0,56(7)
385
add 9,9,3
386
add 9,9,5
387
388
lwz 5,56(31)
389
lwz 23,60(31)
390
insrdi 23,5,32,0
391
rotrdi 3,6,14
392
rotrdi 4,6,18
393
and 5,14,6
394
xor 3,3,4
395
add 8,8,0
396
andc 0,15,6
397
rotrdi 4,4,23
398
or 5,5,0
399
add 8,8,23
400
xor 3,3,4
401
add 8,8,5
402
add 8,8,3
403
404
rotrdi 3,9,28
405
rotrdi 4,9,34
406
and 5,9,10
407
and 0,9,11
408
xor 3,3,4
409
rotrdi 4,4,5
410
xor 5,5,0
411
and 0,10,11
412
xor 3,3,4
413
add 12,12,8
414
xor 5,5,0
415
ld 0,64(7)
416
add 8,8,3
417
add 8,8,5
418
419
lwz 5,64(31)
420
lwz 24,68(31)
421
insrdi 24,5,32,0
422
rotrdi 3,12,14
423
rotrdi 4,12,18
424
and 5,6,12
425
xor 3,3,4
426
add 15,15,0
427
andc 0,14,12
428
rotrdi 4,4,23
429
or 5,5,0
430
add 15,15,24
431
xor 3,3,4
432
add 15,15,5
433
add 15,15,3
434
435
rotrdi 3,8,28
436
rotrdi 4,8,34
437
and 5,8,9
438
and 0,8,10
439
xor 3,3,4
440
rotrdi 4,4,5
441
xor 5,5,0
442
and 0,9,10
443
xor 3,3,4
444
add 11,11,15
445
xor 5,5,0
446
ld 0,72(7)
447
add 15,15,3
448
add 15,15,5
449
450
lwz 5,72(31)
451
lwz 25,76(31)
452
insrdi 25,5,32,0
453
rotrdi 3,11,14
454
rotrdi 4,11,18
455
and 5,12,11
456
xor 3,3,4
457
add 14,14,0
458
andc 0,6,11
459
rotrdi 4,4,23
460
or 5,5,0
461
add 14,14,25
462
xor 3,3,4
463
add 14,14,5
464
add 14,14,3
465
466
rotrdi 3,15,28
467
rotrdi 4,15,34
468
and 5,15,8
469
and 0,15,9
470
xor 3,3,4
471
rotrdi 4,4,5
472
xor 5,5,0
473
and 0,8,9
474
xor 3,3,4
475
add 10,10,14
476
xor 5,5,0
477
ld 0,80(7)
478
add 14,14,3
479
add 14,14,5
480
481
lwz 5,80(31)
482
lwz 26,84(31)
483
insrdi 26,5,32,0
484
rotrdi 3,10,14
485
rotrdi 4,10,18
486
and 5,11,10
487
xor 3,3,4
488
add 6,6,0
489
andc 0,12,10
490
rotrdi 4,4,23
491
or 5,5,0
492
add 6,6,26
493
xor 3,3,4
494
add 6,6,5
495
add 6,6,3
496
497
rotrdi 3,14,28
498
rotrdi 4,14,34
499
and 5,14,15
500
and 0,14,8
501
xor 3,3,4
502
rotrdi 4,4,5
503
xor 5,5,0
504
and 0,15,8
505
xor 3,3,4
506
add 9,9,6
507
xor 5,5,0
508
ld 0,88(7)
509
add 6,6,3
510
add 6,6,5
511
512
lwz 5,88(31)
513
lwz 27,92(31)
514
insrdi 27,5,32,0
515
rotrdi 3,9,14
516
rotrdi 4,9,18
517
and 5,10,9
518
xor 3,3,4
519
add 12,12,0
520
andc 0,11,9
521
rotrdi 4,4,23
522
or 5,5,0
523
add 12,12,27
524
xor 3,3,4
525
add 12,12,5
526
add 12,12,3
527
528
rotrdi 3,6,28
529
rotrdi 4,6,34
530
and 5,6,14
531
and 0,6,15
532
xor 3,3,4
533
rotrdi 4,4,5
534
xor 5,5,0
535
and 0,14,15
536
xor 3,3,4
537
add 8,8,12
538
xor 5,5,0
539
ld 0,96(7)
540
add 12,12,3
541
add 12,12,5
542
543
lwz 5,96(31)
544
lwz 28,100(31)
545
insrdi 28,5,32,0
546
rotrdi 3,8,14
547
rotrdi 4,8,18
548
and 5,9,8
549
xor 3,3,4
550
add 11,11,0
551
andc 0,10,8
552
rotrdi 4,4,23
553
or 5,5,0
554
add 11,11,28
555
xor 3,3,4
556
add 11,11,5
557
add 11,11,3
558
559
rotrdi 3,12,28
560
rotrdi 4,12,34
561
and 5,12,6
562
and 0,12,14
563
xor 3,3,4
564
rotrdi 4,4,5
565
xor 5,5,0
566
and 0,6,14
567
xor 3,3,4
568
add 15,15,11
569
xor 5,5,0
570
ld 0,104(7)
571
add 11,11,3
572
add 11,11,5
573
574
lwz 5,104(31)
575
lwz 29,108(31)
576
insrdi 29,5,32,0
577
rotrdi 3,15,14
578
rotrdi 4,15,18
579
and 5,8,15
580
xor 3,3,4
581
add 10,10,0
582
andc 0,9,15
583
rotrdi 4,4,23
584
or 5,5,0
585
add 10,10,29
586
xor 3,3,4
587
add 10,10,5
588
add 10,10,3
589
590
rotrdi 3,11,28
591
rotrdi 4,11,34
592
and 5,11,12
593
and 0,11,6
594
xor 3,3,4
595
rotrdi 4,4,5
596
xor 5,5,0
597
and 0,12,6
598
xor 3,3,4
599
add 14,14,10
600
xor 5,5,0
601
ld 0,112(7)
602
add 10,10,3
603
add 10,10,5
604
605
lwz 5,112(31)
606
lwz 30,116(31)
607
insrdi 30,5,32,0
608
rotrdi 3,14,14
609
rotrdi 4,14,18
610
and 5,15,14
611
xor 3,3,4
612
add 9,9,0
613
andc 0,8,14
614
rotrdi 4,4,23
615
or 5,5,0
616
add 9,9,30
617
xor 3,3,4
618
add 9,9,5
619
add 9,9,3
620
621
rotrdi 3,10,28
622
rotrdi 4,10,34
623
and 5,10,11
624
and 0,10,12
625
xor 3,3,4
626
rotrdi 4,4,5
627
xor 5,5,0
628
and 0,11,12
629
xor 3,3,4
630
add 6,6,9
631
xor 5,5,0
632
ld 0,120(7)
633
add 9,9,3
634
add 9,9,5
635
636
lwz 5,120(31)
637
lwz 31,124(31)
638
insrdi 31,5,32,0
639
rotrdi 3,6,14
640
rotrdi 4,6,18
641
and 5,14,6
642
xor 3,3,4
643
add 8,8,0
644
andc 0,15,6
645
rotrdi 4,4,23
646
or 5,5,0
647
add 8,8,31
648
xor 3,3,4
649
add 8,8,5
650
add 8,8,3
651
652
rotrdi 3,9,28
653
rotrdi 4,9,34
654
and 5,9,10
655
and 0,9,11
656
xor 3,3,4
657
rotrdi 4,4,5
658
xor 5,5,0
659
and 0,10,11
660
xor 3,3,4
661
add 12,12,8
662
xor 5,5,0
663
add 8,8,3
664
add 8,8,5
665
666
li 5,4
667
mtctr 5
668
.align 4
669
.Lrounds:
670
addi 7,7,128
671
rotrdi 3,17,1
672
rotrdi 4,17,8
673
rotrdi 5,30,19
674
rotrdi 0,30,61
675
xor 3,3,4
676
srdi 4,17,7
677
xor 5,5,0
678
srdi 0,30,6
679
add 16,16,25
680
xor 3,3,4
681
xor 5,5,0
682
ld 0,0(7)
683
add 16,16,3
684
add 16,16,5
685
rotrdi 3,12,14
686
rotrdi 4,12,18
687
and 5,6,12
688
xor 3,3,4
689
add 15,15,0
690
andc 0,14,12
691
rotrdi 4,4,23
692
or 5,5,0
693
add 15,15,16
694
xor 3,3,4
695
add 15,15,5
696
add 15,15,3
697
698
rotrdi 3,8,28
699
rotrdi 4,8,34
700
and 5,8,9
701
and 0,8,10
702
xor 3,3,4
703
rotrdi 4,4,5
704
xor 5,5,0
705
and 0,9,10
706
xor 3,3,4
707
add 11,11,15
708
xor 5,5,0
709
add 15,15,3
710
add 15,15,5
711
712
rotrdi 3,18,1
713
rotrdi 4,18,8
714
rotrdi 5,31,19
715
rotrdi 0,31,61
716
xor 3,3,4
717
srdi 4,18,7
718
xor 5,5,0
719
srdi 0,31,6
720
add 17,17,26
721
xor 3,3,4
722
xor 5,5,0
723
ld 0,8(7)
724
add 17,17,3
725
add 17,17,5
726
rotrdi 3,11,14
727
rotrdi 4,11,18
728
and 5,12,11
729
xor 3,3,4
730
add 14,14,0
731
andc 0,6,11
732
rotrdi 4,4,23
733
or 5,5,0
734
add 14,14,17
735
xor 3,3,4
736
add 14,14,5
737
add 14,14,3
738
739
rotrdi 3,15,28
740
rotrdi 4,15,34
741
and 5,15,8
742
and 0,15,9
743
xor 3,3,4
744
rotrdi 4,4,5
745
xor 5,5,0
746
and 0,8,9
747
xor 3,3,4
748
add 10,10,14
749
xor 5,5,0
750
add 14,14,3
751
add 14,14,5
752
753
rotrdi 3,19,1
754
rotrdi 4,19,8
755
rotrdi 5,16,19
756
rotrdi 0,16,61
757
xor 3,3,4
758
srdi 4,19,7
759
xor 5,5,0
760
srdi 0,16,6
761
add 18,18,27
762
xor 3,3,4
763
xor 5,5,0
764
ld 0,16(7)
765
add 18,18,3
766
add 18,18,5
767
rotrdi 3,10,14
768
rotrdi 4,10,18
769
and 5,11,10
770
xor 3,3,4
771
add 6,6,0
772
andc 0,12,10
773
rotrdi 4,4,23
774
or 5,5,0
775
add 6,6,18
776
xor 3,3,4
777
add 6,6,5
778
add 6,6,3
779
780
rotrdi 3,14,28
781
rotrdi 4,14,34
782
and 5,14,15
783
and 0,14,8
784
xor 3,3,4
785
rotrdi 4,4,5
786
xor 5,5,0
787
and 0,15,8
788
xor 3,3,4
789
add 9,9,6
790
xor 5,5,0
791
add 6,6,3
792
add 6,6,5
793
794
rotrdi 3,20,1
795
rotrdi 4,20,8
796
rotrdi 5,17,19
797
rotrdi 0,17,61
798
xor 3,3,4
799
srdi 4,20,7
800
xor 5,5,0
801
srdi 0,17,6
802
add 19,19,28
803
xor 3,3,4
804
xor 5,5,0
805
ld 0,24(7)
806
add 19,19,3
807
add 19,19,5
808
rotrdi 3,9,14
809
rotrdi 4,9,18
810
and 5,10,9
811
xor 3,3,4
812
add 12,12,0
813
andc 0,11,9
814
rotrdi 4,4,23
815
or 5,5,0
816
add 12,12,19
817
xor 3,3,4
818
add 12,12,5
819
add 12,12,3
820
821
rotrdi 3,6,28
822
rotrdi 4,6,34
823
and 5,6,14
824
and 0,6,15
825
xor 3,3,4
826
rotrdi 4,4,5
827
xor 5,5,0
828
and 0,14,15
829
xor 3,3,4
830
add 8,8,12
831
xor 5,5,0
832
add 12,12,3
833
add 12,12,5
834
835
rotrdi 3,21,1
836
rotrdi 4,21,8
837
rotrdi 5,18,19
838
rotrdi 0,18,61
839
xor 3,3,4
840
srdi 4,21,7
841
xor 5,5,0
842
srdi 0,18,6
843
add 20,20,29
844
xor 3,3,4
845
xor 5,5,0
846
ld 0,32(7)
847
add 20,20,3
848
add 20,20,5
849
rotrdi 3,8,14
850
rotrdi 4,8,18
851
and 5,9,8
852
xor 3,3,4
853
add 11,11,0
854
andc 0,10,8
855
rotrdi 4,4,23
856
or 5,5,0
857
add 11,11,20
858
xor 3,3,4
859
add 11,11,5
860
add 11,11,3
861
862
rotrdi 3,12,28
863
rotrdi 4,12,34
864
and 5,12,6
865
and 0,12,14
866
xor 3,3,4
867
rotrdi 4,4,5
868
xor 5,5,0
869
and 0,6,14
870
xor 3,3,4
871
add 15,15,11
872
xor 5,5,0
873
add 11,11,3
874
add 11,11,5
875
876
rotrdi 3,22,1
877
rotrdi 4,22,8
878
rotrdi 5,19,19
879
rotrdi 0,19,61
880
xor 3,3,4
881
srdi 4,22,7
882
xor 5,5,0
883
srdi 0,19,6
884
add 21,21,30
885
xor 3,3,4
886
xor 5,5,0
887
ld 0,40(7)
888
add 21,21,3
889
add 21,21,5
890
rotrdi 3,15,14
891
rotrdi 4,15,18
892
and 5,8,15
893
xor 3,3,4
894
add 10,10,0
895
andc 0,9,15
896
rotrdi 4,4,23
897
or 5,5,0
898
add 10,10,21
899
xor 3,3,4
900
add 10,10,5
901
add 10,10,3
902
903
rotrdi 3,11,28
904
rotrdi 4,11,34
905
and 5,11,12
906
and 0,11,6
907
xor 3,3,4
908
rotrdi 4,4,5
909
xor 5,5,0
910
and 0,12,6
911
xor 3,3,4
912
add 14,14,10
913
xor 5,5,0
914
add 10,10,3
915
add 10,10,5
916
917
rotrdi 3,23,1
918
rotrdi 4,23,8
919
rotrdi 5,20,19
920
rotrdi 0,20,61
921
xor 3,3,4
922
srdi 4,23,7
923
xor 5,5,0
924
srdi 0,20,6
925
add 22,22,31
926
xor 3,3,4
927
xor 5,5,0
928
ld 0,48(7)
929
add 22,22,3
930
add 22,22,5
931
rotrdi 3,14,14
932
rotrdi 4,14,18
933
and 5,15,14
934
xor 3,3,4
935
add 9,9,0
936
andc 0,8,14
937
rotrdi 4,4,23
938
or 5,5,0
939
add 9,9,22
940
xor 3,3,4
941
add 9,9,5
942
add 9,9,3
943
944
rotrdi 3,10,28
945
rotrdi 4,10,34
946
and 5,10,11
947
and 0,10,12
948
xor 3,3,4
949
rotrdi 4,4,5
950
xor 5,5,0
951
and 0,11,12
952
xor 3,3,4
953
add 6,6,9
954
xor 5,5,0
955
add 9,9,3
956
add 9,9,5
957
958
rotrdi 3,24,1
959
rotrdi 4,24,8
960
rotrdi 5,21,19
961
rotrdi 0,21,61
962
xor 3,3,4
963
srdi 4,24,7
964
xor 5,5,0
965
srdi 0,21,6
966
add 23,23,16
967
xor 3,3,4
968
xor 5,5,0
969
ld 0,56(7)
970
add 23,23,3
971
add 23,23,5
972
rotrdi 3,6,14
973
rotrdi 4,6,18
974
and 5,14,6
975
xor 3,3,4
976
add 8,8,0
977
andc 0,15,6
978
rotrdi 4,4,23
979
or 5,5,0
980
add 8,8,23
981
xor 3,3,4
982
add 8,8,5
983
add 8,8,3
984
985
rotrdi 3,9,28
986
rotrdi 4,9,34
987
and 5,9,10
988
and 0,9,11
989
xor 3,3,4
990
rotrdi 4,4,5
991
xor 5,5,0
992
and 0,10,11
993
xor 3,3,4
994
add 12,12,8
995
xor 5,5,0
996
add 8,8,3
997
add 8,8,5
998
999
rotrdi 3,25,1
1000
rotrdi 4,25,8
1001
rotrdi 5,22,19
1002
rotrdi 0,22,61
1003
xor 3,3,4
1004
srdi 4,25,7
1005
xor 5,5,0
1006
srdi 0,22,6
1007
add 24,24,17
1008
xor 3,3,4
1009
xor 5,5,0
1010
ld 0,64(7)
1011
add 24,24,3
1012
add 24,24,5
1013
rotrdi 3,12,14
1014
rotrdi 4,12,18
1015
and 5,6,12
1016
xor 3,3,4
1017
add 15,15,0
1018
andc 0,14,12
1019
rotrdi 4,4,23
1020
or 5,5,0
1021
add 15,15,24
1022
xor 3,3,4
1023
add 15,15,5
1024
add 15,15,3
1025
1026
rotrdi 3,8,28
1027
rotrdi 4,8,34
1028
and 5,8,9
1029
and 0,8,10
1030
xor 3,3,4
1031
rotrdi 4,4,5
1032
xor 5,5,0
1033
and 0,9,10
1034
xor 3,3,4
1035
add 11,11,15
1036
xor 5,5,0
1037
add 15,15,3
1038
add 15,15,5
1039
1040
rotrdi 3,26,1
1041
rotrdi 4,26,8
1042
rotrdi 5,23,19
1043
rotrdi 0,23,61
1044
xor 3,3,4
1045
srdi 4,26,7
1046
xor 5,5,0
1047
srdi 0,23,6
1048
add 25,25,18
1049
xor 3,3,4
1050
xor 5,5,0
1051
ld 0,72(7)
1052
add 25,25,3
1053
add 25,25,5
1054
rotrdi 3,11,14
1055
rotrdi 4,11,18
1056
and 5,12,11
1057
xor 3,3,4
1058
add 14,14,0
1059
andc 0,6,11
1060
rotrdi 4,4,23
1061
or 5,5,0
1062
add 14,14,25
1063
xor 3,3,4
1064
add 14,14,5
1065
add 14,14,3
1066
1067
rotrdi 3,15,28
1068
rotrdi 4,15,34
1069
and 5,15,8
1070
and 0,15,9
1071
xor 3,3,4
1072
rotrdi 4,4,5
1073
xor 5,5,0
1074
and 0,8,9
1075
xor 3,3,4
1076
add 10,10,14
1077
xor 5,5,0
1078
add 14,14,3
1079
add 14,14,5
1080
1081
rotrdi 3,27,1
1082
rotrdi 4,27,8
1083
rotrdi 5,24,19
1084
rotrdi 0,24,61
1085
xor 3,3,4
1086
srdi 4,27,7
1087
xor 5,5,0
1088
srdi 0,24,6
1089
add 26,26,19
1090
xor 3,3,4
1091
xor 5,5,0
1092
ld 0,80(7)
1093
add 26,26,3
1094
add 26,26,5
1095
rotrdi 3,10,14
1096
rotrdi 4,10,18
1097
and 5,11,10
1098
xor 3,3,4
1099
add 6,6,0
1100
andc 0,12,10
1101
rotrdi 4,4,23
1102
or 5,5,0
1103
add 6,6,26
1104
xor 3,3,4
1105
add 6,6,5
1106
add 6,6,3
1107
1108
rotrdi 3,14,28
1109
rotrdi 4,14,34
1110
and 5,14,15
1111
and 0,14,8
1112
xor 3,3,4
1113
rotrdi 4,4,5
1114
xor 5,5,0
1115
and 0,15,8
1116
xor 3,3,4
1117
add 9,9,6
1118
xor 5,5,0
1119
add 6,6,3
1120
add 6,6,5
1121
1122
rotrdi 3,28,1
1123
rotrdi 4,28,8
1124
rotrdi 5,25,19
1125
rotrdi 0,25,61
1126
xor 3,3,4
1127
srdi 4,28,7
1128
xor 5,5,0
1129
srdi 0,25,6
1130
add 27,27,20
1131
xor 3,3,4
1132
xor 5,5,0
1133
ld 0,88(7)
1134
add 27,27,3
1135
add 27,27,5
1136
rotrdi 3,9,14
1137
rotrdi 4,9,18
1138
and 5,10,9
1139
xor 3,3,4
1140
add 12,12,0
1141
andc 0,11,9
1142
rotrdi 4,4,23
1143
or 5,5,0
1144
add 12,12,27
1145
xor 3,3,4
1146
add 12,12,5
1147
add 12,12,3
1148
1149
rotrdi 3,6,28
1150
rotrdi 4,6,34
1151
and 5,6,14
1152
and 0,6,15
1153
xor 3,3,4
1154
rotrdi 4,4,5
1155
xor 5,5,0
1156
and 0,14,15
1157
xor 3,3,4
1158
add 8,8,12
1159
xor 5,5,0
1160
add 12,12,3
1161
add 12,12,5
1162
1163
rotrdi 3,29,1
1164
rotrdi 4,29,8
1165
rotrdi 5,26,19
1166
rotrdi 0,26,61
1167
xor 3,3,4
1168
srdi 4,29,7
1169
xor 5,5,0
1170
srdi 0,26,6
1171
add 28,28,21
1172
xor 3,3,4
1173
xor 5,5,0
1174
ld 0,96(7)
1175
add 28,28,3
1176
add 28,28,5
1177
rotrdi 3,8,14
1178
rotrdi 4,8,18
1179
and 5,9,8
1180
xor 3,3,4
1181
add 11,11,0
1182
andc 0,10,8
1183
rotrdi 4,4,23
1184
or 5,5,0
1185
add 11,11,28
1186
xor 3,3,4
1187
add 11,11,5
1188
add 11,11,3
1189
1190
rotrdi 3,12,28
1191
rotrdi 4,12,34
1192
and 5,12,6
1193
and 0,12,14
1194
xor 3,3,4
1195
rotrdi 4,4,5
1196
xor 5,5,0
1197
and 0,6,14
1198
xor 3,3,4
1199
add 15,15,11
1200
xor 5,5,0
1201
add 11,11,3
1202
add 11,11,5
1203
1204
rotrdi 3,30,1
1205
rotrdi 4,30,8
1206
rotrdi 5,27,19
1207
rotrdi 0,27,61
1208
xor 3,3,4
1209
srdi 4,30,7
1210
xor 5,5,0
1211
srdi 0,27,6
1212
add 29,29,22
1213
xor 3,3,4
1214
xor 5,5,0
1215
ld 0,104(7)
1216
add 29,29,3
1217
add 29,29,5
1218
rotrdi 3,15,14
1219
rotrdi 4,15,18
1220
and 5,8,15
1221
xor 3,3,4
1222
add 10,10,0
1223
andc 0,9,15
1224
rotrdi 4,4,23
1225
or 5,5,0
1226
add 10,10,29
1227
xor 3,3,4
1228
add 10,10,5
1229
add 10,10,3
1230
1231
rotrdi 3,11,28
1232
rotrdi 4,11,34
1233
and 5,11,12
1234
and 0,11,6
1235
xor 3,3,4
1236
rotrdi 4,4,5
1237
xor 5,5,0
1238
and 0,12,6
1239
xor 3,3,4
1240
add 14,14,10
1241
xor 5,5,0
1242
add 10,10,3
1243
add 10,10,5
1244
1245
rotrdi 3,31,1
1246
rotrdi 4,31,8
1247
rotrdi 5,28,19
1248
rotrdi 0,28,61
1249
xor 3,3,4
1250
srdi 4,31,7
1251
xor 5,5,0
1252
srdi 0,28,6
1253
add 30,30,23
1254
xor 3,3,4
1255
xor 5,5,0
1256
ld 0,112(7)
1257
add 30,30,3
1258
add 30,30,5
1259
rotrdi 3,14,14
1260
rotrdi 4,14,18
1261
and 5,15,14
1262
xor 3,3,4
1263
add 9,9,0
1264
andc 0,8,14
1265
rotrdi 4,4,23
1266
or 5,5,0
1267
add 9,9,30
1268
xor 3,3,4
1269
add 9,9,5
1270
add 9,9,3
1271
1272
rotrdi 3,10,28
1273
rotrdi 4,10,34
1274
and 5,10,11
1275
and 0,10,12
1276
xor 3,3,4
1277
rotrdi 4,4,5
1278
xor 5,5,0
1279
and 0,11,12
1280
xor 3,3,4
1281
add 6,6,9
1282
xor 5,5,0
1283
add 9,9,3
1284
add 9,9,5
1285
1286
rotrdi 3,16,1
1287
rotrdi 4,16,8
1288
rotrdi 5,29,19
1289
rotrdi 0,29,61
1290
xor 3,3,4
1291
srdi 4,16,7
1292
xor 5,5,0
1293
srdi 0,29,6
1294
add 31,31,24
1295
xor 3,3,4
1296
xor 5,5,0
1297
ld 0,120(7)
1298
add 31,31,3
1299
add 31,31,5
1300
rotrdi 3,6,14
1301
rotrdi 4,6,18
1302
and 5,14,6
1303
xor 3,3,4
1304
add 8,8,0
1305
andc 0,15,6
1306
rotrdi 4,4,23
1307
or 5,5,0
1308
add 8,8,31
1309
xor 3,3,4
1310
add 8,8,5
1311
add 8,8,3
1312
1313
rotrdi 3,9,28
1314
rotrdi 4,9,34
1315
and 5,9,10
1316
and 0,9,11
1317
xor 3,3,4
1318
rotrdi 4,4,5
1319
xor 5,5,0
1320
and 0,10,11
1321
xor 3,3,4
1322
add 12,12,8
1323
xor 5,5,0
1324
add 8,8,3
1325
add 8,8,5
1326
1327
bdnz .Lrounds
1328
1329
ld 3,208(1)
1330
ld 31,200(1)
1331
ld 5,192(1)
1332
subi 7,7,512
1333
1334
ld 16,0(3)
1335
ld 17,8(3)
1336
ld 18,16(3)
1337
ld 19,24(3)
1338
ld 20,32(3)
1339
ld 21,40(3)
1340
ld 22,48(3)
1341
addi 31,31,128
1342
ld 23,56(3)
1343
add 8,8,16
1344
add 9,9,17
1345
std 31,200(1)
1346
add 10,10,18
1347
std 8,0(3)
1348
add 11,11,19
1349
std 9,8(3)
1350
add 12,12,20
1351
std 10,16(3)
1352
add 6,6,21
1353
std 11,24(3)
1354
add 14,14,22
1355
std 12,32(3)
1356
add 15,15,23
1357
std 6,40(3)
1358
std 14,48(3)
1359
cmpld 31,5
1360
std 15,56(3)
1361
bne .Lsha2_block_private
1362
blr
1363
.long 0
1364
.byte 0,12,0x14,0,0,0,0,0
1365
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
1366
.size .zfs_sha512_ppc,.-.zfs_sha512_ppc
1367
.size zfs_sha512_ppc,.-.zfs_sha512_ppc
1368
#else
1369
.size zfs_sha512_ppc,.-zfs_sha512_ppc
1370
#endif
1371
.align 6
1372
.LPICmeup:
1373
mflr 0
1374
bcl 20,31,$+4
1375
mflr 7
1376
addi 7,7,56
1377
mtlr 0
1378
blr
1379
.long 0
1380
.byte 0,12,0x14,0,0,0,0,0
1381
.space 28
1382
.long 0x428a2f98,0xd728ae22
1383
.long 0x71374491,0x23ef65cd
1384
.long 0xb5c0fbcf,0xec4d3b2f
1385
.long 0xe9b5dba5,0x8189dbbc
1386
.long 0x3956c25b,0xf348b538
1387
.long 0x59f111f1,0xb605d019
1388
.long 0x923f82a4,0xaf194f9b
1389
.long 0xab1c5ed5,0xda6d8118
1390
.long 0xd807aa98,0xa3030242
1391
.long 0x12835b01,0x45706fbe
1392
.long 0x243185be,0x4ee4b28c
1393
.long 0x550c7dc3,0xd5ffb4e2
1394
.long 0x72be5d74,0xf27b896f
1395
.long 0x80deb1fe,0x3b1696b1
1396
.long 0x9bdc06a7,0x25c71235
1397
.long 0xc19bf174,0xcf692694
1398
.long 0xe49b69c1,0x9ef14ad2
1399
.long 0xefbe4786,0x384f25e3
1400
.long 0x0fc19dc6,0x8b8cd5b5
1401
.long 0x240ca1cc,0x77ac9c65
1402
.long 0x2de92c6f,0x592b0275
1403
.long 0x4a7484aa,0x6ea6e483
1404
.long 0x5cb0a9dc,0xbd41fbd4
1405
.long 0x76f988da,0x831153b5
1406
.long 0x983e5152,0xee66dfab
1407
.long 0xa831c66d,0x2db43210
1408
.long 0xb00327c8,0x98fb213f
1409
.long 0xbf597fc7,0xbeef0ee4
1410
.long 0xc6e00bf3,0x3da88fc2
1411
.long 0xd5a79147,0x930aa725
1412
.long 0x06ca6351,0xe003826f
1413
.long 0x14292967,0x0a0e6e70
1414
.long 0x27b70a85,0x46d22ffc
1415
.long 0x2e1b2138,0x5c26c926
1416
.long 0x4d2c6dfc,0x5ac42aed
1417
.long 0x53380d13,0x9d95b3df
1418
.long 0x650a7354,0x8baf63de
1419
.long 0x766a0abb,0x3c77b2a8
1420
.long 0x81c2c92e,0x47edaee6
1421
.long 0x92722c85,0x1482353b
1422
.long 0xa2bfe8a1,0x4cf10364
1423
.long 0xa81a664b,0xbc423001
1424
.long 0xc24b8b70,0xd0f89791
1425
.long 0xc76c51a3,0x0654be30
1426
.long 0xd192e819,0xd6ef5218
1427
.long 0xd6990624,0x5565a910
1428
.long 0xf40e3585,0x5771202a
1429
.long 0x106aa070,0x32bbd1b8
1430
.long 0x19a4c116,0xb8d2d0c8
1431
.long 0x1e376c08,0x5141ab53
1432
.long 0x2748774c,0xdf8eeb99
1433
.long 0x34b0bcb5,0xe19b48a8
1434
.long 0x391c0cb3,0xc5c95a63
1435
.long 0x4ed8aa4a,0xe3418acb
1436
.long 0x5b9cca4f,0x7763e373
1437
.long 0x682e6ff3,0xd6b2b8a3
1438
.long 0x748f82ee,0x5defb2fc
1439
.long 0x78a5636f,0x43172f60
1440
.long 0x84c87814,0xa1f0ab72
1441
.long 0x8cc70208,0x1a6439ec
1442
.long 0x90befffa,0x23631e28
1443
.long 0xa4506ceb,0xde82bde9
1444
.long 0xbef9a3f7,0xb2c67915
1445
.long 0xc67178f2,0xe372532b
1446
.long 0xca273ece,0xea26619c
1447
.long 0xd186b8c7,0x21c0c207
1448
.long 0xeada7dd6,0xcde0eb1e
1449
.long 0xf57d4f7f,0xee6ed178
1450
.long 0x06f067aa,0x72176fba
1451
.long 0x0a637dc5,0xa2c898a6
1452
.long 0x113f9804,0xbef90dae
1453
.long 0x1b710b35,0x131c471b
1454
.long 0x28db77f5,0x23047d84
1455
.long 0x32caab7b,0x40c72493
1456
.long 0x3c9ebe0a,0x15c9bebc
1457
.long 0x431d67c4,0x9c100d4c
1458
.long 0x4cc5d4be,0xcb3e42b6
1459
.long 0x597f299c,0xfc657e2a
1460
.long 0x5fcb6fab,0x3ad6faec
1461
.long 0x6c44198c,0x4a475817
1462
1463
#elif (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
1464
1465
.abiversion 2
1466
.text
1467
1468
.globl zfs_sha512_ppc
1469
.type zfs_sha512_ppc,@function
1470
.align 6
1471
zfs_sha512_ppc:
1472
.localentry zfs_sha512_ppc,0
1473
1474
stdu 1,-384(1)
1475
mflr 0
1476
sldi 5,5,7
1477
1478
std 3,208(1)
1479
1480
std 14,240(1)
1481
std 15,248(1)
1482
std 16,256(1)
1483
std 17,264(1)
1484
std 18,272(1)
1485
std 19,280(1)
1486
std 20,288(1)
1487
std 21,296(1)
1488
std 22,304(1)
1489
std 23,312(1)
1490
std 24,320(1)
1491
std 25,328(1)
1492
std 26,336(1)
1493
std 27,344(1)
1494
std 28,352(1)
1495
std 29,360(1)
1496
std 30,368(1)
1497
std 31,376(1)
1498
std 0,400(1)
1499
ld 8,0(3)
1500
mr 31,4
1501
ld 9,8(3)
1502
ld 10,16(3)
1503
ld 11,24(3)
1504
ld 12,32(3)
1505
ld 6,40(3)
1506
ld 14,48(3)
1507
ld 15,56(3)
1508
bl .LPICmeup
1509
.LPICedup:
1510
andi. 0,31,3
1511
bne .Lunaligned
1512
.Laligned:
1513
add 5,31,5
1514
std 5,192(1)
1515
std 31,200(1)
1516
bl .Lsha2_block_private
1517
b .Ldone
1518
1519
.align 4
1520
.Lunaligned:
1521
subfic 0,31,4096
1522
andi. 0,0,3968
1523
beq .Lcross_page
1524
cmpld 5,0
1525
ble .Laligned
1526
subfc 5,0,5
1527
add 0,31,0
1528
std 5,184(1)
1529
std 0,192(1)
1530
std 31,200(1)
1531
bl .Lsha2_block_private
1532
1533
ld 5,184(1)
1534
.Lcross_page:
1535
li 0,32
1536
mtctr 0
1537
addi 20,1,48
1538
.Lmemcpy:
1539
lbz 16,0(31)
1540
lbz 17,1(31)
1541
lbz 18,2(31)
1542
lbz 19,3(31)
1543
addi 31,31,4
1544
stb 16,0(20)
1545
stb 17,1(20)
1546
stb 18,2(20)
1547
stb 19,3(20)
1548
addi 20,20,4
1549
bdnz .Lmemcpy
1550
std 31,176(1)
1551
addi 0,1,176
1552
addi 31,1,48
1553
std 5,184(1)
1554
std 0,192(1)
1555
std 31,200(1)
1556
bl .Lsha2_block_private
1557
ld 31,176(1)
1558
ld 5,184(1)
1559
addic. 5,5,-128
1560
bne .Lunaligned
1561
1562
.Ldone:
1563
ld 0,400(1)
1564
ld 14,240(1)
1565
ld 15,248(1)
1566
ld 16,256(1)
1567
ld 17,264(1)
1568
ld 18,272(1)
1569
ld 19,280(1)
1570
ld 20,288(1)
1571
ld 21,296(1)
1572
ld 22,304(1)
1573
ld 23,312(1)
1574
ld 24,320(1)
1575
ld 25,328(1)
1576
ld 26,336(1)
1577
ld 27,344(1)
1578
ld 28,352(1)
1579
ld 29,360(1)
1580
ld 30,368(1)
1581
ld 31,376(1)
1582
mtlr 0
1583
addi 1,1,384
1584
blr
1585
.long 0
1586
.byte 0,12,4,1,0x80,18,3,0
1587
.long 0
1588
.align 4
1589
.Lsha2_block_private:
1590
ld 0,0(7)
1591
lwz 3,0(31)
1592
lwz 4,4(31)
1593
rotlwi 5,3,8
1594
rotlwi 16,4,8
1595
rlwimi 5,3,24,0,7
1596
rlwimi 16,4,24,0,7
1597
rlwimi 5,3,24,16,23
1598
rlwimi 16,4,24,16,23
1599
insrdi 16,5,32,0
1600
rotrdi 3,12,14
1601
rotrdi 4,12,18
1602
and 5,6,12
1603
xor 3,3,4
1604
add 15,15,0
1605
andc 0,14,12
1606
rotrdi 4,4,23
1607
or 5,5,0
1608
add 15,15,16
1609
xor 3,3,4
1610
add 15,15,5
1611
add 15,15,3
1612
1613
rotrdi 3,8,28
1614
rotrdi 4,8,34
1615
and 5,8,9
1616
and 0,8,10
1617
xor 3,3,4
1618
rotrdi 4,4,5
1619
xor 5,5,0
1620
and 0,9,10
1621
xor 3,3,4
1622
add 11,11,15
1623
xor 5,5,0
1624
ld 0,8(7)
1625
add 15,15,3
1626
add 15,15,5
1627
1628
lwz 3,8(31)
1629
lwz 4,12(31)
1630
rotlwi 5,3,8
1631
rotlwi 17,4,8
1632
rlwimi 5,3,24,0,7
1633
rlwimi 17,4,24,0,7
1634
rlwimi 5,3,24,16,23
1635
rlwimi 17,4,24,16,23
1636
insrdi 17,5,32,0
1637
rotrdi 3,11,14
1638
rotrdi 4,11,18
1639
and 5,12,11
1640
xor 3,3,4
1641
add 14,14,0
1642
andc 0,6,11
1643
rotrdi 4,4,23
1644
or 5,5,0
1645
add 14,14,17
1646
xor 3,3,4
1647
add 14,14,5
1648
add 14,14,3
1649
1650
rotrdi 3,15,28
1651
rotrdi 4,15,34
1652
and 5,15,8
1653
and 0,15,9
1654
xor 3,3,4
1655
rotrdi 4,4,5
1656
xor 5,5,0
1657
and 0,8,9
1658
xor 3,3,4
1659
add 10,10,14
1660
xor 5,5,0
1661
ld 0,16(7)
1662
add 14,14,3
1663
add 14,14,5
1664
1665
lwz 3,16(31)
1666
lwz 4,20(31)
1667
rotlwi 5,3,8
1668
rotlwi 18,4,8
1669
rlwimi 5,3,24,0,7
1670
rlwimi 18,4,24,0,7
1671
rlwimi 5,3,24,16,23
1672
rlwimi 18,4,24,16,23
1673
insrdi 18,5,32,0
1674
rotrdi 3,10,14
1675
rotrdi 4,10,18
1676
and 5,11,10
1677
xor 3,3,4
1678
add 6,6,0
1679
andc 0,12,10
1680
rotrdi 4,4,23
1681
or 5,5,0
1682
add 6,6,18
1683
xor 3,3,4
1684
add 6,6,5
1685
add 6,6,3
1686
1687
rotrdi 3,14,28
1688
rotrdi 4,14,34
1689
and 5,14,15
1690
and 0,14,8
1691
xor 3,3,4
1692
rotrdi 4,4,5
1693
xor 5,5,0
1694
and 0,15,8
1695
xor 3,3,4
1696
add 9,9,6
1697
xor 5,5,0
1698
ld 0,24(7)
1699
add 6,6,3
1700
add 6,6,5
1701
1702
lwz 3,24(31)
1703
lwz 4,28(31)
1704
rotlwi 5,3,8
1705
rotlwi 19,4,8
1706
rlwimi 5,3,24,0,7
1707
rlwimi 19,4,24,0,7
1708
rlwimi 5,3,24,16,23
1709
rlwimi 19,4,24,16,23
1710
insrdi 19,5,32,0
1711
rotrdi 3,9,14
1712
rotrdi 4,9,18
1713
and 5,10,9
1714
xor 3,3,4
1715
add 12,12,0
1716
andc 0,11,9
1717
rotrdi 4,4,23
1718
or 5,5,0
1719
add 12,12,19
1720
xor 3,3,4
1721
add 12,12,5
1722
add 12,12,3
1723
1724
rotrdi 3,6,28
1725
rotrdi 4,6,34
1726
and 5,6,14
1727
and 0,6,15
1728
xor 3,3,4
1729
rotrdi 4,4,5
1730
xor 5,5,0
1731
and 0,14,15
1732
xor 3,3,4
1733
add 8,8,12
1734
xor 5,5,0
1735
ld 0,32(7)
1736
add 12,12,3
1737
add 12,12,5
1738
1739
lwz 3,32(31)
1740
lwz 4,36(31)
1741
rotlwi 5,3,8
1742
rotlwi 20,4,8
1743
rlwimi 5,3,24,0,7
1744
rlwimi 20,4,24,0,7
1745
rlwimi 5,3,24,16,23
1746
rlwimi 20,4,24,16,23
1747
insrdi 20,5,32,0
1748
rotrdi 3,8,14
1749
rotrdi 4,8,18
1750
and 5,9,8
1751
xor 3,3,4
1752
add 11,11,0
1753
andc 0,10,8
1754
rotrdi 4,4,23
1755
or 5,5,0
1756
add 11,11,20
1757
xor 3,3,4
1758
add 11,11,5
1759
add 11,11,3
1760
1761
rotrdi 3,12,28
1762
rotrdi 4,12,34
1763
and 5,12,6
1764
and 0,12,14
1765
xor 3,3,4
1766
rotrdi 4,4,5
1767
xor 5,5,0
1768
and 0,6,14
1769
xor 3,3,4
1770
add 15,15,11
1771
xor 5,5,0
1772
ld 0,40(7)
1773
add 11,11,3
1774
add 11,11,5
1775
1776
lwz 3,40(31)
1777
lwz 4,44(31)
1778
rotlwi 5,3,8
1779
rotlwi 21,4,8
1780
rlwimi 5,3,24,0,7
1781
rlwimi 21,4,24,0,7
1782
rlwimi 5,3,24,16,23
1783
rlwimi 21,4,24,16,23
1784
insrdi 21,5,32,0
1785
rotrdi 3,15,14
1786
rotrdi 4,15,18
1787
and 5,8,15
1788
xor 3,3,4
1789
add 10,10,0
1790
andc 0,9,15
1791
rotrdi 4,4,23
1792
or 5,5,0
1793
add 10,10,21
1794
xor 3,3,4
1795
add 10,10,5
1796
add 10,10,3
1797
1798
rotrdi 3,11,28
1799
rotrdi 4,11,34
1800
and 5,11,12
1801
and 0,11,6
1802
xor 3,3,4
1803
rotrdi 4,4,5
1804
xor 5,5,0
1805
and 0,12,6
1806
xor 3,3,4
1807
add 14,14,10
1808
xor 5,5,0
1809
ld 0,48(7)
1810
add 10,10,3
1811
add 10,10,5
1812
1813
lwz 3,48(31)
1814
lwz 4,52(31)
1815
rotlwi 5,3,8
1816
rotlwi 22,4,8
1817
rlwimi 5,3,24,0,7
1818
rlwimi 22,4,24,0,7
1819
rlwimi 5,3,24,16,23
1820
rlwimi 22,4,24,16,23
1821
insrdi 22,5,32,0
1822
rotrdi 3,14,14
1823
rotrdi 4,14,18
1824
and 5,15,14
1825
xor 3,3,4
1826
add 9,9,0
1827
andc 0,8,14
1828
rotrdi 4,4,23
1829
or 5,5,0
1830
add 9,9,22
1831
xor 3,3,4
1832
add 9,9,5
1833
add 9,9,3
1834
1835
rotrdi 3,10,28
1836
rotrdi 4,10,34
1837
and 5,10,11
1838
and 0,10,12
1839
xor 3,3,4
1840
rotrdi 4,4,5
1841
xor 5,5,0
1842
and 0,11,12
1843
xor 3,3,4
1844
add 6,6,9
1845
xor 5,5,0
1846
ld 0,56(7)
1847
add 9,9,3
1848
add 9,9,5
1849
1850
lwz 3,56(31)
1851
lwz 4,60(31)
1852
rotlwi 5,3,8
1853
rotlwi 23,4,8
1854
rlwimi 5,3,24,0,7
1855
rlwimi 23,4,24,0,7
1856
rlwimi 5,3,24,16,23
1857
rlwimi 23,4,24,16,23
1858
insrdi 23,5,32,0
1859
rotrdi 3,6,14
1860
rotrdi 4,6,18
1861
and 5,14,6
1862
xor 3,3,4
1863
add 8,8,0
1864
andc 0,15,6
1865
rotrdi 4,4,23
1866
or 5,5,0
1867
add 8,8,23
1868
xor 3,3,4
1869
add 8,8,5
1870
add 8,8,3
1871
1872
rotrdi 3,9,28
1873
rotrdi 4,9,34
1874
and 5,9,10
1875
and 0,9,11
1876
xor 3,3,4
1877
rotrdi 4,4,5
1878
xor 5,5,0
1879
and 0,10,11
1880
xor 3,3,4
1881
add 12,12,8
1882
xor 5,5,0
1883
ld 0,64(7)
1884
add 8,8,3
1885
add 8,8,5
1886
1887
lwz 3,64(31)
1888
lwz 4,68(31)
1889
rotlwi 5,3,8
1890
rotlwi 24,4,8
1891
rlwimi 5,3,24,0,7
1892
rlwimi 24,4,24,0,7
1893
rlwimi 5,3,24,16,23
1894
rlwimi 24,4,24,16,23
1895
insrdi 24,5,32,0
1896
rotrdi 3,12,14
1897
rotrdi 4,12,18
1898
and 5,6,12
1899
xor 3,3,4
1900
add 15,15,0
1901
andc 0,14,12
1902
rotrdi 4,4,23
1903
or 5,5,0
1904
add 15,15,24
1905
xor 3,3,4
1906
add 15,15,5
1907
add 15,15,3
1908
1909
rotrdi 3,8,28
1910
rotrdi 4,8,34
1911
and 5,8,9
1912
and 0,8,10
1913
xor 3,3,4
1914
rotrdi 4,4,5
1915
xor 5,5,0
1916
and 0,9,10
1917
xor 3,3,4
1918
add 11,11,15
1919
xor 5,5,0
1920
ld 0,72(7)
1921
add 15,15,3
1922
add 15,15,5
1923
1924
lwz 3,72(31)
1925
lwz 4,76(31)
1926
rotlwi 5,3,8
1927
rotlwi 25,4,8
1928
rlwimi 5,3,24,0,7
1929
rlwimi 25,4,24,0,7
1930
rlwimi 5,3,24,16,23
1931
rlwimi 25,4,24,16,23
1932
insrdi 25,5,32,0
1933
rotrdi 3,11,14
1934
rotrdi 4,11,18
1935
and 5,12,11
1936
xor 3,3,4
1937
add 14,14,0
1938
andc 0,6,11
1939
rotrdi 4,4,23
1940
or 5,5,0
1941
add 14,14,25
1942
xor 3,3,4
1943
add 14,14,5
1944
add 14,14,3
1945
1946
rotrdi 3,15,28
1947
rotrdi 4,15,34
1948
and 5,15,8
1949
and 0,15,9
1950
xor 3,3,4
1951
rotrdi 4,4,5
1952
xor 5,5,0
1953
and 0,8,9
1954
xor 3,3,4
1955
add 10,10,14
1956
xor 5,5,0
1957
ld 0,80(7)
1958
add 14,14,3
1959
add 14,14,5
1960
1961
lwz 3,80(31)
1962
lwz 4,84(31)
1963
rotlwi 5,3,8
1964
rotlwi 26,4,8
1965
rlwimi 5,3,24,0,7
1966
rlwimi 26,4,24,0,7
1967
rlwimi 5,3,24,16,23
1968
rlwimi 26,4,24,16,23
1969
insrdi 26,5,32,0
1970
rotrdi 3,10,14
1971
rotrdi 4,10,18
1972
and 5,11,10
1973
xor 3,3,4
1974
add 6,6,0
1975
andc 0,12,10
1976
rotrdi 4,4,23
1977
or 5,5,0
1978
add 6,6,26
1979
xor 3,3,4
1980
add 6,6,5
1981
add 6,6,3
1982
1983
rotrdi 3,14,28
1984
rotrdi 4,14,34
1985
and 5,14,15
1986
and 0,14,8
1987
xor 3,3,4
1988
rotrdi 4,4,5
1989
xor 5,5,0
1990
and 0,15,8
1991
xor 3,3,4
1992
add 9,9,6
1993
xor 5,5,0
1994
ld 0,88(7)
1995
add 6,6,3
1996
add 6,6,5
1997
1998
lwz 3,88(31)
1999
lwz 4,92(31)
2000
rotlwi 5,3,8
2001
rotlwi 27,4,8
2002
rlwimi 5,3,24,0,7
2003
rlwimi 27,4,24,0,7
2004
rlwimi 5,3,24,16,23
2005
rlwimi 27,4,24,16,23
2006
insrdi 27,5,32,0
2007
rotrdi 3,9,14
2008
rotrdi 4,9,18
2009
and 5,10,9
2010
xor 3,3,4
2011
add 12,12,0
2012
andc 0,11,9
2013
rotrdi 4,4,23
2014
or 5,5,0
2015
add 12,12,27
2016
xor 3,3,4
2017
add 12,12,5
2018
add 12,12,3
2019
2020
rotrdi 3,6,28
2021
rotrdi 4,6,34
2022
and 5,6,14
2023
and 0,6,15
2024
xor 3,3,4
2025
rotrdi 4,4,5
2026
xor 5,5,0
2027
and 0,14,15
2028
xor 3,3,4
2029
add 8,8,12
2030
xor 5,5,0
2031
ld 0,96(7)
2032
add 12,12,3
2033
add 12,12,5
2034
2035
lwz 3,96(31)
2036
lwz 4,100(31)
2037
rotlwi 5,3,8
2038
rotlwi 28,4,8
2039
rlwimi 5,3,24,0,7
2040
rlwimi 28,4,24,0,7
2041
rlwimi 5,3,24,16,23
2042
rlwimi 28,4,24,16,23
2043
insrdi 28,5,32,0
2044
rotrdi 3,8,14
2045
rotrdi 4,8,18
2046
and 5,9,8
2047
xor 3,3,4
2048
add 11,11,0
2049
andc 0,10,8
2050
rotrdi 4,4,23
2051
or 5,5,0
2052
add 11,11,28
2053
xor 3,3,4
2054
add 11,11,5
2055
add 11,11,3
2056
2057
rotrdi 3,12,28
2058
rotrdi 4,12,34
2059
and 5,12,6
2060
and 0,12,14
2061
xor 3,3,4
2062
rotrdi 4,4,5
2063
xor 5,5,0
2064
and 0,6,14
2065
xor 3,3,4
2066
add 15,15,11
2067
xor 5,5,0
2068
ld 0,104(7)
2069
add 11,11,3
2070
add 11,11,5
2071
2072
lwz 3,104(31)
2073
lwz 4,108(31)
2074
rotlwi 5,3,8
2075
rotlwi 29,4,8
2076
rlwimi 5,3,24,0,7
2077
rlwimi 29,4,24,0,7
2078
rlwimi 5,3,24,16,23
2079
rlwimi 29,4,24,16,23
2080
insrdi 29,5,32,0
2081
rotrdi 3,15,14
2082
rotrdi 4,15,18
2083
and 5,8,15
2084
xor 3,3,4
2085
add 10,10,0
2086
andc 0,9,15
2087
rotrdi 4,4,23
2088
or 5,5,0
2089
add 10,10,29
2090
xor 3,3,4
2091
add 10,10,5
2092
add 10,10,3
2093
2094
rotrdi 3,11,28
2095
rotrdi 4,11,34
2096
and 5,11,12
2097
and 0,11,6
2098
xor 3,3,4
2099
rotrdi 4,4,5
2100
xor 5,5,0
2101
and 0,12,6
2102
xor 3,3,4
2103
add 14,14,10
2104
xor 5,5,0
2105
ld 0,112(7)
2106
add 10,10,3
2107
add 10,10,5
2108
2109
lwz 3,112(31)
2110
lwz 4,116(31)
2111
rotlwi 5,3,8
2112
rotlwi 30,4,8
2113
rlwimi 5,3,24,0,7
2114
rlwimi 30,4,24,0,7
2115
rlwimi 5,3,24,16,23
2116
rlwimi 30,4,24,16,23
2117
insrdi 30,5,32,0
2118
rotrdi 3,14,14
2119
rotrdi 4,14,18
2120
and 5,15,14
2121
xor 3,3,4
2122
add 9,9,0
2123
andc 0,8,14
2124
rotrdi 4,4,23
2125
or 5,5,0
2126
add 9,9,30
2127
xor 3,3,4
2128
add 9,9,5
2129
add 9,9,3
2130
2131
rotrdi 3,10,28
2132
rotrdi 4,10,34
2133
and 5,10,11
2134
and 0,10,12
2135
xor 3,3,4
2136
rotrdi 4,4,5
2137
xor 5,5,0
2138
and 0,11,12
2139
xor 3,3,4
2140
add 6,6,9
2141
xor 5,5,0
2142
ld 0,120(7)
2143
add 9,9,3
2144
add 9,9,5
2145
2146
lwz 3,120(31)
2147
lwz 4,124(31)
2148
rotlwi 5,3,8
2149
rotlwi 31,4,8
2150
rlwimi 5,3,24,0,7
2151
rlwimi 31,4,24,0,7
2152
rlwimi 5,3,24,16,23
2153
rlwimi 31,4,24,16,23
2154
insrdi 31,5,32,0
2155
rotrdi 3,6,14
2156
rotrdi 4,6,18
2157
and 5,14,6
2158
xor 3,3,4
2159
add 8,8,0
2160
andc 0,15,6
2161
rotrdi 4,4,23
2162
or 5,5,0
2163
add 8,8,31
2164
xor 3,3,4
2165
add 8,8,5
2166
add 8,8,3
2167
2168
rotrdi 3,9,28
2169
rotrdi 4,9,34
2170
and 5,9,10
2171
and 0,9,11
2172
xor 3,3,4
2173
rotrdi 4,4,5
2174
xor 5,5,0
2175
and 0,10,11
2176
xor 3,3,4
2177
add 12,12,8
2178
xor 5,5,0
2179
add 8,8,3
2180
add 8,8,5
2181
2182
li 5,4
2183
mtctr 5
2184
.align 4
2185
.Lrounds:
2186
addi 7,7,128
2187
rotrdi 3,17,1
2188
rotrdi 4,17,8
2189
rotrdi 5,30,19
2190
rotrdi 0,30,61
2191
xor 3,3,4
2192
srdi 4,17,7
2193
xor 5,5,0
2194
srdi 0,30,6
2195
add 16,16,25
2196
xor 3,3,4
2197
xor 5,5,0
2198
ld 0,0(7)
2199
add 16,16,3
2200
add 16,16,5
2201
rotrdi 3,12,14
2202
rotrdi 4,12,18
2203
and 5,6,12
2204
xor 3,3,4
2205
add 15,15,0
2206
andc 0,14,12
2207
rotrdi 4,4,23
2208
or 5,5,0
2209
add 15,15,16
2210
xor 3,3,4
2211
add 15,15,5
2212
add 15,15,3
2213
2214
rotrdi 3,8,28
2215
rotrdi 4,8,34
2216
and 5,8,9
2217
and 0,8,10
2218
xor 3,3,4
2219
rotrdi 4,4,5
2220
xor 5,5,0
2221
and 0,9,10
2222
xor 3,3,4
2223
add 11,11,15
2224
xor 5,5,0
2225
add 15,15,3
2226
add 15,15,5
2227
2228
rotrdi 3,18,1
2229
rotrdi 4,18,8
2230
rotrdi 5,31,19
2231
rotrdi 0,31,61
2232
xor 3,3,4
2233
srdi 4,18,7
2234
xor 5,5,0
2235
srdi 0,31,6
2236
add 17,17,26
2237
xor 3,3,4
2238
xor 5,5,0
2239
ld 0,8(7)
2240
add 17,17,3
2241
add 17,17,5
2242
rotrdi 3,11,14
2243
rotrdi 4,11,18
2244
and 5,12,11
2245
xor 3,3,4
2246
add 14,14,0
2247
andc 0,6,11
2248
rotrdi 4,4,23
2249
or 5,5,0
2250
add 14,14,17
2251
xor 3,3,4
2252
add 14,14,5
2253
add 14,14,3
2254
2255
rotrdi 3,15,28
2256
rotrdi 4,15,34
2257
and 5,15,8
2258
and 0,15,9
2259
xor 3,3,4
2260
rotrdi 4,4,5
2261
xor 5,5,0
2262
and 0,8,9
2263
xor 3,3,4
2264
add 10,10,14
2265
xor 5,5,0
2266
add 14,14,3
2267
add 14,14,5
2268
2269
rotrdi 3,19,1
2270
rotrdi 4,19,8
2271
rotrdi 5,16,19
2272
rotrdi 0,16,61
2273
xor 3,3,4
2274
srdi 4,19,7
2275
xor 5,5,0
2276
srdi 0,16,6
2277
add 18,18,27
2278
xor 3,3,4
2279
xor 5,5,0
2280
ld 0,16(7)
2281
add 18,18,3
2282
add 18,18,5
2283
rotrdi 3,10,14
2284
rotrdi 4,10,18
2285
and 5,11,10
2286
xor 3,3,4
2287
add 6,6,0
2288
andc 0,12,10
2289
rotrdi 4,4,23
2290
or 5,5,0
2291
add 6,6,18
2292
xor 3,3,4
2293
add 6,6,5
2294
add 6,6,3
2295
2296
rotrdi 3,14,28
2297
rotrdi 4,14,34
2298
and 5,14,15
2299
and 0,14,8
2300
xor 3,3,4
2301
rotrdi 4,4,5
2302
xor 5,5,0
2303
and 0,15,8
2304
xor 3,3,4
2305
add 9,9,6
2306
xor 5,5,0
2307
add 6,6,3
2308
add 6,6,5
2309
2310
rotrdi 3,20,1
2311
rotrdi 4,20,8
2312
rotrdi 5,17,19
2313
rotrdi 0,17,61
2314
xor 3,3,4
2315
srdi 4,20,7
2316
xor 5,5,0
2317
srdi 0,17,6
2318
add 19,19,28
2319
xor 3,3,4
2320
xor 5,5,0
2321
ld 0,24(7)
2322
add 19,19,3
2323
add 19,19,5
2324
rotrdi 3,9,14
2325
rotrdi 4,9,18
2326
and 5,10,9
2327
xor 3,3,4
2328
add 12,12,0
2329
andc 0,11,9
2330
rotrdi 4,4,23
2331
or 5,5,0
2332
add 12,12,19
2333
xor 3,3,4
2334
add 12,12,5
2335
add 12,12,3
2336
2337
rotrdi 3,6,28
2338
rotrdi 4,6,34
2339
and 5,6,14
2340
and 0,6,15
2341
xor 3,3,4
2342
rotrdi 4,4,5
2343
xor 5,5,0
2344
and 0,14,15
2345
xor 3,3,4
2346
add 8,8,12
2347
xor 5,5,0
2348
add 12,12,3
2349
add 12,12,5
2350
2351
rotrdi 3,21,1
2352
rotrdi 4,21,8
2353
rotrdi 5,18,19
2354
rotrdi 0,18,61
2355
xor 3,3,4
2356
srdi 4,21,7
2357
xor 5,5,0
2358
srdi 0,18,6
2359
add 20,20,29
2360
xor 3,3,4
2361
xor 5,5,0
2362
ld 0,32(7)
2363
add 20,20,3
2364
add 20,20,5
2365
rotrdi 3,8,14
2366
rotrdi 4,8,18
2367
and 5,9,8
2368
xor 3,3,4
2369
add 11,11,0
2370
andc 0,10,8
2371
rotrdi 4,4,23
2372
or 5,5,0
2373
add 11,11,20
2374
xor 3,3,4
2375
add 11,11,5
2376
add 11,11,3
2377
2378
rotrdi 3,12,28
2379
rotrdi 4,12,34
2380
and 5,12,6
2381
and 0,12,14
2382
xor 3,3,4
2383
rotrdi 4,4,5
2384
xor 5,5,0
2385
and 0,6,14
2386
xor 3,3,4
2387
add 15,15,11
2388
xor 5,5,0
2389
add 11,11,3
2390
add 11,11,5
2391
2392
rotrdi 3,22,1
2393
rotrdi 4,22,8
2394
rotrdi 5,19,19
2395
rotrdi 0,19,61
2396
xor 3,3,4
2397
srdi 4,22,7
2398
xor 5,5,0
2399
srdi 0,19,6
2400
add 21,21,30
2401
xor 3,3,4
2402
xor 5,5,0
2403
ld 0,40(7)
2404
add 21,21,3
2405
add 21,21,5
2406
rotrdi 3,15,14
2407
rotrdi 4,15,18
2408
and 5,8,15
2409
xor 3,3,4
2410
add 10,10,0
2411
andc 0,9,15
2412
rotrdi 4,4,23
2413
or 5,5,0
2414
add 10,10,21
2415
xor 3,3,4
2416
add 10,10,5
2417
add 10,10,3
2418
2419
rotrdi 3,11,28
2420
rotrdi 4,11,34
2421
and 5,11,12
2422
and 0,11,6
2423
xor 3,3,4
2424
rotrdi 4,4,5
2425
xor 5,5,0
2426
and 0,12,6
2427
xor 3,3,4
2428
add 14,14,10
2429
xor 5,5,0
2430
add 10,10,3
2431
add 10,10,5
2432
2433
rotrdi 3,23,1
2434
rotrdi 4,23,8
2435
rotrdi 5,20,19
2436
rotrdi 0,20,61
2437
xor 3,3,4
2438
srdi 4,23,7
2439
xor 5,5,0
2440
srdi 0,20,6
2441
add 22,22,31
2442
xor 3,3,4
2443
xor 5,5,0
2444
ld 0,48(7)
2445
add 22,22,3
2446
add 22,22,5
2447
rotrdi 3,14,14
2448
rotrdi 4,14,18
2449
and 5,15,14
2450
xor 3,3,4
2451
add 9,9,0
2452
andc 0,8,14
2453
rotrdi 4,4,23
2454
or 5,5,0
2455
add 9,9,22
2456
xor 3,3,4
2457
add 9,9,5
2458
add 9,9,3
2459
2460
rotrdi 3,10,28
2461
rotrdi 4,10,34
2462
and 5,10,11
2463
and 0,10,12
2464
xor 3,3,4
2465
rotrdi 4,4,5
2466
xor 5,5,0
2467
and 0,11,12
2468
xor 3,3,4
2469
add 6,6,9
2470
xor 5,5,0
2471
add 9,9,3
2472
add 9,9,5
2473
2474
rotrdi 3,24,1
2475
rotrdi 4,24,8
2476
rotrdi 5,21,19
2477
rotrdi 0,21,61
2478
xor 3,3,4
2479
srdi 4,24,7
2480
xor 5,5,0
2481
srdi 0,21,6
2482
add 23,23,16
2483
xor 3,3,4
2484
xor 5,5,0
2485
ld 0,56(7)
2486
add 23,23,3
2487
add 23,23,5
2488
rotrdi 3,6,14
2489
rotrdi 4,6,18
2490
and 5,14,6
2491
xor 3,3,4
2492
add 8,8,0
2493
andc 0,15,6
2494
rotrdi 4,4,23
2495
or 5,5,0
2496
add 8,8,23
2497
xor 3,3,4
2498
add 8,8,5
2499
add 8,8,3
2500
2501
rotrdi 3,9,28
2502
rotrdi 4,9,34
2503
and 5,9,10
2504
and 0,9,11
2505
xor 3,3,4
2506
rotrdi 4,4,5
2507
xor 5,5,0
2508
and 0,10,11
2509
xor 3,3,4
2510
add 12,12,8
2511
xor 5,5,0
2512
add 8,8,3
2513
add 8,8,5
2514
2515
rotrdi 3,25,1
2516
rotrdi 4,25,8
2517
rotrdi 5,22,19
2518
rotrdi 0,22,61
2519
xor 3,3,4
2520
srdi 4,25,7
2521
xor 5,5,0
2522
srdi 0,22,6
2523
add 24,24,17
2524
xor 3,3,4
2525
xor 5,5,0
2526
ld 0,64(7)
2527
add 24,24,3
2528
add 24,24,5
2529
rotrdi 3,12,14
2530
rotrdi 4,12,18
2531
and 5,6,12
2532
xor 3,3,4
2533
add 15,15,0
2534
andc 0,14,12
2535
rotrdi 4,4,23
2536
or 5,5,0
2537
add 15,15,24
2538
xor 3,3,4
2539
add 15,15,5
2540
add 15,15,3
2541
2542
rotrdi 3,8,28
2543
rotrdi 4,8,34
2544
and 5,8,9
2545
and 0,8,10
2546
xor 3,3,4
2547
rotrdi 4,4,5
2548
xor 5,5,0
2549
and 0,9,10
2550
xor 3,3,4
2551
add 11,11,15
2552
xor 5,5,0
2553
add 15,15,3
2554
add 15,15,5
2555
2556
rotrdi 3,26,1
2557
rotrdi 4,26,8
2558
rotrdi 5,23,19
2559
rotrdi 0,23,61
2560
xor 3,3,4
2561
srdi 4,26,7
2562
xor 5,5,0
2563
srdi 0,23,6
2564
add 25,25,18
2565
xor 3,3,4
2566
xor 5,5,0
2567
ld 0,72(7)
2568
add 25,25,3
2569
add 25,25,5
2570
rotrdi 3,11,14
2571
rotrdi 4,11,18
2572
and 5,12,11
2573
xor 3,3,4
2574
add 14,14,0
2575
andc 0,6,11
2576
rotrdi 4,4,23
2577
or 5,5,0
2578
add 14,14,25
2579
xor 3,3,4
2580
add 14,14,5
2581
add 14,14,3
2582
2583
rotrdi 3,15,28
2584
rotrdi 4,15,34
2585
and 5,15,8
2586
and 0,15,9
2587
xor 3,3,4
2588
rotrdi 4,4,5
2589
xor 5,5,0
2590
and 0,8,9
2591
xor 3,3,4
2592
add 10,10,14
2593
xor 5,5,0
2594
add 14,14,3
2595
add 14,14,5
2596
2597
rotrdi 3,27,1
2598
rotrdi 4,27,8
2599
rotrdi 5,24,19
2600
rotrdi 0,24,61
2601
xor 3,3,4
2602
srdi 4,27,7
2603
xor 5,5,0
2604
srdi 0,24,6
2605
add 26,26,19
2606
xor 3,3,4
2607
xor 5,5,0
2608
ld 0,80(7)
2609
add 26,26,3
2610
add 26,26,5
2611
rotrdi 3,10,14
2612
rotrdi 4,10,18
2613
and 5,11,10
2614
xor 3,3,4
2615
add 6,6,0
2616
andc 0,12,10
2617
rotrdi 4,4,23
2618
or 5,5,0
2619
add 6,6,26
2620
xor 3,3,4
2621
add 6,6,5
2622
add 6,6,3
2623
2624
rotrdi 3,14,28
2625
rotrdi 4,14,34
2626
and 5,14,15
2627
and 0,14,8
2628
xor 3,3,4
2629
rotrdi 4,4,5
2630
xor 5,5,0
2631
and 0,15,8
2632
xor 3,3,4
2633
add 9,9,6
2634
xor 5,5,0
2635
add 6,6,3
2636
add 6,6,5
2637
2638
rotrdi 3,28,1
2639
rotrdi 4,28,8
2640
rotrdi 5,25,19
2641
rotrdi 0,25,61
2642
xor 3,3,4
2643
srdi 4,28,7
2644
xor 5,5,0
2645
srdi 0,25,6
2646
add 27,27,20
2647
xor 3,3,4
2648
xor 5,5,0
2649
ld 0,88(7)
2650
add 27,27,3
2651
add 27,27,5
2652
rotrdi 3,9,14
2653
rotrdi 4,9,18
2654
and 5,10,9
2655
xor 3,3,4
2656
add 12,12,0
2657
andc 0,11,9
2658
rotrdi 4,4,23
2659
or 5,5,0
2660
add 12,12,27
2661
xor 3,3,4
2662
add 12,12,5
2663
add 12,12,3
2664
2665
rotrdi 3,6,28
2666
rotrdi 4,6,34
2667
and 5,6,14
2668
and 0,6,15
2669
xor 3,3,4
2670
rotrdi 4,4,5
2671
xor 5,5,0
2672
and 0,14,15
2673
xor 3,3,4
2674
add 8,8,12
2675
xor 5,5,0
2676
add 12,12,3
2677
add 12,12,5
2678
2679
rotrdi 3,29,1
2680
rotrdi 4,29,8
2681
rotrdi 5,26,19
2682
rotrdi 0,26,61
2683
xor 3,3,4
2684
srdi 4,29,7
2685
xor 5,5,0
2686
srdi 0,26,6
2687
add 28,28,21
2688
xor 3,3,4
2689
xor 5,5,0
2690
ld 0,96(7)
2691
add 28,28,3
2692
add 28,28,5
2693
rotrdi 3,8,14
2694
rotrdi 4,8,18
2695
and 5,9,8
2696
xor 3,3,4
2697
add 11,11,0
2698
andc 0,10,8
2699
rotrdi 4,4,23
2700
or 5,5,0
2701
add 11,11,28
2702
xor 3,3,4
2703
add 11,11,5
2704
add 11,11,3
2705
2706
rotrdi 3,12,28
2707
rotrdi 4,12,34
2708
and 5,12,6
2709
and 0,12,14
2710
xor 3,3,4
2711
rotrdi 4,4,5
2712
xor 5,5,0
2713
and 0,6,14
2714
xor 3,3,4
2715
add 15,15,11
2716
xor 5,5,0
2717
add 11,11,3
2718
add 11,11,5
2719
2720
rotrdi 3,30,1
2721
rotrdi 4,30,8
2722
rotrdi 5,27,19
2723
rotrdi 0,27,61
2724
xor 3,3,4
2725
srdi 4,30,7
2726
xor 5,5,0
2727
srdi 0,27,6
2728
add 29,29,22
2729
xor 3,3,4
2730
xor 5,5,0
2731
ld 0,104(7)
2732
add 29,29,3
2733
add 29,29,5
2734
rotrdi 3,15,14
2735
rotrdi 4,15,18
2736
and 5,8,15
2737
xor 3,3,4
2738
add 10,10,0
2739
andc 0,9,15
2740
rotrdi 4,4,23
2741
or 5,5,0
2742
add 10,10,29
2743
xor 3,3,4
2744
add 10,10,5
2745
add 10,10,3
2746
2747
rotrdi 3,11,28
2748
rotrdi 4,11,34
2749
and 5,11,12
2750
and 0,11,6
2751
xor 3,3,4
2752
rotrdi 4,4,5
2753
xor 5,5,0
2754
and 0,12,6
2755
xor 3,3,4
2756
add 14,14,10
2757
xor 5,5,0
2758
add 10,10,3
2759
add 10,10,5
2760
2761
rotrdi 3,31,1
2762
rotrdi 4,31,8
2763
rotrdi 5,28,19
2764
rotrdi 0,28,61
2765
xor 3,3,4
2766
srdi 4,31,7
2767
xor 5,5,0
2768
srdi 0,28,6
2769
add 30,30,23
2770
xor 3,3,4
2771
xor 5,5,0
2772
ld 0,112(7)
2773
add 30,30,3
2774
add 30,30,5
2775
rotrdi 3,14,14
2776
rotrdi 4,14,18
2777
and 5,15,14
2778
xor 3,3,4
2779
add 9,9,0
2780
andc 0,8,14
2781
rotrdi 4,4,23
2782
or 5,5,0
2783
add 9,9,30
2784
xor 3,3,4
2785
add 9,9,5
2786
add 9,9,3
2787
2788
rotrdi 3,10,28
2789
rotrdi 4,10,34
2790
and 5,10,11
2791
and 0,10,12
2792
xor 3,3,4
2793
rotrdi 4,4,5
2794
xor 5,5,0
2795
and 0,11,12
2796
xor 3,3,4
2797
add 6,6,9
2798
xor 5,5,0
2799
add 9,9,3
2800
add 9,9,5
2801
2802
rotrdi 3,16,1
2803
rotrdi 4,16,8
2804
rotrdi 5,29,19
2805
rotrdi 0,29,61
2806
xor 3,3,4
2807
srdi 4,16,7
2808
xor 5,5,0
2809
srdi 0,29,6
2810
add 31,31,24
2811
xor 3,3,4
2812
xor 5,5,0
2813
ld 0,120(7)
2814
add 31,31,3
2815
add 31,31,5
2816
rotrdi 3,6,14
2817
rotrdi 4,6,18
2818
and 5,14,6
2819
xor 3,3,4
2820
add 8,8,0
2821
andc 0,15,6
2822
rotrdi 4,4,23
2823
or 5,5,0
2824
add 8,8,31
2825
xor 3,3,4
2826
add 8,8,5
2827
add 8,8,3
2828
2829
rotrdi 3,9,28
2830
rotrdi 4,9,34
2831
and 5,9,10
2832
and 0,9,11
2833
xor 3,3,4
2834
rotrdi 4,4,5
2835
xor 5,5,0
2836
and 0,10,11
2837
xor 3,3,4
2838
add 12,12,8
2839
xor 5,5,0
2840
add 8,8,3
2841
add 8,8,5
2842
2843
bdnz .Lrounds
2844
2845
ld 3,208(1)
2846
ld 31,200(1)
2847
ld 5,192(1)
2848
subi 7,7,512
2849
2850
ld 16,0(3)
2851
ld 17,8(3)
2852
ld 18,16(3)
2853
ld 19,24(3)
2854
ld 20,32(3)
2855
ld 21,40(3)
2856
ld 22,48(3)
2857
addi 31,31,128
2858
ld 23,56(3)
2859
add 8,8,16
2860
add 9,9,17
2861
std 31,200(1)
2862
add 10,10,18
2863
std 8,0(3)
2864
add 11,11,19
2865
std 9,8(3)
2866
add 12,12,20
2867
std 10,16(3)
2868
add 6,6,21
2869
std 11,24(3)
2870
add 14,14,22
2871
std 12,32(3)
2872
add 15,15,23
2873
std 6,40(3)
2874
std 14,48(3)
2875
cmpld 31,5
2876
std 15,56(3)
2877
bne .Lsha2_block_private
2878
blr
2879
.long 0
2880
.byte 0,12,0x14,0,0,0,0,0
2881
.size zfs_sha512_ppc,.-zfs_sha512_ppc
2882
.align 6
2883
.LPICmeup:
2884
mflr 0
2885
bcl 20,31,$+4
2886
mflr 7
2887
addi 7,7,56
2888
mtlr 0
2889
blr
2890
.long 0
2891
.byte 0,12,0x14,0,0,0,0,0
2892
.space 28
2893
.long 0xd728ae22,0x428a2f98
2894
.long 0x23ef65cd,0x71374491
2895
.long 0xec4d3b2f,0xb5c0fbcf
2896
.long 0x8189dbbc,0xe9b5dba5
2897
.long 0xf348b538,0x3956c25b
2898
.long 0xb605d019,0x59f111f1
2899
.long 0xaf194f9b,0x923f82a4
2900
.long 0xda6d8118,0xab1c5ed5
2901
.long 0xa3030242,0xd807aa98
2902
.long 0x45706fbe,0x12835b01
2903
.long 0x4ee4b28c,0x243185be
2904
.long 0xd5ffb4e2,0x550c7dc3
2905
.long 0xf27b896f,0x72be5d74
2906
.long 0x3b1696b1,0x80deb1fe
2907
.long 0x25c71235,0x9bdc06a7
2908
.long 0xcf692694,0xc19bf174
2909
.long 0x9ef14ad2,0xe49b69c1
2910
.long 0x384f25e3,0xefbe4786
2911
.long 0x8b8cd5b5,0x0fc19dc6
2912
.long 0x77ac9c65,0x240ca1cc
2913
.long 0x592b0275,0x2de92c6f
2914
.long 0x6ea6e483,0x4a7484aa
2915
.long 0xbd41fbd4,0x5cb0a9dc
2916
.long 0x831153b5,0x76f988da
2917
.long 0xee66dfab,0x983e5152
2918
.long 0x2db43210,0xa831c66d
2919
.long 0x98fb213f,0xb00327c8
2920
.long 0xbeef0ee4,0xbf597fc7
2921
.long 0x3da88fc2,0xc6e00bf3
2922
.long 0x930aa725,0xd5a79147
2923
.long 0xe003826f,0x06ca6351
2924
.long 0x0a0e6e70,0x14292967
2925
.long 0x46d22ffc,0x27b70a85
2926
.long 0x5c26c926,0x2e1b2138
2927
.long 0x5ac42aed,0x4d2c6dfc
2928
.long 0x9d95b3df,0x53380d13
2929
.long 0x8baf63de,0x650a7354
2930
.long 0x3c77b2a8,0x766a0abb
2931
.long 0x47edaee6,0x81c2c92e
2932
.long 0x1482353b,0x92722c85
2933
.long 0x4cf10364,0xa2bfe8a1
2934
.long 0xbc423001,0xa81a664b
2935
.long 0xd0f89791,0xc24b8b70
2936
.long 0x0654be30,0xc76c51a3
2937
.long 0xd6ef5218,0xd192e819
2938
.long 0x5565a910,0xd6990624
2939
.long 0x5771202a,0xf40e3585
2940
.long 0x32bbd1b8,0x106aa070
2941
.long 0xb8d2d0c8,0x19a4c116
2942
.long 0x5141ab53,0x1e376c08
2943
.long 0xdf8eeb99,0x2748774c
2944
.long 0xe19b48a8,0x34b0bcb5
2945
.long 0xc5c95a63,0x391c0cb3
2946
.long 0xe3418acb,0x4ed8aa4a
2947
.long 0x7763e373,0x5b9cca4f
2948
.long 0xd6b2b8a3,0x682e6ff3
2949
.long 0x5defb2fc,0x748f82ee
2950
.long 0x43172f60,0x78a5636f
2951
.long 0xa1f0ab72,0x84c87814
2952
.long 0x1a6439ec,0x8cc70208
2953
.long 0x23631e28,0x90befffa
2954
.long 0xde82bde9,0xa4506ceb
2955
.long 0xb2c67915,0xbef9a3f7
2956
.long 0xe372532b,0xc67178f2
2957
.long 0xea26619c,0xca273ece
2958
.long 0x21c0c207,0xd186b8c7
2959
.long 0xcde0eb1e,0xeada7dd6
2960
.long 0xee6ed178,0xf57d4f7f
2961
.long 0x72176fba,0x06f067aa
2962
.long 0xa2c898a6,0x0a637dc5
2963
.long 0xbef90dae,0x113f9804
2964
.long 0x131c471b,0x1b710b35
2965
.long 0x23047d84,0x28db77f5
2966
.long 0x40c72493,0x32caab7b
2967
.long 0x15c9bebc,0x3c9ebe0a
2968
.long 0x9c100d4c,0x431d67c4
2969
.long 0xcb3e42b6,0x4cc5d4be
2970
.long 0xfc657e2a,0x597f299c
2971
.long 0x3ad6faec,0x5fcb6fab
2972
.long 0x4a475817,0x6c44198c
2973
2974
#endif
2975
2976