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