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