1/* Do not modify. This file is auto-generated from ghashp8-ppc.pl. */ 2.machine "any" 3 4.text 5 6.globl gcm_init_p8 7.type gcm_init_p8,@function 8.align 5 9gcm_init_p8: 10 li 0,-4096 11 li 8,0x10 12 mfspr 12,256 13 li 9,0x20 14 mtspr 256,0 15 li 10,0x30 16 .long 0x7D202699 17 18 vspltisb 8,-16 19 vspltisb 5,1 20 vaddubm 8,8,8 21 vxor 4,4,4 22 vor 8,8,5 23 vsldoi 8,8,4,15 24 vsldoi 6,4,5,1 25 vaddubm 8,8,8 26 vspltisb 7,7 27 vor 8,8,6 28 vspltb 6,9,0 29 vsl 9,9,5 30 vsrab 6,6,7 31 vand 6,6,8 32 vxor 3,9,6 33 34 vsldoi 9,3,3,8 35 vsldoi 8,4,8,8 36 vsldoi 11,4,9,8 37 vsldoi 10,9,4,8 38 39 .long 0x7D001F99 40 .long 0x7D681F99 41 li 8,0x40 42 .long 0x7D291F99 43 li 9,0x50 44 .long 0x7D4A1F99 45 li 10,0x60 46 47 .long 0x10035CC8 48 .long 0x10234CC8 49 .long 0x104354C8 50 51 .long 0x10E044C8 52 53 vsldoi 5,1,4,8 54 vsldoi 6,4,1,8 55 vxor 0,0,5 56 vxor 2,2,6 57 58 vsldoi 0,0,0,8 59 vxor 0,0,7 60 61 vsldoi 6,0,0,8 62 .long 0x100044C8 63 vxor 6,6,2 64 vxor 16,0,6 65 66 vsldoi 17,16,16,8 67 vsldoi 19,4,17,8 68 vsldoi 18,17,4,8 69 70 .long 0x7E681F99 71 li 8,0x70 72 .long 0x7E291F99 73 li 9,0x80 74 .long 0x7E4A1F99 75 li 10,0x90 76 .long 0x10039CC8 77 .long 0x11B09CC8 78 .long 0x10238CC8 79 .long 0x11D08CC8 80 .long 0x104394C8 81 .long 0x11F094C8 82 83 .long 0x10E044C8 84 .long 0x114D44C8 85 86 vsldoi 5,1,4,8 87 vsldoi 6,4,1,8 88 vsldoi 11,14,4,8 89 vsldoi 9,4,14,8 90 vxor 0,0,5 91 vxor 2,2,6 92 vxor 13,13,11 93 vxor 15,15,9 94 95 vsldoi 0,0,0,8 96 vsldoi 13,13,13,8 97 vxor 0,0,7 98 vxor 13,13,10 99 100 vsldoi 6,0,0,8 101 vsldoi 9,13,13,8 102 .long 0x100044C8 103 .long 0x11AD44C8 104 vxor 6,6,2 105 vxor 9,9,15 106 vxor 0,0,6 107 vxor 13,13,9 108 109 vsldoi 9,0,0,8 110 vsldoi 17,13,13,8 111 vsldoi 11,4,9,8 112 vsldoi 10,9,4,8 113 vsldoi 19,4,17,8 114 vsldoi 18,17,4,8 115 116 .long 0x7D681F99 117 li 8,0xa0 118 .long 0x7D291F99 119 li 9,0xb0 120 .long 0x7D4A1F99 121 li 10,0xc0 122 .long 0x7E681F99 123 .long 0x7E291F99 124 .long 0x7E4A1F99 125 126 mtspr 256,12 127 blr 128.long 0 129.byte 0,12,0x14,0,0,0,2,0 130.long 0 131.size gcm_init_p8,.-gcm_init_p8 132.globl gcm_gmult_p8 133.type gcm_gmult_p8,@function 134.align 5 135gcm_gmult_p8: 136 lis 0,0xfff8 137 li 8,0x10 138 mfspr 12,256 139 li 9,0x20 140 mtspr 256,0 141 li 10,0x30 142 .long 0x7C601E99 143 144 .long 0x7D682699 145 146 .long 0x7D292699 147 148 .long 0x7D4A2699 149 150 .long 0x7D002699 151 152 vxor 4,4,4 153 154 .long 0x10035CC8 155 .long 0x10234CC8 156 .long 0x104354C8 157 158 .long 0x10E044C8 159 160 vsldoi 5,1,4,8 161 vsldoi 6,4,1,8 162 vxor 0,0,5 163 vxor 2,2,6 164 165 vsldoi 0,0,0,8 166 vxor 0,0,7 167 168 vsldoi 6,0,0,8 169 .long 0x100044C8 170 vxor 6,6,2 171 vxor 0,0,6 172 173 174 .long 0x7C001F99 175 176 mtspr 256,12 177 blr 178.long 0 179.byte 0,12,0x14,0,0,0,2,0 180.long 0 181.size gcm_gmult_p8,.-gcm_gmult_p8 182 183.globl gcm_ghash_p8 184.type gcm_ghash_p8,@function 185.align 5 186gcm_ghash_p8: 187 li 0,-4096 188 li 8,0x10 189 mfspr 12,256 190 li 9,0x20 191 mtspr 256,0 192 li 10,0x30 193 .long 0x7C001E99 194 195 .long 0x7D682699 196 li 8,0x40 197 198 .long 0x7D292699 199 li 9,0x50 200 201 .long 0x7D4A2699 202 li 10,0x60 203 204 .long 0x7D002699 205 206 vxor 4,4,4 207 208 cmplwi 6,64 209 bge .Lgcm_ghash_p8_4x 210 211 .long 0x7C602E99 212 addi 5,5,16 213 subic. 6,6,16 214 215 vxor 3,3,0 216 beq .Lshort 217 218 .long 0x7E682699 219 li 8,16 220 .long 0x7E292699 221 add 9,5,6 222 .long 0x7E4A2699 223 b .Loop_2x 224 225.align 5 226.Loop_2x: 227 .long 0x7E002E99 228 229 230 subic 6,6,32 231 .long 0x10039CC8 232 .long 0x11B05CC8 233 subfe 0,0,0 234 .long 0x10238CC8 235 .long 0x11D04CC8 236 and 0,0,6 237 .long 0x104394C8 238 .long 0x11F054C8 239 add 5,5,0 240 241 vxor 0,0,13 242 vxor 1,1,14 243 244 .long 0x10E044C8 245 246 vsldoi 5,1,4,8 247 vsldoi 6,4,1,8 248 vxor 2,2,15 249 vxor 0,0,5 250 vxor 2,2,6 251 252 vsldoi 0,0,0,8 253 vxor 0,0,7 254 .long 0x7C682E99 255 addi 5,5,32 256 257 vsldoi 6,0,0,8 258 .long 0x100044C8 259 260 vxor 6,6,2 261 vxor 3,3,6 262 vxor 3,3,0 263 .long 0x7c092840 264 bgt .Loop_2x 265 266 cmplwi 6,0 267 bne .Leven 268 269.Lshort: 270 .long 0x10035CC8 271 .long 0x10234CC8 272 .long 0x104354C8 273 274 .long 0x10E044C8 275 276 vsldoi 5,1,4,8 277 vsldoi 6,4,1,8 278 vxor 0,0,5 279 vxor 2,2,6 280 281 vsldoi 0,0,0,8 282 vxor 0,0,7 283 284 vsldoi 6,0,0,8 285 .long 0x100044C8 286 vxor 6,6,2 287 288.Leven: 289 vxor 0,0,6 290 291 .long 0x7C001F99 292 293 mtspr 256,12 294 blr 295.long 0 296.byte 0,12,0x14,0,0,0,4,0 297.long 0 298.align 5 299.gcm_ghash_p8_4x: 300.Lgcm_ghash_p8_4x: 301 stwu 1,-232(1) 302 li 10,39 303 li 11,55 304 stvx 20,10,1 305 addi 10,10,32 306 stvx 21,11,1 307 addi 11,11,32 308 stvx 22,10,1 309 addi 10,10,32 310 stvx 23,11,1 311 addi 11,11,32 312 stvx 24,10,1 313 addi 10,10,32 314 stvx 25,11,1 315 addi 11,11,32 316 stvx 26,10,1 317 addi 10,10,32 318 stvx 27,11,1 319 addi 11,11,32 320 stvx 28,10,1 321 addi 10,10,32 322 stvx 29,11,1 323 addi 11,11,32 324 stvx 30,10,1 325 li 10,0x60 326 stvx 31,11,1 327 li 0,-1 328 stw 12,228(1) 329 mtspr 256,0 330 331 lvsl 5,0,8 332 333 li 8,0x70 334 .long 0x7E292699 335 li 9,0x80 336 vspltisb 6,8 337 338 li 10,0x90 339 .long 0x7EE82699 340 li 8,0xa0 341 .long 0x7F092699 342 li 9,0xb0 343 .long 0x7F2A2699 344 li 10,0xc0 345 .long 0x7FA82699 346 li 8,0x10 347 .long 0x7FC92699 348 li 9,0x20 349 .long 0x7FEA2699 350 li 10,0x30 351 352 vsldoi 7,4,6,8 353 vaddubm 18,5,7 354 vaddubm 19,6,18 355 356 srwi 6,6,4 357 358 .long 0x7C602E99 359 .long 0x7E082E99 360 subic. 6,6,8 361 .long 0x7EC92E99 362 .long 0x7F8A2E99 363 addi 5,5,0x40 364 365 366 367 368 369 vxor 2,3,0 370 371 .long 0x11B0BCC8 372 .long 0x11D0C4C8 373 .long 0x11F0CCC8 374 375 vperm 11,17,9,18 376 vperm 5,22,28,19 377 vperm 10,17,9,19 378 vperm 6,22,28,18 379 .long 0x12B68CC8 380 .long 0x12855CC8 381 .long 0x137C4CC8 382 .long 0x134654C8 383 384 vxor 21,21,14 385 vxor 20,20,13 386 vxor 27,27,21 387 vxor 26,26,15 388 389 blt .Ltail_4x 390 391.Loop_4x: 392 .long 0x7C602E99 393 .long 0x7E082E99 394 subic. 6,6,4 395 .long 0x7EC92E99 396 .long 0x7F8A2E99 397 addi 5,5,0x40 398 399 400 401 402 403 .long 0x1002ECC8 404 .long 0x1022F4C8 405 .long 0x1042FCC8 406 .long 0x11B0BCC8 407 .long 0x11D0C4C8 408 .long 0x11F0CCC8 409 410 vxor 0,0,20 411 vxor 1,1,27 412 vxor 2,2,26 413 vperm 5,22,28,19 414 vperm 6,22,28,18 415 416 .long 0x10E044C8 417 .long 0x12855CC8 418 .long 0x134654C8 419 420 vsldoi 5,1,4,8 421 vsldoi 6,4,1,8 422 vxor 0,0,5 423 vxor 2,2,6 424 425 vsldoi 0,0,0,8 426 vxor 0,0,7 427 428 vsldoi 6,0,0,8 429 .long 0x12B68CC8 430 .long 0x137C4CC8 431 .long 0x100044C8 432 433 vxor 20,20,13 434 vxor 26,26,15 435 vxor 2,2,3 436 vxor 21,21,14 437 vxor 2,2,6 438 vxor 27,27,21 439 vxor 2,2,0 440 bge .Loop_4x 441 442.Ltail_4x: 443 .long 0x1002ECC8 444 .long 0x1022F4C8 445 .long 0x1042FCC8 446 447 vxor 0,0,20 448 vxor 1,1,27 449 450 .long 0x10E044C8 451 452 vsldoi 5,1,4,8 453 vsldoi 6,4,1,8 454 vxor 2,2,26 455 vxor 0,0,5 456 vxor 2,2,6 457 458 vsldoi 0,0,0,8 459 vxor 0,0,7 460 461 vsldoi 6,0,0,8 462 .long 0x100044C8 463 vxor 6,6,2 464 vxor 0,0,6 465 466 addic. 6,6,4 467 beq .Ldone_4x 468 469 .long 0x7C602E99 470 cmplwi 6,2 471 li 6,-4 472 blt .Lone 473 .long 0x7E082E99 474 beq .Ltwo 475 476.Lthree: 477 .long 0x7EC92E99 478 479 480 481 482 vxor 2,3,0 483 vor 29,23,23 484 vor 30,24,24 485 vor 31,25,25 486 487 vperm 5,16,22,19 488 vperm 6,16,22,18 489 .long 0x12B08CC8 490 .long 0x13764CC8 491 .long 0x12855CC8 492 .long 0x134654C8 493 494 vxor 27,27,21 495 b .Ltail_4x 496 497.align 4 498.Ltwo: 499 500 501 502 vxor 2,3,0 503 vperm 5,4,16,19 504 vperm 6,4,16,18 505 506 vsldoi 29,4,17,8 507 vor 30,17,17 508 vsldoi 31,17,4,8 509 510 .long 0x12855CC8 511 .long 0x13704CC8 512 .long 0x134654C8 513 514 b .Ltail_4x 515 516.align 4 517.Lone: 518 519 520 vsldoi 29,4,9,8 521 vor 30,9,9 522 vsldoi 31,9,4,8 523 524 vxor 2,3,0 525 vxor 20,20,20 526 vxor 27,27,27 527 vxor 26,26,26 528 529 b .Ltail_4x 530 531.Ldone_4x: 532 533 .long 0x7C001F99 534 535 li 10,39 536 li 11,55 537 mtspr 256,12 538 lvx 20,10,1 539 addi 10,10,32 540 lvx 21,11,1 541 addi 11,11,32 542 lvx 22,10,1 543 addi 10,10,32 544 lvx 23,11,1 545 addi 11,11,32 546 lvx 24,10,1 547 addi 10,10,32 548 lvx 25,11,1 549 addi 11,11,32 550 lvx 26,10,1 551 addi 10,10,32 552 lvx 27,11,1 553 addi 11,11,32 554 lvx 28,10,1 555 addi 10,10,32 556 lvx 29,11,1 557 addi 11,11,32 558 lvx 30,10,1 559 lvx 31,11,1 560 addi 1,1,232 561 blr 562.long 0 563.byte 0,12,0x04,0,0x80,0,4,0 564.long 0 565.size gcm_ghash_p8,.-gcm_ghash_p8 566 567.byte 71,72,65,83,72,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 568.align 2 569.align 2 570