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