1.machine "any" 2 3.text 4 5.align 7 6rcon: 7.byte 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00 8.byte 0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00 9.byte 0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c 10.byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 11.Lconsts: 12 mflr 0 13 bcl 20,31,$+4 14 mflr 6 15 addi 6,6,-0x48 16 mtlr 0 17 blr 18.long 0 19.byte 0,12,0x14,0,0,0,0,0 20.byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,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 21.align 2 22 23.globl aes_p8_set_encrypt_key 24.type aes_p8_set_encrypt_key,@function 25.section ".opd","aw" 26.align 3 27aes_p8_set_encrypt_key: 28.quad .aes_p8_set_encrypt_key,.TOC.@tocbase,0 29.previous 30 31.align 5 32.aes_p8_set_encrypt_key: 33.Lset_encrypt_key: 34 mflr 11 35 std 11,16(1) 36 37 li 6,-1 38 cmpldi 3,0 39 beq- .Lenc_key_abort 40 cmpldi 5,0 41 beq- .Lenc_key_abort 42 li 6,-2 43 cmpwi 4,128 44 blt- .Lenc_key_abort 45 cmpwi 4,256 46 bgt- .Lenc_key_abort 47 andi. 0,4,0x3f 48 bne- .Lenc_key_abort 49 50 lis 0,0xfff0 51 mfspr 12,256 52 mtspr 256,0 53 54 bl .Lconsts 55 mtlr 11 56 57 neg 9,3 58 lvx 1,0,3 59 addi 3,3,15 60 lvsr 3,0,9 61 li 8,0x20 62 cmpwi 4,192 63 lvx 2,0,3 64 65 lvx 4,0,6 66 67 lvx 5,8,6 68 addi 6,6,0x10 69 vperm 1,1,2,3 70 li 7,8 71 vxor 0,0,0 72 mtctr 7 73 74 lvsr 8,0,5 75 vspltisb 9,-1 76 lvx 10,0,5 77 vperm 9,0,9,8 78 79 blt .Loop128 80 addi 3,3,8 81 beq .L192 82 addi 3,3,8 83 b .L256 84 85.align 4 86.Loop128: 87 vperm 3,1,1,5 88 vsldoi 6,0,1,12 89 vperm 11,1,1,8 90 vsel 7,10,11,9 91 vor 10,11,11 92.long 0x10632509 93 stvx 7,0,5 94 addi 5,5,16 95 96 vxor 1,1,6 97 vsldoi 6,0,6,12 98 vxor 1,1,6 99 vsldoi 6,0,6,12 100 vxor 1,1,6 101 vadduwm 4,4,4 102 vxor 1,1,3 103 bc 16,0,.Loop128 104 105 lvx 4,0,6 106 107 vperm 3,1,1,5 108 vsldoi 6,0,1,12 109 vperm 11,1,1,8 110 vsel 7,10,11,9 111 vor 10,11,11 112.long 0x10632509 113 stvx 7,0,5 114 addi 5,5,16 115 116 vxor 1,1,6 117 vsldoi 6,0,6,12 118 vxor 1,1,6 119 vsldoi 6,0,6,12 120 vxor 1,1,6 121 vadduwm 4,4,4 122 vxor 1,1,3 123 124 vperm 3,1,1,5 125 vsldoi 6,0,1,12 126 vperm 11,1,1,8 127 vsel 7,10,11,9 128 vor 10,11,11 129.long 0x10632509 130 stvx 7,0,5 131 addi 5,5,16 132 133 vxor 1,1,6 134 vsldoi 6,0,6,12 135 vxor 1,1,6 136 vsldoi 6,0,6,12 137 vxor 1,1,6 138 vxor 1,1,3 139 vperm 11,1,1,8 140 vsel 7,10,11,9 141 vor 10,11,11 142 stvx 7,0,5 143 144 addi 3,5,15 145 addi 5,5,0x50 146 147 li 8,10 148 b .Ldone 149 150.align 4 151.L192: 152 lvx 6,0,3 153 li 7,4 154 vperm 11,1,1,8 155 vsel 7,10,11,9 156 vor 10,11,11 157 stvx 7,0,5 158 addi 5,5,16 159 vperm 2,2,6,3 160 vspltisb 3,8 161 mtctr 7 162 vsububm 5,5,3 163 164.Loop192: 165 vperm 3,2,2,5 166 vsldoi 6,0,1,12 167.long 0x10632509 168 169 vxor 1,1,6 170 vsldoi 6,0,6,12 171 vxor 1,1,6 172 vsldoi 6,0,6,12 173 vxor 1,1,6 174 175 vsldoi 7,0,2,8 176 vspltw 6,1,3 177 vxor 6,6,2 178 vsldoi 2,0,2,12 179 vadduwm 4,4,4 180 vxor 2,2,6 181 vxor 1,1,3 182 vxor 2,2,3 183 vsldoi 7,7,1,8 184 185 vperm 3,2,2,5 186 vsldoi 6,0,1,12 187 vperm 11,7,7,8 188 vsel 7,10,11,9 189 vor 10,11,11 190.long 0x10632509 191 stvx 7,0,5 192 addi 5,5,16 193 194 vsldoi 7,1,2,8 195 vxor 1,1,6 196 vsldoi 6,0,6,12 197 vperm 11,7,7,8 198 vsel 7,10,11,9 199 vor 10,11,11 200 vxor 1,1,6 201 vsldoi 6,0,6,12 202 vxor 1,1,6 203 stvx 7,0,5 204 addi 5,5,16 205 206 vspltw 6,1,3 207 vxor 6,6,2 208 vsldoi 2,0,2,12 209 vadduwm 4,4,4 210 vxor 2,2,6 211 vxor 1,1,3 212 vxor 2,2,3 213 vperm 11,1,1,8 214 vsel 7,10,11,9 215 vor 10,11,11 216 stvx 7,0,5 217 addi 3,5,15 218 addi 5,5,16 219 bc 16,0,.Loop192 220 221 li 8,12 222 addi 5,5,0x20 223 b .Ldone 224 225.align 4 226.L256: 227 lvx 6,0,3 228 li 7,7 229 li 8,14 230 vperm 11,1,1,8 231 vsel 7,10,11,9 232 vor 10,11,11 233 stvx 7,0,5 234 addi 5,5,16 235 vperm 2,2,6,3 236 mtctr 7 237 238.Loop256: 239 vperm 3,2,2,5 240 vsldoi 6,0,1,12 241 vperm 11,2,2,8 242 vsel 7,10,11,9 243 vor 10,11,11 244.long 0x10632509 245 stvx 7,0,5 246 addi 5,5,16 247 248 vxor 1,1,6 249 vsldoi 6,0,6,12 250 vxor 1,1,6 251 vsldoi 6,0,6,12 252 vxor 1,1,6 253 vadduwm 4,4,4 254 vxor 1,1,3 255 vperm 11,1,1,8 256 vsel 7,10,11,9 257 vor 10,11,11 258 stvx 7,0,5 259 addi 3,5,15 260 addi 5,5,16 261 bdz .Ldone 262 263 vspltw 3,1,3 264 vsldoi 6,0,2,12 265.long 0x106305C8 266 267 vxor 2,2,6 268 vsldoi 6,0,6,12 269 vxor 2,2,6 270 vsldoi 6,0,6,12 271 vxor 2,2,6 272 273 vxor 2,2,3 274 b .Loop256 275 276.align 4 277.Ldone: 278 lvx 2,0,3 279 vsel 2,10,2,9 280 stvx 2,0,3 281 li 6,0 282 mtspr 256,12 283 stw 8,0(5) 284 285.Lenc_key_abort: 286 mr 3,6 287 blr 288.long 0 289.byte 0,12,0x14,1,0,0,3,0 290.long 0 291 292 293.globl aes_p8_set_decrypt_key 294.type aes_p8_set_decrypt_key,@function 295.section ".opd","aw" 296.align 3 297aes_p8_set_decrypt_key: 298.quad .aes_p8_set_decrypt_key,.TOC.@tocbase,0 299.previous 300 301.align 5 302.aes_p8_set_decrypt_key: 303 stdu 1,-64(1) 304 mflr 10 305 std 10,64+16(1) 306 bl .Lset_encrypt_key 307 mtlr 10 308 309 cmpwi 3,0 310 bne- .Ldec_key_abort 311 312 slwi 7,8,4 313 subi 3,5,240 314 srwi 8,8,1 315 add 5,3,7 316 mtctr 8 317 318.Ldeckey: 319 lwz 0, 0(3) 320 lwz 6, 4(3) 321 lwz 7, 8(3) 322 lwz 8, 12(3) 323 addi 3,3,16 324 lwz 9, 0(5) 325 lwz 10,4(5) 326 lwz 11,8(5) 327 lwz 12,12(5) 328 stw 0, 0(5) 329 stw 6, 4(5) 330 stw 7, 8(5) 331 stw 8, 12(5) 332 subi 5,5,16 333 stw 9, -16(3) 334 stw 10,-12(3) 335 stw 11,-8(3) 336 stw 12,-4(3) 337 bc 16,0,.Ldeckey 338 339 xor 3,3,3 340.Ldec_key_abort: 341 addi 1,1,64 342 blr 343.long 0 344.byte 0,12,4,1,0x80,0,3,0 345.long 0 346 347.globl aes_p8_encrypt 348.type aes_p8_encrypt,@function 349.section ".opd","aw" 350.align 3 351aes_p8_encrypt: 352.quad .aes_p8_encrypt,.TOC.@tocbase,0 353.previous 354 355.align 5 356.aes_p8_encrypt: 357 lwz 6,240(5) 358 lis 0,0xfc00 359 mfspr 12,256 360 li 7,15 361 mtspr 256,0 362 363 lvx 0,0,3 364 neg 11,4 365 lvx 1,7,3 366 lvsl 2,0,3 367 368 lvsl 3,0,11 369 370 li 7,16 371 vperm 0,0,1,2 372 lvx 1,0,5 373 lvsl 5,0,5 374 srwi 6,6,1 375 lvx 2,7,5 376 addi 7,7,16 377 subi 6,6,1 378 vperm 1,1,2,5 379 380 vxor 0,0,1 381 lvx 1,7,5 382 addi 7,7,16 383 mtctr 6 384 385.Loop_enc: 386 vperm 2,2,1,5 387.long 0x10001508 388 lvx 2,7,5 389 addi 7,7,16 390 vperm 1,1,2,5 391.long 0x10000D08 392 lvx 1,7,5 393 addi 7,7,16 394 bc 16,0,.Loop_enc 395 396 vperm 2,2,1,5 397.long 0x10001508 398 lvx 2,7,5 399 vperm 1,1,2,5 400.long 0x10000D09 401 402 vspltisb 2,-1 403 vxor 1,1,1 404 li 7,15 405 vperm 2,1,2,3 406 407 lvx 1,0,4 408 vperm 0,0,0,3 409 vsel 1,1,0,2 410 lvx 4,7,4 411 stvx 1,0,4 412 vsel 0,0,4,2 413 stvx 0,7,4 414 415 mtspr 256,12 416 blr 417.long 0 418.byte 0,12,0x14,0,0,0,3,0 419.long 0 420 421.globl aes_p8_decrypt 422.type aes_p8_decrypt,@function 423.section ".opd","aw" 424.align 3 425aes_p8_decrypt: 426.quad .aes_p8_decrypt,.TOC.@tocbase,0 427.previous 428 429.align 5 430.aes_p8_decrypt: 431 lwz 6,240(5) 432 lis 0,0xfc00 433 mfspr 12,256 434 li 7,15 435 mtspr 256,0 436 437 lvx 0,0,3 438 neg 11,4 439 lvx 1,7,3 440 lvsl 2,0,3 441 442 lvsl 3,0,11 443 444 li 7,16 445 vperm 0,0,1,2 446 lvx 1,0,5 447 lvsl 5,0,5 448 srwi 6,6,1 449 lvx 2,7,5 450 addi 7,7,16 451 subi 6,6,1 452 vperm 1,1,2,5 453 454 vxor 0,0,1 455 lvx 1,7,5 456 addi 7,7,16 457 mtctr 6 458 459.Loop_dec: 460 vperm 2,2,1,5 461.long 0x10001548 462 lvx 2,7,5 463 addi 7,7,16 464 vperm 1,1,2,5 465.long 0x10000D48 466 lvx 1,7,5 467 addi 7,7,16 468 bc 16,0,.Loop_dec 469 470 vperm 2,2,1,5 471.long 0x10001548 472 lvx 2,7,5 473 vperm 1,1,2,5 474.long 0x10000D49 475 476 vspltisb 2,-1 477 vxor 1,1,1 478 li 7,15 479 vperm 2,1,2,3 480 481 lvx 1,0,4 482 vperm 0,0,0,3 483 vsel 1,1,0,2 484 lvx 4,7,4 485 stvx 1,0,4 486 vsel 0,0,4,2 487 stvx 0,7,4 488 489 mtspr 256,12 490 blr 491.long 0 492.byte 0,12,0x14,0,0,0,3,0 493.long 0 494 495.globl aes_p8_cbc_encrypt 496.type aes_p8_cbc_encrypt,@function 497.section ".opd","aw" 498.align 3 499aes_p8_cbc_encrypt: 500.quad .aes_p8_cbc_encrypt,.TOC.@tocbase,0 501.previous 502 503.align 5 504.aes_p8_cbc_encrypt: 505 cmpldi 5,16 506 bltlr 507 508 cmpwi 8,0 509 lis 0,0xffe0 510 mfspr 12,256 511 mtspr 256,0 512 513 li 10,15 514 vxor 0,0,0 515 516 517 lvx 4,0,7 518 lvsl 6,0,7 519 lvx 5,10,7 520 521 vperm 4,4,5,6 522 523 neg 11,3 524 lvsl 10,0,6 525 lwz 9,240(6) 526 527 lvsr 6,0,11 528 lvx 5,0,3 529 addi 3,3,15 530 531 532 lvsr 8,0,4 533 vspltisb 9,-1 534 lvx 7,0,4 535 vperm 9,0,9,8 536 537 538 srwi 9,9,1 539 li 10,16 540 subi 9,9,1 541 beq .Lcbc_dec 542 543.Lcbc_enc: 544 vor 2,5,5 545 lvx 5,0,3 546 addi 3,3,16 547 mtctr 9 548 subi 5,5,16 549 550 lvx 0,0,6 551 vperm 2,2,5,6 552 lvx 1,10,6 553 addi 10,10,16 554 vperm 0,0,1,10 555 vxor 2,2,0 556 lvx 0,10,6 557 addi 10,10,16 558 vxor 2,2,4 559 560.Loop_cbc_enc: 561 vperm 1,1,0,10 562.long 0x10420D08 563 lvx 1,10,6 564 addi 10,10,16 565 vperm 0,0,1,10 566.long 0x10420508 567 lvx 0,10,6 568 addi 10,10,16 569 bc 16,0,.Loop_cbc_enc 570 571 vperm 1,1,0,10 572.long 0x10420D08 573 lvx 1,10,6 574 li 10,16 575 vperm 0,0,1,10 576.long 0x10820509 577 cmpldi 5,16 578 579 vperm 3,4,4,8 580 vsel 2,7,3,9 581 vor 7,3,3 582 stvx 2,0,4 583 addi 4,4,16 584 bge .Lcbc_enc 585 586 b .Lcbc_done 587 588.align 4 589.Lcbc_dec: 590 cmpldi 5,128 591 bge _aesp8_cbc_decrypt8x 592 vor 3,5,5 593 lvx 5,0,3 594 addi 3,3,16 595 mtctr 9 596 subi 5,5,16 597 598 lvx 0,0,6 599 vperm 3,3,5,6 600 lvx 1,10,6 601 addi 10,10,16 602 vperm 0,0,1,10 603 vxor 2,3,0 604 lvx 0,10,6 605 addi 10,10,16 606 607.Loop_cbc_dec: 608 vperm 1,1,0,10 609.long 0x10420D48 610 lvx 1,10,6 611 addi 10,10,16 612 vperm 0,0,1,10 613.long 0x10420548 614 lvx 0,10,6 615 addi 10,10,16 616 bc 16,0,.Loop_cbc_dec 617 618 vperm 1,1,0,10 619.long 0x10420D48 620 lvx 1,10,6 621 li 10,16 622 vperm 0,0,1,10 623.long 0x10420549 624 cmpldi 5,16 625 626 vxor 2,2,4 627 vor 4,3,3 628 vperm 3,2,2,8 629 vsel 2,7,3,9 630 vor 7,3,3 631 stvx 2,0,4 632 addi 4,4,16 633 bge .Lcbc_dec 634 635.Lcbc_done: 636 addi 4,4,-1 637 lvx 2,0,4 638 vsel 2,7,2,9 639 stvx 2,0,4 640 641 neg 8,7 642 li 10,15 643 vxor 0,0,0 644 vspltisb 9,-1 645 646 lvsl 8,0,8 647 vperm 9,0,9,8 648 649 lvx 7,0,7 650 vperm 4,4,4,8 651 vsel 2,7,4,9 652 lvx 5,10,7 653 stvx 2,0,7 654 vsel 2,4,5,9 655 stvx 2,10,7 656 657 mtspr 256,12 658 blr 659.long 0 660.byte 0,12,0x14,0,0,0,6,0 661.long 0 662.align 5 663_aesp8_cbc_decrypt8x: 664 stdu 1,-448(1) 665 li 10,207 666 li 11,223 667 stvx 20,10,1 668 addi 10,10,32 669 stvx 21,11,1 670 addi 11,11,32 671 stvx 22,10,1 672 addi 10,10,32 673 stvx 23,11,1 674 addi 11,11,32 675 stvx 24,10,1 676 addi 10,10,32 677 stvx 25,11,1 678 addi 11,11,32 679 stvx 26,10,1 680 addi 10,10,32 681 stvx 27,11,1 682 addi 11,11,32 683 stvx 28,10,1 684 addi 10,10,32 685 stvx 29,11,1 686 addi 11,11,32 687 stvx 30,10,1 688 stvx 31,11,1 689 li 0,-1 690 stw 12,396(1) 691 li 8,0x10 692 std 26,400(1) 693 li 26,0x20 694 std 27,408(1) 695 li 27,0x30 696 std 28,416(1) 697 li 28,0x40 698 std 29,424(1) 699 li 29,0x50 700 std 30,432(1) 701 li 30,0x60 702 std 31,440(1) 703 li 31,0x70 704 mtspr 256,0 705 706 subi 9,9,3 707 subi 5,5,128 708 709 lvx 23,0,6 710 lvx 30,8,6 711 addi 6,6,0x20 712 lvx 31,0,6 713 vperm 23,23,30,10 714 addi 11,1,64+15 715 mtctr 9 716 717.Load_cbc_dec_key: 718 vperm 24,30,31,10 719 lvx 30,8,6 720 addi 6,6,0x20 721 stvx 24,0,11 722 vperm 25,31,30,10 723 lvx 31,0,6 724 stvx 25,8,11 725 addi 11,11,0x20 726 bc 16,0,.Load_cbc_dec_key 727 728 lvx 26,8,6 729 vperm 24,30,31,10 730 lvx 27,26,6 731 stvx 24,0,11 732 vperm 25,31,26,10 733 lvx 28,27,6 734 stvx 25,8,11 735 addi 11,1,64+15 736 vperm 26,26,27,10 737 lvx 29,28,6 738 vperm 27,27,28,10 739 lvx 30,29,6 740 vperm 28,28,29,10 741 lvx 31,30,6 742 vperm 29,29,30,10 743 lvx 14,31,6 744 vperm 30,30,31,10 745 lvx 24,0,11 746 vperm 31,31,14,10 747 lvx 25,8,11 748 749 750 751 subi 3,3,15 752 753 754.long 0x7C001E99 755 756 757.long 0x7C281E99 758 759.long 0x7C5A1E99 760 761.long 0x7C7B1E99 762 763.long 0x7D5C1E99 764 765 vxor 14,0,23 766.long 0x7D7D1E99 767 768 vxor 15,1,23 769.long 0x7D9E1E99 770 771 vxor 16,2,23 772.long 0x7DBF1E99 773 addi 3,3,0x80 774 775 vxor 17,3,23 776 777 vxor 18,10,23 778 779 vxor 19,11,23 780 vxor 20,12,23 781 vxor 21,13,23 782 783 mtctr 9 784 b .Loop_cbc_dec8x 785.align 5 786.Loop_cbc_dec8x: 787.long 0x11CEC548 788.long 0x11EFC548 789.long 0x1210C548 790.long 0x1231C548 791.long 0x1252C548 792.long 0x1273C548 793.long 0x1294C548 794.long 0x12B5C548 795 lvx 24,26,11 796 addi 11,11,0x20 797 798.long 0x11CECD48 799.long 0x11EFCD48 800.long 0x1210CD48 801.long 0x1231CD48 802.long 0x1252CD48 803.long 0x1273CD48 804.long 0x1294CD48 805.long 0x12B5CD48 806 lvx 25,8,11 807 bc 16,0,.Loop_cbc_dec8x 808 809 subic 5,5,128 810.long 0x11CEC548 811.long 0x11EFC548 812.long 0x1210C548 813.long 0x1231C548 814.long 0x1252C548 815.long 0x1273C548 816.long 0x1294C548 817.long 0x12B5C548 818 819 subfe. 0,0,0 820.long 0x11CECD48 821.long 0x11EFCD48 822.long 0x1210CD48 823.long 0x1231CD48 824.long 0x1252CD48 825.long 0x1273CD48 826.long 0x1294CD48 827.long 0x12B5CD48 828 829 and 0,0,5 830.long 0x11CED548 831.long 0x11EFD548 832.long 0x1210D548 833.long 0x1231D548 834.long 0x1252D548 835.long 0x1273D548 836.long 0x1294D548 837.long 0x12B5D548 838 839 add 3,3,0 840 841 842 843.long 0x11CEDD48 844.long 0x11EFDD48 845.long 0x1210DD48 846.long 0x1231DD48 847.long 0x1252DD48 848.long 0x1273DD48 849.long 0x1294DD48 850.long 0x12B5DD48 851 852 addi 11,1,64+15 853.long 0x11CEE548 854.long 0x11EFE548 855.long 0x1210E548 856.long 0x1231E548 857.long 0x1252E548 858.long 0x1273E548 859.long 0x1294E548 860.long 0x12B5E548 861 lvx 24,0,11 862 863.long 0x11CEED48 864.long 0x11EFED48 865.long 0x1210ED48 866.long 0x1231ED48 867.long 0x1252ED48 868.long 0x1273ED48 869.long 0x1294ED48 870.long 0x12B5ED48 871 lvx 25,8,11 872 873.long 0x11CEF548 874 vxor 4,4,31 875.long 0x11EFF548 876 vxor 0,0,31 877.long 0x1210F548 878 vxor 1,1,31 879.long 0x1231F548 880 vxor 2,2,31 881.long 0x1252F548 882 vxor 3,3,31 883.long 0x1273F548 884 vxor 10,10,31 885.long 0x1294F548 886 vxor 11,11,31 887.long 0x12B5F548 888 vxor 12,12,31 889 890.long 0x11CE2549 891.long 0x11EF0549 892.long 0x7C001E99 893.long 0x12100D49 894.long 0x7C281E99 895.long 0x12311549 896 897.long 0x7C5A1E99 898.long 0x12521D49 899 900.long 0x7C7B1E99 901.long 0x12735549 902 903.long 0x7D5C1E99 904.long 0x12945D49 905 906.long 0x7D7D1E99 907.long 0x12B56549 908 909.long 0x7D9E1E99 910 vor 4,13,13 911 912.long 0x7DBF1E99 913 addi 3,3,0x80 914 915 916 917.long 0x7DC02799 918 919 vxor 14,0,23 920 921.long 0x7DE82799 922 923 vxor 15,1,23 924 925.long 0x7E1A2799 926 vxor 16,2,23 927 928.long 0x7E3B2799 929 vxor 17,3,23 930 931.long 0x7E5C2799 932 vxor 18,10,23 933 934.long 0x7E7D2799 935 vxor 19,11,23 936 937.long 0x7E9E2799 938 vxor 20,12,23 939.long 0x7EBF2799 940 addi 4,4,0x80 941 vxor 21,13,23 942 943 mtctr 9 944 beq .Loop_cbc_dec8x 945 946 addic. 5,5,128 947 beq .Lcbc_dec8x_done 948 nop 949 nop 950 951.Loop_cbc_dec8x_tail: 952.long 0x11EFC548 953.long 0x1210C548 954.long 0x1231C548 955.long 0x1252C548 956.long 0x1273C548 957.long 0x1294C548 958.long 0x12B5C548 959 lvx 24,26,11 960 addi 11,11,0x20 961 962.long 0x11EFCD48 963.long 0x1210CD48 964.long 0x1231CD48 965.long 0x1252CD48 966.long 0x1273CD48 967.long 0x1294CD48 968.long 0x12B5CD48 969 lvx 25,8,11 970 bc 16,0,.Loop_cbc_dec8x_tail 971 972.long 0x11EFC548 973.long 0x1210C548 974.long 0x1231C548 975.long 0x1252C548 976.long 0x1273C548 977.long 0x1294C548 978.long 0x12B5C548 979 980.long 0x11EFCD48 981.long 0x1210CD48 982.long 0x1231CD48 983.long 0x1252CD48 984.long 0x1273CD48 985.long 0x1294CD48 986.long 0x12B5CD48 987 988.long 0x11EFD548 989.long 0x1210D548 990.long 0x1231D548 991.long 0x1252D548 992.long 0x1273D548 993.long 0x1294D548 994.long 0x12B5D548 995 996.long 0x11EFDD48 997.long 0x1210DD48 998.long 0x1231DD48 999.long 0x1252DD48 1000.long 0x1273DD48 1001.long 0x1294DD48 1002.long 0x12B5DD48 1003 1004.long 0x11EFE548 1005.long 0x1210E548 1006.long 0x1231E548 1007.long 0x1252E548 1008.long 0x1273E548 1009.long 0x1294E548 1010.long 0x12B5E548 1011 1012.long 0x11EFED48 1013.long 0x1210ED48 1014.long 0x1231ED48 1015.long 0x1252ED48 1016.long 0x1273ED48 1017.long 0x1294ED48 1018.long 0x12B5ED48 1019 1020.long 0x11EFF548 1021 vxor 4,4,31 1022.long 0x1210F548 1023 vxor 1,1,31 1024.long 0x1231F548 1025 vxor 2,2,31 1026.long 0x1252F548 1027 vxor 3,3,31 1028.long 0x1273F548 1029 vxor 10,10,31 1030.long 0x1294F548 1031 vxor 11,11,31 1032.long 0x12B5F548 1033 vxor 12,12,31 1034 1035 cmplwi 5,32 1036 blt .Lcbc_dec8x_one 1037 nop 1038 beq .Lcbc_dec8x_two 1039 cmplwi 5,64 1040 blt .Lcbc_dec8x_three 1041 nop 1042 beq .Lcbc_dec8x_four 1043 cmplwi 5,96 1044 blt .Lcbc_dec8x_five 1045 nop 1046 beq .Lcbc_dec8x_six 1047 1048.Lcbc_dec8x_seven: 1049.long 0x11EF2549 1050.long 0x12100D49 1051.long 0x12311549 1052.long 0x12521D49 1053.long 0x12735549 1054.long 0x12945D49 1055.long 0x12B56549 1056 vor 4,13,13 1057 1058 1059 1060.long 0x7DE02799 1061 1062.long 0x7E082799 1063 1064.long 0x7E3A2799 1065 1066.long 0x7E5B2799 1067 1068.long 0x7E7C2799 1069 1070.long 0x7E9D2799 1071.long 0x7EBE2799 1072 addi 4,4,0x70 1073 b .Lcbc_dec8x_done 1074 1075.align 5 1076.Lcbc_dec8x_six: 1077.long 0x12102549 1078.long 0x12311549 1079.long 0x12521D49 1080.long 0x12735549 1081.long 0x12945D49 1082.long 0x12B56549 1083 vor 4,13,13 1084 1085 1086 1087.long 0x7E002799 1088 1089.long 0x7E282799 1090 1091.long 0x7E5A2799 1092 1093.long 0x7E7B2799 1094 1095.long 0x7E9C2799 1096.long 0x7EBD2799 1097 addi 4,4,0x60 1098 b .Lcbc_dec8x_done 1099 1100.align 5 1101.Lcbc_dec8x_five: 1102.long 0x12312549 1103.long 0x12521D49 1104.long 0x12735549 1105.long 0x12945D49 1106.long 0x12B56549 1107 vor 4,13,13 1108 1109 1110 1111.long 0x7E202799 1112 1113.long 0x7E482799 1114 1115.long 0x7E7A2799 1116 1117.long 0x7E9B2799 1118.long 0x7EBC2799 1119 addi 4,4,0x50 1120 b .Lcbc_dec8x_done 1121 1122.align 5 1123.Lcbc_dec8x_four: 1124.long 0x12522549 1125.long 0x12735549 1126.long 0x12945D49 1127.long 0x12B56549 1128 vor 4,13,13 1129 1130 1131 1132.long 0x7E402799 1133 1134.long 0x7E682799 1135 1136.long 0x7E9A2799 1137.long 0x7EBB2799 1138 addi 4,4,0x40 1139 b .Lcbc_dec8x_done 1140 1141.align 5 1142.Lcbc_dec8x_three: 1143.long 0x12732549 1144.long 0x12945D49 1145.long 0x12B56549 1146 vor 4,13,13 1147 1148 1149 1150.long 0x7E602799 1151 1152.long 0x7E882799 1153.long 0x7EBA2799 1154 addi 4,4,0x30 1155 b .Lcbc_dec8x_done 1156 1157.align 5 1158.Lcbc_dec8x_two: 1159.long 0x12942549 1160.long 0x12B56549 1161 vor 4,13,13 1162 1163 1164 1165.long 0x7E802799 1166.long 0x7EA82799 1167 addi 4,4,0x20 1168 b .Lcbc_dec8x_done 1169 1170.align 5 1171.Lcbc_dec8x_one: 1172.long 0x12B52549 1173 vor 4,13,13 1174 1175 1176.long 0x7EA02799 1177 addi 4,4,0x10 1178 1179.Lcbc_dec8x_done: 1180 1181.long 0x7C803F99 1182 1183 li 10,79 1184 li 11,95 1185 stvx 6,10,1 1186 addi 10,10,32 1187 stvx 6,11,1 1188 addi 11,11,32 1189 stvx 6,10,1 1190 addi 10,10,32 1191 stvx 6,11,1 1192 addi 11,11,32 1193 stvx 6,10,1 1194 addi 10,10,32 1195 stvx 6,11,1 1196 addi 11,11,32 1197 stvx 6,10,1 1198 addi 10,10,32 1199 stvx 6,11,1 1200 addi 11,11,32 1201 1202 mtspr 256,12 1203 lvx 20,10,1 1204 addi 10,10,32 1205 lvx 21,11,1 1206 addi 11,11,32 1207 lvx 22,10,1 1208 addi 10,10,32 1209 lvx 23,11,1 1210 addi 11,11,32 1211 lvx 24,10,1 1212 addi 10,10,32 1213 lvx 25,11,1 1214 addi 11,11,32 1215 lvx 26,10,1 1216 addi 10,10,32 1217 lvx 27,11,1 1218 addi 11,11,32 1219 lvx 28,10,1 1220 addi 10,10,32 1221 lvx 29,11,1 1222 addi 11,11,32 1223 lvx 30,10,1 1224 lvx 31,11,1 1225 ld 26,400(1) 1226 ld 27,408(1) 1227 ld 28,416(1) 1228 ld 29,424(1) 1229 ld 30,432(1) 1230 ld 31,440(1) 1231 addi 1,1,448 1232 blr 1233.long 0 1234.byte 0,12,0x04,0,0x80,6,6,0 1235.long 0 1236 1237.globl aes_p8_ctr32_encrypt_blocks 1238.type aes_p8_ctr32_encrypt_blocks,@function 1239.section ".opd","aw" 1240.align 3 1241aes_p8_ctr32_encrypt_blocks: 1242.quad .aes_p8_ctr32_encrypt_blocks,.TOC.@tocbase,0 1243.previous 1244 1245.align 5 1246.aes_p8_ctr32_encrypt_blocks: 1247 cmpldi 5,1 1248 bltlr 1249 1250 lis 0,0xfff0 1251 mfspr 12,256 1252 mtspr 256,0 1253 1254 li 10,15 1255 vxor 0,0,0 1256 1257 1258 lvx 4,0,7 1259 lvsl 6,0,7 1260 lvx 5,10,7 1261 vspltisb 11,1 1262 1263 vperm 4,4,5,6 1264 vsldoi 11,0,11,1 1265 1266 neg 11,3 1267 lvsl 10,0,6 1268 lwz 9,240(6) 1269 1270 lvsr 6,0,11 1271 lvx 5,0,3 1272 addi 3,3,15 1273 1274 1275 srwi 9,9,1 1276 li 10,16 1277 subi 9,9,1 1278 1279 cmpldi 5,8 1280 bge _aesp8_ctr32_encrypt8x 1281 1282 lvsr 8,0,4 1283 vspltisb 9,-1 1284 lvx 7,0,4 1285 vperm 9,0,9,8 1286 1287 1288 lvx 0,0,6 1289 mtctr 9 1290 lvx 1,10,6 1291 addi 10,10,16 1292 vperm 0,0,1,10 1293 vxor 2,4,0 1294 lvx 0,10,6 1295 addi 10,10,16 1296 b .Loop_ctr32_enc 1297 1298.align 5 1299.Loop_ctr32_enc: 1300 vperm 1,1,0,10 1301.long 0x10420D08 1302 lvx 1,10,6 1303 addi 10,10,16 1304 vperm 0,0,1,10 1305.long 0x10420508 1306 lvx 0,10,6 1307 addi 10,10,16 1308 bc 16,0,.Loop_ctr32_enc 1309 1310 vadduwm 4,4,11 1311 vor 3,5,5 1312 lvx 5,0,3 1313 addi 3,3,16 1314 subic. 5,5,1 1315 1316 vperm 1,1,0,10 1317.long 0x10420D08 1318 lvx 1,10,6 1319 vperm 3,3,5,6 1320 li 10,16 1321 vperm 1,0,1,10 1322 lvx 0,0,6 1323 vxor 3,3,1 1324.long 0x10421D09 1325 1326 lvx 1,10,6 1327 addi 10,10,16 1328 vperm 2,2,2,8 1329 vsel 3,7,2,9 1330 mtctr 9 1331 vperm 0,0,1,10 1332 vor 7,2,2 1333 vxor 2,4,0 1334 lvx 0,10,6 1335 addi 10,10,16 1336 stvx 3,0,4 1337 addi 4,4,16 1338 bne .Loop_ctr32_enc 1339 1340 addi 4,4,-1 1341 lvx 2,0,4 1342 vsel 2,7,2,9 1343 stvx 2,0,4 1344 1345 mtspr 256,12 1346 blr 1347.long 0 1348.byte 0,12,0x14,0,0,0,6,0 1349.long 0 1350.align 5 1351_aesp8_ctr32_encrypt8x: 1352 stdu 1,-448(1) 1353 li 10,207 1354 li 11,223 1355 stvx 20,10,1 1356 addi 10,10,32 1357 stvx 21,11,1 1358 addi 11,11,32 1359 stvx 22,10,1 1360 addi 10,10,32 1361 stvx 23,11,1 1362 addi 11,11,32 1363 stvx 24,10,1 1364 addi 10,10,32 1365 stvx 25,11,1 1366 addi 11,11,32 1367 stvx 26,10,1 1368 addi 10,10,32 1369 stvx 27,11,1 1370 addi 11,11,32 1371 stvx 28,10,1 1372 addi 10,10,32 1373 stvx 29,11,1 1374 addi 11,11,32 1375 stvx 30,10,1 1376 stvx 31,11,1 1377 li 0,-1 1378 stw 12,396(1) 1379 li 8,0x10 1380 std 26,400(1) 1381 li 26,0x20 1382 std 27,408(1) 1383 li 27,0x30 1384 std 28,416(1) 1385 li 28,0x40 1386 std 29,424(1) 1387 li 29,0x50 1388 std 30,432(1) 1389 li 30,0x60 1390 std 31,440(1) 1391 li 31,0x70 1392 mtspr 256,0 1393 1394 subi 9,9,3 1395 1396 lvx 23,0,6 1397 lvx 30,8,6 1398 addi 6,6,0x20 1399 lvx 31,0,6 1400 vperm 23,23,30,10 1401 addi 11,1,64+15 1402 mtctr 9 1403 1404.Load_ctr32_enc_key: 1405 vperm 24,30,31,10 1406 lvx 30,8,6 1407 addi 6,6,0x20 1408 stvx 24,0,11 1409 vperm 25,31,30,10 1410 lvx 31,0,6 1411 stvx 25,8,11 1412 addi 11,11,0x20 1413 bc 16,0,.Load_ctr32_enc_key 1414 1415 lvx 26,8,6 1416 vperm 24,30,31,10 1417 lvx 27,26,6 1418 stvx 24,0,11 1419 vperm 25,31,26,10 1420 lvx 28,27,6 1421 stvx 25,8,11 1422 addi 11,1,64+15 1423 vperm 26,26,27,10 1424 lvx 29,28,6 1425 vperm 27,27,28,10 1426 lvx 30,29,6 1427 vperm 28,28,29,10 1428 lvx 31,30,6 1429 vperm 29,29,30,10 1430 lvx 15,31,6 1431 vperm 30,30,31,10 1432 lvx 24,0,11 1433 vperm 31,31,15,10 1434 lvx 25,8,11 1435 1436 vadduwm 7,11,11 1437 subi 3,3,15 1438 sldi 5,5,4 1439 1440 vadduwm 16,4,11 1441 vadduwm 17,4,7 1442 vxor 15,4,23 1443 1444 vadduwm 18,16,7 1445 vxor 16,16,23 1446 1447 vadduwm 19,17,7 1448 vxor 17,17,23 1449 1450 vadduwm 20,18,7 1451 vxor 18,18,23 1452 1453 vadduwm 21,19,7 1454 vxor 19,19,23 1455 vadduwm 22,20,7 1456 vxor 20,20,23 1457 vadduwm 4,21,7 1458 vxor 21,21,23 1459 vxor 22,22,23 1460 1461 mtctr 9 1462 b .Loop_ctr32_enc8x 1463.align 5 1464.Loop_ctr32_enc8x: 1465.long 0x11EFC508 1466.long 0x1210C508 1467.long 0x1231C508 1468.long 0x1252C508 1469.long 0x1273C508 1470.long 0x1294C508 1471.long 0x12B5C508 1472.long 0x12D6C508 1473.Loop_ctr32_enc8x_middle: 1474 lvx 24,26,11 1475 addi 11,11,0x20 1476 1477.long 0x11EFCD08 1478.long 0x1210CD08 1479.long 0x1231CD08 1480.long 0x1252CD08 1481.long 0x1273CD08 1482.long 0x1294CD08 1483.long 0x12B5CD08 1484.long 0x12D6CD08 1485 lvx 25,8,11 1486 bc 16,0,.Loop_ctr32_enc8x 1487 1488 subic 11,5,256 1489.long 0x11EFC508 1490.long 0x1210C508 1491.long 0x1231C508 1492.long 0x1252C508 1493.long 0x1273C508 1494.long 0x1294C508 1495.long 0x12B5C508 1496.long 0x12D6C508 1497 1498 subfe 0,0,0 1499.long 0x11EFCD08 1500.long 0x1210CD08 1501.long 0x1231CD08 1502.long 0x1252CD08 1503.long 0x1273CD08 1504.long 0x1294CD08 1505.long 0x12B5CD08 1506.long 0x12D6CD08 1507 1508 and 0,0,11 1509 addi 11,1,64+15 1510.long 0x11EFD508 1511.long 0x1210D508 1512.long 0x1231D508 1513.long 0x1252D508 1514.long 0x1273D508 1515.long 0x1294D508 1516.long 0x12B5D508 1517.long 0x12D6D508 1518 lvx 24,0,11 1519 1520 subic 5,5,129 1521.long 0x11EFDD08 1522 addi 5,5,1 1523.long 0x1210DD08 1524.long 0x1231DD08 1525.long 0x1252DD08 1526.long 0x1273DD08 1527.long 0x1294DD08 1528.long 0x12B5DD08 1529.long 0x12D6DD08 1530 lvx 25,8,11 1531 1532.long 0x11EFE508 1533.long 0x7C001E99 1534.long 0x1210E508 1535.long 0x7C281E99 1536.long 0x1231E508 1537.long 0x7C5A1E99 1538.long 0x1252E508 1539.long 0x7C7B1E99 1540.long 0x1273E508 1541.long 0x7D5C1E99 1542.long 0x1294E508 1543.long 0x7D9D1E99 1544.long 0x12B5E508 1545.long 0x7DBE1E99 1546.long 0x12D6E508 1547.long 0x7DDF1E99 1548 addi 3,3,0x80 1549 1550.long 0x11EFED08 1551 1552.long 0x1210ED08 1553 1554.long 0x1231ED08 1555 1556.long 0x1252ED08 1557 1558.long 0x1273ED08 1559 1560.long 0x1294ED08 1561 1562.long 0x12B5ED08 1563 1564.long 0x12D6ED08 1565 1566 1567 add 3,3,0 1568 1569 1570 1571 subfe. 0,0,0 1572.long 0x11EFF508 1573 vxor 0,0,31 1574.long 0x1210F508 1575 vxor 1,1,31 1576.long 0x1231F508 1577 vxor 2,2,31 1578.long 0x1252F508 1579 vxor 3,3,31 1580.long 0x1273F508 1581 vxor 10,10,31 1582.long 0x1294F508 1583 vxor 12,12,31 1584.long 0x12B5F508 1585 vxor 13,13,31 1586.long 0x12D6F508 1587 vxor 14,14,31 1588 1589 bne .Lctr32_enc8x_break 1590 1591.long 0x100F0509 1592.long 0x10300D09 1593 vadduwm 16,4,11 1594.long 0x10511509 1595 vadduwm 17,4,7 1596 vxor 15,4,23 1597.long 0x10721D09 1598 vadduwm 18,16,7 1599 vxor 16,16,23 1600.long 0x11535509 1601 vadduwm 19,17,7 1602 vxor 17,17,23 1603.long 0x11946509 1604 vadduwm 20,18,7 1605 vxor 18,18,23 1606.long 0x11B56D09 1607 vadduwm 21,19,7 1608 vxor 19,19,23 1609.long 0x11D67509 1610 vadduwm 22,20,7 1611 vxor 20,20,23 1612 1613 vadduwm 4,21,7 1614 vxor 21,21,23 1615 1616 vxor 22,22,23 1617 mtctr 9 1618 1619.long 0x11EFC508 1620.long 0x7C002799 1621 1622.long 0x1210C508 1623.long 0x7C282799 1624 1625.long 0x1231C508 1626.long 0x7C5A2799 1627 1628.long 0x1252C508 1629.long 0x7C7B2799 1630 1631.long 0x1273C508 1632.long 0x7D5C2799 1633 1634.long 0x1294C508 1635.long 0x7D9D2799 1636 1637.long 0x12B5C508 1638.long 0x7DBE2799 1639.long 0x12D6C508 1640.long 0x7DDF2799 1641 addi 4,4,0x80 1642 1643 b .Loop_ctr32_enc8x_middle 1644 1645.align 5 1646.Lctr32_enc8x_break: 1647 cmpwi 5,-0x60 1648 blt .Lctr32_enc8x_one 1649 nop 1650 beq .Lctr32_enc8x_two 1651 cmpwi 5,-0x40 1652 blt .Lctr32_enc8x_three 1653 nop 1654 beq .Lctr32_enc8x_four 1655 cmpwi 5,-0x20 1656 blt .Lctr32_enc8x_five 1657 nop 1658 beq .Lctr32_enc8x_six 1659 cmpwi 5,0x00 1660 blt .Lctr32_enc8x_seven 1661 1662.Lctr32_enc8x_eight: 1663.long 0x11EF0509 1664.long 0x12100D09 1665.long 0x12311509 1666.long 0x12521D09 1667.long 0x12735509 1668.long 0x12946509 1669.long 0x12B56D09 1670.long 0x12D67509 1671 1672 1673 1674.long 0x7DE02799 1675 1676.long 0x7E082799 1677 1678.long 0x7E3A2799 1679 1680.long 0x7E5B2799 1681 1682.long 0x7E7C2799 1683 1684.long 0x7E9D2799 1685 1686.long 0x7EBE2799 1687.long 0x7EDF2799 1688 addi 4,4,0x80 1689 b .Lctr32_enc8x_done 1690 1691.align 5 1692.Lctr32_enc8x_seven: 1693.long 0x11EF0D09 1694.long 0x12101509 1695.long 0x12311D09 1696.long 0x12525509 1697.long 0x12736509 1698.long 0x12946D09 1699.long 0x12B57509 1700 1701 1702 1703.long 0x7DE02799 1704 1705.long 0x7E082799 1706 1707.long 0x7E3A2799 1708 1709.long 0x7E5B2799 1710 1711.long 0x7E7C2799 1712 1713.long 0x7E9D2799 1714.long 0x7EBE2799 1715 addi 4,4,0x70 1716 b .Lctr32_enc8x_done 1717 1718.align 5 1719.Lctr32_enc8x_six: 1720.long 0x11EF1509 1721.long 0x12101D09 1722.long 0x12315509 1723.long 0x12526509 1724.long 0x12736D09 1725.long 0x12947509 1726 1727 1728 1729.long 0x7DE02799 1730 1731.long 0x7E082799 1732 1733.long 0x7E3A2799 1734 1735.long 0x7E5B2799 1736 1737.long 0x7E7C2799 1738.long 0x7E9D2799 1739 addi 4,4,0x60 1740 b .Lctr32_enc8x_done 1741 1742.align 5 1743.Lctr32_enc8x_five: 1744.long 0x11EF1D09 1745.long 0x12105509 1746.long 0x12316509 1747.long 0x12526D09 1748.long 0x12737509 1749 1750 1751 1752.long 0x7DE02799 1753 1754.long 0x7E082799 1755 1756.long 0x7E3A2799 1757 1758.long 0x7E5B2799 1759.long 0x7E7C2799 1760 addi 4,4,0x50 1761 b .Lctr32_enc8x_done 1762 1763.align 5 1764.Lctr32_enc8x_four: 1765.long 0x11EF5509 1766.long 0x12106509 1767.long 0x12316D09 1768.long 0x12527509 1769 1770 1771 1772.long 0x7DE02799 1773 1774.long 0x7E082799 1775 1776.long 0x7E3A2799 1777.long 0x7E5B2799 1778 addi 4,4,0x40 1779 b .Lctr32_enc8x_done 1780 1781.align 5 1782.Lctr32_enc8x_three: 1783.long 0x11EF6509 1784.long 0x12106D09 1785.long 0x12317509 1786 1787 1788 1789.long 0x7DE02799 1790 1791.long 0x7E082799 1792.long 0x7E3A2799 1793 addi 4,4,0x30 1794 b .Lcbc_dec8x_done 1795 1796.align 5 1797.Lctr32_enc8x_two: 1798.long 0x11EF6D09 1799.long 0x12107509 1800 1801 1802 1803.long 0x7DE02799 1804.long 0x7E082799 1805 addi 4,4,0x20 1806 b .Lcbc_dec8x_done 1807 1808.align 5 1809.Lctr32_enc8x_one: 1810.long 0x11EF7509 1811 1812 1813.long 0x7DE02799 1814 addi 4,4,0x10 1815 1816.Lctr32_enc8x_done: 1817 li 10,79 1818 li 11,95 1819 stvx 6,10,1 1820 addi 10,10,32 1821 stvx 6,11,1 1822 addi 11,11,32 1823 stvx 6,10,1 1824 addi 10,10,32 1825 stvx 6,11,1 1826 addi 11,11,32 1827 stvx 6,10,1 1828 addi 10,10,32 1829 stvx 6,11,1 1830 addi 11,11,32 1831 stvx 6,10,1 1832 addi 10,10,32 1833 stvx 6,11,1 1834 addi 11,11,32 1835 1836 mtspr 256,12 1837 lvx 20,10,1 1838 addi 10,10,32 1839 lvx 21,11,1 1840 addi 11,11,32 1841 lvx 22,10,1 1842 addi 10,10,32 1843 lvx 23,11,1 1844 addi 11,11,32 1845 lvx 24,10,1 1846 addi 10,10,32 1847 lvx 25,11,1 1848 addi 11,11,32 1849 lvx 26,10,1 1850 addi 10,10,32 1851 lvx 27,11,1 1852 addi 11,11,32 1853 lvx 28,10,1 1854 addi 10,10,32 1855 lvx 29,11,1 1856 addi 11,11,32 1857 lvx 30,10,1 1858 lvx 31,11,1 1859 ld 26,400(1) 1860 ld 27,408(1) 1861 ld 28,416(1) 1862 ld 29,424(1) 1863 ld 30,432(1) 1864 ld 31,440(1) 1865 addi 1,1,448 1866 blr 1867.long 0 1868.byte 0,12,0x04,0,0x80,6,6,0 1869.long 0 1870 1871.globl aes_p8_xts_encrypt 1872.type aes_p8_xts_encrypt,@function 1873.section ".opd","aw" 1874.align 3 1875aes_p8_xts_encrypt: 1876.quad .aes_p8_xts_encrypt,.TOC.@tocbase,0 1877.previous 1878 1879.align 5 1880.aes_p8_xts_encrypt: 1881 mr 10,3 1882 li 3,-1 1883 cmpldi 5,16 1884 bltlr 1885 1886 lis 0,0xfff0 1887 mfspr 12,256 1888 li 11,0 1889 mtspr 256,0 1890 1891 vspltisb 9,0x07 1892 1893 1894 1895 1896 li 3,15 1897 lvx 8,0,8 1898 lvsl 5,0,8 1899 lvx 4,3,8 1900 1901 vperm 8,8,4,5 1902 1903 neg 11,10 1904 lvsr 5,0,11 1905 lvx 2,0,10 1906 addi 10,10,15 1907 1908 1909 cmpldi 7,0 1910 beq .Lxts_enc_no_key2 1911 1912 lvsl 7,0,7 1913 lwz 9,240(7) 1914 srwi 9,9,1 1915 subi 9,9,1 1916 li 3,16 1917 1918 lvx 0,0,7 1919 lvx 1,3,7 1920 addi 3,3,16 1921 vperm 0,0,1,7 1922 vxor 8,8,0 1923 lvx 0,3,7 1924 addi 3,3,16 1925 mtctr 9 1926 1927.Ltweak_xts_enc: 1928 vperm 1,1,0,7 1929.long 0x11080D08 1930 lvx 1,3,7 1931 addi 3,3,16 1932 vperm 0,0,1,7 1933.long 0x11080508 1934 lvx 0,3,7 1935 addi 3,3,16 1936 bc 16,0,.Ltweak_xts_enc 1937 1938 vperm 1,1,0,7 1939.long 0x11080D08 1940 lvx 1,3,7 1941 vperm 0,0,1,7 1942.long 0x11080509 1943 1944 li 8,0 1945 b .Lxts_enc 1946 1947.Lxts_enc_no_key2: 1948 li 3,-16 1949 and 5,5,3 1950 1951 1952.Lxts_enc: 1953 lvx 4,0,10 1954 addi 10,10,16 1955 1956 lvsl 7,0,6 1957 lwz 9,240(6) 1958 srwi 9,9,1 1959 subi 9,9,1 1960 li 3,16 1961 1962 vslb 10,9,9 1963 vor 10,10,9 1964 vspltisb 11,1 1965 vsldoi 10,10,11,15 1966 1967 cmpldi 5,96 1968 bge _aesp8_xts_encrypt6x 1969 1970 andi. 7,5,15 1971 subic 0,5,32 1972 subi 7,7,16 1973 subfe 0,0,0 1974 and 0,0,7 1975 add 10,10,0 1976 1977 lvx 0,0,6 1978 lvx 1,3,6 1979 addi 3,3,16 1980 vperm 2,2,4,5 1981 vperm 0,0,1,7 1982 vxor 2,2,8 1983 vxor 2,2,0 1984 lvx 0,3,6 1985 addi 3,3,16 1986 mtctr 9 1987 b .Loop_xts_enc 1988 1989.align 5 1990.Loop_xts_enc: 1991 vperm 1,1,0,7 1992.long 0x10420D08 1993 lvx 1,3,6 1994 addi 3,3,16 1995 vperm 0,0,1,7 1996.long 0x10420508 1997 lvx 0,3,6 1998 addi 3,3,16 1999 bc 16,0,.Loop_xts_enc 2000 2001 vperm 1,1,0,7 2002.long 0x10420D08 2003 lvx 1,3,6 2004 li 3,16 2005 vperm 0,0,1,7 2006 vxor 0,0,8 2007.long 0x10620509 2008 2009 2010 nop 2011 2012.long 0x7C602799 2013 addi 4,4,16 2014 2015 subic. 5,5,16 2016 beq .Lxts_enc_done 2017 2018 vor 2,4,4 2019 lvx 4,0,10 2020 addi 10,10,16 2021 lvx 0,0,6 2022 lvx 1,3,6 2023 addi 3,3,16 2024 2025 subic 0,5,32 2026 subfe 0,0,0 2027 and 0,0,7 2028 add 10,10,0 2029 2030 vsrab 11,8,9 2031 vaddubm 8,8,8 2032 vsldoi 11,11,11,15 2033 vand 11,11,10 2034 vxor 8,8,11 2035 2036 vperm 2,2,4,5 2037 vperm 0,0,1,7 2038 vxor 2,2,8 2039 vxor 3,3,0 2040 vxor 2,2,0 2041 lvx 0,3,6 2042 addi 3,3,16 2043 2044 mtctr 9 2045 cmpldi 5,16 2046 bge .Loop_xts_enc 2047 2048 vxor 3,3,8 2049 lvsr 5,0,5 2050 vxor 4,4,4 2051 vspltisb 11,-1 2052 vperm 4,4,11,5 2053 vsel 2,2,3,4 2054 2055 subi 11,4,17 2056 subi 4,4,16 2057 mtctr 5 2058 li 5,16 2059.Loop_xts_enc_steal: 2060 lbzu 0,1(11) 2061 stb 0,16(11) 2062 bc 16,0,.Loop_xts_enc_steal 2063 2064 mtctr 9 2065 b .Loop_xts_enc 2066 2067.Lxts_enc_done: 2068 cmpldi 8,0 2069 beq .Lxts_enc_ret 2070 2071 vsrab 11,8,9 2072 vaddubm 8,8,8 2073 vsldoi 11,11,11,15 2074 vand 11,11,10 2075 vxor 8,8,11 2076 2077 2078.long 0x7D004799 2079 2080.Lxts_enc_ret: 2081 mtspr 256,12 2082 li 3,0 2083 blr 2084.long 0 2085.byte 0,12,0x04,0,0x80,6,6,0 2086.long 0 2087 2088 2089.globl aes_p8_xts_decrypt 2090.type aes_p8_xts_decrypt,@function 2091.section ".opd","aw" 2092.align 3 2093aes_p8_xts_decrypt: 2094.quad .aes_p8_xts_decrypt,.TOC.@tocbase,0 2095.previous 2096 2097.align 5 2098.aes_p8_xts_decrypt: 2099 mr 10,3 2100 li 3,-1 2101 cmpldi 5,16 2102 bltlr 2103 2104 lis 0,0xfff8 2105 mfspr 12,256 2106 li 11,0 2107 mtspr 256,0 2108 2109 andi. 0,5,15 2110 neg 0,0 2111 andi. 0,0,16 2112 sub 5,5,0 2113 2114 vspltisb 9,0x07 2115 2116 2117 2118 2119 li 3,15 2120 lvx 8,0,8 2121 lvsl 5,0,8 2122 lvx 4,3,8 2123 2124 vperm 8,8,4,5 2125 2126 neg 11,10 2127 lvsr 5,0,11 2128 lvx 2,0,10 2129 addi 10,10,15 2130 2131 2132 cmpldi 7,0 2133 beq .Lxts_dec_no_key2 2134 2135 lvsl 7,0,7 2136 lwz 9,240(7) 2137 srwi 9,9,1 2138 subi 9,9,1 2139 li 3,16 2140 2141 lvx 0,0,7 2142 lvx 1,3,7 2143 addi 3,3,16 2144 vperm 0,0,1,7 2145 vxor 8,8,0 2146 lvx 0,3,7 2147 addi 3,3,16 2148 mtctr 9 2149 2150.Ltweak_xts_dec: 2151 vperm 1,1,0,7 2152.long 0x11080D08 2153 lvx 1,3,7 2154 addi 3,3,16 2155 vperm 0,0,1,7 2156.long 0x11080508 2157 lvx 0,3,7 2158 addi 3,3,16 2159 bc 16,0,.Ltweak_xts_dec 2160 2161 vperm 1,1,0,7 2162.long 0x11080D08 2163 lvx 1,3,7 2164 vperm 0,0,1,7 2165.long 0x11080509 2166 2167 li 8,0 2168 b .Lxts_dec 2169 2170.Lxts_dec_no_key2: 2171 neg 3,5 2172 andi. 3,3,15 2173 add 5,5,3 2174 2175 2176.Lxts_dec: 2177 lvx 4,0,10 2178 addi 10,10,16 2179 2180 lvsl 7,0,6 2181 lwz 9,240(6) 2182 srwi 9,9,1 2183 subi 9,9,1 2184 li 3,16 2185 2186 vslb 10,9,9 2187 vor 10,10,9 2188 vspltisb 11,1 2189 vsldoi 10,10,11,15 2190 2191 cmpldi 5,96 2192 bge _aesp8_xts_decrypt6x 2193 2194 lvx 0,0,6 2195 lvx 1,3,6 2196 addi 3,3,16 2197 vperm 2,2,4,5 2198 vperm 0,0,1,7 2199 vxor 2,2,8 2200 vxor 2,2,0 2201 lvx 0,3,6 2202 addi 3,3,16 2203 mtctr 9 2204 2205 cmpldi 5,16 2206 blt .Ltail_xts_dec 2207 b .Loop_xts_dec 2208 2209.align 5 2210.Loop_xts_dec: 2211 vperm 1,1,0,7 2212.long 0x10420D48 2213 lvx 1,3,6 2214 addi 3,3,16 2215 vperm 0,0,1,7 2216.long 0x10420548 2217 lvx 0,3,6 2218 addi 3,3,16 2219 bc 16,0,.Loop_xts_dec 2220 2221 vperm 1,1,0,7 2222.long 0x10420D48 2223 lvx 1,3,6 2224 li 3,16 2225 vperm 0,0,1,7 2226 vxor 0,0,8 2227.long 0x10620549 2228 2229 2230 nop 2231 2232.long 0x7C602799 2233 addi 4,4,16 2234 2235 subic. 5,5,16 2236 beq .Lxts_dec_done 2237 2238 vor 2,4,4 2239 lvx 4,0,10 2240 addi 10,10,16 2241 lvx 0,0,6 2242 lvx 1,3,6 2243 addi 3,3,16 2244 2245 vsrab 11,8,9 2246 vaddubm 8,8,8 2247 vsldoi 11,11,11,15 2248 vand 11,11,10 2249 vxor 8,8,11 2250 2251 vperm 2,2,4,5 2252 vperm 0,0,1,7 2253 vxor 2,2,8 2254 vxor 2,2,0 2255 lvx 0,3,6 2256 addi 3,3,16 2257 2258 mtctr 9 2259 cmpldi 5,16 2260 bge .Loop_xts_dec 2261 2262.Ltail_xts_dec: 2263 vsrab 11,8,9 2264 vaddubm 12,8,8 2265 vsldoi 11,11,11,15 2266 vand 11,11,10 2267 vxor 12,12,11 2268 2269 subi 10,10,16 2270 add 10,10,5 2271 2272 vxor 2,2,8 2273 vxor 2,2,12 2274 2275.Loop_xts_dec_short: 2276 vperm 1,1,0,7 2277.long 0x10420D48 2278 lvx 1,3,6 2279 addi 3,3,16 2280 vperm 0,0,1,7 2281.long 0x10420548 2282 lvx 0,3,6 2283 addi 3,3,16 2284 bc 16,0,.Loop_xts_dec_short 2285 2286 vperm 1,1,0,7 2287.long 0x10420D48 2288 lvx 1,3,6 2289 li 3,16 2290 vperm 0,0,1,7 2291 vxor 0,0,12 2292.long 0x10620549 2293 2294 2295 nop 2296 2297.long 0x7C602799 2298 2299 vor 2,4,4 2300 lvx 4,0,10 2301 2302 lvx 0,0,6 2303 lvx 1,3,6 2304 addi 3,3,16 2305 vperm 2,2,4,5 2306 vperm 0,0,1,7 2307 2308 lvsr 5,0,5 2309 vxor 4,4,4 2310 vspltisb 11,-1 2311 vperm 4,4,11,5 2312 vsel 2,2,3,4 2313 2314 vxor 0,0,8 2315 vxor 2,2,0 2316 lvx 0,3,6 2317 addi 3,3,16 2318 2319 subi 11,4,1 2320 mtctr 5 2321 li 5,16 2322.Loop_xts_dec_steal: 2323 lbzu 0,1(11) 2324 stb 0,16(11) 2325 bc 16,0,.Loop_xts_dec_steal 2326 2327 mtctr 9 2328 b .Loop_xts_dec 2329 2330.Lxts_dec_done: 2331 cmpldi 8,0 2332 beq .Lxts_dec_ret 2333 2334 vsrab 11,8,9 2335 vaddubm 8,8,8 2336 vsldoi 11,11,11,15 2337 vand 11,11,10 2338 vxor 8,8,11 2339 2340 2341.long 0x7D004799 2342 2343.Lxts_dec_ret: 2344 mtspr 256,12 2345 li 3,0 2346 blr 2347.long 0 2348.byte 0,12,0x04,0,0x80,6,6,0 2349.long 0 2350 2351.align 5 2352_aesp8_xts_encrypt6x: 2353 stdu 1,-448(1) 2354 mflr 11 2355 li 7,207 2356 li 3,223 2357 std 11,464(1) 2358 stvx 20,7,1 2359 addi 7,7,32 2360 stvx 21,3,1 2361 addi 3,3,32 2362 stvx 22,7,1 2363 addi 7,7,32 2364 stvx 23,3,1 2365 addi 3,3,32 2366 stvx 24,7,1 2367 addi 7,7,32 2368 stvx 25,3,1 2369 addi 3,3,32 2370 stvx 26,7,1 2371 addi 7,7,32 2372 stvx 27,3,1 2373 addi 3,3,32 2374 stvx 28,7,1 2375 addi 7,7,32 2376 stvx 29,3,1 2377 addi 3,3,32 2378 stvx 30,7,1 2379 stvx 31,3,1 2380 li 0,-1 2381 stw 12,396(1) 2382 li 3,0x10 2383 std 26,400(1) 2384 li 26,0x20 2385 std 27,408(1) 2386 li 27,0x30 2387 std 28,416(1) 2388 li 28,0x40 2389 std 29,424(1) 2390 li 29,0x50 2391 std 30,432(1) 2392 li 30,0x60 2393 std 31,440(1) 2394 li 31,0x70 2395 mtspr 256,0 2396 2397 subi 9,9,3 2398 2399 lvx 23,0,6 2400 lvx 30,3,6 2401 addi 6,6,0x20 2402 lvx 31,0,6 2403 vperm 23,23,30,7 2404 addi 7,1,64+15 2405 mtctr 9 2406 2407.Load_xts_enc_key: 2408 vperm 24,30,31,7 2409 lvx 30,3,6 2410 addi 6,6,0x20 2411 stvx 24,0,7 2412 vperm 25,31,30,7 2413 lvx 31,0,6 2414 stvx 25,3,7 2415 addi 7,7,0x20 2416 bc 16,0,.Load_xts_enc_key 2417 2418 lvx 26,3,6 2419 vperm 24,30,31,7 2420 lvx 27,26,6 2421 stvx 24,0,7 2422 vperm 25,31,26,7 2423 lvx 28,27,6 2424 stvx 25,3,7 2425 addi 7,1,64+15 2426 vperm 26,26,27,7 2427 lvx 29,28,6 2428 vperm 27,27,28,7 2429 lvx 30,29,6 2430 vperm 28,28,29,7 2431 lvx 31,30,6 2432 vperm 29,29,30,7 2433 lvx 22,31,6 2434 vperm 30,30,31,7 2435 lvx 24,0,7 2436 vperm 31,31,22,7 2437 lvx 25,3,7 2438 2439 vperm 0,2,4,5 2440 subi 10,10,31 2441 vxor 17,8,23 2442 vsrab 11,8,9 2443 vaddubm 8,8,8 2444 vsldoi 11,11,11,15 2445 vand 11,11,10 2446 vxor 7,0,17 2447 vxor 8,8,11 2448 2449.long 0x7C235699 2450 vxor 18,8,23 2451 vsrab 11,8,9 2452 vaddubm 8,8,8 2453 vsldoi 11,11,11,15 2454 2455 vand 11,11,10 2456 vxor 12,1,18 2457 vxor 8,8,11 2458 2459.long 0x7C5A5699 2460 andi. 31,5,15 2461 vxor 19,8,23 2462 vsrab 11,8,9 2463 vaddubm 8,8,8 2464 vsldoi 11,11,11,15 2465 2466 vand 11,11,10 2467 vxor 13,2,19 2468 vxor 8,8,11 2469 2470.long 0x7C7B5699 2471 sub 5,5,31 2472 vxor 20,8,23 2473 vsrab 11,8,9 2474 vaddubm 8,8,8 2475 vsldoi 11,11,11,15 2476 2477 vand 11,11,10 2478 vxor 14,3,20 2479 vxor 8,8,11 2480 2481.long 0x7C9C5699 2482 subi 5,5,0x60 2483 vxor 21,8,23 2484 vsrab 11,8,9 2485 vaddubm 8,8,8 2486 vsldoi 11,11,11,15 2487 2488 vand 11,11,10 2489 vxor 15,4,21 2490 vxor 8,8,11 2491 2492.long 0x7CBD5699 2493 addi 10,10,0x60 2494 vxor 22,8,23 2495 vsrab 11,8,9 2496 vaddubm 8,8,8 2497 vsldoi 11,11,11,15 2498 2499 vand 11,11,10 2500 vxor 16,5,22 2501 vxor 8,8,11 2502 2503 vxor 31,31,23 2504 mtctr 9 2505 b .Loop_xts_enc6x 2506 2507.align 5 2508.Loop_xts_enc6x: 2509.long 0x10E7C508 2510.long 0x118CC508 2511.long 0x11ADC508 2512.long 0x11CEC508 2513.long 0x11EFC508 2514.long 0x1210C508 2515 lvx 24,26,7 2516 addi 7,7,0x20 2517 2518.long 0x10E7CD08 2519.long 0x118CCD08 2520.long 0x11ADCD08 2521.long 0x11CECD08 2522.long 0x11EFCD08 2523.long 0x1210CD08 2524 lvx 25,3,7 2525 bc 16,0,.Loop_xts_enc6x 2526 2527 subic 5,5,96 2528 vxor 0,17,31 2529.long 0x10E7C508 2530.long 0x118CC508 2531 vsrab 11,8,9 2532 vxor 17,8,23 2533 vaddubm 8,8,8 2534.long 0x11ADC508 2535.long 0x11CEC508 2536 vsldoi 11,11,11,15 2537.long 0x11EFC508 2538.long 0x1210C508 2539 2540 subfe. 0,0,0 2541 vand 11,11,10 2542.long 0x10E7CD08 2543.long 0x118CCD08 2544 vxor 8,8,11 2545.long 0x11ADCD08 2546.long 0x11CECD08 2547 vxor 1,18,31 2548 vsrab 11,8,9 2549 vxor 18,8,23 2550.long 0x11EFCD08 2551.long 0x1210CD08 2552 2553 and 0,0,5 2554 vaddubm 8,8,8 2555 vsldoi 11,11,11,15 2556.long 0x10E7D508 2557.long 0x118CD508 2558 vand 11,11,10 2559.long 0x11ADD508 2560.long 0x11CED508 2561 vxor 8,8,11 2562.long 0x11EFD508 2563.long 0x1210D508 2564 2565 add 10,10,0 2566 2567 2568 2569 vxor 2,19,31 2570 vsrab 11,8,9 2571 vxor 19,8,23 2572 vaddubm 8,8,8 2573.long 0x10E7DD08 2574.long 0x118CDD08 2575 vsldoi 11,11,11,15 2576.long 0x11ADDD08 2577.long 0x11CEDD08 2578 vand 11,11,10 2579.long 0x11EFDD08 2580.long 0x1210DD08 2581 2582 addi 7,1,64+15 2583 vxor 8,8,11 2584.long 0x10E7E508 2585.long 0x118CE508 2586 vxor 3,20,31 2587 vsrab 11,8,9 2588 vxor 20,8,23 2589.long 0x11ADE508 2590.long 0x11CEE508 2591 vaddubm 8,8,8 2592 vsldoi 11,11,11,15 2593.long 0x11EFE508 2594.long 0x1210E508 2595 lvx 24,0,7 2596 vand 11,11,10 2597 2598.long 0x10E7ED08 2599.long 0x118CED08 2600 vxor 8,8,11 2601.long 0x11ADED08 2602.long 0x11CEED08 2603 vxor 4,21,31 2604 vsrab 11,8,9 2605 vxor 21,8,23 2606.long 0x11EFED08 2607.long 0x1210ED08 2608 lvx 25,3,7 2609 vaddubm 8,8,8 2610 vsldoi 11,11,11,15 2611 2612.long 0x10E7F508 2613.long 0x118CF508 2614 vand 11,11,10 2615.long 0x11ADF508 2616.long 0x11CEF508 2617 vxor 8,8,11 2618.long 0x11EFF508 2619.long 0x1210F508 2620 vxor 5,22,31 2621 vsrab 11,8,9 2622 vxor 22,8,23 2623 2624.long 0x10E70509 2625.long 0x7C005699 2626 vaddubm 8,8,8 2627 vsldoi 11,11,11,15 2628.long 0x118C0D09 2629.long 0x7C235699 2630.long 0x11AD1509 2631 2632.long 0x7C5A5699 2633 vand 11,11,10 2634.long 0x11CE1D09 2635 2636.long 0x7C7B5699 2637.long 0x11EF2509 2638 2639.long 0x7C9C5699 2640 vxor 8,8,11 2641.long 0x11702D09 2642 2643 2644.long 0x7CBD5699 2645 addi 10,10,0x60 2646 2647 2648 2649 2650 2651.long 0x7CE02799 2652 vxor 7,0,17 2653 2654.long 0x7D832799 2655 vxor 12,1,18 2656 2657.long 0x7DBA2799 2658 vxor 13,2,19 2659 2660.long 0x7DDB2799 2661 vxor 14,3,20 2662 2663.long 0x7DFC2799 2664 vxor 15,4,21 2665 2666.long 0x7D7D2799 2667 vxor 16,5,22 2668 addi 4,4,0x60 2669 2670 mtctr 9 2671 beq .Loop_xts_enc6x 2672 2673 addic. 5,5,0x60 2674 beq .Lxts_enc6x_zero 2675 cmpwi 5,0x20 2676 blt .Lxts_enc6x_one 2677 nop 2678 beq .Lxts_enc6x_two 2679 cmpwi 5,0x40 2680 blt .Lxts_enc6x_three 2681 nop 2682 beq .Lxts_enc6x_four 2683 2684.Lxts_enc6x_five: 2685 vxor 7,1,17 2686 vxor 12,2,18 2687 vxor 13,3,19 2688 vxor 14,4,20 2689 vxor 15,5,21 2690 2691 bl _aesp8_xts_enc5x 2692 2693 2694 vor 17,22,22 2695 2696.long 0x7CE02799 2697 2698.long 0x7D832799 2699 2700.long 0x7DBA2799 2701 vxor 11,15,22 2702 2703.long 0x7DDB2799 2704.long 0x7DFC2799 2705 addi 4,4,0x50 2706 bne .Lxts_enc6x_steal 2707 b .Lxts_enc6x_done 2708 2709.align 4 2710.Lxts_enc6x_four: 2711 vxor 7,2,17 2712 vxor 12,3,18 2713 vxor 13,4,19 2714 vxor 14,5,20 2715 vxor 15,15,15 2716 2717 bl _aesp8_xts_enc5x 2718 2719 2720 vor 17,21,21 2721 2722.long 0x7CE02799 2723 2724.long 0x7D832799 2725 vxor 11,14,21 2726 2727.long 0x7DBA2799 2728.long 0x7DDB2799 2729 addi 4,4,0x40 2730 bne .Lxts_enc6x_steal 2731 b .Lxts_enc6x_done 2732 2733.align 4 2734.Lxts_enc6x_three: 2735 vxor 7,3,17 2736 vxor 12,4,18 2737 vxor 13,5,19 2738 vxor 14,14,14 2739 vxor 15,15,15 2740 2741 bl _aesp8_xts_enc5x 2742 2743 2744 vor 17,20,20 2745 2746.long 0x7CE02799 2747 vxor 11,13,20 2748 2749.long 0x7D832799 2750.long 0x7DBA2799 2751 addi 4,4,0x30 2752 bne .Lxts_enc6x_steal 2753 b .Lxts_enc6x_done 2754 2755.align 4 2756.Lxts_enc6x_two: 2757 vxor 7,4,17 2758 vxor 12,5,18 2759 vxor 13,13,13 2760 vxor 14,14,14 2761 vxor 15,15,15 2762 2763 bl _aesp8_xts_enc5x 2764 2765 2766 vor 17,19,19 2767 vxor 11,12,19 2768 2769.long 0x7CE02799 2770.long 0x7D832799 2771 addi 4,4,0x20 2772 bne .Lxts_enc6x_steal 2773 b .Lxts_enc6x_done 2774 2775.align 4 2776.Lxts_enc6x_one: 2777 vxor 7,5,17 2778 nop 2779.Loop_xts_enc1x: 2780.long 0x10E7C508 2781 lvx 24,26,7 2782 addi 7,7,0x20 2783 2784.long 0x10E7CD08 2785 lvx 25,3,7 2786 bc 16,0,.Loop_xts_enc1x 2787 2788 add 10,10,31 2789 cmpwi 31,0 2790.long 0x10E7C508 2791 2792 subi 10,10,16 2793.long 0x10E7CD08 2794 2795 lvsr 5,0,31 2796.long 0x10E7D508 2797 2798.long 0x7C005699 2799.long 0x10E7DD08 2800 2801 addi 7,1,64+15 2802.long 0x10E7E508 2803 lvx 24,0,7 2804 2805.long 0x10E7ED08 2806 lvx 25,3,7 2807 vxor 17,17,31 2808 2809 2810.long 0x10E7F508 2811 2812 vperm 0,0,0,5 2813.long 0x10E78D09 2814 2815 vor 17,18,18 2816 vxor 11,7,18 2817 2818.long 0x7CE02799 2819 addi 4,4,0x10 2820 bne .Lxts_enc6x_steal 2821 b .Lxts_enc6x_done 2822 2823.align 4 2824.Lxts_enc6x_zero: 2825 cmpwi 31,0 2826 beq .Lxts_enc6x_done 2827 2828 add 10,10,31 2829 subi 10,10,16 2830.long 0x7C005699 2831 lvsr 5,0,31 2832 2833 vperm 0,0,0,5 2834 vxor 11,11,17 2835.Lxts_enc6x_steal: 2836 vxor 0,0,17 2837 vxor 7,7,7 2838 vspltisb 12,-1 2839 vperm 7,7,12,5 2840 vsel 7,0,11,7 2841 2842 subi 30,4,17 2843 subi 4,4,16 2844 mtctr 31 2845.Loop_xts_enc6x_steal: 2846 lbzu 0,1(30) 2847 stb 0,16(30) 2848 bc 16,0,.Loop_xts_enc6x_steal 2849 2850 li 31,0 2851 mtctr 9 2852 b .Loop_xts_enc1x 2853 2854.align 4 2855.Lxts_enc6x_done: 2856 cmpldi 8,0 2857 beq .Lxts_enc6x_ret 2858 2859 vxor 8,17,23 2860 2861.long 0x7D004799 2862 2863.Lxts_enc6x_ret: 2864 mtlr 11 2865 li 10,79 2866 li 11,95 2867 stvx 9,10,1 2868 addi 10,10,32 2869 stvx 9,11,1 2870 addi 11,11,32 2871 stvx 9,10,1 2872 addi 10,10,32 2873 stvx 9,11,1 2874 addi 11,11,32 2875 stvx 9,10,1 2876 addi 10,10,32 2877 stvx 9,11,1 2878 addi 11,11,32 2879 stvx 9,10,1 2880 addi 10,10,32 2881 stvx 9,11,1 2882 addi 11,11,32 2883 2884 mtspr 256,12 2885 lvx 20,10,1 2886 addi 10,10,32 2887 lvx 21,11,1 2888 addi 11,11,32 2889 lvx 22,10,1 2890 addi 10,10,32 2891 lvx 23,11,1 2892 addi 11,11,32 2893 lvx 24,10,1 2894 addi 10,10,32 2895 lvx 25,11,1 2896 addi 11,11,32 2897 lvx 26,10,1 2898 addi 10,10,32 2899 lvx 27,11,1 2900 addi 11,11,32 2901 lvx 28,10,1 2902 addi 10,10,32 2903 lvx 29,11,1 2904 addi 11,11,32 2905 lvx 30,10,1 2906 lvx 31,11,1 2907 ld 26,400(1) 2908 ld 27,408(1) 2909 ld 28,416(1) 2910 ld 29,424(1) 2911 ld 30,432(1) 2912 ld 31,440(1) 2913 addi 1,1,448 2914 blr 2915.long 0 2916.byte 0,12,0x04,1,0x80,6,6,0 2917.long 0 2918 2919.align 5 2920_aesp8_xts_enc5x: 2921.long 0x10E7C508 2922.long 0x118CC508 2923.long 0x11ADC508 2924.long 0x11CEC508 2925.long 0x11EFC508 2926 lvx 24,26,7 2927 addi 7,7,0x20 2928 2929.long 0x10E7CD08 2930.long 0x118CCD08 2931.long 0x11ADCD08 2932.long 0x11CECD08 2933.long 0x11EFCD08 2934 lvx 25,3,7 2935 bc 16,0,_aesp8_xts_enc5x 2936 2937 add 10,10,31 2938 cmpwi 31,0 2939.long 0x10E7C508 2940.long 0x118CC508 2941.long 0x11ADC508 2942.long 0x11CEC508 2943.long 0x11EFC508 2944 2945 subi 10,10,16 2946.long 0x10E7CD08 2947.long 0x118CCD08 2948.long 0x11ADCD08 2949.long 0x11CECD08 2950.long 0x11EFCD08 2951 vxor 17,17,31 2952 2953.long 0x10E7D508 2954 lvsr 5,0,31 2955.long 0x118CD508 2956.long 0x11ADD508 2957.long 0x11CED508 2958.long 0x11EFD508 2959 vxor 1,18,31 2960 2961.long 0x10E7DD08 2962.long 0x7C005699 2963.long 0x118CDD08 2964.long 0x11ADDD08 2965.long 0x11CEDD08 2966.long 0x11EFDD08 2967 vxor 2,19,31 2968 2969 addi 7,1,64+15 2970.long 0x10E7E508 2971.long 0x118CE508 2972.long 0x11ADE508 2973.long 0x11CEE508 2974.long 0x11EFE508 2975 lvx 24,0,7 2976 vxor 3,20,31 2977 2978.long 0x10E7ED08 2979 2980.long 0x118CED08 2981.long 0x11ADED08 2982.long 0x11CEED08 2983.long 0x11EFED08 2984 lvx 25,3,7 2985 vxor 4,21,31 2986 2987.long 0x10E7F508 2988 vperm 0,0,0,5 2989.long 0x118CF508 2990.long 0x11ADF508 2991.long 0x11CEF508 2992.long 0x11EFF508 2993 2994.long 0x10E78D09 2995.long 0x118C0D09 2996.long 0x11AD1509 2997.long 0x11CE1D09 2998.long 0x11EF2509 2999 blr 3000.long 0 3001.byte 0,12,0x14,0,0,0,0,0 3002 3003.align 5 3004_aesp8_xts_decrypt6x: 3005 stdu 1,-448(1) 3006 mflr 11 3007 li 7,207 3008 li 3,223 3009 std 11,464(1) 3010 stvx 20,7,1 3011 addi 7,7,32 3012 stvx 21,3,1 3013 addi 3,3,32 3014 stvx 22,7,1 3015 addi 7,7,32 3016 stvx 23,3,1 3017 addi 3,3,32 3018 stvx 24,7,1 3019 addi 7,7,32 3020 stvx 25,3,1 3021 addi 3,3,32 3022 stvx 26,7,1 3023 addi 7,7,32 3024 stvx 27,3,1 3025 addi 3,3,32 3026 stvx 28,7,1 3027 addi 7,7,32 3028 stvx 29,3,1 3029 addi 3,3,32 3030 stvx 30,7,1 3031 stvx 31,3,1 3032 li 0,-1 3033 stw 12,396(1) 3034 li 3,0x10 3035 std 26,400(1) 3036 li 26,0x20 3037 std 27,408(1) 3038 li 27,0x30 3039 std 28,416(1) 3040 li 28,0x40 3041 std 29,424(1) 3042 li 29,0x50 3043 std 30,432(1) 3044 li 30,0x60 3045 std 31,440(1) 3046 li 31,0x70 3047 mtspr 256,0 3048 3049 subi 9,9,3 3050 3051 lvx 23,0,6 3052 lvx 30,3,6 3053 addi 6,6,0x20 3054 lvx 31,0,6 3055 vperm 23,23,30,7 3056 addi 7,1,64+15 3057 mtctr 9 3058 3059.Load_xts_dec_key: 3060 vperm 24,30,31,7 3061 lvx 30,3,6 3062 addi 6,6,0x20 3063 stvx 24,0,7 3064 vperm 25,31,30,7 3065 lvx 31,0,6 3066 stvx 25,3,7 3067 addi 7,7,0x20 3068 bc 16,0,.Load_xts_dec_key 3069 3070 lvx 26,3,6 3071 vperm 24,30,31,7 3072 lvx 27,26,6 3073 stvx 24,0,7 3074 vperm 25,31,26,7 3075 lvx 28,27,6 3076 stvx 25,3,7 3077 addi 7,1,64+15 3078 vperm 26,26,27,7 3079 lvx 29,28,6 3080 vperm 27,27,28,7 3081 lvx 30,29,6 3082 vperm 28,28,29,7 3083 lvx 31,30,6 3084 vperm 29,29,30,7 3085 lvx 22,31,6 3086 vperm 30,30,31,7 3087 lvx 24,0,7 3088 vperm 31,31,22,7 3089 lvx 25,3,7 3090 3091 vperm 0,2,4,5 3092 subi 10,10,31 3093 vxor 17,8,23 3094 vsrab 11,8,9 3095 vaddubm 8,8,8 3096 vsldoi 11,11,11,15 3097 vand 11,11,10 3098 vxor 7,0,17 3099 vxor 8,8,11 3100 3101.long 0x7C235699 3102 vxor 18,8,23 3103 vsrab 11,8,9 3104 vaddubm 8,8,8 3105 vsldoi 11,11,11,15 3106 3107 vand 11,11,10 3108 vxor 12,1,18 3109 vxor 8,8,11 3110 3111.long 0x7C5A5699 3112 andi. 31,5,15 3113 vxor 19,8,23 3114 vsrab 11,8,9 3115 vaddubm 8,8,8 3116 vsldoi 11,11,11,15 3117 3118 vand 11,11,10 3119 vxor 13,2,19 3120 vxor 8,8,11 3121 3122.long 0x7C7B5699 3123 sub 5,5,31 3124 vxor 20,8,23 3125 vsrab 11,8,9 3126 vaddubm 8,8,8 3127 vsldoi 11,11,11,15 3128 3129 vand 11,11,10 3130 vxor 14,3,20 3131 vxor 8,8,11 3132 3133.long 0x7C9C5699 3134 subi 5,5,0x60 3135 vxor 21,8,23 3136 vsrab 11,8,9 3137 vaddubm 8,8,8 3138 vsldoi 11,11,11,15 3139 3140 vand 11,11,10 3141 vxor 15,4,21 3142 vxor 8,8,11 3143 3144.long 0x7CBD5699 3145 addi 10,10,0x60 3146 vxor 22,8,23 3147 vsrab 11,8,9 3148 vaddubm 8,8,8 3149 vsldoi 11,11,11,15 3150 3151 vand 11,11,10 3152 vxor 16,5,22 3153 vxor 8,8,11 3154 3155 vxor 31,31,23 3156 mtctr 9 3157 b .Loop_xts_dec6x 3158 3159.align 5 3160.Loop_xts_dec6x: 3161.long 0x10E7C548 3162.long 0x118CC548 3163.long 0x11ADC548 3164.long 0x11CEC548 3165.long 0x11EFC548 3166.long 0x1210C548 3167 lvx 24,26,7 3168 addi 7,7,0x20 3169 3170.long 0x10E7CD48 3171.long 0x118CCD48 3172.long 0x11ADCD48 3173.long 0x11CECD48 3174.long 0x11EFCD48 3175.long 0x1210CD48 3176 lvx 25,3,7 3177 bc 16,0,.Loop_xts_dec6x 3178 3179 subic 5,5,96 3180 vxor 0,17,31 3181.long 0x10E7C548 3182.long 0x118CC548 3183 vsrab 11,8,9 3184 vxor 17,8,23 3185 vaddubm 8,8,8 3186.long 0x11ADC548 3187.long 0x11CEC548 3188 vsldoi 11,11,11,15 3189.long 0x11EFC548 3190.long 0x1210C548 3191 3192 subfe. 0,0,0 3193 vand 11,11,10 3194.long 0x10E7CD48 3195.long 0x118CCD48 3196 vxor 8,8,11 3197.long 0x11ADCD48 3198.long 0x11CECD48 3199 vxor 1,18,31 3200 vsrab 11,8,9 3201 vxor 18,8,23 3202.long 0x11EFCD48 3203.long 0x1210CD48 3204 3205 and 0,0,5 3206 vaddubm 8,8,8 3207 vsldoi 11,11,11,15 3208.long 0x10E7D548 3209.long 0x118CD548 3210 vand 11,11,10 3211.long 0x11ADD548 3212.long 0x11CED548 3213 vxor 8,8,11 3214.long 0x11EFD548 3215.long 0x1210D548 3216 3217 add 10,10,0 3218 3219 3220 3221 vxor 2,19,31 3222 vsrab 11,8,9 3223 vxor 19,8,23 3224 vaddubm 8,8,8 3225.long 0x10E7DD48 3226.long 0x118CDD48 3227 vsldoi 11,11,11,15 3228.long 0x11ADDD48 3229.long 0x11CEDD48 3230 vand 11,11,10 3231.long 0x11EFDD48 3232.long 0x1210DD48 3233 3234 addi 7,1,64+15 3235 vxor 8,8,11 3236.long 0x10E7E548 3237.long 0x118CE548 3238 vxor 3,20,31 3239 vsrab 11,8,9 3240 vxor 20,8,23 3241.long 0x11ADE548 3242.long 0x11CEE548 3243 vaddubm 8,8,8 3244 vsldoi 11,11,11,15 3245.long 0x11EFE548 3246.long 0x1210E548 3247 lvx 24,0,7 3248 vand 11,11,10 3249 3250.long 0x10E7ED48 3251.long 0x118CED48 3252 vxor 8,8,11 3253.long 0x11ADED48 3254.long 0x11CEED48 3255 vxor 4,21,31 3256 vsrab 11,8,9 3257 vxor 21,8,23 3258.long 0x11EFED48 3259.long 0x1210ED48 3260 lvx 25,3,7 3261 vaddubm 8,8,8 3262 vsldoi 11,11,11,15 3263 3264.long 0x10E7F548 3265.long 0x118CF548 3266 vand 11,11,10 3267.long 0x11ADF548 3268.long 0x11CEF548 3269 vxor 8,8,11 3270.long 0x11EFF548 3271.long 0x1210F548 3272 vxor 5,22,31 3273 vsrab 11,8,9 3274 vxor 22,8,23 3275 3276.long 0x10E70549 3277.long 0x7C005699 3278 vaddubm 8,8,8 3279 vsldoi 11,11,11,15 3280.long 0x118C0D49 3281.long 0x7C235699 3282.long 0x11AD1549 3283 3284.long 0x7C5A5699 3285 vand 11,11,10 3286.long 0x11CE1D49 3287 3288.long 0x7C7B5699 3289.long 0x11EF2549 3290 3291.long 0x7C9C5699 3292 vxor 8,8,11 3293.long 0x12102D49 3294 3295.long 0x7CBD5699 3296 addi 10,10,0x60 3297 3298 3299 3300 3301 3302.long 0x7CE02799 3303 vxor 7,0,17 3304 3305.long 0x7D832799 3306 vxor 12,1,18 3307 3308.long 0x7DBA2799 3309 vxor 13,2,19 3310 3311.long 0x7DDB2799 3312 vxor 14,3,20 3313 3314.long 0x7DFC2799 3315 vxor 15,4,21 3316.long 0x7E1D2799 3317 vxor 16,5,22 3318 addi 4,4,0x60 3319 3320 mtctr 9 3321 beq .Loop_xts_dec6x 3322 3323 addic. 5,5,0x60 3324 beq .Lxts_dec6x_zero 3325 cmpwi 5,0x20 3326 blt .Lxts_dec6x_one 3327 nop 3328 beq .Lxts_dec6x_two 3329 cmpwi 5,0x40 3330 blt .Lxts_dec6x_three 3331 nop 3332 beq .Lxts_dec6x_four 3333 3334.Lxts_dec6x_five: 3335 vxor 7,1,17 3336 vxor 12,2,18 3337 vxor 13,3,19 3338 vxor 14,4,20 3339 vxor 15,5,21 3340 3341 bl _aesp8_xts_dec5x 3342 3343 3344 vor 17,22,22 3345 vxor 18,8,23 3346 3347.long 0x7CE02799 3348 vxor 7,0,18 3349 3350.long 0x7D832799 3351 3352.long 0x7DBA2799 3353 3354.long 0x7DDB2799 3355.long 0x7DFC2799 3356 addi 4,4,0x50 3357 bne .Lxts_dec6x_steal 3358 b .Lxts_dec6x_done 3359 3360.align 4 3361.Lxts_dec6x_four: 3362 vxor 7,2,17 3363 vxor 12,3,18 3364 vxor 13,4,19 3365 vxor 14,5,20 3366 vxor 15,15,15 3367 3368 bl _aesp8_xts_dec5x 3369 3370 3371 vor 17,21,21 3372 vor 18,22,22 3373 3374.long 0x7CE02799 3375 vxor 7,0,22 3376 3377.long 0x7D832799 3378 3379.long 0x7DBA2799 3380.long 0x7DDB2799 3381 addi 4,4,0x40 3382 bne .Lxts_dec6x_steal 3383 b .Lxts_dec6x_done 3384 3385.align 4 3386.Lxts_dec6x_three: 3387 vxor 7,3,17 3388 vxor 12,4,18 3389 vxor 13,5,19 3390 vxor 14,14,14 3391 vxor 15,15,15 3392 3393 bl _aesp8_xts_dec5x 3394 3395 3396 vor 17,20,20 3397 vor 18,21,21 3398 3399.long 0x7CE02799 3400 vxor 7,0,21 3401 3402.long 0x7D832799 3403.long 0x7DBA2799 3404 addi 4,4,0x30 3405 bne .Lxts_dec6x_steal 3406 b .Lxts_dec6x_done 3407 3408.align 4 3409.Lxts_dec6x_two: 3410 vxor 7,4,17 3411 vxor 12,5,18 3412 vxor 13,13,13 3413 vxor 14,14,14 3414 vxor 15,15,15 3415 3416 bl _aesp8_xts_dec5x 3417 3418 3419 vor 17,19,19 3420 vor 18,20,20 3421 3422.long 0x7CE02799 3423 vxor 7,0,20 3424.long 0x7D832799 3425 addi 4,4,0x20 3426 bne .Lxts_dec6x_steal 3427 b .Lxts_dec6x_done 3428 3429.align 4 3430.Lxts_dec6x_one: 3431 vxor 7,5,17 3432 nop 3433.Loop_xts_dec1x: 3434.long 0x10E7C548 3435 lvx 24,26,7 3436 addi 7,7,0x20 3437 3438.long 0x10E7CD48 3439 lvx 25,3,7 3440 bc 16,0,.Loop_xts_dec1x 3441 3442 subi 0,31,1 3443.long 0x10E7C548 3444 3445 andi. 0,0,16 3446 cmpwi 31,0 3447.long 0x10E7CD48 3448 3449 sub 10,10,0 3450.long 0x10E7D548 3451 3452.long 0x7C005699 3453.long 0x10E7DD48 3454 3455 addi 7,1,64+15 3456.long 0x10E7E548 3457 lvx 24,0,7 3458 3459.long 0x10E7ED48 3460 lvx 25,3,7 3461 vxor 17,17,31 3462 3463 3464.long 0x10E7F548 3465 3466 mtctr 9 3467.long 0x10E78D49 3468 3469 vor 17,18,18 3470 vor 18,19,19 3471 3472.long 0x7CE02799 3473 addi 4,4,0x10 3474 vxor 7,0,19 3475 bne .Lxts_dec6x_steal 3476 b .Lxts_dec6x_done 3477 3478.align 4 3479.Lxts_dec6x_zero: 3480 cmpwi 31,0 3481 beq .Lxts_dec6x_done 3482 3483.long 0x7C005699 3484 3485 vxor 7,0,18 3486.Lxts_dec6x_steal: 3487.long 0x10E7C548 3488 lvx 24,26,7 3489 addi 7,7,0x20 3490 3491.long 0x10E7CD48 3492 lvx 25,3,7 3493 bc 16,0,.Lxts_dec6x_steal 3494 3495 add 10,10,31 3496.long 0x10E7C548 3497 3498 cmpwi 31,0 3499.long 0x10E7CD48 3500 3501.long 0x7C005699 3502.long 0x10E7D548 3503 3504 lvsr 5,0,31 3505.long 0x10E7DD48 3506 3507 addi 7,1,64+15 3508.long 0x10E7E548 3509 lvx 24,0,7 3510 3511.long 0x10E7ED48 3512 lvx 25,3,7 3513 vxor 18,18,31 3514 3515 3516.long 0x10E7F548 3517 3518 vperm 0,0,0,5 3519.long 0x11679549 3520 3521 3522 3523.long 0x7D602799 3524 3525 vxor 7,7,7 3526 vspltisb 12,-1 3527 vperm 7,7,12,5 3528 vsel 7,0,11,7 3529 vxor 7,7,17 3530 3531 subi 30,4,1 3532 mtctr 31 3533.Loop_xts_dec6x_steal: 3534 lbzu 0,1(30) 3535 stb 0,16(30) 3536 bc 16,0,.Loop_xts_dec6x_steal 3537 3538 li 31,0 3539 mtctr 9 3540 b .Loop_xts_dec1x 3541 3542.align 4 3543.Lxts_dec6x_done: 3544 cmpldi 8,0 3545 beq .Lxts_dec6x_ret 3546 3547 vxor 8,17,23 3548 3549.long 0x7D004799 3550 3551.Lxts_dec6x_ret: 3552 mtlr 11 3553 li 10,79 3554 li 11,95 3555 stvx 9,10,1 3556 addi 10,10,32 3557 stvx 9,11,1 3558 addi 11,11,32 3559 stvx 9,10,1 3560 addi 10,10,32 3561 stvx 9,11,1 3562 addi 11,11,32 3563 stvx 9,10,1 3564 addi 10,10,32 3565 stvx 9,11,1 3566 addi 11,11,32 3567 stvx 9,10,1 3568 addi 10,10,32 3569 stvx 9,11,1 3570 addi 11,11,32 3571 3572 mtspr 256,12 3573 lvx 20,10,1 3574 addi 10,10,32 3575 lvx 21,11,1 3576 addi 11,11,32 3577 lvx 22,10,1 3578 addi 10,10,32 3579 lvx 23,11,1 3580 addi 11,11,32 3581 lvx 24,10,1 3582 addi 10,10,32 3583 lvx 25,11,1 3584 addi 11,11,32 3585 lvx 26,10,1 3586 addi 10,10,32 3587 lvx 27,11,1 3588 addi 11,11,32 3589 lvx 28,10,1 3590 addi 10,10,32 3591 lvx 29,11,1 3592 addi 11,11,32 3593 lvx 30,10,1 3594 lvx 31,11,1 3595 ld 26,400(1) 3596 ld 27,408(1) 3597 ld 28,416(1) 3598 ld 29,424(1) 3599 ld 30,432(1) 3600 ld 31,440(1) 3601 addi 1,1,448 3602 blr 3603.long 0 3604.byte 0,12,0x04,1,0x80,6,6,0 3605.long 0 3606 3607.align 5 3608_aesp8_xts_dec5x: 3609.long 0x10E7C548 3610.long 0x118CC548 3611.long 0x11ADC548 3612.long 0x11CEC548 3613.long 0x11EFC548 3614 lvx 24,26,7 3615 addi 7,7,0x20 3616 3617.long 0x10E7CD48 3618.long 0x118CCD48 3619.long 0x11ADCD48 3620.long 0x11CECD48 3621.long 0x11EFCD48 3622 lvx 25,3,7 3623 bc 16,0,_aesp8_xts_dec5x 3624 3625 subi 0,31,1 3626.long 0x10E7C548 3627.long 0x118CC548 3628.long 0x11ADC548 3629.long 0x11CEC548 3630.long 0x11EFC548 3631 3632 andi. 0,0,16 3633 cmpwi 31,0 3634.long 0x10E7CD48 3635.long 0x118CCD48 3636.long 0x11ADCD48 3637.long 0x11CECD48 3638.long 0x11EFCD48 3639 vxor 17,17,31 3640 3641 sub 10,10,0 3642.long 0x10E7D548 3643.long 0x118CD548 3644.long 0x11ADD548 3645.long 0x11CED548 3646.long 0x11EFD548 3647 vxor 1,18,31 3648 3649.long 0x10E7DD48 3650.long 0x7C005699 3651.long 0x118CDD48 3652.long 0x11ADDD48 3653.long 0x11CEDD48 3654.long 0x11EFDD48 3655 vxor 2,19,31 3656 3657 addi 7,1,64+15 3658.long 0x10E7E548 3659.long 0x118CE548 3660.long 0x11ADE548 3661.long 0x11CEE548 3662.long 0x11EFE548 3663 lvx 24,0,7 3664 vxor 3,20,31 3665 3666.long 0x10E7ED48 3667 3668.long 0x118CED48 3669.long 0x11ADED48 3670.long 0x11CEED48 3671.long 0x11EFED48 3672 lvx 25,3,7 3673 vxor 4,21,31 3674 3675.long 0x10E7F548 3676.long 0x118CF548 3677.long 0x11ADF548 3678.long 0x11CEF548 3679.long 0x11EFF548 3680 3681.long 0x10E78D49 3682.long 0x118C0D49 3683.long 0x11AD1549 3684.long 0x11CE1D49 3685.long 0x11EF2549 3686 mtctr 9 3687 blr 3688.long 0 3689.byte 0,12,0x14,0,0,0,0,0 3690