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 7KeccakF1600_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 186KeccakF1600: 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 303dword_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 330SHA3_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 556SHA3_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 633PICmeup: 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 644iotas: 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