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