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