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