Home | History | Annotate | Line # | Download | only in powerpc
      1 .machine	"any"
      2 
      3 .text
      4 
      5 .globl	gcm_init_p8
      6 .type	gcm_init_p8,@function
      7 .align	5
      8 gcm_init_p8:
      9 	li	0,-4096
     10 	li	8,0x10
     11 	mfspr	12,256
     12 	li	9,0x20
     13 	mtspr	256,0
     14 	li	10,0x30
     15 .long	0x7D202699
     16 
     17 	vspltisb	8,-16
     18 	vspltisb	5,1
     19 	vaddubm	8,8,8
     20 	vxor	4,4,4
     21 	vor	8,8,5
     22 	vsldoi	8,8,4,15
     23 	vsldoi	6,4,5,1
     24 	vaddubm	8,8,8
     25 	vspltisb	7,7
     26 	vor	8,8,6
     27 	vspltb	6,9,0
     28 	vsl	9,9,5
     29 	vsrab	6,6,7
     30 	vand	6,6,8
     31 	vxor	3,9,6
     32 
     33 	vsldoi	9,3,3,8
     34 	vsldoi	8,4,8,8
     35 	vsldoi	11,4,9,8
     36 	vsldoi	10,9,4,8
     37 
     38 .long	0x7D001F99
     39 .long	0x7D681F99
     40 	li	8,0x40
     41 .long	0x7D291F99
     42 	li	9,0x50
     43 .long	0x7D4A1F99
     44 	li	10,0x60
     45 
     46 .long	0x10035CC8
     47 .long	0x10234CC8
     48 .long	0x104354C8
     49 
     50 .long	0x10E044C8
     51 
     52 	vsldoi	5,1,4,8
     53 	vsldoi	6,4,1,8
     54 	vxor	0,0,5
     55 	vxor	2,2,6
     56 
     57 	vsldoi	0,0,0,8
     58 	vxor	0,0,7
     59 
     60 	vsldoi	6,0,0,8
     61 .long	0x100044C8
     62 	vxor	6,6,2
     63 	vxor	16,0,6
     64 
     65 	vsldoi	17,16,16,8
     66 	vsldoi	19,4,17,8
     67 	vsldoi	18,17,4,8
     68 
     69 .long	0x7E681F99
     70 	li	8,0x70
     71 .long	0x7E291F99
     72 	li	9,0x80
     73 .long	0x7E4A1F99
     74 	li	10,0x90
     75 .long	0x10039CC8
     76 .long	0x11B09CC8
     77 .long	0x10238CC8
     78 .long	0x11D08CC8
     79 .long	0x104394C8
     80 .long	0x11F094C8
     81 
     82 .long	0x10E044C8
     83 .long	0x114D44C8
     84 
     85 	vsldoi	5,1,4,8
     86 	vsldoi	6,4,1,8
     87 	vsldoi	11,14,4,8
     88 	vsldoi	9,4,14,8
     89 	vxor	0,0,5
     90 	vxor	2,2,6
     91 	vxor	13,13,11
     92 	vxor	15,15,9
     93 
     94 	vsldoi	0,0,0,8
     95 	vsldoi	13,13,13,8
     96 	vxor	0,0,7
     97 	vxor	13,13,10
     98 
     99 	vsldoi	6,0,0,8
    100 	vsldoi	9,13,13,8
    101 .long	0x100044C8
    102 .long	0x11AD44C8
    103 	vxor	6,6,2
    104 	vxor	9,9,15
    105 	vxor	0,0,6
    106 	vxor	13,13,9
    107 
    108 	vsldoi	9,0,0,8
    109 	vsldoi	17,13,13,8
    110 	vsldoi	11,4,9,8
    111 	vsldoi	10,9,4,8
    112 	vsldoi	19,4,17,8
    113 	vsldoi	18,17,4,8
    114 
    115 .long	0x7D681F99
    116 	li	8,0xa0
    117 .long	0x7D291F99
    118 	li	9,0xb0
    119 .long	0x7D4A1F99
    120 	li	10,0xc0
    121 .long	0x7E681F99
    122 .long	0x7E291F99
    123 .long	0x7E4A1F99
    124 
    125 	mtspr	256,12
    126 	blr
    127 .long	0
    128 .byte	0,12,0x14,0,0,0,2,0
    129 .long	0
    130 
    131 .globl	gcm_gmult_p8
    132 .type	gcm_gmult_p8,@function
    133 .align	5
    134 gcm_gmult_p8:
    135 	lis	0,0xfff8
    136 	li	8,0x10
    137 	mfspr	12,256
    138 	li	9,0x20
    139 	mtspr	256,0
    140 	li	10,0x30
    141 .long	0x7C601E99
    142 
    143 .long	0x7D682699
    144 
    145 .long	0x7D292699
    146 
    147 .long	0x7D4A2699
    148 
    149 .long	0x7D002699
    150 
    151 	vxor	4,4,4
    152 
    153 .long	0x10035CC8
    154 .long	0x10234CC8
    155 .long	0x104354C8
    156 
    157 .long	0x10E044C8
    158 
    159 	vsldoi	5,1,4,8
    160 	vsldoi	6,4,1,8
    161 	vxor	0,0,5
    162 	vxor	2,2,6
    163 
    164 	vsldoi	0,0,0,8
    165 	vxor	0,0,7
    166 
    167 	vsldoi	6,0,0,8
    168 .long	0x100044C8
    169 	vxor	6,6,2
    170 	vxor	0,0,6
    171 
    172 
    173 .long	0x7C001F99
    174 
    175 	mtspr	256,12
    176 	blr
    177 .long	0
    178 .byte	0,12,0x14,0,0,0,2,0
    179 .long	0
    180 
    181 
    182 .globl	gcm_ghash_p8
    183 .type	gcm_ghash_p8,@function
    184 .align	5
    185 gcm_ghash_p8:
    186 	li	0,-4096
    187 	li	8,0x10
    188 	mfspr	12,256
    189 	li	9,0x20
    190 	mtspr	256,0
    191 	li	10,0x30
    192 .long	0x7C001E99
    193 
    194 .long	0x7D682699
    195 	li	8,0x40
    196 
    197 .long	0x7D292699
    198 	li	9,0x50
    199 
    200 .long	0x7D4A2699
    201 	li	10,0x60
    202 
    203 .long	0x7D002699
    204 
    205 	vxor	4,4,4
    206 
    207 	cmplwi	6,64
    208 	bge	.Lgcm_ghash_p8_4x
    209 
    210 .long	0x7C602E99
    211 	addi	5,5,16
    212 	subic.	6,6,16
    213 
    214 	vxor	3,3,0
    215 	beq	.Lshort
    216 
    217 .long	0x7E682699
    218 	li	8,16
    219 .long	0x7E292699
    220 	add	9,5,6
    221 .long	0x7E4A2699
    222 	b	.Loop_2x
    223 
    224 .align	5
    225 .Loop_2x:
    226 .long	0x7E002E99
    227 
    228 
    229 	subic	6,6,32
    230 .long	0x10039CC8
    231 .long	0x11B05CC8
    232 	subfe	0,0,0
    233 .long	0x10238CC8
    234 .long	0x11D04CC8
    235 	and	0,0,6
    236 .long	0x104394C8
    237 .long	0x11F054C8
    238 	add	5,5,0
    239 
    240 	vxor	0,0,13
    241 	vxor	1,1,14
    242 
    243 .long	0x10E044C8
    244 
    245 	vsldoi	5,1,4,8
    246 	vsldoi	6,4,1,8
    247 	vxor	2,2,15
    248 	vxor	0,0,5
    249 	vxor	2,2,6
    250 
    251 	vsldoi	0,0,0,8
    252 	vxor	0,0,7
    253 .long	0x7C682E99
    254 	addi	5,5,32
    255 
    256 	vsldoi	6,0,0,8
    257 .long	0x100044C8
    258 
    259 	vxor	6,6,2
    260 	vxor	3,3,6
    261 	vxor	3,3,0
    262 	.long	0x7c092840
    263 	bgt	.Loop_2x
    264 
    265 	cmplwi	6,0
    266 	bne	.Leven
    267 
    268 .Lshort:
    269 .long	0x10035CC8
    270 .long	0x10234CC8
    271 .long	0x104354C8
    272 
    273 .long	0x10E044C8
    274 
    275 	vsldoi	5,1,4,8
    276 	vsldoi	6,4,1,8
    277 	vxor	0,0,5
    278 	vxor	2,2,6
    279 
    280 	vsldoi	0,0,0,8
    281 	vxor	0,0,7
    282 
    283 	vsldoi	6,0,0,8
    284 .long	0x100044C8
    285 	vxor	6,6,2
    286 
    287 .Leven:
    288 	vxor	0,0,6
    289 
    290 .long	0x7C001F99
    291 
    292 	mtspr	256,12
    293 	blr
    294 .long	0
    295 .byte	0,12,0x14,0,0,0,4,0
    296 .long	0
    297 .align	5
    298 .gcm_ghash_p8_4x:
    299 .Lgcm_ghash_p8_4x:
    300 	stwu	1,-232(1)
    301 	li	10,39
    302 	li	11,55
    303 	stvx	20,10,1
    304 	addi	10,10,32
    305 	stvx	21,11,1
    306 	addi	11,11,32
    307 	stvx	22,10,1
    308 	addi	10,10,32
    309 	stvx	23,11,1
    310 	addi	11,11,32
    311 	stvx	24,10,1
    312 	addi	10,10,32
    313 	stvx	25,11,1
    314 	addi	11,11,32
    315 	stvx	26,10,1
    316 	addi	10,10,32
    317 	stvx	27,11,1
    318 	addi	11,11,32
    319 	stvx	28,10,1
    320 	addi	10,10,32
    321 	stvx	29,11,1
    322 	addi	11,11,32
    323 	stvx	30,10,1
    324 	li	10,0x60
    325 	stvx	31,11,1
    326 	li	0,-1
    327 	stw	12,228(1)
    328 	mtspr	256,0
    329 
    330 	lvsl	5,0,8
    331 
    332 	li	8,0x70
    333 .long	0x7E292699
    334 	li	9,0x80
    335 	vspltisb	6,8
    336 
    337 	li	10,0x90
    338 .long	0x7EE82699
    339 	li	8,0xa0
    340 .long	0x7F092699
    341 	li	9,0xb0
    342 .long	0x7F2A2699
    343 	li	10,0xc0
    344 .long	0x7FA82699
    345 	li	8,0x10
    346 .long	0x7FC92699
    347 	li	9,0x20
    348 .long	0x7FEA2699
    349 	li	10,0x30
    350 
    351 	vsldoi	7,4,6,8
    352 	vaddubm	18,5,7
    353 	vaddubm	19,6,18
    354 
    355 	srwi	6,6,4
    356 
    357 .long	0x7C602E99
    358 .long	0x7E082E99
    359 	subic.	6,6,8
    360 .long	0x7EC92E99
    361 .long	0x7F8A2E99
    362 	addi	5,5,0x40
    363 
    364 
    365 
    366 
    367 
    368 	vxor	2,3,0
    369 
    370 .long	0x11B0BCC8
    371 .long	0x11D0C4C8
    372 .long	0x11F0CCC8
    373 
    374 	vperm	11,17,9,18
    375 	vperm	5,22,28,19
    376 	vperm	10,17,9,19
    377 	vperm	6,22,28,18
    378 .long	0x12B68CC8
    379 .long	0x12855CC8
    380 .long	0x137C4CC8
    381 .long	0x134654C8
    382 
    383 	vxor	21,21,14
    384 	vxor	20,20,13
    385 	vxor	27,27,21
    386 	vxor	26,26,15
    387 
    388 	blt	.Ltail_4x
    389 
    390 .Loop_4x:
    391 .long	0x7C602E99
    392 .long	0x7E082E99
    393 	subic.	6,6,4
    394 .long	0x7EC92E99
    395 .long	0x7F8A2E99
    396 	addi	5,5,0x40
    397 
    398 
    399 
    400 
    401 
    402 .long	0x1002ECC8
    403 .long	0x1022F4C8
    404 .long	0x1042FCC8
    405 .long	0x11B0BCC8
    406 .long	0x11D0C4C8
    407 .long	0x11F0CCC8
    408 
    409 	vxor	0,0,20
    410 	vxor	1,1,27
    411 	vxor	2,2,26
    412 	vperm	5,22,28,19
    413 	vperm	6,22,28,18
    414 
    415 .long	0x10E044C8
    416 .long	0x12855CC8
    417 .long	0x134654C8
    418 
    419 	vsldoi	5,1,4,8
    420 	vsldoi	6,4,1,8
    421 	vxor	0,0,5
    422 	vxor	2,2,6
    423 
    424 	vsldoi	0,0,0,8
    425 	vxor	0,0,7
    426 
    427 	vsldoi	6,0,0,8
    428 .long	0x12B68CC8
    429 .long	0x137C4CC8
    430 .long	0x100044C8
    431 
    432 	vxor	20,20,13
    433 	vxor	26,26,15
    434 	vxor	2,2,3
    435 	vxor	21,21,14
    436 	vxor	2,2,6
    437 	vxor	27,27,21
    438 	vxor	2,2,0
    439 	bge	.Loop_4x
    440 
    441 .Ltail_4x:
    442 .long	0x1002ECC8
    443 .long	0x1022F4C8
    444 .long	0x1042FCC8
    445 
    446 	vxor	0,0,20
    447 	vxor	1,1,27
    448 
    449 .long	0x10E044C8
    450 
    451 	vsldoi	5,1,4,8
    452 	vsldoi	6,4,1,8
    453 	vxor	2,2,26
    454 	vxor	0,0,5
    455 	vxor	2,2,6
    456 
    457 	vsldoi	0,0,0,8
    458 	vxor	0,0,7
    459 
    460 	vsldoi	6,0,0,8
    461 .long	0x100044C8
    462 	vxor	6,6,2
    463 	vxor	0,0,6
    464 
    465 	addic.	6,6,4
    466 	beq	.Ldone_4x
    467 
    468 .long	0x7C602E99
    469 	cmplwi	6,2
    470 	li	6,-4
    471 	blt	.Lone
    472 .long	0x7E082E99
    473 	beq	.Ltwo
    474 
    475 .Lthree:
    476 .long	0x7EC92E99
    477 
    478 
    479 
    480 
    481 	vxor	2,3,0
    482 	vor	29,23,23
    483 	vor	30,24,24
    484 	vor	31,25,25
    485 
    486 	vperm	5,16,22,19
    487 	vperm	6,16,22,18
    488 .long	0x12B08CC8
    489 .long	0x13764CC8
    490 .long	0x12855CC8
    491 .long	0x134654C8
    492 
    493 	vxor	27,27,21
    494 	b	.Ltail_4x
    495 
    496 .align	4
    497 .Ltwo:
    498 
    499 
    500 
    501 	vxor	2,3,0
    502 	vperm	5,4,16,19
    503 	vperm	6,4,16,18
    504 
    505 	vsldoi	29,4,17,8
    506 	vor	30,17,17
    507 	vsldoi	31,17,4,8
    508 
    509 .long	0x12855CC8
    510 .long	0x13704CC8
    511 .long	0x134654C8
    512 
    513 	b	.Ltail_4x
    514 
    515 .align	4
    516 .Lone:
    517 
    518 
    519 	vsldoi	29,4,9,8
    520 	vor	30,9,9
    521 	vsldoi	31,9,4,8
    522 
    523 	vxor	2,3,0
    524 	vxor	20,20,20
    525 	vxor	27,27,27
    526 	vxor	26,26,26
    527 
    528 	b	.Ltail_4x
    529 
    530 .Ldone_4x:
    531 
    532 .long	0x7C001F99
    533 
    534 	li	10,39
    535 	li	11,55
    536 	mtspr	256,12
    537 	lvx	20,10,1
    538 	addi	10,10,32
    539 	lvx	21,11,1
    540 	addi	11,11,32
    541 	lvx	22,10,1
    542 	addi	10,10,32
    543 	lvx	23,11,1
    544 	addi	11,11,32
    545 	lvx	24,10,1
    546 	addi	10,10,32
    547 	lvx	25,11,1
    548 	addi	11,11,32
    549 	lvx	26,10,1
    550 	addi	10,10,32
    551 	lvx	27,11,1
    552 	addi	11,11,32
    553 	lvx	28,10,1
    554 	addi	10,10,32
    555 	lvx	29,11,1
    556 	addi	11,11,32
    557 	lvx	30,10,1
    558 	lvx	31,11,1
    559 	addi	1,1,232
    560 	blr
    561 .long	0
    562 .byte	0,12,0x04,0,0x80,0,4,0
    563 .long	0
    564 
    565 
    566 .byte	71,72,65,83,72,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,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
    567 .align	2
    568 .align	2
    569