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