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