1.text 2 3.globl x25519_fe51_mul 4.type x25519_fe51_mul,@function 5 6.align 5 7x25519_fe51_mul: 8 stdu 1,-144(1) 9 std 21,56(1) 10 std 22,64(1) 11 std 23,72(1) 12 std 24,80(1) 13 std 25,88(1) 14 std 26,96(1) 15 std 27,104(1) 16 std 28,112(1) 17 std 29,120(1) 18 std 30,128(1) 19 std 31,136(1) 20 21 ld 6,0(5) 22 ld 7,0(4) 23 ld 8,8(4) 24 ld 9,16(4) 25 ld 10,24(4) 26 ld 11,32(4) 27 28 mulld 22,7,6 29 mulhdu 23,7,6 30 31 mulld 24,8,6 32 mulhdu 25,8,6 33 34 mulld 30,11,6 35 mulhdu 31,11,6 36 ld 4,8(5) 37 mulli 11,11,19 38 39 mulld 26,9,6 40 mulhdu 27,9,6 41 42 mulld 28,10,6 43 mulhdu 29,10,6 44 mulld 12,11,4 45 mulhdu 21,11,4 46 addc 22,22,12 47 adde 23,23,21 48 49 mulld 12,7,4 50 mulhdu 21,7,4 51 addc 24,24,12 52 adde 25,25,21 53 54 mulld 12,10,4 55 mulhdu 21,10,4 56 ld 6,16(5) 57 mulli 10,10,19 58 addc 30,30,12 59 adde 31,31,21 60 61 mulld 12,8,4 62 mulhdu 21,8,4 63 addc 26,26,12 64 adde 27,27,21 65 66 mulld 12,9,4 67 mulhdu 21,9,4 68 addc 28,28,12 69 adde 29,29,21 70 mulld 12,10,6 71 mulhdu 21,10,6 72 addc 22,22,12 73 adde 23,23,21 74 75 mulld 12,11,6 76 mulhdu 21,11,6 77 addc 24,24,12 78 adde 25,25,21 79 80 mulld 12,9,6 81 mulhdu 21,9,6 82 ld 4,24(5) 83 mulli 9,9,19 84 addc 30,30,12 85 adde 31,31,21 86 87 mulld 12,7,6 88 mulhdu 21,7,6 89 addc 26,26,12 90 adde 27,27,21 91 92 mulld 12,8,6 93 mulhdu 21,8,6 94 addc 28,28,12 95 adde 29,29,21 96 mulld 12,9,4 97 mulhdu 21,9,4 98 addc 22,22,12 99 adde 23,23,21 100 101 mulld 12,10,4 102 mulhdu 21,10,4 103 addc 24,24,12 104 adde 25,25,21 105 106 mulld 12,8,4 107 mulhdu 21,8,4 108 ld 6,32(5) 109 mulli 8,8,19 110 addc 30,30,12 111 adde 31,31,21 112 113 mulld 12,11,4 114 mulhdu 21,11,4 115 addc 26,26,12 116 adde 27,27,21 117 118 mulld 12,7,4 119 mulhdu 21,7,4 120 addc 28,28,12 121 adde 29,29,21 122 mulld 12,8,6 123 mulhdu 21,8,6 124 addc 22,22,12 125 adde 23,23,21 126 127 mulld 12,9,6 128 mulhdu 21,9,6 129 addc 24,24,12 130 adde 25,25,21 131 132 mulld 12,10,6 133 mulhdu 21,10,6 134 addc 26,26,12 135 adde 27,27,21 136 137 mulld 12,11,6 138 mulhdu 21,11,6 139 addc 28,28,12 140 adde 29,29,21 141 142 mulld 12,7,6 143 mulhdu 21,7,6 144 addc 30,30,12 145 adde 31,31,21 146 147.Lfe51_reduce: 148 li 0,-1 149 srdi 0,0,13 150 151 srdi 12,26,51 152 and 9,26,0 153 insrdi 12,27,51,0 154 srdi 21,22,51 155 and 7,22,0 156 insrdi 21,23,51,0 157 addc 28,28,12 158 addze 29,29 159 addc 24,24,21 160 addze 25,25 161 162 srdi 12,28,51 163 and 10,28,0 164 insrdi 12,29,51,0 165 srdi 21,24,51 166 and 8,24,0 167 insrdi 21,25,51,0 168 addc 30,30,12 169 addze 31,31 170 add 9,9,21 171 172 srdi 12,30,51 173 and 11,30,0 174 insrdi 12,31,51,0 175 mulli 12,12,19 176 177 add 7,7,12 178 179 srdi 21,9,51 180 and 9,9,0 181 add 10,10,21 182 183 srdi 12,7,51 184 and 7,7,0 185 add 8,8,12 186 187 std 9,16(3) 188 std 10,24(3) 189 std 11,32(3) 190 std 7,0(3) 191 std 8,8(3) 192 193 ld 21,56(1) 194 ld 22,64(1) 195 ld 23,72(1) 196 ld 24,80(1) 197 ld 25,88(1) 198 ld 26,96(1) 199 ld 27,104(1) 200 ld 28,112(1) 201 ld 29,120(1) 202 ld 30,128(1) 203 ld 31,136(1) 204 addi 1,1,144 205 blr 206.long 0 207.byte 0,12,4,0,0x80,11,3,0 208.long 0 209 210.globl x25519_fe51_sqr 211.type x25519_fe51_sqr,@function 212 213.align 5 214x25519_fe51_sqr: 215 stdu 1,-144(1) 216 std 21,56(1) 217 std 22,64(1) 218 std 23,72(1) 219 std 24,80(1) 220 std 25,88(1) 221 std 26,96(1) 222 std 27,104(1) 223 std 28,112(1) 224 std 29,120(1) 225 std 30,128(1) 226 std 31,136(1) 227 228 ld 7,0(4) 229 ld 8,8(4) 230 ld 9,16(4) 231 ld 10,24(4) 232 ld 11,32(4) 233 234 add 6,7,7 235 mulli 21,11,19 236 237 mulld 22,7,7 238 mulhdu 23,7,7 239 mulld 24,8,6 240 mulhdu 25,8,6 241 mulld 26,9,6 242 mulhdu 27,9,6 243 mulld 28,10,6 244 mulhdu 29,10,6 245 mulld 30,11,6 246 mulhdu 31,11,6 247 add 6,8,8 248 mulld 12,11,21 249 mulhdu 11,11,21 250 addc 28,28,12 251 adde 29,29,11 252 253 mulli 5,10,19 254 255 mulld 12,8,8 256 mulhdu 11,8,8 257 addc 26,26,12 258 adde 27,27,11 259 mulld 12,9,6 260 mulhdu 11,9,6 261 addc 28,28,12 262 adde 29,29,11 263 mulld 12,10,6 264 mulhdu 11,10,6 265 addc 30,30,12 266 adde 31,31,11 267 mulld 12,21,6 268 mulhdu 11,21,6 269 add 6,10,10 270 addc 22,22,12 271 adde 23,23,11 272 mulld 12,10,5 273 mulhdu 10,10,5 274 addc 24,24,12 275 adde 25,25,10 276 mulld 12,6,21 277 mulhdu 10,6,21 278 add 6,9,9 279 addc 26,26,12 280 adde 27,27,10 281 282 mulld 12,9,9 283 mulhdu 10,9,9 284 addc 30,30,12 285 adde 31,31,10 286 mulld 12,5,6 287 mulhdu 10,5,6 288 addc 22,22,12 289 adde 23,23,10 290 mulld 12,21,6 291 mulhdu 10,21,6 292 addc 24,24,12 293 adde 25,25,10 294 295 b .Lfe51_reduce 296.long 0 297.byte 0,12,4,0,0x80,11,2,0 298.long 0 299 300.globl x25519_fe51_mul121666 301.type x25519_fe51_mul121666,@function 302 303.align 5 304x25519_fe51_mul121666: 305 stdu 1,-144(1) 306 std 21,56(1) 307 std 22,64(1) 308 std 23,72(1) 309 std 24,80(1) 310 std 25,88(1) 311 std 26,96(1) 312 std 27,104(1) 313 std 28,112(1) 314 std 29,120(1) 315 std 30,128(1) 316 std 31,136(1) 317 318 lis 6,1 319 ori 6,6,56130 320 ld 7,0(4) 321 ld 8,8(4) 322 ld 9,16(4) 323 ld 10,24(4) 324 ld 11,32(4) 325 326 mulld 22,7,6 327 mulhdu 23,7,6 328 mulld 24,8,6 329 mulhdu 25,8,6 330 mulld 26,9,6 331 mulhdu 27,9,6 332 mulld 28,10,6 333 mulhdu 29,10,6 334 mulld 30,11,6 335 mulhdu 31,11,6 336 337 b .Lfe51_reduce 338.long 0 339.byte 0,12,4,0,0x80,11,2,0 340.long 0 341 342