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