Home | History | Annotate | Line # | Download | only in powerpc
ppc-mont.S revision 1.1
      1 .machine	"any"
      2 .text
      3 
      4 .globl	bn_mul_mont_int
      5 .type	bn_mul_mont_int,@function
      6 .align	4
      7 bn_mul_mont_int:
      8 	cmpwi	8,4
      9 	mr	9,3
     10 	li	3,0
     11 	bltlr
     12 	cmpwi	8,32
     13 	bgelr
     14 	slwi	8,8,2
     15 	li	12,-4096
     16 	addi	3,8,256
     17 	subf	3,3,1
     18 	and	3,3,12
     19 	subf	3,1,3
     20 	mr	12,1
     21 	srwi	8,8,2
     22 	stwux	1,1,3
     23 
     24 	stw	20,-48(12)
     25 	stw	21,-44(12)
     26 	stw	22,-40(12)
     27 	stw	23,-36(12)
     28 	stw	24,-32(12)
     29 	stw	25,-28(12)
     30 	stw	26,-24(12)
     31 	stw	27,-20(12)
     32 	stw	28,-16(12)
     33 	stw	29,-12(12)
     34 	stw	30,-8(12)
     35 	stw	31,-4(12)
     36 
     37 	lwz	7,0(7)
     38 	addi	8,8,-2
     39 
     40 	lwz	23,0(5)
     41 	lwz	10,0(4)
     42 	addi	22,1,32
     43 	mullw	25,10,23
     44 	mulhwu	26,10,23
     45 
     46 	lwz	10,4(4)
     47 	lwz	11,0(6)
     48 
     49 	mullw	24,25,7
     50 
     51 	mullw	29,10,23
     52 	mulhwu	30,10,23
     53 
     54 	mullw	27,11,24
     55 	mulhwu	28,11,24
     56 	lwz	11,4(6)
     57 	addc	27,27,25
     58 	addze	28,28
     59 
     60 	mullw	31,11,24
     61 	mulhwu	0,11,24
     62 
     63 	mtctr	8
     64 	li	21,8
     65 .align	4
     66 .L1st:
     67 	lwzx	10,4,21
     68 	addc	25,29,26
     69 	lwzx	11,6,21
     70 	addze	26,30
     71 	mullw	29,10,23
     72 	addc	27,31,28
     73 	mulhwu	30,10,23
     74 	addze	28,0
     75 	mullw	31,11,24
     76 	addc	27,27,25
     77 	mulhwu	0,11,24
     78 	addze	28,28
     79 	stw	27,0(22)
     80 
     81 	addi	21,21,4
     82 	addi	22,22,4
     83 	bc	16,0,.L1st
     84 
     85 	addc	25,29,26
     86 	addze	26,30
     87 
     88 	addc	27,31,28
     89 	addze	28,0
     90 	addc	27,27,25
     91 	addze	28,28
     92 	stw	27,0(22)
     93 
     94 	li	3,0
     95 	addc	28,28,26
     96 	addze	3,3
     97 	stw	28,4(22)
     98 
     99 	li	20,4
    100 .align	4
    101 .Louter:
    102 	lwzx	23,5,20
    103 	lwz	10,0(4)
    104 	addi	22,1,32
    105 	lwz	12,32(1)
    106 	mullw	25,10,23
    107 	mulhwu	26,10,23
    108 	lwz	10,4(4)
    109 	lwz	11,0(6)
    110 	addc	25,25,12
    111 	mullw	29,10,23
    112 	addze	26,26
    113 	mullw	24,25,7
    114 	mulhwu	30,10,23
    115 	mullw	27,11,24
    116 	mulhwu	28,11,24
    117 	lwz	11,4(6)
    118 	addc	27,27,25
    119 	mullw	31,11,24
    120 	addze	28,28
    121 	mulhwu	0,11,24
    122 
    123 	mtctr	8
    124 	li	21,8
    125 .align	4
    126 .Linner:
    127 	lwzx	10,4,21
    128 	addc	25,29,26
    129 	lwz	12,4(22)
    130 	addze	26,30
    131 	lwzx	11,6,21
    132 	addc	27,31,28
    133 	mullw	29,10,23
    134 	addze	28,0
    135 	mulhwu	30,10,23
    136 	addc	25,25,12
    137 	mullw	31,11,24
    138 	addze	26,26
    139 	mulhwu	0,11,24
    140 	addc	27,27,25
    141 	addi	21,21,4
    142 	addze	28,28
    143 	stw	27,0(22)
    144 	addi	22,22,4
    145 	bc	16,0,.Linner
    146 
    147 	lwz	12,4(22)
    148 	addc	25,29,26
    149 	addze	26,30
    150 	addc	25,25,12
    151 	addze	26,26
    152 
    153 	addc	27,31,28
    154 	addze	28,0
    155 	addc	27,27,25
    156 	addze	28,28
    157 	stw	27,0(22)
    158 
    159 	addic	3,3,-1
    160 	li	3,0
    161 	adde	28,28,26
    162 	addze	3,3
    163 	stw	28,4(22)
    164 
    165 	slwi	12,8,2
    166 	.long	0x7c146040
    167 	addi	20,20,4
    168 	ble	.Louter
    169 
    170 	addi	8,8,2
    171 	subfc	21,21,21
    172 	addi	22,1,32
    173 	mtctr	8
    174 
    175 .align	4
    176 .Lsub:	lwzx	12,22,21
    177 	lwzx	11,6,21
    178 	subfe	10,11,12
    179 	stwx	10,9,21
    180 	addi	21,21,4
    181 	bc	16,0,.Lsub
    182 
    183 	li	21,0
    184 	mtctr	8
    185 	subfe	3,21,3
    186 	and	4,22,3
    187 	andc	6,9,3
    188 	or	4,4,6
    189 
    190 .align	4
    191 .Lcopy:
    192 	lwzx	12,4,21
    193 	stwx	12,9,21
    194 	stwx	21,22,21
    195 	addi	21,21,4
    196 	bc	16,0,.Lcopy
    197 
    198 	lwz	12,0(1)
    199 	li	3,1
    200 	lwz	20,-48(12)
    201 	lwz	21,-44(12)
    202 	lwz	22,-40(12)
    203 	lwz	23,-36(12)
    204 	lwz	24,-32(12)
    205 	lwz	25,-28(12)
    206 	lwz	26,-24(12)
    207 	lwz	27,-20(12)
    208 	lwz	28,-16(12)
    209 	lwz	29,-12(12)
    210 	lwz	30,-8(12)
    211 	lwz	31,-4(12)
    212 	mr	1,12
    213 	blr
    214 .long	0
    215 .byte	0,12,4,0,0x80,12,6,0
    216 .long	0
    217 
    218 
    219 .byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,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
    220 .align	2
    221