Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/powerpc64le/keccak1600-ppc64.S
39536 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
.globl SHA3_absorb
302
.type SHA3_absorb,@function
303
.type SHA3_absorb,@function
304
.align 5
305
SHA3_absorb:
306
.localentry SHA3_absorb,0
307
308
stdu 1,-272(1)
309
mflr 0
310
std 14,128(1)
311
std 15,136(1)
312
std 16,144(1)
313
std 17,152(1)
314
std 18,160(1)
315
std 19,168(1)
316
std 20,176(1)
317
std 21,184(1)
318
std 22,192(1)
319
std 23,200(1)
320
std 24,208(1)
321
std 25,216(1)
322
std 26,224(1)
323
std 27,232(1)
324
std 28,240(1)
325
std 29,248(1)
326
std 30,256(1)
327
std 31,264(1)
328
std 0,288(1)
329
330
bl PICmeup
331
subi 4,4,8
332
subi 12,12,8
333
334
std 3,48(1)
335
std 4,56(1)
336
std 5,64(1)
337
std 6,72(1)
338
mr 0,6
339
std 12,80(1)
340
341
ld 7,0(3)
342
ld 8,8(3)
343
ld 9,16(3)
344
ld 10,24(3)
345
ld 11,32(3)
346
ld 12,40(3)
347
ld 6,48(3)
348
ld 14,56(3)
349
ld 15,64(3)
350
ld 16,72(3)
351
ld 17,80(3)
352
ld 18,88(3)
353
ld 19,96(3)
354
ld 20,104(3)
355
ld 21,112(3)
356
ld 22,120(3)
357
ld 23,128(3)
358
ld 24,136(3)
359
ld 25,144(3)
360
ld 26,152(3)
361
ld 27,160(3)
362
ld 28,168(3)
363
ld 29,176(3)
364
ld 30,184(3)
365
ld 31,192(3)
366
367
mr 3,4
368
mr 4,5
369
mr 5,0
370
371
b .Loop_absorb
372
373
.align 4
374
.Loop_absorb:
375
cmpld 4,5
376
blt .Labsorbed
377
378
sub 4,4,5
379
srwi 5,5,3
380
std 4,64(1)
381
mtctr 5
382
ldu 0,8(3)
383
xor 7,7,0
384
bdz .Lprocess_block
385
ldu 0,8(3)
386
xor 8,8,0
387
bdz .Lprocess_block
388
ldu 0,8(3)
389
xor 9,9,0
390
bdz .Lprocess_block
391
ldu 0,8(3)
392
xor 10,10,0
393
bdz .Lprocess_block
394
ldu 0,8(3)
395
xor 11,11,0
396
bdz .Lprocess_block
397
ldu 0,8(3)
398
xor 12,12,0
399
bdz .Lprocess_block
400
ldu 0,8(3)
401
xor 6,6,0
402
bdz .Lprocess_block
403
ldu 0,8(3)
404
xor 14,14,0
405
bdz .Lprocess_block
406
ldu 0,8(3)
407
xor 15,15,0
408
bdz .Lprocess_block
409
ldu 0,8(3)
410
xor 16,16,0
411
bdz .Lprocess_block
412
ldu 0,8(3)
413
xor 17,17,0
414
bdz .Lprocess_block
415
ldu 0,8(3)
416
xor 18,18,0
417
bdz .Lprocess_block
418
ldu 0,8(3)
419
xor 19,19,0
420
bdz .Lprocess_block
421
ldu 0,8(3)
422
xor 20,20,0
423
bdz .Lprocess_block
424
ldu 0,8(3)
425
xor 21,21,0
426
bdz .Lprocess_block
427
ldu 0,8(3)
428
xor 22,22,0
429
bdz .Lprocess_block
430
ldu 0,8(3)
431
xor 23,23,0
432
bdz .Lprocess_block
433
ldu 0,8(3)
434
xor 24,24,0
435
bdz .Lprocess_block
436
ldu 0,8(3)
437
xor 25,25,0
438
bdz .Lprocess_block
439
ldu 0,8(3)
440
xor 26,26,0
441
bdz .Lprocess_block
442
ldu 0,8(3)
443
xor 27,27,0
444
bdz .Lprocess_block
445
ldu 0,8(3)
446
xor 28,28,0
447
bdz .Lprocess_block
448
ldu 0,8(3)
449
xor 29,29,0
450
bdz .Lprocess_block
451
ldu 0,8(3)
452
xor 30,30,0
453
bdz .Lprocess_block
454
ldu 0,8(3)
455
xor 31,31,0
456
457
.Lprocess_block:
458
std 3,56(1)
459
460
bl KeccakF1600_int
461
462
ld 0,80(1)
463
ld 5,72(1)
464
ld 4,64(1)
465
ld 3,56(1)
466
addic 0,0,-192
467
std 0,80(1)
468
469
b .Loop_absorb
470
471
.align 4
472
.Labsorbed:
473
ld 3,48(1)
474
std 7,0(3)
475
std 8,8(3)
476
std 9,16(3)
477
std 10,24(3)
478
std 11,32(3)
479
std 12,40(3)
480
std 6,48(3)
481
std 14,56(3)
482
std 15,64(3)
483
std 16,72(3)
484
std 17,80(3)
485
std 18,88(3)
486
std 19,96(3)
487
std 20,104(3)
488
std 21,112(3)
489
std 22,120(3)
490
std 23,128(3)
491
std 24,136(3)
492
std 25,144(3)
493
std 26,152(3)
494
std 27,160(3)
495
std 28,168(3)
496
std 29,176(3)
497
std 30,184(3)
498
std 31,192(3)
499
500
mr 3,4
501
ld 0,288(1)
502
ld 14,128(1)
503
ld 15,136(1)
504
ld 16,144(1)
505
ld 17,152(1)
506
ld 18,160(1)
507
ld 19,168(1)
508
ld 20,176(1)
509
ld 21,184(1)
510
ld 22,192(1)
511
ld 23,200(1)
512
ld 24,208(1)
513
ld 25,216(1)
514
ld 26,224(1)
515
ld 27,232(1)
516
ld 28,240(1)
517
ld 29,248(1)
518
ld 30,256(1)
519
ld 31,264(1)
520
mtlr 0
521
addi 1,1,272
522
blr
523
.long 0
524
.byte 0,12,4,1,0x80,18,4,0
525
.long 0
526
.size SHA3_absorb,.-SHA3_absorb
527
.globl SHA3_squeeze
528
.type SHA3_squeeze,@function
529
.type SHA3_squeeze,@function
530
.align 5
531
SHA3_squeeze:
532
.localentry SHA3_squeeze,0
533
534
stdu 1,-80(1)
535
mflr 0
536
std 28,48(1)
537
std 29,56(1)
538
std 30,64(1)
539
std 31,72(1)
540
std 0,96(1)
541
542
mr 28,3
543
subi 3,3,8
544
subi 29,4,1
545
mr 30,5
546
mr 31,6
547
cmplwi 7,0
548
bne .Lnext_block
549
b .Loop_squeeze
550
551
.align 4
552
.Loop_squeeze:
553
ldu 0,8(3)
554
cmpldi 30,8
555
blt .Lsqueeze_tail
556
557
stb 0,1(29)
558
srdi 0,0,8
559
stb 0,2(29)
560
srdi 0,0,8
561
stb 0,3(29)
562
srdi 0,0,8
563
stb 0,4(29)
564
srdi 0,0,8
565
stb 0,5(29)
566
srdi 0,0,8
567
stb 0,6(29)
568
srdi 0,0,8
569
stb 0,7(29)
570
srdi 0,0,8
571
stbu 0,8(29)
572
573
subic. 30,30,8
574
beq .Lsqueeze_done
575
576
subic. 6,6,8
577
bgt .Loop_squeeze
578
579
.Lnext_block:
580
mr 3,28
581
bl KeccakF1600
582
subi 3,28,8
583
mr 6,31
584
b .Loop_squeeze
585
586
.align 4
587
.Lsqueeze_tail:
588
mtctr 30
589
.Loop_tail:
590
stbu 0,1(29)
591
srdi 0,0,8
592
bdnz .Loop_tail
593
594
.Lsqueeze_done:
595
ld 0,96(1)
596
ld 28,48(1)
597
ld 29,56(1)
598
ld 30,64(1)
599
ld 31,72(1)
600
mtlr 0
601
addi 1,1,80
602
blr
603
.long 0
604
.byte 0,12,4,1,0x80,4,4,0
605
.long 0
606
.size SHA3_squeeze,.-SHA3_squeeze
607
.align 6
608
PICmeup:
609
mflr 0
610
bcl 20,31,$+4
611
mflr 12
612
addi 12,12,56
613
mtlr 0
614
blr
615
.long 0
616
.byte 0,12,0x14,0,0,0,0,0
617
.space 28
618
.type iotas,@object
619
iotas:
620
.long 0x00000001,0x00000000
621
.long 0x00008082,0x00000000
622
.long 0x0000808a,0x80000000
623
.long 0x80008000,0x80000000
624
.long 0x0000808b,0x00000000
625
.long 0x80000001,0x00000000
626
.long 0x80008081,0x80000000
627
.long 0x00008009,0x80000000
628
.long 0x0000008a,0x00000000
629
.long 0x00000088,0x00000000
630
.long 0x80008009,0x00000000
631
.long 0x8000000a,0x00000000
632
.long 0x8000808b,0x00000000
633
.long 0x0000008b,0x80000000
634
.long 0x00008089,0x80000000
635
.long 0x00008003,0x80000000
636
.long 0x00008002,0x80000000
637
.long 0x00000080,0x80000000
638
.long 0x0000800a,0x00000000
639
.long 0x8000000a,0x80000000
640
.long 0x80008081,0x80000000
641
.long 0x00008080,0x80000000
642
.long 0x80000001,0x00000000
643
.long 0x80008008,0x80000000
644
.size iotas,.-iotas
645
.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
646
.align 2
647
648