Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/powerpc64/keccak1600-ppc64.S
39482 views
1
/* Do not modify. This file is auto-generated from keccak1600-ppc64.pl. */
2
.abiversion 2
3
.text
4
5
.type KeccakF1600_int,@function
6
.align 5
7
KeccakF1600_int:
8
.localentry KeccakF1600_int,0
9
10
li 0,24
11
mtctr 0
12
b .Loop
13
.align 4
14
.Loop:
15
xor 0,7,12
16
std 11,96(1)
17
xor 3,8,6
18
std 16,104(1)
19
xor 4,9,14
20
std 21,112(1)
21
xor 5,10,15
22
std 26,120(1)
23
xor 11,11,16
24
xor 0,0,17
25
xor 3,3,18
26
xor 4,4,19
27
xor 5,5,20
28
xor 11,11,21
29
xor 0,0,22
30
xor 3,3,23
31
xor 4,4,24
32
xor 5,5,25
33
xor 11,11,26
34
xor 0,0,27
35
xor 4,4,29
36
xor 3,3,28
37
xor 5,5,30
38
rotldi 16,4,1
39
xor 11,11,31
40
rotldi 21,5,1
41
xor 16,16,0
42
rotldi 26,11,1
43
44
xor 8,8,16
45
xor 6,6,16
46
xor 18,18,16
47
xor 23,23,16
48
xor 28,28,16
49
50
rotldi 16,0,1
51
xor 21,21,3
52
xor 4,4,26
53
rotldi 26,3,1
54
xor 5,5,16
55
xor 11,11,26
56
57
xor 3, 9,21
58
xor 14,14,21
59
xor 19,19,21
60
xor 24,24,21
61
xor 29,29,21
62
63
xor 7,7,11
64
xor 12,12,11
65
xor 17,17,11
66
xor 22,22,11
67
xor 27,27,11
68
ld 11,96(1)
69
xor 0, 10,4
70
ld 16,104(1)
71
xor 15,15,4
72
ld 21,112(1)
73
xor 20,20,4
74
ld 26,120(1)
75
xor 25,25,4
76
xor 30,30,4
77
78
xor 4, 11,5
79
xor 16,16,5
80
xor 21,21,5
81
xor 26,26,5
82
xor 31,31,5
83
84
mr 5,8
85
rotldi 8,6,44
86
87
rotldi 9,19,43
88
89
rotldi 10,25,21
90
91
rotldi 11,31,14
92
93
rotldi 6,16,20
94
rotldi 19,20,25
95
rotldi 25,24,15
96
rotldi 31,28,2
97
98
rotldi 16,29,61
99
rotldi 20,26,8
100
rotldi 24,18,10
101
rotldi 28,15,55
102
103
rotldi 29,21,39
104
rotldi 26,30,56
105
rotldi 18,14,6
106
rotldi 15,23,45
107
108
rotldi 21,27,18
109
rotldi 30,22,41
110
rotldi 14,17,3
111
rotldi 23,12,36
112
113
rotldi 12,0,28
114
rotldi 17,5,1
115
rotldi 22,4,27
116
rotldi 27,3,62
117
118
andc 0,9,8
119
andc 3,10,9
120
andc 4,7,11
121
andc 5,8,7
122
xor 7,7,0
123
andc 0,11,10
124
xor 8,8,3
125
ld 3,80(1)
126
xor 10,10,4
127
xor 11,11,5
128
xor 9,9,0
129
ldu 5,8(3)
130
131
andc 0,14,6
132
std 3,80(1)
133
andc 3,15,14
134
andc 4,12,16
135
xor 7,7,5
136
andc 5,6,12
137
xor 12,12,0
138
andc 0,16,15
139
xor 6,6,3
140
xor 15,15,4
141
xor 16,16,5
142
xor 14,14,0
143
144
andc 0,19,18
145
andc 3,20,19
146
andc 4,17,21
147
andc 5,18,17
148
xor 17,17,0
149
andc 0,21,20
150
xor 18,18,3
151
xor 20,20,4
152
xor 21,21,5
153
xor 19,19,0
154
155
andc 0,24,23
156
andc 3,25,24
157
andc 4,22,26
158
andc 5,23,22
159
xor 22,22,0
160
andc 0,26,25
161
xor 23,23,3
162
xor 25,25,4
163
xor 26,26,5
164
xor 24,24,0
165
166
andc 0,29,28
167
andc 3,30,29
168
andc 4,27,31
169
andc 5,28,27
170
xor 27,27,0
171
andc 0,31,30
172
xor 28,28,3
173
xor 30,30,4
174
xor 31,31,5
175
xor 29,29,0
176
177
bdnz .Loop
178
179
blr
180
.long 0
181
.byte 0,12,0x14,0,0,0,0,0
182
.size KeccakF1600_int,.-KeccakF1600_int
183
184
.type KeccakF1600,@function
185
.align 5
186
KeccakF1600:
187
.localentry KeccakF1600,0
188
189
stdu 1,-272(1)
190
mflr 0
191
std 14,128(1)
192
std 15,136(1)
193
std 16,144(1)
194
std 17,152(1)
195
std 18,160(1)
196
std 19,168(1)
197
std 20,176(1)
198
std 21,184(1)
199
std 22,192(1)
200
std 23,200(1)
201
std 24,208(1)
202
std 25,216(1)
203
std 26,224(1)
204
std 27,232(1)
205
std 28,240(1)
206
std 29,248(1)
207
std 30,256(1)
208
std 31,264(1)
209
std 0,288(1)
210
211
bl PICmeup
212
subi 12,12,8
213
214
std 3,48(1)
215
216
217
218
std 12,80(1)
219
220
ld 7,0(3)
221
ld 8,8(3)
222
ld 9,16(3)
223
ld 10,24(3)
224
ld 11,32(3)
225
ld 12,40(3)
226
ld 6,48(3)
227
ld 14,56(3)
228
ld 15,64(3)
229
ld 16,72(3)
230
ld 17,80(3)
231
ld 18,88(3)
232
ld 19,96(3)
233
ld 20,104(3)
234
ld 21,112(3)
235
ld 22,120(3)
236
ld 23,128(3)
237
ld 24,136(3)
238
ld 25,144(3)
239
ld 26,152(3)
240
ld 27,160(3)
241
ld 28,168(3)
242
ld 29,176(3)
243
ld 30,184(3)
244
ld 31,192(3)
245
246
bl KeccakF1600_int
247
248
ld 3,48(1)
249
std 7,0(3)
250
std 8,8(3)
251
std 9,16(3)
252
std 10,24(3)
253
std 11,32(3)
254
std 12,40(3)
255
std 6,48(3)
256
std 14,56(3)
257
std 15,64(3)
258
std 16,72(3)
259
std 17,80(3)
260
std 18,88(3)
261
std 19,96(3)
262
std 20,104(3)
263
std 21,112(3)
264
std 22,120(3)
265
std 23,128(3)
266
std 24,136(3)
267
std 25,144(3)
268
std 26,152(3)
269
std 27,160(3)
270
std 28,168(3)
271
std 29,176(3)
272
std 30,184(3)
273
std 31,192(3)
274
275
ld 0,288(1)
276
ld 14,128(1)
277
ld 15,136(1)
278
ld 16,144(1)
279
ld 17,152(1)
280
ld 18,160(1)
281
ld 19,168(1)
282
ld 20,176(1)
283
ld 21,184(1)
284
ld 22,192(1)
285
ld 23,200(1)
286
ld 24,208(1)
287
ld 25,216(1)
288
ld 26,224(1)
289
ld 27,232(1)
290
ld 28,240(1)
291
ld 29,248(1)
292
ld 30,256(1)
293
ld 31,264(1)
294
mtlr 0
295
addi 1,1,272
296
blr
297
.long 0
298
.byte 0,12,4,1,0x80,18,1,0
299
.long 0
300
.size KeccakF1600,.-KeccakF1600
301
.type dword_le_load,@function
302
.align 5
303
dword_le_load:
304
.localentry dword_le_load,0
305
306
lbz 0,1(3)
307
lbz 4,2(3)
308
lbz 5,3(3)
309
insrdi 0,4,8,48
310
lbz 4,4(3)
311
insrdi 0,5,8,40
312
lbz 5,5(3)
313
insrdi 0,4,8,32
314
lbz 4,6(3)
315
insrdi 0,5,8,24
316
lbz 5,7(3)
317
insrdi 0,4,8,16
318
lbzu 4,8(3)
319
insrdi 0,5,8,8
320
insrdi 0,4,8,0
321
blr
322
.long 0
323
.byte 0,12,0x14,0,0,0,1,0
324
.long 0
325
.size dword_le_load,.-dword_le_load
326
.globl SHA3_absorb
327
.type SHA3_absorb,@function
328
.type SHA3_absorb,@function
329
.align 5
330
SHA3_absorb:
331
.localentry SHA3_absorb,0
332
333
stdu 1,-272(1)
334
mflr 0
335
std 14,128(1)
336
std 15,136(1)
337
std 16,144(1)
338
std 17,152(1)
339
std 18,160(1)
340
std 19,168(1)
341
std 20,176(1)
342
std 21,184(1)
343
std 22,192(1)
344
std 23,200(1)
345
std 24,208(1)
346
std 25,216(1)
347
std 26,224(1)
348
std 27,232(1)
349
std 28,240(1)
350
std 29,248(1)
351
std 30,256(1)
352
std 31,264(1)
353
std 0,288(1)
354
355
bl PICmeup
356
subi 4,4,1
357
subi 12,12,8
358
359
std 3,48(1)
360
std 4,56(1)
361
std 5,64(1)
362
std 6,72(1)
363
mr 0,6
364
std 12,80(1)
365
366
ld 7,0(3)
367
ld 8,8(3)
368
ld 9,16(3)
369
ld 10,24(3)
370
ld 11,32(3)
371
ld 12,40(3)
372
ld 6,48(3)
373
ld 14,56(3)
374
ld 15,64(3)
375
ld 16,72(3)
376
ld 17,80(3)
377
ld 18,88(3)
378
ld 19,96(3)
379
ld 20,104(3)
380
ld 21,112(3)
381
ld 22,120(3)
382
ld 23,128(3)
383
ld 24,136(3)
384
ld 25,144(3)
385
ld 26,152(3)
386
ld 27,160(3)
387
ld 28,168(3)
388
ld 29,176(3)
389
ld 30,184(3)
390
ld 31,192(3)
391
392
mr 3,4
393
mr 4,5
394
mr 5,0
395
396
b .Loop_absorb
397
398
.align 4
399
.Loop_absorb:
400
cmpld 4,5
401
blt .Labsorbed
402
403
sub 4,4,5
404
srwi 5,5,3
405
std 4,64(1)
406
mtctr 5
407
bl dword_le_load
408
xor 7,7,0
409
bdz .Lprocess_block
410
bl dword_le_load
411
xor 8,8,0
412
bdz .Lprocess_block
413
bl dword_le_load
414
xor 9,9,0
415
bdz .Lprocess_block
416
bl dword_le_load
417
xor 10,10,0
418
bdz .Lprocess_block
419
bl dword_le_load
420
xor 11,11,0
421
bdz .Lprocess_block
422
bl dword_le_load
423
xor 12,12,0
424
bdz .Lprocess_block
425
bl dword_le_load
426
xor 6,6,0
427
bdz .Lprocess_block
428
bl dword_le_load
429
xor 14,14,0
430
bdz .Lprocess_block
431
bl dword_le_load
432
xor 15,15,0
433
bdz .Lprocess_block
434
bl dword_le_load
435
xor 16,16,0
436
bdz .Lprocess_block
437
bl dword_le_load
438
xor 17,17,0
439
bdz .Lprocess_block
440
bl dword_le_load
441
xor 18,18,0
442
bdz .Lprocess_block
443
bl dword_le_load
444
xor 19,19,0
445
bdz .Lprocess_block
446
bl dword_le_load
447
xor 20,20,0
448
bdz .Lprocess_block
449
bl dword_le_load
450
xor 21,21,0
451
bdz .Lprocess_block
452
bl dword_le_load
453
xor 22,22,0
454
bdz .Lprocess_block
455
bl dword_le_load
456
xor 23,23,0
457
bdz .Lprocess_block
458
bl dword_le_load
459
xor 24,24,0
460
bdz .Lprocess_block
461
bl dword_le_load
462
xor 25,25,0
463
bdz .Lprocess_block
464
bl dword_le_load
465
xor 26,26,0
466
bdz .Lprocess_block
467
bl dword_le_load
468
xor 27,27,0
469
bdz .Lprocess_block
470
bl dword_le_load
471
xor 28,28,0
472
bdz .Lprocess_block
473
bl dword_le_load
474
xor 29,29,0
475
bdz .Lprocess_block
476
bl dword_le_load
477
xor 30,30,0
478
bdz .Lprocess_block
479
bl dword_le_load
480
xor 31,31,0
481
482
.Lprocess_block:
483
std 3,56(1)
484
485
bl KeccakF1600_int
486
487
ld 0,80(1)
488
ld 5,72(1)
489
ld 4,64(1)
490
ld 3,56(1)
491
addic 0,0,-192
492
std 0,80(1)
493
494
b .Loop_absorb
495
496
.align 4
497
.Labsorbed:
498
ld 3,48(1)
499
std 7,0(3)
500
std 8,8(3)
501
std 9,16(3)
502
std 10,24(3)
503
std 11,32(3)
504
std 12,40(3)
505
std 6,48(3)
506
std 14,56(3)
507
std 15,64(3)
508
std 16,72(3)
509
std 17,80(3)
510
std 18,88(3)
511
std 19,96(3)
512
std 20,104(3)
513
std 21,112(3)
514
std 22,120(3)
515
std 23,128(3)
516
std 24,136(3)
517
std 25,144(3)
518
std 26,152(3)
519
std 27,160(3)
520
std 28,168(3)
521
std 29,176(3)
522
std 30,184(3)
523
std 31,192(3)
524
525
mr 3,4
526
ld 0,288(1)
527
ld 14,128(1)
528
ld 15,136(1)
529
ld 16,144(1)
530
ld 17,152(1)
531
ld 18,160(1)
532
ld 19,168(1)
533
ld 20,176(1)
534
ld 21,184(1)
535
ld 22,192(1)
536
ld 23,200(1)
537
ld 24,208(1)
538
ld 25,216(1)
539
ld 26,224(1)
540
ld 27,232(1)
541
ld 28,240(1)
542
ld 29,248(1)
543
ld 30,256(1)
544
ld 31,264(1)
545
mtlr 0
546
addi 1,1,272
547
blr
548
.long 0
549
.byte 0,12,4,1,0x80,18,4,0
550
.long 0
551
.size SHA3_absorb,.-SHA3_absorb
552
.globl SHA3_squeeze
553
.type SHA3_squeeze,@function
554
.type SHA3_squeeze,@function
555
.align 5
556
SHA3_squeeze:
557
.localentry SHA3_squeeze,0
558
559
stdu 1,-80(1)
560
mflr 0
561
std 28,48(1)
562
std 29,56(1)
563
std 30,64(1)
564
std 31,72(1)
565
std 0,96(1)
566
567
mr 28,3
568
subi 3,3,8
569
subi 29,4,1
570
mr 30,5
571
mr 31,6
572
cmplwi 7,0
573
bne .Lnext_block
574
b .Loop_squeeze
575
576
.align 4
577
.Loop_squeeze:
578
ldu 0,8(3)
579
cmpldi 30,8
580
blt .Lsqueeze_tail
581
582
stb 0,1(29)
583
srdi 0,0,8
584
stb 0,2(29)
585
srdi 0,0,8
586
stb 0,3(29)
587
srdi 0,0,8
588
stb 0,4(29)
589
srdi 0,0,8
590
stb 0,5(29)
591
srdi 0,0,8
592
stb 0,6(29)
593
srdi 0,0,8
594
stb 0,7(29)
595
srdi 0,0,8
596
stbu 0,8(29)
597
598
subic. 30,30,8
599
beq .Lsqueeze_done
600
601
subic. 6,6,8
602
bgt .Loop_squeeze
603
604
.Lnext_block:
605
mr 3,28
606
bl KeccakF1600
607
subi 3,28,8
608
mr 6,31
609
b .Loop_squeeze
610
611
.align 4
612
.Lsqueeze_tail:
613
mtctr 30
614
.Loop_tail:
615
stbu 0,1(29)
616
srdi 0,0,8
617
bdnz .Loop_tail
618
619
.Lsqueeze_done:
620
ld 0,96(1)
621
ld 28,48(1)
622
ld 29,56(1)
623
ld 30,64(1)
624
ld 31,72(1)
625
mtlr 0
626
addi 1,1,80
627
blr
628
.long 0
629
.byte 0,12,4,1,0x80,4,4,0
630
.long 0
631
.size SHA3_squeeze,.-SHA3_squeeze
632
.align 6
633
PICmeup:
634
mflr 0
635
bcl 20,31,$+4
636
mflr 12
637
addi 12,12,56
638
mtlr 0
639
blr
640
.long 0
641
.byte 0,12,0x14,0,0,0,0,0
642
.space 28
643
.type iotas,@object
644
iotas:
645
.long 0x00000000,0x00000001
646
.long 0x00000000,0x00008082
647
.long 0x80000000,0x0000808a
648
.long 0x80000000,0x80008000
649
.long 0x00000000,0x0000808b
650
.long 0x00000000,0x80000001
651
.long 0x80000000,0x80008081
652
.long 0x80000000,0x00008009
653
.long 0x00000000,0x0000008a
654
.long 0x00000000,0x00000088
655
.long 0x00000000,0x80008009
656
.long 0x00000000,0x8000000a
657
.long 0x00000000,0x8000808b
658
.long 0x80000000,0x0000008b
659
.long 0x80000000,0x00008089
660
.long 0x80000000,0x00008003
661
.long 0x80000000,0x00008002
662
.long 0x80000000,0x00000080
663
.long 0x00000000,0x0000800a
664
.long 0x80000000,0x8000000a
665
.long 0x80000000,0x80008081
666
.long 0x80000000,0x00008080
667
.long 0x00000000,0x80000001
668
.long 0x80000000,0x80008008
669
.size iotas,.-iotas
670
.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,80,80,67,54,52,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
671
.align 2
672
673