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