1.machine "any" 2.abiversion 2 3.text 4 5.globl poly1305_init_fpu 6.type poly1305_init_fpu,@function 7.align 6 8poly1305_init_fpu: 9.localentry poly1305_init_fpu,0 10 11 stdu 1,-48(1) 12 mflr 6 13 std 6,64(1) 14 15 bl .LPICmeup 16 17 xor 0,0,0 18 mtlr 6 19 20 lfd 8,8*0(5) 21 lfd 9,8*1(5) 22 lfd 10,8*2(5) 23 lfd 11,8*3(5) 24 lfd 12,8*4(5) 25 lfd 13,8*5(5) 26 27 stfd 8,8*0(3) 28 stfd 9,8*1(3) 29 stfd 10,8*2(3) 30 stfd 11,8*3(3) 31 32 cmpld 4,0 33 beq- .Lno_key 34 35 lfd 6,8*13(5) 36 mffs 7 37 38 stfd 8,8*4(3) 39 stfd 9,8*5(3) 40 stfd 10,8*6(3) 41 stfd 11,8*7(3) 42 43 li 8,4 44 li 9,8 45 li 10,12 46 lwzx 7,0,4 47 lwzx 8,8,4 48 lwzx 9,9,4 49 lwzx 10,10,4 50 51 lis 11,0xf000 52 ori 12,11,3 53 andc 7,7,11 54 andc 8,8,12 55 andc 9,9,12 56 andc 10,10,12 57 58 stw 7,32(3) 59 stw 8,40(3) 60 stw 9,48(3) 61 stw 10,56(3) 62 63 mtfsf 255,6 64 stfd 8,8*18(3) 65 stfd 9,8*19(3) 66 stfd 10,8*20(3) 67 stfd 11,8*21(3) 68 stfd 12,8*22(3) 69 stfd 13,8*23(3) 70 71 lfd 0,8*4(3) 72 lfd 2,8*5(3) 73 lfd 4,8*6(3) 74 lfd 6,8*7(3) 75 76 fsub 0,0,8 77 fsub 2,2,9 78 fsub 4,4,10 79 fsub 6,6,11 80 81 lfd 8,8*6(5) 82 lfd 9,8*7(5) 83 lfd 10,8*8(5) 84 lfd 11,8*9(5) 85 86 fmul 3,2,13 87 fmul 5,4,13 88 stfd 7,8*15(3) 89 fmul 7,6,13 90 91 fadd 1,0,8 92 stfd 3,8*12(3) 93 fadd 3,2,9 94 stfd 5,8*13(3) 95 fadd 5,4,10 96 stfd 7,8*14(3) 97 fadd 7,6,11 98 99 fsub 1,1,8 100 fsub 3,3,9 101 fsub 5,5,10 102 fsub 7,7,11 103 104 lfd 8,8*10(5) 105 lfd 9,8*11(5) 106 lfd 10,8*12(5) 107 108 fsub 0,0,1 109 fsub 2,2,3 110 fsub 4,4,5 111 fsub 6,6,7 112 113 stfd 1,8*5(3) 114 stfd 3,8*7(3) 115 stfd 5,8*9(3) 116 stfd 7,8*11(3) 117 118 stfd 0,8*4(3) 119 stfd 2,8*6(3) 120 stfd 4,8*8(3) 121 stfd 6,8*10(3) 122 123 lfd 2,8*12(3) 124 lfd 4,8*13(3) 125 lfd 6,8*14(3) 126 lfd 0,8*15(3) 127 128 fadd 3,2,8 129 fadd 5,4,9 130 fadd 7,6,10 131 132 fsub 3,3,8 133 fsub 5,5,9 134 fsub 7,7,10 135 136 fsub 2,2,3 137 fsub 4,4,5 138 fsub 6,6,7 139 140 stfd 3,8*13(3) 141 stfd 5,8*15(3) 142 stfd 7,8*17(3) 143 144 stfd 2,8*12(3) 145 stfd 4,8*14(3) 146 stfd 6,8*16(3) 147 148 mtfsf 255,0 149.Lno_key: 150 xor 3,3,3 151 addi 1,1,48 152 blr 153.long 0 154.byte 0,12,4,1,0x80,0,2,0 155.size poly1305_init_fpu,.-poly1305_init_fpu 156 157.globl poly1305_blocks_fpu 158.type poly1305_blocks_fpu,@function 159.align 4 160poly1305_blocks_fpu: 161.localentry poly1305_blocks_fpu,0 162 163 srwi. 5,5,4 164 beq- .Labort 165 166 stdu 1,-240(1) 167 mflr 0 168 stfd 14,96(1) 169 stfd 15,104(1) 170 stfd 16,112(1) 171 stfd 17,120(1) 172 stfd 18,128(1) 173 stfd 19,136(1) 174 stfd 20,144(1) 175 stfd 21,152(1) 176 stfd 22,160(1) 177 stfd 23,168(1) 178 stfd 24,176(1) 179 stfd 25,184(1) 180 stfd 26,192(1) 181 stfd 27,200(1) 182 stfd 28,208(1) 183 stfd 29,216(1) 184 stfd 30,224(1) 185 stfd 31,232(1) 186 std 0,256(1) 187 188 xor 0,0,0 189 li 10,1 190 mtctr 5 191 neg 5,5 192 stw 0,84(1) 193 stw 10,80(1) 194 195 lfd 8,8*18(3) 196 lfd 9,8*19(3) 197 lfd 10,8*20(3) 198 lfd 11,8*21(3) 199 lfd 12,8*22(3) 200 lfd 13,8*23(3) 201 202 lfd 0,8*0(3) 203 lfd 2,8*1(3) 204 lfd 4,8*2(3) 205 lfd 6,8*3(3) 206 207 stfd 8,48(1) 208 oris 10,6,18736 209 stfd 9,56(1) 210 stfd 10,64(1) 211 stw 10,76(1) 212 213 li 11,4 214 li 12,8 215 li 6,12 216 lwzx 7,0,4 217 lwzx 8,11,4 218 lwzx 9,12,4 219 lwzx 10,6,4 220 addi 4,4,16 221 222 stw 7,48(1) 223 stw 8,56(1) 224 stw 9,64(1) 225 stw 10,72(1) 226 227 mffs 28 228 lfd 29,80(1) 229 lfd 14,8*4(3) 230 lfd 15,8*5(3) 231 lfd 16,8*6(3) 232 lfd 17,8*7(3) 233 lfd 18,8*8(3) 234 lfd 19,8*9(3) 235 lfd 24,8*10(3) 236 lfd 25,8*11(3) 237 lfd 26,8*12(3) 238 lfd 27,8*13(3) 239 lfd 20,8*14(3) 240 lfd 21,8*15(3) 241 lfd 22,8*16(3) 242 lfd 23,8*17(3) 243 244 stfd 28,80(1) 245 mtfsf 255,29 246 247 addic 5,5,1 248 addze 0,0 249 slwi. 0,0,4 250 sub 4,4,0 251 252 lfd 28,48(1) 253 lfd 29,56(1) 254 lfd 30,64(1) 255 lfd 31,72(1) 256 257 fsub 0,0,8 258 lwzx 7,0,4 259 fsub 2,2,9 260 lwzx 8,11,4 261 fsub 4,4,10 262 lwzx 9,12,4 263 fsub 6,6,11 264 lwzx 10,6,4 265 266 fsub 28,28,8 267 addi 4,4,16 268 fsub 29,29,9 269 fsub 30,30,10 270 fsub 31,31,11 271 272 fadd 28,28,0 273 stw 7,48(1) 274 fadd 29,29,2 275 stw 8,56(1) 276 fadd 30,30,4 277 stw 9,64(1) 278 fadd 31,31,6 279 stw 10,72(1) 280 281 b .Lentry 282 283.align 4 284.Loop: 285 fsub 30,30,8 286 addic 5,5,1 287 fsub 31,31,9 288 addze 0,0 289 fsub 26,26,10 290 slwi. 0,0,4 291 fsub 27,27,11 292 sub 4,4,0 293 294 fadd 0,0,30 295 fadd 1,1,31 296 fadd 4,4,26 297 fadd 5,5,27 298 299 300 fadd 26,2,10 301 lwzx 7,0,4 302 fadd 27,3,10 303 lwzx 8,11,4 304 fadd 30,6,12 305 lwzx 9,12,4 306 fadd 31,7,12 307 lwzx 10,6,4 308 fadd 24,0,9 309 addi 4,4,16 310 fadd 25,1,9 311 fadd 28,4,11 312 fadd 29,5,11 313 314 fsub 26,26,10 315 stw 7,48(1) 316 fsub 27,27,10 317 stw 8,56(1) 318 fsub 30,30,12 319 stw 9,64(1) 320 fsub 31,31,12 321 stw 10,72(1) 322 fsub 24,24,9 323 fsub 25,25,9 324 fsub 28,28,11 325 fsub 29,29,11 326 327 fsub 2,2,26 328 fsub 3,3,27 329 fsub 6,6,30 330 fsub 7,7,31 331 fsub 4,4,28 332 fsub 5,5,29 333 fsub 0,0,24 334 fsub 1,1,25 335 336 fadd 2,2,24 337 fadd 3,3,25 338 fadd 6,6,28 339 fadd 7,7,29 340 fadd 4,4,26 341 fadd 5,5,27 342 fmadd 0,30,13,0 343 fmadd 1,31,13,1 344 345 fadd 29,2,3 346 lfd 26,8*12(3) 347 fadd 31,6,7 348 lfd 27,8*13(3) 349 fadd 30,4,5 350 lfd 24,8*10(3) 351 fadd 28,0,1 352 lfd 25,8*11(3) 353.Lentry: 354 fmul 0,22,29 355 fmul 1,23,29 356 fmul 4,16,29 357 fmul 5,17,29 358 fmul 2,14,29 359 fmul 3,15,29 360 fmul 6,18,29 361 fmul 7,19,29 362 363 fmadd 0,26,31,0 364 fmadd 1,27,31,1 365 fmadd 4,22,31,4 366 fmadd 5,23,31,5 367 fmadd 2,20,31,2 368 fmadd 3,21,31,3 369 fmadd 6,14,31,6 370 fmadd 7,15,31,7 371 372 fmadd 0,20,30,0 373 fmadd 1,21,30,1 374 fmadd 4,14,30,4 375 fmadd 5,15,30,5 376 fmadd 2,22,30,2 377 fmadd 3,23,30,3 378 fmadd 6,16,30,6 379 fmadd 7,17,30,7 380 381 fmadd 0,14,28,0 382 lfd 30,48(1) 383 fmadd 1,15,28,1 384 lfd 31,56(1) 385 fmadd 4,18,28,4 386 lfd 26,64(1) 387 fmadd 5,19,28,5 388 lfd 27,72(1) 389 fmadd 2,16,28,2 390 fmadd 3,17,28,3 391 fmadd 6,24,28,6 392 fmadd 7,25,28,7 393 394 bdnz .Loop 395 396 397 fadd 24,0,9 398 fadd 25,1,9 399 fadd 28,4,11 400 fadd 29,5,11 401 fadd 26,2,10 402 fadd 27,3,10 403 fadd 30,6,12 404 fadd 31,7,12 405 406 fsub 24,24,9 407 fsub 25,25,9 408 fsub 28,28,11 409 fsub 29,29,11 410 fsub 26,26,10 411 fsub 27,27,10 412 fsub 30,30,12 413 fsub 31,31,12 414 415 fsub 2,2,26 416 fsub 3,3,27 417 fsub 6,6,30 418 fsub 7,7,31 419 fsub 4,4,28 420 fsub 5,5,29 421 fsub 0,0,24 422 fsub 1,1,25 423 424 fadd 2,2,24 425 fadd 3,3,25 426 fadd 6,6,28 427 fadd 7,7,29 428 fadd 4,4,26 429 fadd 5,5,27 430 fmadd 0,30,13,0 431 fmadd 1,31,13,1 432 433 fadd 29,2,3 434 fadd 31,6,7 435 fadd 30,4,5 436 fadd 28,0,1 437 438 lfd 0,80(1) 439 fadd 29,29,9 440 fadd 31,31,11 441 fadd 30,30,10 442 fadd 28,28,8 443 444 stfd 29,8*1(3) 445 stfd 31,8*3(3) 446 stfd 30,8*2(3) 447 stfd 28,8*0(3) 448 449 mtfsf 255,0 450 lfd 14,96(1) 451 lfd 15,104(1) 452 lfd 16,112(1) 453 lfd 17,120(1) 454 lfd 18,128(1) 455 lfd 19,136(1) 456 lfd 20,144(1) 457 lfd 21,152(1) 458 lfd 22,160(1) 459 lfd 23,168(1) 460 lfd 24,176(1) 461 lfd 25,184(1) 462 lfd 26,192(1) 463 lfd 27,200(1) 464 lfd 28,208(1) 465 lfd 29,216(1) 466 lfd 30,224(1) 467 lfd 31,232(1) 468 addi 1,1,240 469.Labort: 470 blr 471.long 0 472.byte 0,12,4,1,0x80,0,4,0 473.size poly1305_blocks_fpu,.-poly1305_blocks_fpu 474.globl poly1305_emit_fpu 475.type poly1305_emit_fpu,@function 476.align 4 477poly1305_emit_fpu: 478.localentry poly1305_emit_fpu,0 479 480 stdu 1,-80(1) 481 mflr 0 482 std 28,48(1) 483 std 29,56(1) 484 std 30,64(1) 485 std 31,72(1) 486 std 0,96(1) 487 488 lwz 28,4(3) 489 lwz 7,0(3) 490 lwz 29,12(3) 491 lwz 8,8(3) 492 lwz 30,20(3) 493 lwz 9,16(3) 494 lwz 31,28(3) 495 lwz 10,24(3) 496 497 lis 0,0xfff0 498 andc 28,28,0 499 andc 29,29,0 500 andc 30,30,0 501 andc 31,31,0 502 li 0,3 503 504 srwi 6,31,2 505 and 11,31,0 506 andc 31,31,0 507 add 31,31,6 508 add 7,7,31 509 add 8,8,28 510 add 9,9,29 511 add 10,10,30 512 513 srdi 28,7,32 514 add 8,8,28 515 srdi 29,8,32 516 add 9,9,29 517 srdi 30,9,32 518 add 10,10,30 519 srdi 31,10,32 520 add 11,11,31 521 522 insrdi 7,8,32,0 523 insrdi 9,10,32,0 524 525 addic 28,7,5 526 addze 29,9 527 addze 30,11 528 529 srdi 0,30,2 530 neg 0,0 531 sradi 0,0,63 532 ld 30,0(5) 533 ld 31,8(5) 534 535 andc 7,7,0 536 and 28,28,0 537 andc 9,9,0 538 and 29,29,0 539 or 7,7,28 540 or 9,9,29 541 addc 7,7,30 542 adde 9,9,31 543 544 srdi 8,7,32 545 srdi 10,9,32 546 stw 7,0(4) 547 stw 8,4(4) 548 stw 9,8(4) 549 stw 10,12(4) 550 ld 28,48(1) 551 ld 29,56(1) 552 ld 30,64(1) 553 ld 31,72(1) 554 addi 1,1,80 555 blr 556.long 0 557.byte 0,12,4,1,0x80,4,3,0 558.size poly1305_emit_fpu,.-poly1305_emit_fpu 559.align 6 560.LPICmeup: 561 mflr 0 562 bcl 20,31,$+4 563 mflr 5 564 addi 5,5,56 565 mtlr 0 566 blr 567.long 0 568.byte 0,12,0x14,0,0,0,0,0 569.space 28 570 571.long 0x00000000,0x43300000 572.long 0x00000000,0x45300000 573.long 0x00000000,0x47300000 574.long 0x00000000,0x49300000 575.long 0x00000000,0x4b500000 576 577.long 0x00000000,0x37f40000 578 579.long 0x00000000,0x44300000 580.long 0x00000000,0x46300000 581.long 0x00000000,0x48300000 582.long 0x00000000,0x4a300000 583.long 0x00000000,0x3e300000 584.long 0x00000000,0x40300000 585.long 0x00000000,0x42300000 586 587.long 0x00000001,0x00000000 588.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,32,70,80,85,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 589.align 2 590.align 4 591