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