Home | History | Annotate | Line # | Download | only in powerpc64
poly1305-ppcfp.S revision 1.1
      1 .machine	"any"
      2 .text
      3 
      4 .globl	poly1305_init_fpu
      5 .type	poly1305_init_fpu,@function
      6 .section	".opd","aw"
      7 .align	3
      8 poly1305_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
    164 poly1305_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
    485 poly1305_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