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