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