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