1.machine "any" 2.text 3 4.globl bn_mul_mont_int 5.type bn_mul_mont_int,@function 6.align 4 7bn_mul_mont_int: 8 cmpwi 8,4 9 mr 9,3 10 li 3,0 11 bclr 12,0 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 bdnz+ .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 bdnz+ .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 bdnz+ .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 bdnz+ .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.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 219.align 2 220