Home | History | Annotate | Line # | Download | only in powerpc64
poly1305-ppcfp.S revision 1.1.4.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 .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
    163 poly1305_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
    483 poly1305_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