1#define DEC_20 19 2#define DEC_24 23 3#define DEC_28 27 4#define DEC_32 31 5 6#define DEC(N) uECC_CONCAT(DEC_, N) 7 8#define REPEAT_1(stuff) stuff 9#define REPEAT_2(stuff) REPEAT_1(stuff) stuff 10#define REPEAT_3(stuff) REPEAT_2(stuff) stuff 11#define REPEAT_4(stuff) REPEAT_3(stuff) stuff 12#define REPEAT_5(stuff) REPEAT_4(stuff) stuff 13#define REPEAT_6(stuff) REPEAT_5(stuff) stuff 14#define REPEAT_7(stuff) REPEAT_6(stuff) stuff 15#define REPEAT_8(stuff) REPEAT_7(stuff) stuff 16#define REPEAT_9(stuff) REPEAT_8(stuff) stuff 17#define REPEAT_10(stuff) REPEAT_9(stuff) stuff 18#define REPEAT_11(stuff) REPEAT_10(stuff) stuff 19#define REPEAT_12(stuff) REPEAT_11(stuff) stuff 20#define REPEAT_13(stuff) REPEAT_12(stuff) stuff 21#define REPEAT_14(stuff) REPEAT_13(stuff) stuff 22#define REPEAT_15(stuff) REPEAT_14(stuff) stuff 23#define REPEAT_16(stuff) REPEAT_15(stuff) stuff 24#define REPEAT_17(stuff) REPEAT_16(stuff) stuff 25#define REPEAT_18(stuff) REPEAT_17(stuff) stuff 26#define REPEAT_19(stuff) REPEAT_18(stuff) stuff 27#define REPEAT_20(stuff) REPEAT_19(stuff) stuff 28#define REPEAT_21(stuff) REPEAT_20(stuff) stuff 29#define REPEAT_22(stuff) REPEAT_21(stuff) stuff 30#define REPEAT_23(stuff) REPEAT_22(stuff) stuff 31#define REPEAT_24(stuff) REPEAT_23(stuff) stuff 32#define REPEAT_25(stuff) REPEAT_24(stuff) stuff 33#define REPEAT_26(stuff) REPEAT_25(stuff) stuff 34#define REPEAT_27(stuff) REPEAT_26(stuff) stuff 35#define REPEAT_28(stuff) REPEAT_27(stuff) stuff 36#define REPEAT_29(stuff) REPEAT_28(stuff) stuff 37#define REPEAT_30(stuff) REPEAT_29(stuff) stuff 38#define REPEAT_31(stuff) REPEAT_30(stuff) stuff 39#define REPEAT_32(stuff) REPEAT_31(stuff) stuff 40 41#define REPEAT(N, stuff) uECC_CONCAT(REPEAT_, N)(stuff) 42 43#define STR2(thing) #thing 44#define STR(thing) STR2(thing) 45 46#if (uECC_ASM == uECC_asm_fast) 47 48static void vli_clear(uint8_t *vli) { 49 __asm__ volatile ( 50 REPEAT(uECC_BYTES, 51 "st %a[ptr]+, r1 \n\t") 52 : [ptr] "+e" (vli) 53 : 54 : "r0", "cc", "memory" 55 ); 56} 57#define asm_clear 1 58 59static void vli_set(uint8_t *dest, const uint8_t *src) { 60 __asm__ volatile ( 61 REPEAT(uECC_BYTES, 62 "ld r0, %a[sptr]+ \n\t" 63 "st %a[dptr]+, r0 \n\t") 64 : [dptr] "+e" (dest), [sptr] "+e" (src) 65 : 66 : "r0", "cc", "memory" 67 ); 68} 69#define asm_set 1 70 71static void vli_rshift1(uint8_t *vli) { 72 __asm__ volatile ( 73 "adiw r30, " STR(uECC_BYTES) " \n\t" 74 "ld r0, -z \n\t" /* Load byte. */ 75 "lsr r0 \n\t" /* Shift. */ 76 "st z, r0 \n\t" /* Store the first result byte. */ 77 78 /* Now we just do the remaining bytes with the carry bit (using ROR) */ 79 REPEAT(DEC(uECC_BYTES), 80 "ld r0, -z \n\t" 81 "ror r0 \n\t" 82 "st z, r0 \n\t") 83 : "+z" (vli) 84 : 85 : "r0", "cc", "memory" 86 ); 87} 88#define asm_rshift1 1 89 90/* Computes result = left + right, returning carry. Can modify in place. */ 91static uint8_t vli_add(uint8_t *result, const uint8_t *left, const uint8_t *right) { 92 uint8_t carry = 0; 93 uint8_t left_byte; 94 uint8_t right_byte; 95 96 __asm__ volatile ( 97 "ld %[left], x+ \n\t" /* Load left byte. */ 98 "ld %[right], y+ \n\t" /* Load right byte. */ 99 "add %[left], %[right] \n\t" /* Add the first byte. */ 100 "st z+, %[left] \n\t" /* Store the first result byte. */ 101 102 /* Now we just do the remaining bytes with the carry bit (using ADC) */ 103 REPEAT(DEC(uECC_BYTES), 104 "ld %[left], x+ \n\t" 105 "ld %[right], y+ \n\t" 106 "adc %[left], %[right] \n\t" 107 "st z+, %[left] \n\t") 108 109 "adc %[carry], %[carry] \n\t" /* Store carry bit. */ 110 "sbiw r28, " STR(uECC_BYTES) " \n\t" /* Restore Y */ 111 112 : "+z" (result), "+x" (left), 113 [carry] "+r" (carry), [left] "=&r" (left_byte), [right] "=&r" (right_byte) 114 : "y" (right) 115 : "cc", "memory" 116 ); 117 return carry; 118} 119#define asm_add 1 120 121/* Computes result = left - right, returning borrow. Can modify in place. */ 122static uint8_t vli_sub(uint8_t *result, const uint8_t *left, const uint8_t *right) { 123 uint8_t borrow = 0; 124 uint8_t left_byte; 125 uint8_t right_byte; 126 127 __asm__ volatile ( 128 "ld %[left], x+ \n\t" /* Load left byte. */ 129 "ld %[right], y+ \n\t" /* Load right byte. */ 130 "sub %[left], %[right] \n\t" /* Subtract the first byte. */ 131 "st z+, %[left] \n\t" /* Store the first result byte. */ 132 133 /* Now we just do the remaining bytes with the carry bit (using SBC) */ 134 REPEAT(DEC(uECC_BYTES), 135 "ld %[left], x+ \n\t" 136 "ld %[right], y+ \n\t" 137 "sbc %[left], %[right] \n\t" 138 "st z+, %[left] \n\t") 139 140 "adc %[borrow], %[borrow] \n\t" /* Store carry bit in borrow. */ 141 "sbiw r28, " STR(uECC_BYTES) " \n\t" /* Restore Y */ 142 143 : "+z" (result), "+x" (left), 144 [borrow] "+r" (borrow), [left] "=&r" (left_byte), [right] "=&r" (right_byte) 145 : "y" (right) 146 : "cc", "memory" 147 ); 148 return borrow; 149} 150#define asm_sub 1 151 152#if (uECC_BYTES == 20) 153__attribute((noinline)) 154static void vli_mult(uint8_t *result, const uint8_t *left, const uint8_t *right) { 155 __asm__ volatile ( 156 "adiw r30, 10 \n\t" 157 "adiw r28, 10 \n\t" 158 "ld r2, x+ \n\t" 159 "ld r3, x+ \n\t" 160 "ld r4, x+ \n\t" 161 "ld r5, x+ \n\t" 162 "ld r6, x+ \n\t" 163 "ld r7, x+ \n\t" 164 "ld r8, x+ \n\t" 165 "ld r9, x+ \n\t" 166 "ld r10, x+ \n\t" 167 "ld r11, x+ \n\t" 168 "ld r12, y+ \n\t" 169 "ld r13, y+ \n\t" 170 "ld r14, y+ \n\t" 171 "ld r15, y+ \n\t" 172 "ld r16, y+ \n\t" 173 "ld r17, y+ \n\t" 174 "ld r18, y+ \n\t" 175 "ld r19, y+ \n\t" 176 "ld r20, y+ \n\t" 177 "ld r21, y+ \n\t" 178 "ldi r25, 0 \n\t" 179 180 "ldi r23, 0 \n\t" 181 "mul r2, r12 \n\t" 182 "st z+, r0 \n\t" 183 "mov r22, r1 \n\t" 184 185 "ldi r24, 0 \n\t" 186 "mul r2, r13 \n\t" 187 "add r22, r0 \n\t" 188 "adc r23, r1 \n\t" 189 "mul r3, r12 \n\t" 190 "add r22, r0 \n\t" 191 "adc r23, r1 \n\t" 192 "adc r24, r25 \n\t" 193 "st z+, r22 \n\t" 194 195 "ldi r22, 0 \n\t" 196 "mul r2, r14 \n\t" 197 "add r23, r0 \n\t" 198 "adc r24, r1 \n\t" 199 "adc r22, r25 \n\t" 200 "mul r3, r13 \n\t" 201 "add r23, r0 \n\t" 202 "adc r24, r1 \n\t" 203 "adc r22, r25 \n\t" 204 "mul r4, r12 \n\t" 205 "add r23, r0 \n\t" 206 "adc r24, r1 \n\t" 207 "adc r22, r25 \n\t" 208 "st z+, r23 \n\t" 209 210 "ldi r23, 0 \n\t" 211 "mul r2, r15 \n\t" 212 "add r24, r0 \n\t" 213 "adc r22, r1 \n\t" 214 "adc r23, r25 \n\t" 215 "mul r3, r14 \n\t" 216 "add r24, r0 \n\t" 217 "adc r22, r1 \n\t" 218 "adc r23, r25 \n\t" 219 "mul r4, r13 \n\t" 220 "add r24, r0 \n\t" 221 "adc r22, r1 \n\t" 222 "adc r23, r25 \n\t" 223 "mul r5, r12 \n\t" 224 "add r24, r0 \n\t" 225 "adc r22, r1 \n\t" 226 "adc r23, r25 \n\t" 227 "st z+, r24 \n\t" 228 229 "ldi r24, 0 \n\t" 230 "mul r2, r16 \n\t" 231 "add r22, r0 \n\t" 232 "adc r23, r1 \n\t" 233 "adc r24, r25 \n\t" 234 "mul r3, r15 \n\t" 235 "add r22, r0 \n\t" 236 "adc r23, r1 \n\t" 237 "adc r24, r25 \n\t" 238 "mul r4, r14 \n\t" 239 "add r22, r0 \n\t" 240 "adc r23, r1 \n\t" 241 "adc r24, r25 \n\t" 242 "mul r5, r13 \n\t" 243 "add r22, r0 \n\t" 244 "adc r23, r1 \n\t" 245 "adc r24, r25 \n\t" 246 "mul r6, r12 \n\t" 247 "add r22, r0 \n\t" 248 "adc r23, r1 \n\t" 249 "adc r24, r25 \n\t" 250 "st z+, r22 \n\t" 251 252 "ldi r22, 0 \n\t" 253 "mul r2, r17 \n\t" 254 "add r23, r0 \n\t" 255 "adc r24, r1 \n\t" 256 "adc r22, r25 \n\t" 257 "mul r3, r16 \n\t" 258 "add r23, r0 \n\t" 259 "adc r24, r1 \n\t" 260 "adc r22, r25 \n\t" 261 "mul r4, r15 \n\t" 262 "add r23, r0 \n\t" 263 "adc r24, r1 \n\t" 264 "adc r22, r25 \n\t" 265 "mul r5, r14 \n\t" 266 "add r23, r0 \n\t" 267 "adc r24, r1 \n\t" 268 "adc r22, r25 \n\t" 269 "mul r6, r13 \n\t" 270 "add r23, r0 \n\t" 271 "adc r24, r1 \n\t" 272 "adc r22, r25 \n\t" 273 "mul r7, r12 \n\t" 274 "add r23, r0 \n\t" 275 "adc r24, r1 \n\t" 276 "adc r22, r25 \n\t" 277 "st z+, r23 \n\t" 278 279 "ldi r23, 0 \n\t" 280 "mul r2, r18 \n\t" 281 "add r24, r0 \n\t" 282 "adc r22, r1 \n\t" 283 "adc r23, r25 \n\t" 284 "mul r3, r17 \n\t" 285 "add r24, r0 \n\t" 286 "adc r22, r1 \n\t" 287 "adc r23, r25 \n\t" 288 "mul r4, r16 \n\t" 289 "add r24, r0 \n\t" 290 "adc r22, r1 \n\t" 291 "adc r23, r25 \n\t" 292 "mul r5, r15 \n\t" 293 "add r24, r0 \n\t" 294 "adc r22, r1 \n\t" 295 "adc r23, r25 \n\t" 296 "mul r6, r14 \n\t" 297 "add r24, r0 \n\t" 298 "adc r22, r1 \n\t" 299 "adc r23, r25 \n\t" 300 "mul r7, r13 \n\t" 301 "add r24, r0 \n\t" 302 "adc r22, r1 \n\t" 303 "adc r23, r25 \n\t" 304 "mul r8, r12 \n\t" 305 "add r24, r0 \n\t" 306 "adc r22, r1 \n\t" 307 "adc r23, r25 \n\t" 308 "st z+, r24 \n\t" 309 310 "ldi r24, 0 \n\t" 311 "mul r2, r19 \n\t" 312 "add r22, r0 \n\t" 313 "adc r23, r1 \n\t" 314 "adc r24, r25 \n\t" 315 "mul r3, r18 \n\t" 316 "add r22, r0 \n\t" 317 "adc r23, r1 \n\t" 318 "adc r24, r25 \n\t" 319 "mul r4, r17 \n\t" 320 "add r22, r0 \n\t" 321 "adc r23, r1 \n\t" 322 "adc r24, r25 \n\t" 323 "mul r5, r16 \n\t" 324 "add r22, r0 \n\t" 325 "adc r23, r1 \n\t" 326 "adc r24, r25 \n\t" 327 "mul r6, r15 \n\t" 328 "add r22, r0 \n\t" 329 "adc r23, r1 \n\t" 330 "adc r24, r25 \n\t" 331 "mul r7, r14 \n\t" 332 "add r22, r0 \n\t" 333 "adc r23, r1 \n\t" 334 "adc r24, r25 \n\t" 335 "mul r8, r13 \n\t" 336 "add r22, r0 \n\t" 337 "adc r23, r1 \n\t" 338 "adc r24, r25 \n\t" 339 "mul r9, r12 \n\t" 340 "add r22, r0 \n\t" 341 "adc r23, r1 \n\t" 342 "adc r24, r25 \n\t" 343 "st z+, r22 \n\t" 344 345 "ldi r22, 0 \n\t" 346 "mul r2, r20 \n\t" 347 "add r23, r0 \n\t" 348 "adc r24, r1 \n\t" 349 "adc r22, r25 \n\t" 350 "mul r3, r19 \n\t" 351 "add r23, r0 \n\t" 352 "adc r24, r1 \n\t" 353 "adc r22, r25 \n\t" 354 "mul r4, r18 \n\t" 355 "add r23, r0 \n\t" 356 "adc r24, r1 \n\t" 357 "adc r22, r25 \n\t" 358 "mul r5, r17 \n\t" 359 "add r23, r0 \n\t" 360 "adc r24, r1 \n\t" 361 "adc r22, r25 \n\t" 362 "mul r6, r16 \n\t" 363 "add r23, r0 \n\t" 364 "adc r24, r1 \n\t" 365 "adc r22, r25 \n\t" 366 "mul r7, r15 \n\t" 367 "add r23, r0 \n\t" 368 "adc r24, r1 \n\t" 369 "adc r22, r25 \n\t" 370 "mul r8, r14 \n\t" 371 "add r23, r0 \n\t" 372 "adc r24, r1 \n\t" 373 "adc r22, r25 \n\t" 374 "mul r9, r13 \n\t" 375 "add r23, r0 \n\t" 376 "adc r24, r1 \n\t" 377 "adc r22, r25 \n\t" 378 "mul r10, r12 \n\t" 379 "add r23, r0 \n\t" 380 "adc r24, r1 \n\t" 381 "adc r22, r25 \n\t" 382 "st z+, r23 \n\t" 383 384 "ldi r23, 0 \n\t" 385 "mul r2, r21 \n\t" 386 "add r24, r0 \n\t" 387 "adc r22, r1 \n\t" 388 "adc r23, r25 \n\t" 389 "mul r3, r20 \n\t" 390 "add r24, r0 \n\t" 391 "adc r22, r1 \n\t" 392 "adc r23, r25 \n\t" 393 "mul r4, r19 \n\t" 394 "add r24, r0 \n\t" 395 "adc r22, r1 \n\t" 396 "adc r23, r25 \n\t" 397 "mul r5, r18 \n\t" 398 "add r24, r0 \n\t" 399 "adc r22, r1 \n\t" 400 "adc r23, r25 \n\t" 401 "mul r6, r17 \n\t" 402 "add r24, r0 \n\t" 403 "adc r22, r1 \n\t" 404 "adc r23, r25 \n\t" 405 "mul r7, r16 \n\t" 406 "add r24, r0 \n\t" 407 "adc r22, r1 \n\t" 408 "adc r23, r25 \n\t" 409 "mul r8, r15 \n\t" 410 "add r24, r0 \n\t" 411 "adc r22, r1 \n\t" 412 "adc r23, r25 \n\t" 413 "mul r9, r14 \n\t" 414 "add r24, r0 \n\t" 415 "adc r22, r1 \n\t" 416 "adc r23, r25 \n\t" 417 "mul r10, r13 \n\t" 418 "add r24, r0 \n\t" 419 "adc r22, r1 \n\t" 420 "adc r23, r25 \n\t" 421 "mul r11, r12 \n\t" 422 "add r24, r0 \n\t" 423 "adc r22, r1 \n\t" 424 "adc r23, r25 \n\t" 425 "st z+, r24 \n\t" 426 427 "ldi r24, 0 \n\t" 428 "mul r3, r21 \n\t" 429 "add r22, r0 \n\t" 430 "adc r23, r1 \n\t" 431 "adc r24, r25 \n\t" 432 "mul r4, r20 \n\t" 433 "add r22, r0 \n\t" 434 "adc r23, r1 \n\t" 435 "adc r24, r25 \n\t" 436 "mul r5, r19 \n\t" 437 "add r22, r0 \n\t" 438 "adc r23, r1 \n\t" 439 "adc r24, r25 \n\t" 440 "mul r6, r18 \n\t" 441 "add r22, r0 \n\t" 442 "adc r23, r1 \n\t" 443 "adc r24, r25 \n\t" 444 "mul r7, r17 \n\t" 445 "add r22, r0 \n\t" 446 "adc r23, r1 \n\t" 447 "adc r24, r25 \n\t" 448 "mul r8, r16 \n\t" 449 "add r22, r0 \n\t" 450 "adc r23, r1 \n\t" 451 "adc r24, r25 \n\t" 452 "mul r9, r15 \n\t" 453 "add r22, r0 \n\t" 454 "adc r23, r1 \n\t" 455 "adc r24, r25 \n\t" 456 "mul r10, r14 \n\t" 457 "add r22, r0 \n\t" 458 "adc r23, r1 \n\t" 459 "adc r24, r25 \n\t" 460 "mul r11, r13 \n\t" 461 "add r22, r0 \n\t" 462 "adc r23, r1 \n\t" 463 "adc r24, r25 \n\t" 464 "st z+, r22 \n\t" 465 466 "ldi r22, 0 \n\t" 467 "mul r4, r21 \n\t" 468 "add r23, r0 \n\t" 469 "adc r24, r1 \n\t" 470 "adc r22, r25 \n\t" 471 "mul r5, r20 \n\t" 472 "add r23, r0 \n\t" 473 "adc r24, r1 \n\t" 474 "adc r22, r25 \n\t" 475 "mul r6, r19 \n\t" 476 "add r23, r0 \n\t" 477 "adc r24, r1 \n\t" 478 "adc r22, r25 \n\t" 479 "mul r7, r18 \n\t" 480 "add r23, r0 \n\t" 481 "adc r24, r1 \n\t" 482 "adc r22, r25 \n\t" 483 "mul r8, r17 \n\t" 484 "add r23, r0 \n\t" 485 "adc r24, r1 \n\t" 486 "adc r22, r25 \n\t" 487 "mul r9, r16 \n\t" 488 "add r23, r0 \n\t" 489 "adc r24, r1 \n\t" 490 "adc r22, r25 \n\t" 491 "mul r10, r15 \n\t" 492 "add r23, r0 \n\t" 493 "adc r24, r1 \n\t" 494 "adc r22, r25 \n\t" 495 "mul r11, r14 \n\t" 496 "add r23, r0 \n\t" 497 "adc r24, r1 \n\t" 498 "adc r22, r25 \n\t" 499 "st z+, r23 \n\t" 500 501 "ldi r23, 0 \n\t" 502 "mul r5, r21 \n\t" 503 "add r24, r0 \n\t" 504 "adc r22, r1 \n\t" 505 "adc r23, r25 \n\t" 506 "mul r6, r20 \n\t" 507 "add r24, r0 \n\t" 508 "adc r22, r1 \n\t" 509 "adc r23, r25 \n\t" 510 "mul r7, r19 \n\t" 511 "add r24, r0 \n\t" 512 "adc r22, r1 \n\t" 513 "adc r23, r25 \n\t" 514 "mul r8, r18 \n\t" 515 "add r24, r0 \n\t" 516 "adc r22, r1 \n\t" 517 "adc r23, r25 \n\t" 518 "mul r9, r17 \n\t" 519 "add r24, r0 \n\t" 520 "adc r22, r1 \n\t" 521 "adc r23, r25 \n\t" 522 "mul r10, r16 \n\t" 523 "add r24, r0 \n\t" 524 "adc r22, r1 \n\t" 525 "adc r23, r25 \n\t" 526 "mul r11, r15 \n\t" 527 "add r24, r0 \n\t" 528 "adc r22, r1 \n\t" 529 "adc r23, r25 \n\t" 530 "st z+, r24 \n\t" 531 532 "ldi r24, 0 \n\t" 533 "mul r6, r21 \n\t" 534 "add r22, r0 \n\t" 535 "adc r23, r1 \n\t" 536 "adc r24, r25 \n\t" 537 "mul r7, r20 \n\t" 538 "add r22, r0 \n\t" 539 "adc r23, r1 \n\t" 540 "adc r24, r25 \n\t" 541 "mul r8, r19 \n\t" 542 "add r22, r0 \n\t" 543 "adc r23, r1 \n\t" 544 "adc r24, r25 \n\t" 545 "mul r9, r18 \n\t" 546 "add r22, r0 \n\t" 547 "adc r23, r1 \n\t" 548 "adc r24, r25 \n\t" 549 "mul r10, r17 \n\t" 550 "add r22, r0 \n\t" 551 "adc r23, r1 \n\t" 552 "adc r24, r25 \n\t" 553 "mul r11, r16 \n\t" 554 "add r22, r0 \n\t" 555 "adc r23, r1 \n\t" 556 "adc r24, r25 \n\t" 557 "st z+, r22 \n\t" 558 559 "ldi r22, 0 \n\t" 560 "mul r7, r21 \n\t" 561 "add r23, r0 \n\t" 562 "adc r24, r1 \n\t" 563 "adc r22, r25 \n\t" 564 "mul r8, r20 \n\t" 565 "add r23, r0 \n\t" 566 "adc r24, r1 \n\t" 567 "adc r22, r25 \n\t" 568 "mul r9, r19 \n\t" 569 "add r23, r0 \n\t" 570 "adc r24, r1 \n\t" 571 "adc r22, r25 \n\t" 572 "mul r10, r18 \n\t" 573 "add r23, r0 \n\t" 574 "adc r24, r1 \n\t" 575 "adc r22, r25 \n\t" 576 "mul r11, r17 \n\t" 577 "add r23, r0 \n\t" 578 "adc r24, r1 \n\t" 579 "adc r22, r25 \n\t" 580 "st z+, r23 \n\t" 581 582 "ldi r23, 0 \n\t" 583 "mul r8, r21 \n\t" 584 "add r24, r0 \n\t" 585 "adc r22, r1 \n\t" 586 "adc r23, r25 \n\t" 587 "mul r9, r20 \n\t" 588 "add r24, r0 \n\t" 589 "adc r22, r1 \n\t" 590 "adc r23, r25 \n\t" 591 "mul r10, r19 \n\t" 592 "add r24, r0 \n\t" 593 "adc r22, r1 \n\t" 594 "adc r23, r25 \n\t" 595 "mul r11, r18 \n\t" 596 "add r24, r0 \n\t" 597 "adc r22, r1 \n\t" 598 "adc r23, r25 \n\t" 599 "st z+, r24 \n\t" 600 601 "ldi r24, 0 \n\t" 602 "mul r9, r21 \n\t" 603 "add r22, r0 \n\t" 604 "adc r23, r1 \n\t" 605 "adc r24, r25 \n\t" 606 "mul r10, r20 \n\t" 607 "add r22, r0 \n\t" 608 "adc r23, r1 \n\t" 609 "adc r24, r25 \n\t" 610 "mul r11, r19 \n\t" 611 "add r22, r0 \n\t" 612 "adc r23, r1 \n\t" 613 "adc r24, r25 \n\t" 614 "st z+, r22 \n\t" 615 616 "ldi r22, 0 \n\t" 617 "mul r10, r21 \n\t" 618 "add r23, r0 \n\t" 619 "adc r24, r1 \n\t" 620 "adc r22, r25 \n\t" 621 "mul r11, r20 \n\t" 622 "add r23, r0 \n\t" 623 "adc r24, r1 \n\t" 624 "adc r22, r25 \n\t" 625 "st z+, r23 \n\t" 626 627 "mul r11, r21 \n\t" 628 "add r24, r0 \n\t" 629 "adc r22, r1 \n\t" 630 "st z+, r24 \n\t" 631 "st z+, r22 \n\t" 632 633 "sbiw r30, 30 \n\t" 634 "sbiw r28, 20 \n\t" 635 "ld r12, y+ \n\t" 636 "ld r13, y+ \n\t" 637 "ld r14, y+ \n\t" 638 "ld r15, y+ \n\t" 639 "ld r16, y+ \n\t" 640 "ld r17, y+ \n\t" 641 "ld r18, y+ \n\t" 642 "ld r19, y+ \n\t" 643 "ld r20, y+ \n\t" 644 "ld r21, y+ \n\t" 645 646 "ldi r23, 0 \n\t" 647 "mul r2, r12 \n\t" 648 "st z+, r0 \n\t" 649 "mov r22, r1 \n\t" 650 651 "ldi r24, 0 \n\t" 652 "mul r2, r13 \n\t" 653 "add r22, r0 \n\t" 654 "adc r23, r1 \n\t" 655 "mul r3, r12 \n\t" 656 "add r22, r0 \n\t" 657 "adc r23, r1 \n\t" 658 "adc r24, r25 \n\t" 659 "st z+, r22 \n\t" 660 661 "ldi r22, 0 \n\t" 662 "mul r2, r14 \n\t" 663 "add r23, r0 \n\t" 664 "adc r24, r1 \n\t" 665 "adc r22, r25 \n\t" 666 "mul r3, r13 \n\t" 667 "add r23, r0 \n\t" 668 "adc r24, r1 \n\t" 669 "adc r22, r25 \n\t" 670 "mul r4, r12 \n\t" 671 "add r23, r0 \n\t" 672 "adc r24, r1 \n\t" 673 "adc r22, r25 \n\t" 674 "st z+, r23 \n\t" 675 676 "ldi r23, 0 \n\t" 677 "mul r2, r15 \n\t" 678 "add r24, r0 \n\t" 679 "adc r22, r1 \n\t" 680 "adc r23, r25 \n\t" 681 "mul r3, r14 \n\t" 682 "add r24, r0 \n\t" 683 "adc r22, r1 \n\t" 684 "adc r23, r25 \n\t" 685 "mul r4, r13 \n\t" 686 "add r24, r0 \n\t" 687 "adc r22, r1 \n\t" 688 "adc r23, r25 \n\t" 689 "mul r5, r12 \n\t" 690 "add r24, r0 \n\t" 691 "adc r22, r1 \n\t" 692 "adc r23, r25 \n\t" 693 "st z+, r24 \n\t" 694 695 "ldi r24, 0 \n\t" 696 "mul r2, r16 \n\t" 697 "add r22, r0 \n\t" 698 "adc r23, r1 \n\t" 699 "adc r24, r25 \n\t" 700 "mul r3, r15 \n\t" 701 "add r22, r0 \n\t" 702 "adc r23, r1 \n\t" 703 "adc r24, r25 \n\t" 704 "mul r4, r14 \n\t" 705 "add r22, r0 \n\t" 706 "adc r23, r1 \n\t" 707 "adc r24, r25 \n\t" 708 "mul r5, r13 \n\t" 709 "add r22, r0 \n\t" 710 "adc r23, r1 \n\t" 711 "adc r24, r25 \n\t" 712 "mul r6, r12 \n\t" 713 "add r22, r0 \n\t" 714 "adc r23, r1 \n\t" 715 "adc r24, r25 \n\t" 716 "st z+, r22 \n\t" 717 718 "ldi r22, 0 \n\t" 719 "mul r2, r17 \n\t" 720 "add r23, r0 \n\t" 721 "adc r24, r1 \n\t" 722 "adc r22, r25 \n\t" 723 "mul r3, r16 \n\t" 724 "add r23, r0 \n\t" 725 "adc r24, r1 \n\t" 726 "adc r22, r25 \n\t" 727 "mul r4, r15 \n\t" 728 "add r23, r0 \n\t" 729 "adc r24, r1 \n\t" 730 "adc r22, r25 \n\t" 731 "mul r5, r14 \n\t" 732 "add r23, r0 \n\t" 733 "adc r24, r1 \n\t" 734 "adc r22, r25 \n\t" 735 "mul r6, r13 \n\t" 736 "add r23, r0 \n\t" 737 "adc r24, r1 \n\t" 738 "adc r22, r25 \n\t" 739 "mul r7, r12 \n\t" 740 "add r23, r0 \n\t" 741 "adc r24, r1 \n\t" 742 "adc r22, r25 \n\t" 743 "st z+, r23 \n\t" 744 745 "ldi r23, 0 \n\t" 746 "mul r2, r18 \n\t" 747 "add r24, r0 \n\t" 748 "adc r22, r1 \n\t" 749 "adc r23, r25 \n\t" 750 "mul r3, r17 \n\t" 751 "add r24, r0 \n\t" 752 "adc r22, r1 \n\t" 753 "adc r23, r25 \n\t" 754 "mul r4, r16 \n\t" 755 "add r24, r0 \n\t" 756 "adc r22, r1 \n\t" 757 "adc r23, r25 \n\t" 758 "mul r5, r15 \n\t" 759 "add r24, r0 \n\t" 760 "adc r22, r1 \n\t" 761 "adc r23, r25 \n\t" 762 "mul r6, r14 \n\t" 763 "add r24, r0 \n\t" 764 "adc r22, r1 \n\t" 765 "adc r23, r25 \n\t" 766 "mul r7, r13 \n\t" 767 "add r24, r0 \n\t" 768 "adc r22, r1 \n\t" 769 "adc r23, r25 \n\t" 770 "mul r8, r12 \n\t" 771 "add r24, r0 \n\t" 772 "adc r22, r1 \n\t" 773 "adc r23, r25 \n\t" 774 "st z+, r24 \n\t" 775 776 "ldi r24, 0 \n\t" 777 "mul r2, r19 \n\t" 778 "add r22, r0 \n\t" 779 "adc r23, r1 \n\t" 780 "adc r24, r25 \n\t" 781 "mul r3, r18 \n\t" 782 "add r22, r0 \n\t" 783 "adc r23, r1 \n\t" 784 "adc r24, r25 \n\t" 785 "mul r4, r17 \n\t" 786 "add r22, r0 \n\t" 787 "adc r23, r1 \n\t" 788 "adc r24, r25 \n\t" 789 "mul r5, r16 \n\t" 790 "add r22, r0 \n\t" 791 "adc r23, r1 \n\t" 792 "adc r24, r25 \n\t" 793 "mul r6, r15 \n\t" 794 "add r22, r0 \n\t" 795 "adc r23, r1 \n\t" 796 "adc r24, r25 \n\t" 797 "mul r7, r14 \n\t" 798 "add r22, r0 \n\t" 799 "adc r23, r1 \n\t" 800 "adc r24, r25 \n\t" 801 "mul r8, r13 \n\t" 802 "add r22, r0 \n\t" 803 "adc r23, r1 \n\t" 804 "adc r24, r25 \n\t" 805 "mul r9, r12 \n\t" 806 "add r22, r0 \n\t" 807 "adc r23, r1 \n\t" 808 "adc r24, r25 \n\t" 809 "st z+, r22 \n\t" 810 811 "ldi r22, 0 \n\t" 812 "mul r2, r20 \n\t" 813 "add r23, r0 \n\t" 814 "adc r24, r1 \n\t" 815 "adc r22, r25 \n\t" 816 "mul r3, r19 \n\t" 817 "add r23, r0 \n\t" 818 "adc r24, r1 \n\t" 819 "adc r22, r25 \n\t" 820 "mul r4, r18 \n\t" 821 "add r23, r0 \n\t" 822 "adc r24, r1 \n\t" 823 "adc r22, r25 \n\t" 824 "mul r5, r17 \n\t" 825 "add r23, r0 \n\t" 826 "adc r24, r1 \n\t" 827 "adc r22, r25 \n\t" 828 "mul r6, r16 \n\t" 829 "add r23, r0 \n\t" 830 "adc r24, r1 \n\t" 831 "adc r22, r25 \n\t" 832 "mul r7, r15 \n\t" 833 "add r23, r0 \n\t" 834 "adc r24, r1 \n\t" 835 "adc r22, r25 \n\t" 836 "mul r8, r14 \n\t" 837 "add r23, r0 \n\t" 838 "adc r24, r1 \n\t" 839 "adc r22, r25 \n\t" 840 "mul r9, r13 \n\t" 841 "add r23, r0 \n\t" 842 "adc r24, r1 \n\t" 843 "adc r22, r25 \n\t" 844 "mul r10, r12 \n\t" 845 "add r23, r0 \n\t" 846 "adc r24, r1 \n\t" 847 "adc r22, r25 \n\t" 848 "st z+, r23 \n\t" 849 850 "ldi r23, 0 \n\t" 851 "mul r2, r21 \n\t" 852 "add r24, r0 \n\t" 853 "adc r22, r1 \n\t" 854 "adc r23, r25 \n\t" 855 "mul r3, r20 \n\t" 856 "add r24, r0 \n\t" 857 "adc r22, r1 \n\t" 858 "adc r23, r25 \n\t" 859 "mul r4, r19 \n\t" 860 "add r24, r0 \n\t" 861 "adc r22, r1 \n\t" 862 "adc r23, r25 \n\t" 863 "mul r5, r18 \n\t" 864 "add r24, r0 \n\t" 865 "adc r22, r1 \n\t" 866 "adc r23, r25 \n\t" 867 "mul r6, r17 \n\t" 868 "add r24, r0 \n\t" 869 "adc r22, r1 \n\t" 870 "adc r23, r25 \n\t" 871 "mul r7, r16 \n\t" 872 "add r24, r0 \n\t" 873 "adc r22, r1 \n\t" 874 "adc r23, r25 \n\t" 875 "mul r8, r15 \n\t" 876 "add r24, r0 \n\t" 877 "adc r22, r1 \n\t" 878 "adc r23, r25 \n\t" 879 "mul r9, r14 \n\t" 880 "add r24, r0 \n\t" 881 "adc r22, r1 \n\t" 882 "adc r23, r25 \n\t" 883 "mul r10, r13 \n\t" 884 "add r24, r0 \n\t" 885 "adc r22, r1 \n\t" 886 "adc r23, r25 \n\t" 887 "mul r11, r12 \n\t" 888 "add r24, r0 \n\t" 889 "adc r22, r1 \n\t" 890 "adc r23, r25 \n\t" 891 "st z+, r24 \n\t" 892 893 "ld r2, x+ \n\t" 894 "ldi r24, 0 \n\t" 895 "mul r3, r21 \n\t" 896 "add r22, r0 \n\t" 897 "adc r23, r1 \n\t" 898 "adc r24, r25 \n\t" 899 "mul r4, r20 \n\t" 900 "add r22, r0 \n\t" 901 "adc r23, r1 \n\t" 902 "adc r24, r25 \n\t" 903 "mul r5, r19 \n\t" 904 "add r22, r0 \n\t" 905 "adc r23, r1 \n\t" 906 "adc r24, r25 \n\t" 907 "mul r6, r18 \n\t" 908 "add r22, r0 \n\t" 909 "adc r23, r1 \n\t" 910 "adc r24, r25 \n\t" 911 "mul r7, r17 \n\t" 912 "add r22, r0 \n\t" 913 "adc r23, r1 \n\t" 914 "adc r24, r25 \n\t" 915 "mul r8, r16 \n\t" 916 "add r22, r0 \n\t" 917 "adc r23, r1 \n\t" 918 "adc r24, r25 \n\t" 919 "mul r9, r15 \n\t" 920 "add r22, r0 \n\t" 921 "adc r23, r1 \n\t" 922 "adc r24, r25 \n\t" 923 "mul r10, r14 \n\t" 924 "add r22, r0 \n\t" 925 "adc r23, r1 \n\t" 926 "adc r24, r25 \n\t" 927 "mul r11, r13 \n\t" 928 "add r22, r0 \n\t" 929 "adc r23, r1 \n\t" 930 "adc r24, r25 \n\t" 931 "mul r2, r12 \n\t" 932 "add r22, r0 \n\t" 933 "adc r23, r1 \n\t" 934 "adc r24, r25 \n\t" 935 "ld r0, z \n\t" 936 "add r22, r0 \n\t" 937 "adc r23, r25 \n\t" 938 "adc r24, r25 \n\t" 939 "st z+, r22 \n\t" 940 941 "ld r3, x+ \n\t" 942 "ldi r22, 0 \n\t" 943 "mul r4, r21 \n\t" 944 "add r23, r0 \n\t" 945 "adc r24, r1 \n\t" 946 "adc r22, r25 \n\t" 947 "mul r5, r20 \n\t" 948 "add r23, r0 \n\t" 949 "adc r24, r1 \n\t" 950 "adc r22, r25 \n\t" 951 "mul r6, r19 \n\t" 952 "add r23, r0 \n\t" 953 "adc r24, r1 \n\t" 954 "adc r22, r25 \n\t" 955 "mul r7, r18 \n\t" 956 "add r23, r0 \n\t" 957 "adc r24, r1 \n\t" 958 "adc r22, r25 \n\t" 959 "mul r8, r17 \n\t" 960 "add r23, r0 \n\t" 961 "adc r24, r1 \n\t" 962 "adc r22, r25 \n\t" 963 "mul r9, r16 \n\t" 964 "add r23, r0 \n\t" 965 "adc r24, r1 \n\t" 966 "adc r22, r25 \n\t" 967 "mul r10, r15 \n\t" 968 "add r23, r0 \n\t" 969 "adc r24, r1 \n\t" 970 "adc r22, r25 \n\t" 971 "mul r11, r14 \n\t" 972 "add r23, r0 \n\t" 973 "adc r24, r1 \n\t" 974 "adc r22, r25 \n\t" 975 "mul r2, r13 \n\t" 976 "add r23, r0 \n\t" 977 "adc r24, r1 \n\t" 978 "adc r22, r25 \n\t" 979 "mul r3, r12 \n\t" 980 "add r23, r0 \n\t" 981 "adc r24, r1 \n\t" 982 "adc r22, r25 \n\t" 983 "ld r0, z \n\t" 984 "add r23, r0 \n\t" 985 "adc r24, r25 \n\t" 986 "adc r22, r25 \n\t" 987 "st z+, r23 \n\t" 988 989 "ld r4, x+ \n\t" 990 "ldi r23, 0 \n\t" 991 "mul r5, r21 \n\t" 992 "add r24, r0 \n\t" 993 "adc r22, r1 \n\t" 994 "adc r23, r25 \n\t" 995 "mul r6, r20 \n\t" 996 "add r24, r0 \n\t" 997 "adc r22, r1 \n\t" 998 "adc r23, r25 \n\t" 999 "mul r7, r19 \n\t" 1000 "add r24, r0 \n\t" 1001 "adc r22, r1 \n\t" 1002 "adc r23, r25 \n\t" 1003 "mul r8, r18 \n\t" 1004 "add r24, r0 \n\t" 1005 "adc r22, r1 \n\t" 1006 "adc r23, r25 \n\t" 1007 "mul r9, r17 \n\t" 1008 "add r24, r0 \n\t" 1009 "adc r22, r1 \n\t" 1010 "adc r23, r25 \n\t" 1011 "mul r10, r16 \n\t" 1012 "add r24, r0 \n\t" 1013 "adc r22, r1 \n\t" 1014 "adc r23, r25 \n\t" 1015 "mul r11, r15 \n\t" 1016 "add r24, r0 \n\t" 1017 "adc r22, r1 \n\t" 1018 "adc r23, r25 \n\t" 1019 "mul r2, r14 \n\t" 1020 "add r24, r0 \n\t" 1021 "adc r22, r1 \n\t" 1022 "adc r23, r25 \n\t" 1023 "mul r3, r13 \n\t" 1024 "add r24, r0 \n\t" 1025 "adc r22, r1 \n\t" 1026 "adc r23, r25 \n\t" 1027 "mul r4, r12 \n\t" 1028 "add r24, r0 \n\t" 1029 "adc r22, r1 \n\t" 1030 "adc r23, r25 \n\t" 1031 "ld r0, z \n\t" 1032 "add r24, r0 \n\t" 1033 "adc r22, r25 \n\t" 1034 "adc r23, r25 \n\t" 1035 "st z+, r24 \n\t" 1036 1037 "ld r5, x+ \n\t" 1038 "ldi r24, 0 \n\t" 1039 "mul r6, r21 \n\t" 1040 "add r22, r0 \n\t" 1041 "adc r23, r1 \n\t" 1042 "adc r24, r25 \n\t" 1043 "mul r7, r20 \n\t" 1044 "add r22, r0 \n\t" 1045 "adc r23, r1 \n\t" 1046 "adc r24, r25 \n\t" 1047 "mul r8, r19 \n\t" 1048 "add r22, r0 \n\t" 1049 "adc r23, r1 \n\t" 1050 "adc r24, r25 \n\t" 1051 "mul r9, r18 \n\t" 1052 "add r22, r0 \n\t" 1053 "adc r23, r1 \n\t" 1054 "adc r24, r25 \n\t" 1055 "mul r10, r17 \n\t" 1056 "add r22, r0 \n\t" 1057 "adc r23, r1 \n\t" 1058 "adc r24, r25 \n\t" 1059 "mul r11, r16 \n\t" 1060 "add r22, r0 \n\t" 1061 "adc r23, r1 \n\t" 1062 "adc r24, r25 \n\t" 1063 "mul r2, r15 \n\t" 1064 "add r22, r0 \n\t" 1065 "adc r23, r1 \n\t" 1066 "adc r24, r25 \n\t" 1067 "mul r3, r14 \n\t" 1068 "add r22, r0 \n\t" 1069 "adc r23, r1 \n\t" 1070 "adc r24, r25 \n\t" 1071 "mul r4, r13 \n\t" 1072 "add r22, r0 \n\t" 1073 "adc r23, r1 \n\t" 1074 "adc r24, r25 \n\t" 1075 "mul r5, r12 \n\t" 1076 "add r22, r0 \n\t" 1077 "adc r23, r1 \n\t" 1078 "adc r24, r25 \n\t" 1079 "ld r0, z \n\t" 1080 "add r22, r0 \n\t" 1081 "adc r23, r25 \n\t" 1082 "adc r24, r25 \n\t" 1083 "st z+, r22 \n\t" 1084 1085 "ld r6, x+ \n\t" 1086 "ldi r22, 0 \n\t" 1087 "mul r7, r21 \n\t" 1088 "add r23, r0 \n\t" 1089 "adc r24, r1 \n\t" 1090 "adc r22, r25 \n\t" 1091 "mul r8, r20 \n\t" 1092 "add r23, r0 \n\t" 1093 "adc r24, r1 \n\t" 1094 "adc r22, r25 \n\t" 1095 "mul r9, r19 \n\t" 1096 "add r23, r0 \n\t" 1097 "adc r24, r1 \n\t" 1098 "adc r22, r25 \n\t" 1099 "mul r10, r18 \n\t" 1100 "add r23, r0 \n\t" 1101 "adc r24, r1 \n\t" 1102 "adc r22, r25 \n\t" 1103 "mul r11, r17 \n\t" 1104 "add r23, r0 \n\t" 1105 "adc r24, r1 \n\t" 1106 "adc r22, r25 \n\t" 1107 "mul r2, r16 \n\t" 1108 "add r23, r0 \n\t" 1109 "adc r24, r1 \n\t" 1110 "adc r22, r25 \n\t" 1111 "mul r3, r15 \n\t" 1112 "add r23, r0 \n\t" 1113 "adc r24, r1 \n\t" 1114 "adc r22, r25 \n\t" 1115 "mul r4, r14 \n\t" 1116 "add r23, r0 \n\t" 1117 "adc r24, r1 \n\t" 1118 "adc r22, r25 \n\t" 1119 "mul r5, r13 \n\t" 1120 "add r23, r0 \n\t" 1121 "adc r24, r1 \n\t" 1122 "adc r22, r25 \n\t" 1123 "mul r6, r12 \n\t" 1124 "add r23, r0 \n\t" 1125 "adc r24, r1 \n\t" 1126 "adc r22, r25 \n\t" 1127 "ld r0, z \n\t" 1128 "add r23, r0 \n\t" 1129 "adc r24, r25 \n\t" 1130 "adc r22, r25 \n\t" 1131 "st z+, r23 \n\t" 1132 1133 "ld r7, x+ \n\t" 1134 "ldi r23, 0 \n\t" 1135 "mul r8, r21 \n\t" 1136 "add r24, r0 \n\t" 1137 "adc r22, r1 \n\t" 1138 "adc r23, r25 \n\t" 1139 "mul r9, r20 \n\t" 1140 "add r24, r0 \n\t" 1141 "adc r22, r1 \n\t" 1142 "adc r23, r25 \n\t" 1143 "mul r10, r19 \n\t" 1144 "add r24, r0 \n\t" 1145 "adc r22, r1 \n\t" 1146 "adc r23, r25 \n\t" 1147 "mul r11, r18 \n\t" 1148 "add r24, r0 \n\t" 1149 "adc r22, r1 \n\t" 1150 "adc r23, r25 \n\t" 1151 "mul r2, r17 \n\t" 1152 "add r24, r0 \n\t" 1153 "adc r22, r1 \n\t" 1154 "adc r23, r25 \n\t" 1155 "mul r3, r16 \n\t" 1156 "add r24, r0 \n\t" 1157 "adc r22, r1 \n\t" 1158 "adc r23, r25 \n\t" 1159 "mul r4, r15 \n\t" 1160 "add r24, r0 \n\t" 1161 "adc r22, r1 \n\t" 1162 "adc r23, r25 \n\t" 1163 "mul r5, r14 \n\t" 1164 "add r24, r0 \n\t" 1165 "adc r22, r1 \n\t" 1166 "adc r23, r25 \n\t" 1167 "mul r6, r13 \n\t" 1168 "add r24, r0 \n\t" 1169 "adc r22, r1 \n\t" 1170 "adc r23, r25 \n\t" 1171 "mul r7, r12 \n\t" 1172 "add r24, r0 \n\t" 1173 "adc r22, r1 \n\t" 1174 "adc r23, r25 \n\t" 1175 "ld r0, z \n\t" 1176 "add r24, r0 \n\t" 1177 "adc r22, r25 \n\t" 1178 "adc r23, r25 \n\t" 1179 "st z+, r24 \n\t" 1180 1181 "ld r8, x+ \n\t" 1182 "ldi r24, 0 \n\t" 1183 "mul r9, r21 \n\t" 1184 "add r22, r0 \n\t" 1185 "adc r23, r1 \n\t" 1186 "adc r24, r25 \n\t" 1187 "mul r10, r20 \n\t" 1188 "add r22, r0 \n\t" 1189 "adc r23, r1 \n\t" 1190 "adc r24, r25 \n\t" 1191 "mul r11, r19 \n\t" 1192 "add r22, r0 \n\t" 1193 "adc r23, r1 \n\t" 1194 "adc r24, r25 \n\t" 1195 "mul r2, r18 \n\t" 1196 "add r22, r0 \n\t" 1197 "adc r23, r1 \n\t" 1198 "adc r24, r25 \n\t" 1199 "mul r3, r17 \n\t" 1200 "add r22, r0 \n\t" 1201 "adc r23, r1 \n\t" 1202 "adc r24, r25 \n\t" 1203 "mul r4, r16 \n\t" 1204 "add r22, r0 \n\t" 1205 "adc r23, r1 \n\t" 1206 "adc r24, r25 \n\t" 1207 "mul r5, r15 \n\t" 1208 "add r22, r0 \n\t" 1209 "adc r23, r1 \n\t" 1210 "adc r24, r25 \n\t" 1211 "mul r6, r14 \n\t" 1212 "add r22, r0 \n\t" 1213 "adc r23, r1 \n\t" 1214 "adc r24, r25 \n\t" 1215 "mul r7, r13 \n\t" 1216 "add r22, r0 \n\t" 1217 "adc r23, r1 \n\t" 1218 "adc r24, r25 \n\t" 1219 "mul r8, r12 \n\t" 1220 "add r22, r0 \n\t" 1221 "adc r23, r1 \n\t" 1222 "adc r24, r25 \n\t" 1223 "ld r0, z \n\t" 1224 "add r22, r0 \n\t" 1225 "adc r23, r25 \n\t" 1226 "adc r24, r25 \n\t" 1227 "st z+, r22 \n\t" 1228 1229 "ld r9, x+ \n\t" 1230 "ldi r22, 0 \n\t" 1231 "mul r10, r21 \n\t" 1232 "add r23, r0 \n\t" 1233 "adc r24, r1 \n\t" 1234 "adc r22, r25 \n\t" 1235 "mul r11, r20 \n\t" 1236 "add r23, r0 \n\t" 1237 "adc r24, r1 \n\t" 1238 "adc r22, r25 \n\t" 1239 "mul r2, r19 \n\t" 1240 "add r23, r0 \n\t" 1241 "adc r24, r1 \n\t" 1242 "adc r22, r25 \n\t" 1243 "mul r3, r18 \n\t" 1244 "add r23, r0 \n\t" 1245 "adc r24, r1 \n\t" 1246 "adc r22, r25 \n\t" 1247 "mul r4, r17 \n\t" 1248 "add r23, r0 \n\t" 1249 "adc r24, r1 \n\t" 1250 "adc r22, r25 \n\t" 1251 "mul r5, r16 \n\t" 1252 "add r23, r0 \n\t" 1253 "adc r24, r1 \n\t" 1254 "adc r22, r25 \n\t" 1255 "mul r6, r15 \n\t" 1256 "add r23, r0 \n\t" 1257 "adc r24, r1 \n\t" 1258 "adc r22, r25 \n\t" 1259 "mul r7, r14 \n\t" 1260 "add r23, r0 \n\t" 1261 "adc r24, r1 \n\t" 1262 "adc r22, r25 \n\t" 1263 "mul r8, r13 \n\t" 1264 "add r23, r0 \n\t" 1265 "adc r24, r1 \n\t" 1266 "adc r22, r25 \n\t" 1267 "mul r9, r12 \n\t" 1268 "add r23, r0 \n\t" 1269 "adc r24, r1 \n\t" 1270 "adc r22, r25 \n\t" 1271 "ld r0, z \n\t" 1272 "add r23, r0 \n\t" 1273 "adc r24, r25 \n\t" 1274 "adc r22, r25 \n\t" 1275 "st z+, r23 \n\t" 1276 1277 "ld r10, x+ \n\t" 1278 "ldi r23, 0 \n\t" 1279 "mul r11, r21 \n\t" 1280 "add r24, r0 \n\t" 1281 "adc r22, r1 \n\t" 1282 "adc r23, r25 \n\t" 1283 "mul r2, r20 \n\t" 1284 "add r24, r0 \n\t" 1285 "adc r22, r1 \n\t" 1286 "adc r23, r25 \n\t" 1287 "mul r3, r19 \n\t" 1288 "add r24, r0 \n\t" 1289 "adc r22, r1 \n\t" 1290 "adc r23, r25 \n\t" 1291 "mul r4, r18 \n\t" 1292 "add r24, r0 \n\t" 1293 "adc r22, r1 \n\t" 1294 "adc r23, r25 \n\t" 1295 "mul r5, r17 \n\t" 1296 "add r24, r0 \n\t" 1297 "adc r22, r1 \n\t" 1298 "adc r23, r25 \n\t" 1299 "mul r6, r16 \n\t" 1300 "add r24, r0 \n\t" 1301 "adc r22, r1 \n\t" 1302 "adc r23, r25 \n\t" 1303 "mul r7, r15 \n\t" 1304 "add r24, r0 \n\t" 1305 "adc r22, r1 \n\t" 1306 "adc r23, r25 \n\t" 1307 "mul r8, r14 \n\t" 1308 "add r24, r0 \n\t" 1309 "adc r22, r1 \n\t" 1310 "adc r23, r25 \n\t" 1311 "mul r9, r13 \n\t" 1312 "add r24, r0 \n\t" 1313 "adc r22, r1 \n\t" 1314 "adc r23, r25 \n\t" 1315 "mul r10, r12 \n\t" 1316 "add r24, r0 \n\t" 1317 "adc r22, r1 \n\t" 1318 "adc r23, r25 \n\t" 1319 "ld r0, z \n\t" 1320 "add r24, r0 \n\t" 1321 "adc r22, r25 \n\t" 1322 "adc r23, r25 \n\t" 1323 "st z+, r24 \n\t" 1324 1325 "ld r11, x+ \n\t" 1326 "ldi r24, 0 \n\t" 1327 "mul r2, r21 \n\t" 1328 "add r22, r0 \n\t" 1329 "adc r23, r1 \n\t" 1330 "adc r24, r25 \n\t" 1331 "mul r3, r20 \n\t" 1332 "add r22, r0 \n\t" 1333 "adc r23, r1 \n\t" 1334 "adc r24, r25 \n\t" 1335 "mul r4, r19 \n\t" 1336 "add r22, r0 \n\t" 1337 "adc r23, r1 \n\t" 1338 "adc r24, r25 \n\t" 1339 "mul r5, r18 \n\t" 1340 "add r22, r0 \n\t" 1341 "adc r23, r1 \n\t" 1342 "adc r24, r25 \n\t" 1343 "mul r6, r17 \n\t" 1344 "add r22, r0 \n\t" 1345 "adc r23, r1 \n\t" 1346 "adc r24, r25 \n\t" 1347 "mul r7, r16 \n\t" 1348 "add r22, r0 \n\t" 1349 "adc r23, r1 \n\t" 1350 "adc r24, r25 \n\t" 1351 "mul r8, r15 \n\t" 1352 "add r22, r0 \n\t" 1353 "adc r23, r1 \n\t" 1354 "adc r24, r25 \n\t" 1355 "mul r9, r14 \n\t" 1356 "add r22, r0 \n\t" 1357 "adc r23, r1 \n\t" 1358 "adc r24, r25 \n\t" 1359 "mul r10, r13 \n\t" 1360 "add r22, r0 \n\t" 1361 "adc r23, r1 \n\t" 1362 "adc r24, r25 \n\t" 1363 "mul r11, r12 \n\t" 1364 "add r22, r0 \n\t" 1365 "adc r23, r1 \n\t" 1366 "adc r24, r25 \n\t" 1367 "ld r0, z \n\t" 1368 "add r22, r0 \n\t" 1369 "adc r23, r25 \n\t" 1370 "adc r24, r25 \n\t" 1371 "st z+, r22 \n\t" 1372 1373 "ld r12, y+ \n\t" 1374 "ldi r22, 0 \n\t" 1375 "mul r2, r12 \n\t" 1376 "add r23, r0 \n\t" 1377 "adc r24, r1 \n\t" 1378 "adc r22, r25 \n\t" 1379 "mul r3, r21 \n\t" 1380 "add r23, r0 \n\t" 1381 "adc r24, r1 \n\t" 1382 "adc r22, r25 \n\t" 1383 "mul r4, r20 \n\t" 1384 "add r23, r0 \n\t" 1385 "adc r24, r1 \n\t" 1386 "adc r22, r25 \n\t" 1387 "mul r5, r19 \n\t" 1388 "add r23, r0 \n\t" 1389 "adc r24, r1 \n\t" 1390 "adc r22, r25 \n\t" 1391 "mul r6, r18 \n\t" 1392 "add r23, r0 \n\t" 1393 "adc r24, r1 \n\t" 1394 "adc r22, r25 \n\t" 1395 "mul r7, r17 \n\t" 1396 "add r23, r0 \n\t" 1397 "adc r24, r1 \n\t" 1398 "adc r22, r25 \n\t" 1399 "mul r8, r16 \n\t" 1400 "add r23, r0 \n\t" 1401 "adc r24, r1 \n\t" 1402 "adc r22, r25 \n\t" 1403 "mul r9, r15 \n\t" 1404 "add r23, r0 \n\t" 1405 "adc r24, r1 \n\t" 1406 "adc r22, r25 \n\t" 1407 "mul r10, r14 \n\t" 1408 "add r23, r0 \n\t" 1409 "adc r24, r1 \n\t" 1410 "adc r22, r25 \n\t" 1411 "mul r11, r13 \n\t" 1412 "add r23, r0 \n\t" 1413 "adc r24, r1 \n\t" 1414 "adc r22, r25 \n\t" 1415 "ld r0, z \n\t" 1416 "add r23, r0 \n\t" 1417 "adc r24, r25 \n\t" 1418 "adc r22, r25 \n\t" 1419 "st z+, r23 \n\t" 1420 1421 "ld r13, y+ \n\t" 1422 "ldi r23, 0 \n\t" 1423 "mul r2, r13 \n\t" 1424 "add r24, r0 \n\t" 1425 "adc r22, r1 \n\t" 1426 "adc r23, r25 \n\t" 1427 "mul r3, r12 \n\t" 1428 "add r24, r0 \n\t" 1429 "adc r22, r1 \n\t" 1430 "adc r23, r25 \n\t" 1431 "mul r4, r21 \n\t" 1432 "add r24, r0 \n\t" 1433 "adc r22, r1 \n\t" 1434 "adc r23, r25 \n\t" 1435 "mul r5, r20 \n\t" 1436 "add r24, r0 \n\t" 1437 "adc r22, r1 \n\t" 1438 "adc r23, r25 \n\t" 1439 "mul r6, r19 \n\t" 1440 "add r24, r0 \n\t" 1441 "adc r22, r1 \n\t" 1442 "adc r23, r25 \n\t" 1443 "mul r7, r18 \n\t" 1444 "add r24, r0 \n\t" 1445 "adc r22, r1 \n\t" 1446 "adc r23, r25 \n\t" 1447 "mul r8, r17 \n\t" 1448 "add r24, r0 \n\t" 1449 "adc r22, r1 \n\t" 1450 "adc r23, r25 \n\t" 1451 "mul r9, r16 \n\t" 1452 "add r24, r0 \n\t" 1453 "adc r22, r1 \n\t" 1454 "adc r23, r25 \n\t" 1455 "mul r10, r15 \n\t" 1456 "add r24, r0 \n\t" 1457 "adc r22, r1 \n\t" 1458 "adc r23, r25 \n\t" 1459 "mul r11, r14 \n\t" 1460 "add r24, r0 \n\t" 1461 "adc r22, r1 \n\t" 1462 "adc r23, r25 \n\t" 1463 "ld r0, z \n\t" 1464 "add r24, r0 \n\t" 1465 "adc r22, r25 \n\t" 1466 "adc r23, r25 \n\t" 1467 "st z+, r24 \n\t" 1468 1469 "ld r14, y+ \n\t" 1470 "ldi r24, 0 \n\t" 1471 "mul r2, r14 \n\t" 1472 "add r22, r0 \n\t" 1473 "adc r23, r1 \n\t" 1474 "adc r24, r25 \n\t" 1475 "mul r3, r13 \n\t" 1476 "add r22, r0 \n\t" 1477 "adc r23, r1 \n\t" 1478 "adc r24, r25 \n\t" 1479 "mul r4, r12 \n\t" 1480 "add r22, r0 \n\t" 1481 "adc r23, r1 \n\t" 1482 "adc r24, r25 \n\t" 1483 "mul r5, r21 \n\t" 1484 "add r22, r0 \n\t" 1485 "adc r23, r1 \n\t" 1486 "adc r24, r25 \n\t" 1487 "mul r6, r20 \n\t" 1488 "add r22, r0 \n\t" 1489 "adc r23, r1 \n\t" 1490 "adc r24, r25 \n\t" 1491 "mul r7, r19 \n\t" 1492 "add r22, r0 \n\t" 1493 "adc r23, r1 \n\t" 1494 "adc r24, r25 \n\t" 1495 "mul r8, r18 \n\t" 1496 "add r22, r0 \n\t" 1497 "adc r23, r1 \n\t" 1498 "adc r24, r25 \n\t" 1499 "mul r9, r17 \n\t" 1500 "add r22, r0 \n\t" 1501 "adc r23, r1 \n\t" 1502 "adc r24, r25 \n\t" 1503 "mul r10, r16 \n\t" 1504 "add r22, r0 \n\t" 1505 "adc r23, r1 \n\t" 1506 "adc r24, r25 \n\t" 1507 "mul r11, r15 \n\t" 1508 "add r22, r0 \n\t" 1509 "adc r23, r1 \n\t" 1510 "adc r24, r25 \n\t" 1511 "ld r0, z \n\t" 1512 "add r22, r0 \n\t" 1513 "adc r23, r25 \n\t" 1514 "adc r24, r25 \n\t" 1515 "st z+, r22 \n\t" 1516 1517 "ld r15, y+ \n\t" 1518 "ldi r22, 0 \n\t" 1519 "mul r2, r15 \n\t" 1520 "add r23, r0 \n\t" 1521 "adc r24, r1 \n\t" 1522 "adc r22, r25 \n\t" 1523 "mul r3, r14 \n\t" 1524 "add r23, r0 \n\t" 1525 "adc r24, r1 \n\t" 1526 "adc r22, r25 \n\t" 1527 "mul r4, r13 \n\t" 1528 "add r23, r0 \n\t" 1529 "adc r24, r1 \n\t" 1530 "adc r22, r25 \n\t" 1531 "mul r5, r12 \n\t" 1532 "add r23, r0 \n\t" 1533 "adc r24, r1 \n\t" 1534 "adc r22, r25 \n\t" 1535 "mul r6, r21 \n\t" 1536 "add r23, r0 \n\t" 1537 "adc r24, r1 \n\t" 1538 "adc r22, r25 \n\t" 1539 "mul r7, r20 \n\t" 1540 "add r23, r0 \n\t" 1541 "adc r24, r1 \n\t" 1542 "adc r22, r25 \n\t" 1543 "mul r8, r19 \n\t" 1544 "add r23, r0 \n\t" 1545 "adc r24, r1 \n\t" 1546 "adc r22, r25 \n\t" 1547 "mul r9, r18 \n\t" 1548 "add r23, r0 \n\t" 1549 "adc r24, r1 \n\t" 1550 "adc r22, r25 \n\t" 1551 "mul r10, r17 \n\t" 1552 "add r23, r0 \n\t" 1553 "adc r24, r1 \n\t" 1554 "adc r22, r25 \n\t" 1555 "mul r11, r16 \n\t" 1556 "add r23, r0 \n\t" 1557 "adc r24, r1 \n\t" 1558 "adc r22, r25 \n\t" 1559 "ld r0, z \n\t" 1560 "add r23, r0 \n\t" 1561 "adc r24, r25 \n\t" 1562 "adc r22, r25 \n\t" 1563 "st z+, r23 \n\t" 1564 1565 "ld r16, y+ \n\t" 1566 "ldi r23, 0 \n\t" 1567 "mul r2, r16 \n\t" 1568 "add r24, r0 \n\t" 1569 "adc r22, r1 \n\t" 1570 "adc r23, r25 \n\t" 1571 "mul r3, r15 \n\t" 1572 "add r24, r0 \n\t" 1573 "adc r22, r1 \n\t" 1574 "adc r23, r25 \n\t" 1575 "mul r4, r14 \n\t" 1576 "add r24, r0 \n\t" 1577 "adc r22, r1 \n\t" 1578 "adc r23, r25 \n\t" 1579 "mul r5, r13 \n\t" 1580 "add r24, r0 \n\t" 1581 "adc r22, r1 \n\t" 1582 "adc r23, r25 \n\t" 1583 "mul r6, r12 \n\t" 1584 "add r24, r0 \n\t" 1585 "adc r22, r1 \n\t" 1586 "adc r23, r25 \n\t" 1587 "mul r7, r21 \n\t" 1588 "add r24, r0 \n\t" 1589 "adc r22, r1 \n\t" 1590 "adc r23, r25 \n\t" 1591 "mul r8, r20 \n\t" 1592 "add r24, r0 \n\t" 1593 "adc r22, r1 \n\t" 1594 "adc r23, r25 \n\t" 1595 "mul r9, r19 \n\t" 1596 "add r24, r0 \n\t" 1597 "adc r22, r1 \n\t" 1598 "adc r23, r25 \n\t" 1599 "mul r10, r18 \n\t" 1600 "add r24, r0 \n\t" 1601 "adc r22, r1 \n\t" 1602 "adc r23, r25 \n\t" 1603 "mul r11, r17 \n\t" 1604 "add r24, r0 \n\t" 1605 "adc r22, r1 \n\t" 1606 "adc r23, r25 \n\t" 1607 "ld r0, z \n\t" 1608 "add r24, r0 \n\t" 1609 "adc r22, r25 \n\t" 1610 "adc r23, r25 \n\t" 1611 "st z+, r24 \n\t" 1612 1613 "ld r17, y+ \n\t" 1614 "ldi r24, 0 \n\t" 1615 "mul r2, r17 \n\t" 1616 "add r22, r0 \n\t" 1617 "adc r23, r1 \n\t" 1618 "adc r24, r25 \n\t" 1619 "mul r3, r16 \n\t" 1620 "add r22, r0 \n\t" 1621 "adc r23, r1 \n\t" 1622 "adc r24, r25 \n\t" 1623 "mul r4, r15 \n\t" 1624 "add r22, r0 \n\t" 1625 "adc r23, r1 \n\t" 1626 "adc r24, r25 \n\t" 1627 "mul r5, r14 \n\t" 1628 "add r22, r0 \n\t" 1629 "adc r23, r1 \n\t" 1630 "adc r24, r25 \n\t" 1631 "mul r6, r13 \n\t" 1632 "add r22, r0 \n\t" 1633 "adc r23, r1 \n\t" 1634 "adc r24, r25 \n\t" 1635 "mul r7, r12 \n\t" 1636 "add r22, r0 \n\t" 1637 "adc r23, r1 \n\t" 1638 "adc r24, r25 \n\t" 1639 "mul r8, r21 \n\t" 1640 "add r22, r0 \n\t" 1641 "adc r23, r1 \n\t" 1642 "adc r24, r25 \n\t" 1643 "mul r9, r20 \n\t" 1644 "add r22, r0 \n\t" 1645 "adc r23, r1 \n\t" 1646 "adc r24, r25 \n\t" 1647 "mul r10, r19 \n\t" 1648 "add r22, r0 \n\t" 1649 "adc r23, r1 \n\t" 1650 "adc r24, r25 \n\t" 1651 "mul r11, r18 \n\t" 1652 "add r22, r0 \n\t" 1653 "adc r23, r1 \n\t" 1654 "adc r24, r25 \n\t" 1655 "ld r0, z \n\t" 1656 "add r22, r0 \n\t" 1657 "adc r23, r25 \n\t" 1658 "adc r24, r25 \n\t" 1659 "st z+, r22 \n\t" 1660 1661 "ld r18, y+ \n\t" 1662 "ldi r22, 0 \n\t" 1663 "mul r2, r18 \n\t" 1664 "add r23, r0 \n\t" 1665 "adc r24, r1 \n\t" 1666 "adc r22, r25 \n\t" 1667 "mul r3, r17 \n\t" 1668 "add r23, r0 \n\t" 1669 "adc r24, r1 \n\t" 1670 "adc r22, r25 \n\t" 1671 "mul r4, r16 \n\t" 1672 "add r23, r0 \n\t" 1673 "adc r24, r1 \n\t" 1674 "adc r22, r25 \n\t" 1675 "mul r5, r15 \n\t" 1676 "add r23, r0 \n\t" 1677 "adc r24, r1 \n\t" 1678 "adc r22, r25 \n\t" 1679 "mul r6, r14 \n\t" 1680 "add r23, r0 \n\t" 1681 "adc r24, r1 \n\t" 1682 "adc r22, r25 \n\t" 1683 "mul r7, r13 \n\t" 1684 "add r23, r0 \n\t" 1685 "adc r24, r1 \n\t" 1686 "adc r22, r25 \n\t" 1687 "mul r8, r12 \n\t" 1688 "add r23, r0 \n\t" 1689 "adc r24, r1 \n\t" 1690 "adc r22, r25 \n\t" 1691 "mul r9, r21 \n\t" 1692 "add r23, r0 \n\t" 1693 "adc r24, r1 \n\t" 1694 "adc r22, r25 \n\t" 1695 "mul r10, r20 \n\t" 1696 "add r23, r0 \n\t" 1697 "adc r24, r1 \n\t" 1698 "adc r22, r25 \n\t" 1699 "mul r11, r19 \n\t" 1700 "add r23, r0 \n\t" 1701 "adc r24, r1 \n\t" 1702 "adc r22, r25 \n\t" 1703 "ld r0, z \n\t" 1704 "add r23, r0 \n\t" 1705 "adc r24, r25 \n\t" 1706 "adc r22, r25 \n\t" 1707 "st z+, r23 \n\t" 1708 1709 "ld r19, y+ \n\t" 1710 "ldi r23, 0 \n\t" 1711 "mul r2, r19 \n\t" 1712 "add r24, r0 \n\t" 1713 "adc r22, r1 \n\t" 1714 "adc r23, r25 \n\t" 1715 "mul r3, r18 \n\t" 1716 "add r24, r0 \n\t" 1717 "adc r22, r1 \n\t" 1718 "adc r23, r25 \n\t" 1719 "mul r4, r17 \n\t" 1720 "add r24, r0 \n\t" 1721 "adc r22, r1 \n\t" 1722 "adc r23, r25 \n\t" 1723 "mul r5, r16 \n\t" 1724 "add r24, r0 \n\t" 1725 "adc r22, r1 \n\t" 1726 "adc r23, r25 \n\t" 1727 "mul r6, r15 \n\t" 1728 "add r24, r0 \n\t" 1729 "adc r22, r1 \n\t" 1730 "adc r23, r25 \n\t" 1731 "mul r7, r14 \n\t" 1732 "add r24, r0 \n\t" 1733 "adc r22, r1 \n\t" 1734 "adc r23, r25 \n\t" 1735 "mul r8, r13 \n\t" 1736 "add r24, r0 \n\t" 1737 "adc r22, r1 \n\t" 1738 "adc r23, r25 \n\t" 1739 "mul r9, r12 \n\t" 1740 "add r24, r0 \n\t" 1741 "adc r22, r1 \n\t" 1742 "adc r23, r25 \n\t" 1743 "mul r10, r21 \n\t" 1744 "add r24, r0 \n\t" 1745 "adc r22, r1 \n\t" 1746 "adc r23, r25 \n\t" 1747 "mul r11, r20 \n\t" 1748 "add r24, r0 \n\t" 1749 "adc r22, r1 \n\t" 1750 "adc r23, r25 \n\t" 1751 "ld r0, z \n\t" 1752 "add r24, r0 \n\t" 1753 "adc r22, r25 \n\t" 1754 "adc r23, r25 \n\t" 1755 "st z+, r24 \n\t" 1756 1757 "ld r20, y+ \n\t" 1758 "ldi r24, 0 \n\t" 1759 "mul r2, r20 \n\t" 1760 "add r22, r0 \n\t" 1761 "adc r23, r1 \n\t" 1762 "adc r24, r25 \n\t" 1763 "mul r3, r19 \n\t" 1764 "add r22, r0 \n\t" 1765 "adc r23, r1 \n\t" 1766 "adc r24, r25 \n\t" 1767 "mul r4, r18 \n\t" 1768 "add r22, r0 \n\t" 1769 "adc r23, r1 \n\t" 1770 "adc r24, r25 \n\t" 1771 "mul r5, r17 \n\t" 1772 "add r22, r0 \n\t" 1773 "adc r23, r1 \n\t" 1774 "adc r24, r25 \n\t" 1775 "mul r6, r16 \n\t" 1776 "add r22, r0 \n\t" 1777 "adc r23, r1 \n\t" 1778 "adc r24, r25 \n\t" 1779 "mul r7, r15 \n\t" 1780 "add r22, r0 \n\t" 1781 "adc r23, r1 \n\t" 1782 "adc r24, r25 \n\t" 1783 "mul r8, r14 \n\t" 1784 "add r22, r0 \n\t" 1785 "adc r23, r1 \n\t" 1786 "adc r24, r25 \n\t" 1787 "mul r9, r13 \n\t" 1788 "add r22, r0 \n\t" 1789 "adc r23, r1 \n\t" 1790 "adc r24, r25 \n\t" 1791 "mul r10, r12 \n\t" 1792 "add r22, r0 \n\t" 1793 "adc r23, r1 \n\t" 1794 "adc r24, r25 \n\t" 1795 "mul r11, r21 \n\t" 1796 "add r22, r0 \n\t" 1797 "adc r23, r1 \n\t" 1798 "adc r24, r25 \n\t" 1799 "ld r0, z \n\t" 1800 "add r22, r0 \n\t" 1801 "adc r23, r25 \n\t" 1802 "adc r24, r25 \n\t" 1803 "st z+, r22 \n\t" 1804 1805 "ld r21, y+ \n\t" 1806 "ldi r22, 0 \n\t" 1807 "mul r2, r21 \n\t" 1808 "add r23, r0 \n\t" 1809 "adc r24, r1 \n\t" 1810 "adc r22, r25 \n\t" 1811 "mul r3, r20 \n\t" 1812 "add r23, r0 \n\t" 1813 "adc r24, r1 \n\t" 1814 "adc r22, r25 \n\t" 1815 "mul r4, r19 \n\t" 1816 "add r23, r0 \n\t" 1817 "adc r24, r1 \n\t" 1818 "adc r22, r25 \n\t" 1819 "mul r5, r18 \n\t" 1820 "add r23, r0 \n\t" 1821 "adc r24, r1 \n\t" 1822 "adc r22, r25 \n\t" 1823 "mul r6, r17 \n\t" 1824 "add r23, r0 \n\t" 1825 "adc r24, r1 \n\t" 1826 "adc r22, r25 \n\t" 1827 "mul r7, r16 \n\t" 1828 "add r23, r0 \n\t" 1829 "adc r24, r1 \n\t" 1830 "adc r22, r25 \n\t" 1831 "mul r8, r15 \n\t" 1832 "add r23, r0 \n\t" 1833 "adc r24, r1 \n\t" 1834 "adc r22, r25 \n\t" 1835 "mul r9, r14 \n\t" 1836 "add r23, r0 \n\t" 1837 "adc r24, r1 \n\t" 1838 "adc r22, r25 \n\t" 1839 "mul r10, r13 \n\t" 1840 "add r23, r0 \n\t" 1841 "adc r24, r1 \n\t" 1842 "adc r22, r25 \n\t" 1843 "mul r11, r12 \n\t" 1844 "add r23, r0 \n\t" 1845 "adc r24, r1 \n\t" 1846 "adc r22, r25 \n\t" 1847 "ld r0, z \n\t" 1848 "add r23, r0 \n\t" 1849 "adc r24, r25 \n\t" 1850 "adc r22, r25 \n\t" 1851 "st z+, r23 \n\t" 1852 1853 "ldi r23, 0 \n\t" 1854 "mul r3, r21 \n\t" 1855 "add r24, r0 \n\t" 1856 "adc r22, r1 \n\t" 1857 "adc r23, r25 \n\t" 1858 "mul r4, r20 \n\t" 1859 "add r24, r0 \n\t" 1860 "adc r22, r1 \n\t" 1861 "adc r23, r25 \n\t" 1862 "mul r5, r19 \n\t" 1863 "add r24, r0 \n\t" 1864 "adc r22, r1 \n\t" 1865 "adc r23, r25 \n\t" 1866 "mul r6, r18 \n\t" 1867 "add r24, r0 \n\t" 1868 "adc r22, r1 \n\t" 1869 "adc r23, r25 \n\t" 1870 "mul r7, r17 \n\t" 1871 "add r24, r0 \n\t" 1872 "adc r22, r1 \n\t" 1873 "adc r23, r25 \n\t" 1874 "mul r8, r16 \n\t" 1875 "add r24, r0 \n\t" 1876 "adc r22, r1 \n\t" 1877 "adc r23, r25 \n\t" 1878 "mul r9, r15 \n\t" 1879 "add r24, r0 \n\t" 1880 "adc r22, r1 \n\t" 1881 "adc r23, r25 \n\t" 1882 "mul r10, r14 \n\t" 1883 "add r24, r0 \n\t" 1884 "adc r22, r1 \n\t" 1885 "adc r23, r25 \n\t" 1886 "mul r11, r13 \n\t" 1887 "add r24, r0 \n\t" 1888 "adc r22, r1 \n\t" 1889 "adc r23, r25 \n\t" 1890 "st z+, r24 \n\t" 1891 1892 "ldi r24, 0 \n\t" 1893 "mul r4, r21 \n\t" 1894 "add r22, r0 \n\t" 1895 "adc r23, r1 \n\t" 1896 "adc r24, r25 \n\t" 1897 "mul r5, r20 \n\t" 1898 "add r22, r0 \n\t" 1899 "adc r23, r1 \n\t" 1900 "adc r24, r25 \n\t" 1901 "mul r6, r19 \n\t" 1902 "add r22, r0 \n\t" 1903 "adc r23, r1 \n\t" 1904 "adc r24, r25 \n\t" 1905 "mul r7, r18 \n\t" 1906 "add r22, r0 \n\t" 1907 "adc r23, r1 \n\t" 1908 "adc r24, r25 \n\t" 1909 "mul r8, r17 \n\t" 1910 "add r22, r0 \n\t" 1911 "adc r23, r1 \n\t" 1912 "adc r24, r25 \n\t" 1913 "mul r9, r16 \n\t" 1914 "add r22, r0 \n\t" 1915 "adc r23, r1 \n\t" 1916 "adc r24, r25 \n\t" 1917 "mul r10, r15 \n\t" 1918 "add r22, r0 \n\t" 1919 "adc r23, r1 \n\t" 1920 "adc r24, r25 \n\t" 1921 "mul r11, r14 \n\t" 1922 "add r22, r0 \n\t" 1923 "adc r23, r1 \n\t" 1924 "adc r24, r25 \n\t" 1925 "st z+, r22 \n\t" 1926 1927 "ldi r22, 0 \n\t" 1928 "mul r5, r21 \n\t" 1929 "add r23, r0 \n\t" 1930 "adc r24, r1 \n\t" 1931 "adc r22, r25 \n\t" 1932 "mul r6, r20 \n\t" 1933 "add r23, r0 \n\t" 1934 "adc r24, r1 \n\t" 1935 "adc r22, r25 \n\t" 1936 "mul r7, r19 \n\t" 1937 "add r23, r0 \n\t" 1938 "adc r24, r1 \n\t" 1939 "adc r22, r25 \n\t" 1940 "mul r8, r18 \n\t" 1941 "add r23, r0 \n\t" 1942 "adc r24, r1 \n\t" 1943 "adc r22, r25 \n\t" 1944 "mul r9, r17 \n\t" 1945 "add r23, r0 \n\t" 1946 "adc r24, r1 \n\t" 1947 "adc r22, r25 \n\t" 1948 "mul r10, r16 \n\t" 1949 "add r23, r0 \n\t" 1950 "adc r24, r1 \n\t" 1951 "adc r22, r25 \n\t" 1952 "mul r11, r15 \n\t" 1953 "add r23, r0 \n\t" 1954 "adc r24, r1 \n\t" 1955 "adc r22, r25 \n\t" 1956 "st z+, r23 \n\t" 1957 1958 "ldi r23, 0 \n\t" 1959 "mul r6, r21 \n\t" 1960 "add r24, r0 \n\t" 1961 "adc r22, r1 \n\t" 1962 "adc r23, r25 \n\t" 1963 "mul r7, r20 \n\t" 1964 "add r24, r0 \n\t" 1965 "adc r22, r1 \n\t" 1966 "adc r23, r25 \n\t" 1967 "mul r8, r19 \n\t" 1968 "add r24, r0 \n\t" 1969 "adc r22, r1 \n\t" 1970 "adc r23, r25 \n\t" 1971 "mul r9, r18 \n\t" 1972 "add r24, r0 \n\t" 1973 "adc r22, r1 \n\t" 1974 "adc r23, r25 \n\t" 1975 "mul r10, r17 \n\t" 1976 "add r24, r0 \n\t" 1977 "adc r22, r1 \n\t" 1978 "adc r23, r25 \n\t" 1979 "mul r11, r16 \n\t" 1980 "add r24, r0 \n\t" 1981 "adc r22, r1 \n\t" 1982 "adc r23, r25 \n\t" 1983 "st z+, r24 \n\t" 1984 1985 "ldi r24, 0 \n\t" 1986 "mul r7, r21 \n\t" 1987 "add r22, r0 \n\t" 1988 "adc r23, r1 \n\t" 1989 "adc r24, r25 \n\t" 1990 "mul r8, r20 \n\t" 1991 "add r22, r0 \n\t" 1992 "adc r23, r1 \n\t" 1993 "adc r24, r25 \n\t" 1994 "mul r9, r19 \n\t" 1995 "add r22, r0 \n\t" 1996 "adc r23, r1 \n\t" 1997 "adc r24, r25 \n\t" 1998 "mul r10, r18 \n\t" 1999 "add r22, r0 \n\t" 2000 "adc r23, r1 \n\t" 2001 "adc r24, r25 \n\t" 2002 "mul r11, r17 \n\t" 2003 "add r22, r0 \n\t" 2004 "adc r23, r1 \n\t" 2005 "adc r24, r25 \n\t" 2006 "st z+, r22 \n\t" 2007 2008 "ldi r22, 0 \n\t" 2009 "mul r8, r21 \n\t" 2010 "add r23, r0 \n\t" 2011 "adc r24, r1 \n\t" 2012 "adc r22, r25 \n\t" 2013 "mul r9, r20 \n\t" 2014 "add r23, r0 \n\t" 2015 "adc r24, r1 \n\t" 2016 "adc r22, r25 \n\t" 2017 "mul r10, r19 \n\t" 2018 "add r23, r0 \n\t" 2019 "adc r24, r1 \n\t" 2020 "adc r22, r25 \n\t" 2021 "mul r11, r18 \n\t" 2022 "add r23, r0 \n\t" 2023 "adc r24, r1 \n\t" 2024 "adc r22, r25 \n\t" 2025 "st z+, r23 \n\t" 2026 2027 "ldi r23, 0 \n\t" 2028 "mul r9, r21 \n\t" 2029 "add r24, r0 \n\t" 2030 "adc r22, r1 \n\t" 2031 "adc r23, r25 \n\t" 2032 "mul r10, r20 \n\t" 2033 "add r24, r0 \n\t" 2034 "adc r22, r1 \n\t" 2035 "adc r23, r25 \n\t" 2036 "mul r11, r19 \n\t" 2037 "add r24, r0 \n\t" 2038 "adc r22, r1 \n\t" 2039 "adc r23, r25 \n\t" 2040 "st z+, r24 \n\t" 2041 2042 "ldi r24, 0 \n\t" 2043 "mul r10, r21 \n\t" 2044 "add r22, r0 \n\t" 2045 "adc r23, r1 \n\t" 2046 "adc r24, r25 \n\t" 2047 "mul r11, r20 \n\t" 2048 "add r22, r0 \n\t" 2049 "adc r23, r1 \n\t" 2050 "adc r24, r25 \n\t" 2051 "st z+, r22 \n\t" 2052 2053 "mul r11, r21 \n\t" 2054 "add r23, r0 \n\t" 2055 "adc r24, r1 \n\t" 2056 "st z+, r23 \n\t" 2057 "st z+, r24 \n\t" 2058 "eor r1, r1 \n\t" 2059 : "+x" (left), "+y" (right), "+z" (result) 2060 : 2061 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 2062 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 2063 "r21", "r22", "r23", "r24", "r25", "cc", "memory" 2064 ); 2065} 2066#define asm_mult 1 2067#elif (uECC_BYTES == 24) 2068__attribute((noinline)) 2069static void vli_mult(uint8_t *result, const uint8_t *left, const uint8_t *right) { 2070 __asm__ volatile ( 2071 "adiw r30, 20 \n\t" 2072 "adiw r28, 20 \n\t" 2073 "ld r2, x+ \n\t" 2074 "ld r3, x+ \n\t" 2075 "ld r4, x+ \n\t" 2076 "ld r5, x+ \n\t" 2077 "ld r12, y+ \n\t" 2078 "ld r13, y+ \n\t" 2079 "ld r14, y+ \n\t" 2080 "ld r15, y+ \n\t" 2081 "ldi r25, 0 \n\t" 2082 2083 "ldi r23, 0 \n\t" 2084 "mul r2, r12 \n\t" 2085 "st z+, r0 \n\t" 2086 "mov r22, r1 \n\t" 2087 2088 "ldi r24, 0 \n\t" 2089 "mul r2, r13 \n\t" 2090 "add r22, r0 \n\t" 2091 "adc r23, r1 \n\t" 2092 "mul r3, r12 \n\t" 2093 "add r22, r0 \n\t" 2094 "adc r23, r1 \n\t" 2095 "adc r24, r25 \n\t" 2096 "st z+, r22 \n\t" 2097 2098 "ldi r22, 0 \n\t" 2099 "mul r2, r14 \n\t" 2100 "add r23, r0 \n\t" 2101 "adc r24, r1 \n\t" 2102 "adc r22, r25 \n\t" 2103 "mul r3, r13 \n\t" 2104 "add r23, r0 \n\t" 2105 "adc r24, r1 \n\t" 2106 "adc r22, r25 \n\t" 2107 "mul r4, r12 \n\t" 2108 "add r23, r0 \n\t" 2109 "adc r24, r1 \n\t" 2110 "adc r22, r25 \n\t" 2111 "st z+, r23 \n\t" 2112 2113 "ldi r23, 0 \n\t" 2114 "mul r2, r15 \n\t" 2115 "add r24, r0 \n\t" 2116 "adc r22, r1 \n\t" 2117 "adc r23, r25 \n\t" 2118 "mul r3, r14 \n\t" 2119 "add r24, r0 \n\t" 2120 "adc r22, r1 \n\t" 2121 "adc r23, r25 \n\t" 2122 "mul r4, r13 \n\t" 2123 "add r24, r0 \n\t" 2124 "adc r22, r1 \n\t" 2125 "adc r23, r25 \n\t" 2126 "mul r5, r12 \n\t" 2127 "add r24, r0 \n\t" 2128 "adc r22, r1 \n\t" 2129 "adc r23, r25 \n\t" 2130 "st z+, r24 \n\t" 2131 2132 "ldi r24, 0 \n\t" 2133 "mul r3, r15 \n\t" 2134 "add r22, r0 \n\t" 2135 "adc r23, r1 \n\t" 2136 "adc r24, r25 \n\t" 2137 "mul r4, r14 \n\t" 2138 "add r22, r0 \n\t" 2139 "adc r23, r1 \n\t" 2140 "adc r24, r25 \n\t" 2141 "mul r5, r13 \n\t" 2142 "add r22, r0 \n\t" 2143 "adc r23, r1 \n\t" 2144 "adc r24, r25 \n\t" 2145 "st z+, r22 \n\t" 2146 2147 "ldi r22, 0 \n\t" 2148 "mul r4, r15 \n\t" 2149 "add r23, r0 \n\t" 2150 "adc r24, r1 \n\t" 2151 "adc r22, r25 \n\t" 2152 "mul r5, r14 \n\t" 2153 "add r23, r0 \n\t" 2154 "adc r24, r1 \n\t" 2155 "adc r22, r25 \n\t" 2156 "st z+, r23 \n\t" 2157 2158 "mul r5, r15 \n\t" 2159 "add r24, r0 \n\t" 2160 "adc r22, r1 \n\t" 2161 "st z+, r24 \n\t" 2162 "st z+, r22 \n\t" 2163 2164 "sbiw r30, 18 \n\t" 2165 "sbiw r28, 14 \n\t" 2166 "ld r12, y+ \n\t" 2167 "ld r13, y+ \n\t" 2168 "ld r14, y+ \n\t" 2169 "ld r15, y+ \n\t" 2170 "ld r16, y+ \n\t" 2171 "ld r17, y+ \n\t" 2172 "ld r18, y+ \n\t" 2173 "ld r19, y+ \n\t" 2174 "ld r20, y+ \n\t" 2175 "ld r21, y+ \n\t" 2176 "ld r6, x+ \n\t" 2177 "ld r7, x+ \n\t" 2178 "ld r8, x+ \n\t" 2179 "ld r9, x+ \n\t" 2180 "ld r10, x+ \n\t" 2181 "ld r11, x+ \n\t" 2182 2183 "ldi r23, 0 \n\t" 2184 "mul r2, r12 \n\t" 2185 "st z+, r0 \n\t" 2186 "mov r22, r1 \n\t" 2187 2188 "ldi r24, 0 \n\t" 2189 "mul r2, r13 \n\t" 2190 "add r22, r0 \n\t" 2191 "adc r23, r1 \n\t" 2192 "mul r3, r12 \n\t" 2193 "add r22, r0 \n\t" 2194 "adc r23, r1 \n\t" 2195 "adc r24, r25 \n\t" 2196 "st z+, r22 \n\t" 2197 2198 "ldi r22, 0 \n\t" 2199 "mul r2, r14 \n\t" 2200 "add r23, r0 \n\t" 2201 "adc r24, r1 \n\t" 2202 "adc r22, r25 \n\t" 2203 "mul r3, r13 \n\t" 2204 "add r23, r0 \n\t" 2205 "adc r24, r1 \n\t" 2206 "adc r22, r25 \n\t" 2207 "mul r4, r12 \n\t" 2208 "add r23, r0 \n\t" 2209 "adc r24, r1 \n\t" 2210 "adc r22, r25 \n\t" 2211 "st z+, r23 \n\t" 2212 2213 "ldi r23, 0 \n\t" 2214 "mul r2, r15 \n\t" 2215 "add r24, r0 \n\t" 2216 "adc r22, r1 \n\t" 2217 "adc r23, r25 \n\t" 2218 "mul r3, r14 \n\t" 2219 "add r24, r0 \n\t" 2220 "adc r22, r1 \n\t" 2221 "adc r23, r25 \n\t" 2222 "mul r4, r13 \n\t" 2223 "add r24, r0 \n\t" 2224 "adc r22, r1 \n\t" 2225 "adc r23, r25 \n\t" 2226 "mul r5, r12 \n\t" 2227 "add r24, r0 \n\t" 2228 "adc r22, r1 \n\t" 2229 "adc r23, r25 \n\t" 2230 "st z+, r24 \n\t" 2231 2232 "ldi r24, 0 \n\t" 2233 "mul r2, r16 \n\t" 2234 "add r22, r0 \n\t" 2235 "adc r23, r1 \n\t" 2236 "adc r24, r25 \n\t" 2237 "mul r3, r15 \n\t" 2238 "add r22, r0 \n\t" 2239 "adc r23, r1 \n\t" 2240 "adc r24, r25 \n\t" 2241 "mul r4, r14 \n\t" 2242 "add r22, r0 \n\t" 2243 "adc r23, r1 \n\t" 2244 "adc r24, r25 \n\t" 2245 "mul r5, r13 \n\t" 2246 "add r22, r0 \n\t" 2247 "adc r23, r1 \n\t" 2248 "adc r24, r25 \n\t" 2249 "mul r6, r12 \n\t" 2250 "add r22, r0 \n\t" 2251 "adc r23, r1 \n\t" 2252 "adc r24, r25 \n\t" 2253 "st z+, r22 \n\t" 2254 2255 "ldi r22, 0 \n\t" 2256 "mul r2, r17 \n\t" 2257 "add r23, r0 \n\t" 2258 "adc r24, r1 \n\t" 2259 "adc r22, r25 \n\t" 2260 "mul r3, r16 \n\t" 2261 "add r23, r0 \n\t" 2262 "adc r24, r1 \n\t" 2263 "adc r22, r25 \n\t" 2264 "mul r4, r15 \n\t" 2265 "add r23, r0 \n\t" 2266 "adc r24, r1 \n\t" 2267 "adc r22, r25 \n\t" 2268 "mul r5, r14 \n\t" 2269 "add r23, r0 \n\t" 2270 "adc r24, r1 \n\t" 2271 "adc r22, r25 \n\t" 2272 "mul r6, r13 \n\t" 2273 "add r23, r0 \n\t" 2274 "adc r24, r1 \n\t" 2275 "adc r22, r25 \n\t" 2276 "mul r7, r12 \n\t" 2277 "add r23, r0 \n\t" 2278 "adc r24, r1 \n\t" 2279 "adc r22, r25 \n\t" 2280 "st z+, r23 \n\t" 2281 2282 "ldi r23, 0 \n\t" 2283 "mul r2, r18 \n\t" 2284 "add r24, r0 \n\t" 2285 "adc r22, r1 \n\t" 2286 "adc r23, r25 \n\t" 2287 "mul r3, r17 \n\t" 2288 "add r24, r0 \n\t" 2289 "adc r22, r1 \n\t" 2290 "adc r23, r25 \n\t" 2291 "mul r4, r16 \n\t" 2292 "add r24, r0 \n\t" 2293 "adc r22, r1 \n\t" 2294 "adc r23, r25 \n\t" 2295 "mul r5, r15 \n\t" 2296 "add r24, r0 \n\t" 2297 "adc r22, r1 \n\t" 2298 "adc r23, r25 \n\t" 2299 "mul r6, r14 \n\t" 2300 "add r24, r0 \n\t" 2301 "adc r22, r1 \n\t" 2302 "adc r23, r25 \n\t" 2303 "mul r7, r13 \n\t" 2304 "add r24, r0 \n\t" 2305 "adc r22, r1 \n\t" 2306 "adc r23, r25 \n\t" 2307 "mul r8, r12 \n\t" 2308 "add r24, r0 \n\t" 2309 "adc r22, r1 \n\t" 2310 "adc r23, r25 \n\t" 2311 "st z+, r24 \n\t" 2312 2313 "ldi r24, 0 \n\t" 2314 "mul r2, r19 \n\t" 2315 "add r22, r0 \n\t" 2316 "adc r23, r1 \n\t" 2317 "adc r24, r25 \n\t" 2318 "mul r3, r18 \n\t" 2319 "add r22, r0 \n\t" 2320 "adc r23, r1 \n\t" 2321 "adc r24, r25 \n\t" 2322 "mul r4, r17 \n\t" 2323 "add r22, r0 \n\t" 2324 "adc r23, r1 \n\t" 2325 "adc r24, r25 \n\t" 2326 "mul r5, r16 \n\t" 2327 "add r22, r0 \n\t" 2328 "adc r23, r1 \n\t" 2329 "adc r24, r25 \n\t" 2330 "mul r6, r15 \n\t" 2331 "add r22, r0 \n\t" 2332 "adc r23, r1 \n\t" 2333 "adc r24, r25 \n\t" 2334 "mul r7, r14 \n\t" 2335 "add r22, r0 \n\t" 2336 "adc r23, r1 \n\t" 2337 "adc r24, r25 \n\t" 2338 "mul r8, r13 \n\t" 2339 "add r22, r0 \n\t" 2340 "adc r23, r1 \n\t" 2341 "adc r24, r25 \n\t" 2342 "mul r9, r12 \n\t" 2343 "add r22, r0 \n\t" 2344 "adc r23, r1 \n\t" 2345 "adc r24, r25 \n\t" 2346 "st z+, r22 \n\t" 2347 2348 "ldi r22, 0 \n\t" 2349 "mul r2, r20 \n\t" 2350 "add r23, r0 \n\t" 2351 "adc r24, r1 \n\t" 2352 "adc r22, r25 \n\t" 2353 "mul r3, r19 \n\t" 2354 "add r23, r0 \n\t" 2355 "adc r24, r1 \n\t" 2356 "adc r22, r25 \n\t" 2357 "mul r4, r18 \n\t" 2358 "add r23, r0 \n\t" 2359 "adc r24, r1 \n\t" 2360 "adc r22, r25 \n\t" 2361 "mul r5, r17 \n\t" 2362 "add r23, r0 \n\t" 2363 "adc r24, r1 \n\t" 2364 "adc r22, r25 \n\t" 2365 "mul r6, r16 \n\t" 2366 "add r23, r0 \n\t" 2367 "adc r24, r1 \n\t" 2368 "adc r22, r25 \n\t" 2369 "mul r7, r15 \n\t" 2370 "add r23, r0 \n\t" 2371 "adc r24, r1 \n\t" 2372 "adc r22, r25 \n\t" 2373 "mul r8, r14 \n\t" 2374 "add r23, r0 \n\t" 2375 "adc r24, r1 \n\t" 2376 "adc r22, r25 \n\t" 2377 "mul r9, r13 \n\t" 2378 "add r23, r0 \n\t" 2379 "adc r24, r1 \n\t" 2380 "adc r22, r25 \n\t" 2381 "mul r10, r12 \n\t" 2382 "add r23, r0 \n\t" 2383 "adc r24, r1 \n\t" 2384 "adc r22, r25 \n\t" 2385 "st z+, r23 \n\t" 2386 2387 "ldi r23, 0 \n\t" 2388 "mul r2, r21 \n\t" 2389 "add r24, r0 \n\t" 2390 "adc r22, r1 \n\t" 2391 "adc r23, r25 \n\t" 2392 "mul r3, r20 \n\t" 2393 "add r24, r0 \n\t" 2394 "adc r22, r1 \n\t" 2395 "adc r23, r25 \n\t" 2396 "mul r4, r19 \n\t" 2397 "add r24, r0 \n\t" 2398 "adc r22, r1 \n\t" 2399 "adc r23, r25 \n\t" 2400 "mul r5, r18 \n\t" 2401 "add r24, r0 \n\t" 2402 "adc r22, r1 \n\t" 2403 "adc r23, r25 \n\t" 2404 "mul r6, r17 \n\t" 2405 "add r24, r0 \n\t" 2406 "adc r22, r1 \n\t" 2407 "adc r23, r25 \n\t" 2408 "mul r7, r16 \n\t" 2409 "add r24, r0 \n\t" 2410 "adc r22, r1 \n\t" 2411 "adc r23, r25 \n\t" 2412 "mul r8, r15 \n\t" 2413 "add r24, r0 \n\t" 2414 "adc r22, r1 \n\t" 2415 "adc r23, r25 \n\t" 2416 "mul r9, r14 \n\t" 2417 "add r24, r0 \n\t" 2418 "adc r22, r1 \n\t" 2419 "adc r23, r25 \n\t" 2420 "mul r10, r13 \n\t" 2421 "add r24, r0 \n\t" 2422 "adc r22, r1 \n\t" 2423 "adc r23, r25 \n\t" 2424 "mul r11, r12 \n\t" 2425 "add r24, r0 \n\t" 2426 "adc r22, r1 \n\t" 2427 "adc r23, r25 \n\t" 2428 "st z+, r24 \n\t" 2429 2430 "ld r2, x+ \n\t" 2431 "ldi r24, 0 \n\t" 2432 "mul r3, r21 \n\t" 2433 "add r22, r0 \n\t" 2434 "adc r23, r1 \n\t" 2435 "adc r24, r25 \n\t" 2436 "mul r4, r20 \n\t" 2437 "add r22, r0 \n\t" 2438 "adc r23, r1 \n\t" 2439 "adc r24, r25 \n\t" 2440 "mul r5, r19 \n\t" 2441 "add r22, r0 \n\t" 2442 "adc r23, r1 \n\t" 2443 "adc r24, r25 \n\t" 2444 "mul r6, r18 \n\t" 2445 "add r22, r0 \n\t" 2446 "adc r23, r1 \n\t" 2447 "adc r24, r25 \n\t" 2448 "mul r7, r17 \n\t" 2449 "add r22, r0 \n\t" 2450 "adc r23, r1 \n\t" 2451 "adc r24, r25 \n\t" 2452 "mul r8, r16 \n\t" 2453 "add r22, r0 \n\t" 2454 "adc r23, r1 \n\t" 2455 "adc r24, r25 \n\t" 2456 "mul r9, r15 \n\t" 2457 "add r22, r0 \n\t" 2458 "adc r23, r1 \n\t" 2459 "adc r24, r25 \n\t" 2460 "mul r10, r14 \n\t" 2461 "add r22, r0 \n\t" 2462 "adc r23, r1 \n\t" 2463 "adc r24, r25 \n\t" 2464 "mul r11, r13 \n\t" 2465 "add r22, r0 \n\t" 2466 "adc r23, r1 \n\t" 2467 "adc r24, r25 \n\t" 2468 "mul r2, r12 \n\t" 2469 "add r22, r0 \n\t" 2470 "adc r23, r1 \n\t" 2471 "adc r24, r25 \n\t" 2472 "ld r0, z \n\t" 2473 "add r22, r0 \n\t" 2474 "adc r23, r25 \n\t" 2475 "adc r24, r25 \n\t" 2476 "st z+, r22 \n\t" 2477 2478 "ld r3, x+ \n\t" 2479 "ldi r22, 0 \n\t" 2480 "mul r4, r21 \n\t" 2481 "add r23, r0 \n\t" 2482 "adc r24, r1 \n\t" 2483 "adc r22, r25 \n\t" 2484 "mul r5, r20 \n\t" 2485 "add r23, r0 \n\t" 2486 "adc r24, r1 \n\t" 2487 "adc r22, r25 \n\t" 2488 "mul r6, r19 \n\t" 2489 "add r23, r0 \n\t" 2490 "adc r24, r1 \n\t" 2491 "adc r22, r25 \n\t" 2492 "mul r7, r18 \n\t" 2493 "add r23, r0 \n\t" 2494 "adc r24, r1 \n\t" 2495 "adc r22, r25 \n\t" 2496 "mul r8, r17 \n\t" 2497 "add r23, r0 \n\t" 2498 "adc r24, r1 \n\t" 2499 "adc r22, r25 \n\t" 2500 "mul r9, r16 \n\t" 2501 "add r23, r0 \n\t" 2502 "adc r24, r1 \n\t" 2503 "adc r22, r25 \n\t" 2504 "mul r10, r15 \n\t" 2505 "add r23, r0 \n\t" 2506 "adc r24, r1 \n\t" 2507 "adc r22, r25 \n\t" 2508 "mul r11, r14 \n\t" 2509 "add r23, r0 \n\t" 2510 "adc r24, r1 \n\t" 2511 "adc r22, r25 \n\t" 2512 "mul r2, r13 \n\t" 2513 "add r23, r0 \n\t" 2514 "adc r24, r1 \n\t" 2515 "adc r22, r25 \n\t" 2516 "mul r3, r12 \n\t" 2517 "add r23, r0 \n\t" 2518 "adc r24, r1 \n\t" 2519 "adc r22, r25 \n\t" 2520 "ld r0, z \n\t" 2521 "add r23, r0 \n\t" 2522 "adc r24, r25 \n\t" 2523 "adc r22, r25 \n\t" 2524 "st z+, r23 \n\t" 2525 2526 "ld r4, x+ \n\t" 2527 "ldi r23, 0 \n\t" 2528 "mul r5, r21 \n\t" 2529 "add r24, r0 \n\t" 2530 "adc r22, r1 \n\t" 2531 "adc r23, r25 \n\t" 2532 "mul r6, r20 \n\t" 2533 "add r24, r0 \n\t" 2534 "adc r22, r1 \n\t" 2535 "adc r23, r25 \n\t" 2536 "mul r7, r19 \n\t" 2537 "add r24, r0 \n\t" 2538 "adc r22, r1 \n\t" 2539 "adc r23, r25 \n\t" 2540 "mul r8, r18 \n\t" 2541 "add r24, r0 \n\t" 2542 "adc r22, r1 \n\t" 2543 "adc r23, r25 \n\t" 2544 "mul r9, r17 \n\t" 2545 "add r24, r0 \n\t" 2546 "adc r22, r1 \n\t" 2547 "adc r23, r25 \n\t" 2548 "mul r10, r16 \n\t" 2549 "add r24, r0 \n\t" 2550 "adc r22, r1 \n\t" 2551 "adc r23, r25 \n\t" 2552 "mul r11, r15 \n\t" 2553 "add r24, r0 \n\t" 2554 "adc r22, r1 \n\t" 2555 "adc r23, r25 \n\t" 2556 "mul r2, r14 \n\t" 2557 "add r24, r0 \n\t" 2558 "adc r22, r1 \n\t" 2559 "adc r23, r25 \n\t" 2560 "mul r3, r13 \n\t" 2561 "add r24, r0 \n\t" 2562 "adc r22, r1 \n\t" 2563 "adc r23, r25 \n\t" 2564 "mul r4, r12 \n\t" 2565 "add r24, r0 \n\t" 2566 "adc r22, r1 \n\t" 2567 "adc r23, r25 \n\t" 2568 "ld r0, z \n\t" 2569 "add r24, r0 \n\t" 2570 "adc r22, r25 \n\t" 2571 "adc r23, r25 \n\t" 2572 "st z+, r24 \n\t" 2573 2574 "ld r5, x+ \n\t" 2575 "ldi r24, 0 \n\t" 2576 "mul r6, r21 \n\t" 2577 "add r22, r0 \n\t" 2578 "adc r23, r1 \n\t" 2579 "adc r24, r25 \n\t" 2580 "mul r7, r20 \n\t" 2581 "add r22, r0 \n\t" 2582 "adc r23, r1 \n\t" 2583 "adc r24, r25 \n\t" 2584 "mul r8, r19 \n\t" 2585 "add r22, r0 \n\t" 2586 "adc r23, r1 \n\t" 2587 "adc r24, r25 \n\t" 2588 "mul r9, r18 \n\t" 2589 "add r22, r0 \n\t" 2590 "adc r23, r1 \n\t" 2591 "adc r24, r25 \n\t" 2592 "mul r10, r17 \n\t" 2593 "add r22, r0 \n\t" 2594 "adc r23, r1 \n\t" 2595 "adc r24, r25 \n\t" 2596 "mul r11, r16 \n\t" 2597 "add r22, r0 \n\t" 2598 "adc r23, r1 \n\t" 2599 "adc r24, r25 \n\t" 2600 "mul r2, r15 \n\t" 2601 "add r22, r0 \n\t" 2602 "adc r23, r1 \n\t" 2603 "adc r24, r25 \n\t" 2604 "mul r3, r14 \n\t" 2605 "add r22, r0 \n\t" 2606 "adc r23, r1 \n\t" 2607 "adc r24, r25 \n\t" 2608 "mul r4, r13 \n\t" 2609 "add r22, r0 \n\t" 2610 "adc r23, r1 \n\t" 2611 "adc r24, r25 \n\t" 2612 "mul r5, r12 \n\t" 2613 "add r22, r0 \n\t" 2614 "adc r23, r1 \n\t" 2615 "adc r24, r25 \n\t" 2616 "ld r0, z \n\t" 2617 "add r22, r0 \n\t" 2618 "adc r23, r25 \n\t" 2619 "adc r24, r25 \n\t" 2620 "st z+, r22 \n\t" 2621 2622 "ld r12, y+ \n\t" 2623 "ldi r22, 0 \n\t" 2624 "mul r6, r12 \n\t" 2625 "add r23, r0 \n\t" 2626 "adc r24, r1 \n\t" 2627 "adc r22, r25 \n\t" 2628 "mul r7, r21 \n\t" 2629 "add r23, r0 \n\t" 2630 "adc r24, r1 \n\t" 2631 "adc r22, r25 \n\t" 2632 "mul r8, r20 \n\t" 2633 "add r23, r0 \n\t" 2634 "adc r24, r1 \n\t" 2635 "adc r22, r25 \n\t" 2636 "mul r9, r19 \n\t" 2637 "add r23, r0 \n\t" 2638 "adc r24, r1 \n\t" 2639 "adc r22, r25 \n\t" 2640 "mul r10, r18 \n\t" 2641 "add r23, r0 \n\t" 2642 "adc r24, r1 \n\t" 2643 "adc r22, r25 \n\t" 2644 "mul r11, r17 \n\t" 2645 "add r23, r0 \n\t" 2646 "adc r24, r1 \n\t" 2647 "adc r22, r25 \n\t" 2648 "mul r2, r16 \n\t" 2649 "add r23, r0 \n\t" 2650 "adc r24, r1 \n\t" 2651 "adc r22, r25 \n\t" 2652 "mul r3, r15 \n\t" 2653 "add r23, r0 \n\t" 2654 "adc r24, r1 \n\t" 2655 "adc r22, r25 \n\t" 2656 "mul r4, r14 \n\t" 2657 "add r23, r0 \n\t" 2658 "adc r24, r1 \n\t" 2659 "adc r22, r25 \n\t" 2660 "mul r5, r13 \n\t" 2661 "add r23, r0 \n\t" 2662 "adc r24, r1 \n\t" 2663 "adc r22, r25 \n\t" 2664 "ld r0, z \n\t" 2665 "add r23, r0 \n\t" 2666 "adc r24, r25 \n\t" 2667 "adc r22, r25 \n\t" 2668 "st z+, r23 \n\t" 2669 2670 "ld r13, y+ \n\t" 2671 "ldi r23, 0 \n\t" 2672 "mul r6, r13 \n\t" 2673 "add r24, r0 \n\t" 2674 "adc r22, r1 \n\t" 2675 "adc r23, r25 \n\t" 2676 "mul r7, r12 \n\t" 2677 "add r24, r0 \n\t" 2678 "adc r22, r1 \n\t" 2679 "adc r23, r25 \n\t" 2680 "mul r8, r21 \n\t" 2681 "add r24, r0 \n\t" 2682 "adc r22, r1 \n\t" 2683 "adc r23, r25 \n\t" 2684 "mul r9, r20 \n\t" 2685 "add r24, r0 \n\t" 2686 "adc r22, r1 \n\t" 2687 "adc r23, r25 \n\t" 2688 "mul r10, r19 \n\t" 2689 "add r24, r0 \n\t" 2690 "adc r22, r1 \n\t" 2691 "adc r23, r25 \n\t" 2692 "mul r11, r18 \n\t" 2693 "add r24, r0 \n\t" 2694 "adc r22, r1 \n\t" 2695 "adc r23, r25 \n\t" 2696 "mul r2, r17 \n\t" 2697 "add r24, r0 \n\t" 2698 "adc r22, r1 \n\t" 2699 "adc r23, r25 \n\t" 2700 "mul r3, r16 \n\t" 2701 "add r24, r0 \n\t" 2702 "adc r22, r1 \n\t" 2703 "adc r23, r25 \n\t" 2704 "mul r4, r15 \n\t" 2705 "add r24, r0 \n\t" 2706 "adc r22, r1 \n\t" 2707 "adc r23, r25 \n\t" 2708 "mul r5, r14 \n\t" 2709 "add r24, r0 \n\t" 2710 "adc r22, r1 \n\t" 2711 "adc r23, r25 \n\t" 2712 "ld r0, z \n\t" 2713 "add r24, r0 \n\t" 2714 "adc r22, r25 \n\t" 2715 "adc r23, r25 \n\t" 2716 "st z+, r24 \n\t" 2717 2718 "ld r14, y+ \n\t" 2719 "ldi r24, 0 \n\t" 2720 "mul r6, r14 \n\t" 2721 "add r22, r0 \n\t" 2722 "adc r23, r1 \n\t" 2723 "adc r24, r25 \n\t" 2724 "mul r7, r13 \n\t" 2725 "add r22, r0 \n\t" 2726 "adc r23, r1 \n\t" 2727 "adc r24, r25 \n\t" 2728 "mul r8, r12 \n\t" 2729 "add r22, r0 \n\t" 2730 "adc r23, r1 \n\t" 2731 "adc r24, r25 \n\t" 2732 "mul r9, r21 \n\t" 2733 "add r22, r0 \n\t" 2734 "adc r23, r1 \n\t" 2735 "adc r24, r25 \n\t" 2736 "mul r10, r20 \n\t" 2737 "add r22, r0 \n\t" 2738 "adc r23, r1 \n\t" 2739 "adc r24, r25 \n\t" 2740 "mul r11, r19 \n\t" 2741 "add r22, r0 \n\t" 2742 "adc r23, r1 \n\t" 2743 "adc r24, r25 \n\t" 2744 "mul r2, r18 \n\t" 2745 "add r22, r0 \n\t" 2746 "adc r23, r1 \n\t" 2747 "adc r24, r25 \n\t" 2748 "mul r3, r17 \n\t" 2749 "add r22, r0 \n\t" 2750 "adc r23, r1 \n\t" 2751 "adc r24, r25 \n\t" 2752 "mul r4, r16 \n\t" 2753 "add r22, r0 \n\t" 2754 "adc r23, r1 \n\t" 2755 "adc r24, r25 \n\t" 2756 "mul r5, r15 \n\t" 2757 "add r22, r0 \n\t" 2758 "adc r23, r1 \n\t" 2759 "adc r24, r25 \n\t" 2760 "ld r0, z \n\t" 2761 "add r22, r0 \n\t" 2762 "adc r23, r25 \n\t" 2763 "adc r24, r25 \n\t" 2764 "st z+, r22 \n\t" 2765 2766 "ld r15, y+ \n\t" 2767 "ldi r22, 0 \n\t" 2768 "mul r6, r15 \n\t" 2769 "add r23, r0 \n\t" 2770 "adc r24, r1 \n\t" 2771 "adc r22, r25 \n\t" 2772 "mul r7, r14 \n\t" 2773 "add r23, r0 \n\t" 2774 "adc r24, r1 \n\t" 2775 "adc r22, r25 \n\t" 2776 "mul r8, r13 \n\t" 2777 "add r23, r0 \n\t" 2778 "adc r24, r1 \n\t" 2779 "adc r22, r25 \n\t" 2780 "mul r9, r12 \n\t" 2781 "add r23, r0 \n\t" 2782 "adc r24, r1 \n\t" 2783 "adc r22, r25 \n\t" 2784 "mul r10, r21 \n\t" 2785 "add r23, r0 \n\t" 2786 "adc r24, r1 \n\t" 2787 "adc r22, r25 \n\t" 2788 "mul r11, r20 \n\t" 2789 "add r23, r0 \n\t" 2790 "adc r24, r1 \n\t" 2791 "adc r22, r25 \n\t" 2792 "mul r2, r19 \n\t" 2793 "add r23, r0 \n\t" 2794 "adc r24, r1 \n\t" 2795 "adc r22, r25 \n\t" 2796 "mul r3, r18 \n\t" 2797 "add r23, r0 \n\t" 2798 "adc r24, r1 \n\t" 2799 "adc r22, r25 \n\t" 2800 "mul r4, r17 \n\t" 2801 "add r23, r0 \n\t" 2802 "adc r24, r1 \n\t" 2803 "adc r22, r25 \n\t" 2804 "mul r5, r16 \n\t" 2805 "add r23, r0 \n\t" 2806 "adc r24, r1 \n\t" 2807 "adc r22, r25 \n\t" 2808 "ld r0, z \n\t" 2809 "add r23, r0 \n\t" 2810 "adc r24, r25 \n\t" 2811 "adc r22, r25 \n\t" 2812 "st z+, r23 \n\t" 2813 2814 "ldi r23, 0 \n\t" 2815 "mul r7, r15 \n\t" 2816 "add r24, r0 \n\t" 2817 "adc r22, r1 \n\t" 2818 "adc r23, r25 \n\t" 2819 "mul r8, r14 \n\t" 2820 "add r24, r0 \n\t" 2821 "adc r22, r1 \n\t" 2822 "adc r23, r25 \n\t" 2823 "mul r9, r13 \n\t" 2824 "add r24, r0 \n\t" 2825 "adc r22, r1 \n\t" 2826 "adc r23, r25 \n\t" 2827 "mul r10, r12 \n\t" 2828 "add r24, r0 \n\t" 2829 "adc r22, r1 \n\t" 2830 "adc r23, r25 \n\t" 2831 "mul r11, r21 \n\t" 2832 "add r24, r0 \n\t" 2833 "adc r22, r1 \n\t" 2834 "adc r23, r25 \n\t" 2835 "mul r2, r20 \n\t" 2836 "add r24, r0 \n\t" 2837 "adc r22, r1 \n\t" 2838 "adc r23, r25 \n\t" 2839 "mul r3, r19 \n\t" 2840 "add r24, r0 \n\t" 2841 "adc r22, r1 \n\t" 2842 "adc r23, r25 \n\t" 2843 "mul r4, r18 \n\t" 2844 "add r24, r0 \n\t" 2845 "adc r22, r1 \n\t" 2846 "adc r23, r25 \n\t" 2847 "mul r5, r17 \n\t" 2848 "add r24, r0 \n\t" 2849 "adc r22, r1 \n\t" 2850 "adc r23, r25 \n\t" 2851 "st z+, r24 \n\t" 2852 2853 "ldi r24, 0 \n\t" 2854 "mul r8, r15 \n\t" 2855 "add r22, r0 \n\t" 2856 "adc r23, r1 \n\t" 2857 "adc r24, r25 \n\t" 2858 "mul r9, r14 \n\t" 2859 "add r22, r0 \n\t" 2860 "adc r23, r1 \n\t" 2861 "adc r24, r25 \n\t" 2862 "mul r10, r13 \n\t" 2863 "add r22, r0 \n\t" 2864 "adc r23, r1 \n\t" 2865 "adc r24, r25 \n\t" 2866 "mul r11, r12 \n\t" 2867 "add r22, r0 \n\t" 2868 "adc r23, r1 \n\t" 2869 "adc r24, r25 \n\t" 2870 "mul r2, r21 \n\t" 2871 "add r22, r0 \n\t" 2872 "adc r23, r1 \n\t" 2873 "adc r24, r25 \n\t" 2874 "mul r3, r20 \n\t" 2875 "add r22, r0 \n\t" 2876 "adc r23, r1 \n\t" 2877 "adc r24, r25 \n\t" 2878 "mul r4, r19 \n\t" 2879 "add r22, r0 \n\t" 2880 "adc r23, r1 \n\t" 2881 "adc r24, r25 \n\t" 2882 "mul r5, r18 \n\t" 2883 "add r22, r0 \n\t" 2884 "adc r23, r1 \n\t" 2885 "adc r24, r25 \n\t" 2886 "st z+, r22 \n\t" 2887 2888 "ldi r22, 0 \n\t" 2889 "mul r9, r15 \n\t" 2890 "add r23, r0 \n\t" 2891 "adc r24, r1 \n\t" 2892 "adc r22, r25 \n\t" 2893 "mul r10, r14 \n\t" 2894 "add r23, r0 \n\t" 2895 "adc r24, r1 \n\t" 2896 "adc r22, r25 \n\t" 2897 "mul r11, r13 \n\t" 2898 "add r23, r0 \n\t" 2899 "adc r24, r1 \n\t" 2900 "adc r22, r25 \n\t" 2901 "mul r2, r12 \n\t" 2902 "add r23, r0 \n\t" 2903 "adc r24, r1 \n\t" 2904 "adc r22, r25 \n\t" 2905 "mul r3, r21 \n\t" 2906 "add r23, r0 \n\t" 2907 "adc r24, r1 \n\t" 2908 "adc r22, r25 \n\t" 2909 "mul r4, r20 \n\t" 2910 "add r23, r0 \n\t" 2911 "adc r24, r1 \n\t" 2912 "adc r22, r25 \n\t" 2913 "mul r5, r19 \n\t" 2914 "add r23, r0 \n\t" 2915 "adc r24, r1 \n\t" 2916 "adc r22, r25 \n\t" 2917 "st z+, r23 \n\t" 2918 2919 "ldi r23, 0 \n\t" 2920 "mul r10, r15 \n\t" 2921 "add r24, r0 \n\t" 2922 "adc r22, r1 \n\t" 2923 "adc r23, r25 \n\t" 2924 "mul r11, r14 \n\t" 2925 "add r24, r0 \n\t" 2926 "adc r22, r1 \n\t" 2927 "adc r23, r25 \n\t" 2928 "mul r2, r13 \n\t" 2929 "add r24, r0 \n\t" 2930 "adc r22, r1 \n\t" 2931 "adc r23, r25 \n\t" 2932 "mul r3, r12 \n\t" 2933 "add r24, r0 \n\t" 2934 "adc r22, r1 \n\t" 2935 "adc r23, r25 \n\t" 2936 "mul r4, r21 \n\t" 2937 "add r24, r0 \n\t" 2938 "adc r22, r1 \n\t" 2939 "adc r23, r25 \n\t" 2940 "mul r5, r20 \n\t" 2941 "add r24, r0 \n\t" 2942 "adc r22, r1 \n\t" 2943 "adc r23, r25 \n\t" 2944 "st z+, r24 \n\t" 2945 2946 "ldi r24, 0 \n\t" 2947 "mul r11, r15 \n\t" 2948 "add r22, r0 \n\t" 2949 "adc r23, r1 \n\t" 2950 "adc r24, r25 \n\t" 2951 "mul r2, r14 \n\t" 2952 "add r22, r0 \n\t" 2953 "adc r23, r1 \n\t" 2954 "adc r24, r25 \n\t" 2955 "mul r3, r13 \n\t" 2956 "add r22, r0 \n\t" 2957 "adc r23, r1 \n\t" 2958 "adc r24, r25 \n\t" 2959 "mul r4, r12 \n\t" 2960 "add r22, r0 \n\t" 2961 "adc r23, r1 \n\t" 2962 "adc r24, r25 \n\t" 2963 "mul r5, r21 \n\t" 2964 "add r22, r0 \n\t" 2965 "adc r23, r1 \n\t" 2966 "adc r24, r25 \n\t" 2967 "st z+, r22 \n\t" 2968 2969 "ldi r22, 0 \n\t" 2970 "mul r2, r15 \n\t" 2971 "add r23, r0 \n\t" 2972 "adc r24, r1 \n\t" 2973 "adc r22, r25 \n\t" 2974 "mul r3, r14 \n\t" 2975 "add r23, r0 \n\t" 2976 "adc r24, r1 \n\t" 2977 "adc r22, r25 \n\t" 2978 "mul r4, r13 \n\t" 2979 "add r23, r0 \n\t" 2980 "adc r24, r1 \n\t" 2981 "adc r22, r25 \n\t" 2982 "mul r5, r12 \n\t" 2983 "add r23, r0 \n\t" 2984 "adc r24, r1 \n\t" 2985 "adc r22, r25 \n\t" 2986 "st z+, r23 \n\t" 2987 2988 "ldi r23, 0 \n\t" 2989 "mul r3, r15 \n\t" 2990 "add r24, r0 \n\t" 2991 "adc r22, r1 \n\t" 2992 "adc r23, r25 \n\t" 2993 "mul r4, r14 \n\t" 2994 "add r24, r0 \n\t" 2995 "adc r22, r1 \n\t" 2996 "adc r23, r25 \n\t" 2997 "mul r5, r13 \n\t" 2998 "add r24, r0 \n\t" 2999 "adc r22, r1 \n\t" 3000 "adc r23, r25 \n\t" 3001 "st z+, r24 \n\t" 3002 3003 "ldi r24, 0 \n\t" 3004 "mul r4, r15 \n\t" 3005 "add r22, r0 \n\t" 3006 "adc r23, r1 \n\t" 3007 "adc r24, r25 \n\t" 3008 "mul r5, r14 \n\t" 3009 "add r22, r0 \n\t" 3010 "adc r23, r1 \n\t" 3011 "adc r24, r25 \n\t" 3012 "st z+, r22 \n\t" 3013 3014 "mul r5, r15 \n\t" 3015 "add r23, r0 \n\t" 3016 "adc r24, r1 \n\t" 3017 "st z+, r23 \n\t" 3018 "st z+, r24 \n\t" 3019 3020 "sbiw r30, 38 \n\t" 3021 "sbiw r28, 24 \n\t" 3022 "sbiw r26, 14 \n\t" 3023 "ld r2, x+ \n\t" 3024 "ld r12, y+ \n\t" 3025 "ld r3, x+ \n\t" 3026 "ld r13, y+ \n\t" 3027 "ld r4, x+ \n\t" 3028 "ld r14, y+ \n\t" 3029 "ld r5, x+ \n\t" 3030 "ld r15, y+ \n\t" 3031 "ld r6, x+ \n\t" 3032 "ld r16, y+ \n\t" 3033 "ld r7, x+ \n\t" 3034 "ld r17, y+ \n\t" 3035 "ld r8, x+ \n\t" 3036 "ld r18, y+ \n\t" 3037 "ld r9, x+ \n\t" 3038 "ld r19, y+ \n\t" 3039 "ld r10, x+ \n\t" 3040 "ld r20, y+ \n\t" 3041 "ld r11, x+ \n\t" 3042 "ld r21, y+ \n\t" 3043 3044 "ldi r23, 0 \n\t" 3045 "mul r2, r12 \n\t" 3046 "st z+, r0 \n\t" 3047 "mov r22, r1 \n\t" 3048 3049 "ldi r24, 0 \n\t" 3050 "mul r2, r13 \n\t" 3051 "add r22, r0 \n\t" 3052 "adc r23, r1 \n\t" 3053 "mul r3, r12 \n\t" 3054 "add r22, r0 \n\t" 3055 "adc r23, r1 \n\t" 3056 "adc r24, r25 \n\t" 3057 "st z+, r22 \n\t" 3058 3059 "ldi r22, 0 \n\t" 3060 "mul r2, r14 \n\t" 3061 "add r23, r0 \n\t" 3062 "adc r24, r1 \n\t" 3063 "adc r22, r25 \n\t" 3064 "mul r3, r13 \n\t" 3065 "add r23, r0 \n\t" 3066 "adc r24, r1 \n\t" 3067 "adc r22, r25 \n\t" 3068 "mul r4, r12 \n\t" 3069 "add r23, r0 \n\t" 3070 "adc r24, r1 \n\t" 3071 "adc r22, r25 \n\t" 3072 "st z+, r23 \n\t" 3073 3074 "ldi r23, 0 \n\t" 3075 "mul r2, r15 \n\t" 3076 "add r24, r0 \n\t" 3077 "adc r22, r1 \n\t" 3078 "adc r23, r25 \n\t" 3079 "mul r3, r14 \n\t" 3080 "add r24, r0 \n\t" 3081 "adc r22, r1 \n\t" 3082 "adc r23, r25 \n\t" 3083 "mul r4, r13 \n\t" 3084 "add r24, r0 \n\t" 3085 "adc r22, r1 \n\t" 3086 "adc r23, r25 \n\t" 3087 "mul r5, r12 \n\t" 3088 "add r24, r0 \n\t" 3089 "adc r22, r1 \n\t" 3090 "adc r23, r25 \n\t" 3091 "st z+, r24 \n\t" 3092 3093 "ldi r24, 0 \n\t" 3094 "mul r2, r16 \n\t" 3095 "add r22, r0 \n\t" 3096 "adc r23, r1 \n\t" 3097 "adc r24, r25 \n\t" 3098 "mul r3, r15 \n\t" 3099 "add r22, r0 \n\t" 3100 "adc r23, r1 \n\t" 3101 "adc r24, r25 \n\t" 3102 "mul r4, r14 \n\t" 3103 "add r22, r0 \n\t" 3104 "adc r23, r1 \n\t" 3105 "adc r24, r25 \n\t" 3106 "mul r5, r13 \n\t" 3107 "add r22, r0 \n\t" 3108 "adc r23, r1 \n\t" 3109 "adc r24, r25 \n\t" 3110 "mul r6, r12 \n\t" 3111 "add r22, r0 \n\t" 3112 "adc r23, r1 \n\t" 3113 "adc r24, r25 \n\t" 3114 "st z+, r22 \n\t" 3115 3116 "ldi r22, 0 \n\t" 3117 "mul r2, r17 \n\t" 3118 "add r23, r0 \n\t" 3119 "adc r24, r1 \n\t" 3120 "adc r22, r25 \n\t" 3121 "mul r3, r16 \n\t" 3122 "add r23, r0 \n\t" 3123 "adc r24, r1 \n\t" 3124 "adc r22, r25 \n\t" 3125 "mul r4, r15 \n\t" 3126 "add r23, r0 \n\t" 3127 "adc r24, r1 \n\t" 3128 "adc r22, r25 \n\t" 3129 "mul r5, r14 \n\t" 3130 "add r23, r0 \n\t" 3131 "adc r24, r1 \n\t" 3132 "adc r22, r25 \n\t" 3133 "mul r6, r13 \n\t" 3134 "add r23, r0 \n\t" 3135 "adc r24, r1 \n\t" 3136 "adc r22, r25 \n\t" 3137 "mul r7, r12 \n\t" 3138 "add r23, r0 \n\t" 3139 "adc r24, r1 \n\t" 3140 "adc r22, r25 \n\t" 3141 "st z+, r23 \n\t" 3142 3143 "ldi r23, 0 \n\t" 3144 "mul r2, r18 \n\t" 3145 "add r24, r0 \n\t" 3146 "adc r22, r1 \n\t" 3147 "adc r23, r25 \n\t" 3148 "mul r3, r17 \n\t" 3149 "add r24, r0 \n\t" 3150 "adc r22, r1 \n\t" 3151 "adc r23, r25 \n\t" 3152 "mul r4, r16 \n\t" 3153 "add r24, r0 \n\t" 3154 "adc r22, r1 \n\t" 3155 "adc r23, r25 \n\t" 3156 "mul r5, r15 \n\t" 3157 "add r24, r0 \n\t" 3158 "adc r22, r1 \n\t" 3159 "adc r23, r25 \n\t" 3160 "mul r6, r14 \n\t" 3161 "add r24, r0 \n\t" 3162 "adc r22, r1 \n\t" 3163 "adc r23, r25 \n\t" 3164 "mul r7, r13 \n\t" 3165 "add r24, r0 \n\t" 3166 "adc r22, r1 \n\t" 3167 "adc r23, r25 \n\t" 3168 "mul r8, r12 \n\t" 3169 "add r24, r0 \n\t" 3170 "adc r22, r1 \n\t" 3171 "adc r23, r25 \n\t" 3172 "st z+, r24 \n\t" 3173 3174 "ldi r24, 0 \n\t" 3175 "mul r2, r19 \n\t" 3176 "add r22, r0 \n\t" 3177 "adc r23, r1 \n\t" 3178 "adc r24, r25 \n\t" 3179 "mul r3, r18 \n\t" 3180 "add r22, r0 \n\t" 3181 "adc r23, r1 \n\t" 3182 "adc r24, r25 \n\t" 3183 "mul r4, r17 \n\t" 3184 "add r22, r0 \n\t" 3185 "adc r23, r1 \n\t" 3186 "adc r24, r25 \n\t" 3187 "mul r5, r16 \n\t" 3188 "add r22, r0 \n\t" 3189 "adc r23, r1 \n\t" 3190 "adc r24, r25 \n\t" 3191 "mul r6, r15 \n\t" 3192 "add r22, r0 \n\t" 3193 "adc r23, r1 \n\t" 3194 "adc r24, r25 \n\t" 3195 "mul r7, r14 \n\t" 3196 "add r22, r0 \n\t" 3197 "adc r23, r1 \n\t" 3198 "adc r24, r25 \n\t" 3199 "mul r8, r13 \n\t" 3200 "add r22, r0 \n\t" 3201 "adc r23, r1 \n\t" 3202 "adc r24, r25 \n\t" 3203 "mul r9, r12 \n\t" 3204 "add r22, r0 \n\t" 3205 "adc r23, r1 \n\t" 3206 "adc r24, r25 \n\t" 3207 "st z+, r22 \n\t" 3208 3209 "ldi r22, 0 \n\t" 3210 "mul r2, r20 \n\t" 3211 "add r23, r0 \n\t" 3212 "adc r24, r1 \n\t" 3213 "adc r22, r25 \n\t" 3214 "mul r3, r19 \n\t" 3215 "add r23, r0 \n\t" 3216 "adc r24, r1 \n\t" 3217 "adc r22, r25 \n\t" 3218 "mul r4, r18 \n\t" 3219 "add r23, r0 \n\t" 3220 "adc r24, r1 \n\t" 3221 "adc r22, r25 \n\t" 3222 "mul r5, r17 \n\t" 3223 "add r23, r0 \n\t" 3224 "adc r24, r1 \n\t" 3225 "adc r22, r25 \n\t" 3226 "mul r6, r16 \n\t" 3227 "add r23, r0 \n\t" 3228 "adc r24, r1 \n\t" 3229 "adc r22, r25 \n\t" 3230 "mul r7, r15 \n\t" 3231 "add r23, r0 \n\t" 3232 "adc r24, r1 \n\t" 3233 "adc r22, r25 \n\t" 3234 "mul r8, r14 \n\t" 3235 "add r23, r0 \n\t" 3236 "adc r24, r1 \n\t" 3237 "adc r22, r25 \n\t" 3238 "mul r9, r13 \n\t" 3239 "add r23, r0 \n\t" 3240 "adc r24, r1 \n\t" 3241 "adc r22, r25 \n\t" 3242 "mul r10, r12 \n\t" 3243 "add r23, r0 \n\t" 3244 "adc r24, r1 \n\t" 3245 "adc r22, r25 \n\t" 3246 "st z+, r23 \n\t" 3247 3248 "ldi r23, 0 \n\t" 3249 "mul r2, r21 \n\t" 3250 "add r24, r0 \n\t" 3251 "adc r22, r1 \n\t" 3252 "adc r23, r25 \n\t" 3253 "mul r3, r20 \n\t" 3254 "add r24, r0 \n\t" 3255 "adc r22, r1 \n\t" 3256 "adc r23, r25 \n\t" 3257 "mul r4, r19 \n\t" 3258 "add r24, r0 \n\t" 3259 "adc r22, r1 \n\t" 3260 "adc r23, r25 \n\t" 3261 "mul r5, r18 \n\t" 3262 "add r24, r0 \n\t" 3263 "adc r22, r1 \n\t" 3264 "adc r23, r25 \n\t" 3265 "mul r6, r17 \n\t" 3266 "add r24, r0 \n\t" 3267 "adc r22, r1 \n\t" 3268 "adc r23, r25 \n\t" 3269 "mul r7, r16 \n\t" 3270 "add r24, r0 \n\t" 3271 "adc r22, r1 \n\t" 3272 "adc r23, r25 \n\t" 3273 "mul r8, r15 \n\t" 3274 "add r24, r0 \n\t" 3275 "adc r22, r1 \n\t" 3276 "adc r23, r25 \n\t" 3277 "mul r9, r14 \n\t" 3278 "add r24, r0 \n\t" 3279 "adc r22, r1 \n\t" 3280 "adc r23, r25 \n\t" 3281 "mul r10, r13 \n\t" 3282 "add r24, r0 \n\t" 3283 "adc r22, r1 \n\t" 3284 "adc r23, r25 \n\t" 3285 "mul r11, r12 \n\t" 3286 "add r24, r0 \n\t" 3287 "adc r22, r1 \n\t" 3288 "adc r23, r25 \n\t" 3289 "st z+, r24 \n\t" 3290 3291 "ld r2, x+ \n\t" 3292 "ldi r24, 0 \n\t" 3293 "mul r3, r21 \n\t" 3294 "add r22, r0 \n\t" 3295 "adc r23, r1 \n\t" 3296 "adc r24, r25 \n\t" 3297 "mul r4, r20 \n\t" 3298 "add r22, r0 \n\t" 3299 "adc r23, r1 \n\t" 3300 "adc r24, r25 \n\t" 3301 "mul r5, r19 \n\t" 3302 "add r22, r0 \n\t" 3303 "adc r23, r1 \n\t" 3304 "adc r24, r25 \n\t" 3305 "mul r6, r18 \n\t" 3306 "add r22, r0 \n\t" 3307 "adc r23, r1 \n\t" 3308 "adc r24, r25 \n\t" 3309 "mul r7, r17 \n\t" 3310 "add r22, r0 \n\t" 3311 "adc r23, r1 \n\t" 3312 "adc r24, r25 \n\t" 3313 "mul r8, r16 \n\t" 3314 "add r22, r0 \n\t" 3315 "adc r23, r1 \n\t" 3316 "adc r24, r25 \n\t" 3317 "mul r9, r15 \n\t" 3318 "add r22, r0 \n\t" 3319 "adc r23, r1 \n\t" 3320 "adc r24, r25 \n\t" 3321 "mul r10, r14 \n\t" 3322 "add r22, r0 \n\t" 3323 "adc r23, r1 \n\t" 3324 "adc r24, r25 \n\t" 3325 "mul r11, r13 \n\t" 3326 "add r22, r0 \n\t" 3327 "adc r23, r1 \n\t" 3328 "adc r24, r25 \n\t" 3329 "mul r2, r12 \n\t" 3330 "add r22, r0 \n\t" 3331 "adc r23, r1 \n\t" 3332 "adc r24, r25 \n\t" 3333 "ld r0, z \n\t" 3334 "add r22, r0 \n\t" 3335 "adc r23, r25 \n\t" 3336 "adc r24, r25 \n\t" 3337 "st z+, r22 \n\t" 3338 3339 "ld r3, x+ \n\t" 3340 "ldi r22, 0 \n\t" 3341 "mul r4, r21 \n\t" 3342 "add r23, r0 \n\t" 3343 "adc r24, r1 \n\t" 3344 "adc r22, r25 \n\t" 3345 "mul r5, r20 \n\t" 3346 "add r23, r0 \n\t" 3347 "adc r24, r1 \n\t" 3348 "adc r22, r25 \n\t" 3349 "mul r6, r19 \n\t" 3350 "add r23, r0 \n\t" 3351 "adc r24, r1 \n\t" 3352 "adc r22, r25 \n\t" 3353 "mul r7, r18 \n\t" 3354 "add r23, r0 \n\t" 3355 "adc r24, r1 \n\t" 3356 "adc r22, r25 \n\t" 3357 "mul r8, r17 \n\t" 3358 "add r23, r0 \n\t" 3359 "adc r24, r1 \n\t" 3360 "adc r22, r25 \n\t" 3361 "mul r9, r16 \n\t" 3362 "add r23, r0 \n\t" 3363 "adc r24, r1 \n\t" 3364 "adc r22, r25 \n\t" 3365 "mul r10, r15 \n\t" 3366 "add r23, r0 \n\t" 3367 "adc r24, r1 \n\t" 3368 "adc r22, r25 \n\t" 3369 "mul r11, r14 \n\t" 3370 "add r23, r0 \n\t" 3371 "adc r24, r1 \n\t" 3372 "adc r22, r25 \n\t" 3373 "mul r2, r13 \n\t" 3374 "add r23, r0 \n\t" 3375 "adc r24, r1 \n\t" 3376 "adc r22, r25 \n\t" 3377 "mul r3, r12 \n\t" 3378 "add r23, r0 \n\t" 3379 "adc r24, r1 \n\t" 3380 "adc r22, r25 \n\t" 3381 "ld r0, z \n\t" 3382 "add r23, r0 \n\t" 3383 "adc r24, r25 \n\t" 3384 "adc r22, r25 \n\t" 3385 "st z+, r23 \n\t" 3386 3387 "ld r4, x+ \n\t" 3388 "ldi r23, 0 \n\t" 3389 "mul r5, r21 \n\t" 3390 "add r24, r0 \n\t" 3391 "adc r22, r1 \n\t" 3392 "adc r23, r25 \n\t" 3393 "mul r6, r20 \n\t" 3394 "add r24, r0 \n\t" 3395 "adc r22, r1 \n\t" 3396 "adc r23, r25 \n\t" 3397 "mul r7, r19 \n\t" 3398 "add r24, r0 \n\t" 3399 "adc r22, r1 \n\t" 3400 "adc r23, r25 \n\t" 3401 "mul r8, r18 \n\t" 3402 "add r24, r0 \n\t" 3403 "adc r22, r1 \n\t" 3404 "adc r23, r25 \n\t" 3405 "mul r9, r17 \n\t" 3406 "add r24, r0 \n\t" 3407 "adc r22, r1 \n\t" 3408 "adc r23, r25 \n\t" 3409 "mul r10, r16 \n\t" 3410 "add r24, r0 \n\t" 3411 "adc r22, r1 \n\t" 3412 "adc r23, r25 \n\t" 3413 "mul r11, r15 \n\t" 3414 "add r24, r0 \n\t" 3415 "adc r22, r1 \n\t" 3416 "adc r23, r25 \n\t" 3417 "mul r2, r14 \n\t" 3418 "add r24, r0 \n\t" 3419 "adc r22, r1 \n\t" 3420 "adc r23, r25 \n\t" 3421 "mul r3, r13 \n\t" 3422 "add r24, r0 \n\t" 3423 "adc r22, r1 \n\t" 3424 "adc r23, r25 \n\t" 3425 "mul r4, r12 \n\t" 3426 "add r24, r0 \n\t" 3427 "adc r22, r1 \n\t" 3428 "adc r23, r25 \n\t" 3429 "ld r0, z \n\t" 3430 "add r24, r0 \n\t" 3431 "adc r22, r25 \n\t" 3432 "adc r23, r25 \n\t" 3433 "st z+, r24 \n\t" 3434 3435 "ld r5, x+ \n\t" 3436 "ldi r24, 0 \n\t" 3437 "mul r6, r21 \n\t" 3438 "add r22, r0 \n\t" 3439 "adc r23, r1 \n\t" 3440 "adc r24, r25 \n\t" 3441 "mul r7, r20 \n\t" 3442 "add r22, r0 \n\t" 3443 "adc r23, r1 \n\t" 3444 "adc r24, r25 \n\t" 3445 "mul r8, r19 \n\t" 3446 "add r22, r0 \n\t" 3447 "adc r23, r1 \n\t" 3448 "adc r24, r25 \n\t" 3449 "mul r9, r18 \n\t" 3450 "add r22, r0 \n\t" 3451 "adc r23, r1 \n\t" 3452 "adc r24, r25 \n\t" 3453 "mul r10, r17 \n\t" 3454 "add r22, r0 \n\t" 3455 "adc r23, r1 \n\t" 3456 "adc r24, r25 \n\t" 3457 "mul r11, r16 \n\t" 3458 "add r22, r0 \n\t" 3459 "adc r23, r1 \n\t" 3460 "adc r24, r25 \n\t" 3461 "mul r2, r15 \n\t" 3462 "add r22, r0 \n\t" 3463 "adc r23, r1 \n\t" 3464 "adc r24, r25 \n\t" 3465 "mul r3, r14 \n\t" 3466 "add r22, r0 \n\t" 3467 "adc r23, r1 \n\t" 3468 "adc r24, r25 \n\t" 3469 "mul r4, r13 \n\t" 3470 "add r22, r0 \n\t" 3471 "adc r23, r1 \n\t" 3472 "adc r24, r25 \n\t" 3473 "mul r5, r12 \n\t" 3474 "add r22, r0 \n\t" 3475 "adc r23, r1 \n\t" 3476 "adc r24, r25 \n\t" 3477 "ld r0, z \n\t" 3478 "add r22, r0 \n\t" 3479 "adc r23, r25 \n\t" 3480 "adc r24, r25 \n\t" 3481 "st z+, r22 \n\t" 3482 3483 "ld r6, x+ \n\t" 3484 "ldi r22, 0 \n\t" 3485 "mul r7, r21 \n\t" 3486 "add r23, r0 \n\t" 3487 "adc r24, r1 \n\t" 3488 "adc r22, r25 \n\t" 3489 "mul r8, r20 \n\t" 3490 "add r23, r0 \n\t" 3491 "adc r24, r1 \n\t" 3492 "adc r22, r25 \n\t" 3493 "mul r9, r19 \n\t" 3494 "add r23, r0 \n\t" 3495 "adc r24, r1 \n\t" 3496 "adc r22, r25 \n\t" 3497 "mul r10, r18 \n\t" 3498 "add r23, r0 \n\t" 3499 "adc r24, r1 \n\t" 3500 "adc r22, r25 \n\t" 3501 "mul r11, r17 \n\t" 3502 "add r23, r0 \n\t" 3503 "adc r24, r1 \n\t" 3504 "adc r22, r25 \n\t" 3505 "mul r2, r16 \n\t" 3506 "add r23, r0 \n\t" 3507 "adc r24, r1 \n\t" 3508 "adc r22, r25 \n\t" 3509 "mul r3, r15 \n\t" 3510 "add r23, r0 \n\t" 3511 "adc r24, r1 \n\t" 3512 "adc r22, r25 \n\t" 3513 "mul r4, r14 \n\t" 3514 "add r23, r0 \n\t" 3515 "adc r24, r1 \n\t" 3516 "adc r22, r25 \n\t" 3517 "mul r5, r13 \n\t" 3518 "add r23, r0 \n\t" 3519 "adc r24, r1 \n\t" 3520 "adc r22, r25 \n\t" 3521 "mul r6, r12 \n\t" 3522 "add r23, r0 \n\t" 3523 "adc r24, r1 \n\t" 3524 "adc r22, r25 \n\t" 3525 "ld r0, z \n\t" 3526 "add r23, r0 \n\t" 3527 "adc r24, r25 \n\t" 3528 "adc r22, r25 \n\t" 3529 "st z+, r23 \n\t" 3530 3531 "ld r7, x+ \n\t" 3532 "ldi r23, 0 \n\t" 3533 "mul r8, r21 \n\t" 3534 "add r24, r0 \n\t" 3535 "adc r22, r1 \n\t" 3536 "adc r23, r25 \n\t" 3537 "mul r9, r20 \n\t" 3538 "add r24, r0 \n\t" 3539 "adc r22, r1 \n\t" 3540 "adc r23, r25 \n\t" 3541 "mul r10, r19 \n\t" 3542 "add r24, r0 \n\t" 3543 "adc r22, r1 \n\t" 3544 "adc r23, r25 \n\t" 3545 "mul r11, r18 \n\t" 3546 "add r24, r0 \n\t" 3547 "adc r22, r1 \n\t" 3548 "adc r23, r25 \n\t" 3549 "mul r2, r17 \n\t" 3550 "add r24, r0 \n\t" 3551 "adc r22, r1 \n\t" 3552 "adc r23, r25 \n\t" 3553 "mul r3, r16 \n\t" 3554 "add r24, r0 \n\t" 3555 "adc r22, r1 \n\t" 3556 "adc r23, r25 \n\t" 3557 "mul r4, r15 \n\t" 3558 "add r24, r0 \n\t" 3559 "adc r22, r1 \n\t" 3560 "adc r23, r25 \n\t" 3561 "mul r5, r14 \n\t" 3562 "add r24, r0 \n\t" 3563 "adc r22, r1 \n\t" 3564 "adc r23, r25 \n\t" 3565 "mul r6, r13 \n\t" 3566 "add r24, r0 \n\t" 3567 "adc r22, r1 \n\t" 3568 "adc r23, r25 \n\t" 3569 "mul r7, r12 \n\t" 3570 "add r24, r0 \n\t" 3571 "adc r22, r1 \n\t" 3572 "adc r23, r25 \n\t" 3573 "ld r0, z \n\t" 3574 "add r24, r0 \n\t" 3575 "adc r22, r25 \n\t" 3576 "adc r23, r25 \n\t" 3577 "st z+, r24 \n\t" 3578 3579 "ld r8, x+ \n\t" 3580 "ldi r24, 0 \n\t" 3581 "mul r9, r21 \n\t" 3582 "add r22, r0 \n\t" 3583 "adc r23, r1 \n\t" 3584 "adc r24, r25 \n\t" 3585 "mul r10, r20 \n\t" 3586 "add r22, r0 \n\t" 3587 "adc r23, r1 \n\t" 3588 "adc r24, r25 \n\t" 3589 "mul r11, r19 \n\t" 3590 "add r22, r0 \n\t" 3591 "adc r23, r1 \n\t" 3592 "adc r24, r25 \n\t" 3593 "mul r2, r18 \n\t" 3594 "add r22, r0 \n\t" 3595 "adc r23, r1 \n\t" 3596 "adc r24, r25 \n\t" 3597 "mul r3, r17 \n\t" 3598 "add r22, r0 \n\t" 3599 "adc r23, r1 \n\t" 3600 "adc r24, r25 \n\t" 3601 "mul r4, r16 \n\t" 3602 "add r22, r0 \n\t" 3603 "adc r23, r1 \n\t" 3604 "adc r24, r25 \n\t" 3605 "mul r5, r15 \n\t" 3606 "add r22, r0 \n\t" 3607 "adc r23, r1 \n\t" 3608 "adc r24, r25 \n\t" 3609 "mul r6, r14 \n\t" 3610 "add r22, r0 \n\t" 3611 "adc r23, r1 \n\t" 3612 "adc r24, r25 \n\t" 3613 "mul r7, r13 \n\t" 3614 "add r22, r0 \n\t" 3615 "adc r23, r1 \n\t" 3616 "adc r24, r25 \n\t" 3617 "mul r8, r12 \n\t" 3618 "add r22, r0 \n\t" 3619 "adc r23, r1 \n\t" 3620 "adc r24, r25 \n\t" 3621 "ld r0, z \n\t" 3622 "add r22, r0 \n\t" 3623 "adc r23, r25 \n\t" 3624 "adc r24, r25 \n\t" 3625 "st z+, r22 \n\t" 3626 3627 "ld r9, x+ \n\t" 3628 "ldi r22, 0 \n\t" 3629 "mul r10, r21 \n\t" 3630 "add r23, r0 \n\t" 3631 "adc r24, r1 \n\t" 3632 "adc r22, r25 \n\t" 3633 "mul r11, r20 \n\t" 3634 "add r23, r0 \n\t" 3635 "adc r24, r1 \n\t" 3636 "adc r22, r25 \n\t" 3637 "mul r2, r19 \n\t" 3638 "add r23, r0 \n\t" 3639 "adc r24, r1 \n\t" 3640 "adc r22, r25 \n\t" 3641 "mul r3, r18 \n\t" 3642 "add r23, r0 \n\t" 3643 "adc r24, r1 \n\t" 3644 "adc r22, r25 \n\t" 3645 "mul r4, r17 \n\t" 3646 "add r23, r0 \n\t" 3647 "adc r24, r1 \n\t" 3648 "adc r22, r25 \n\t" 3649 "mul r5, r16 \n\t" 3650 "add r23, r0 \n\t" 3651 "adc r24, r1 \n\t" 3652 "adc r22, r25 \n\t" 3653 "mul r6, r15 \n\t" 3654 "add r23, r0 \n\t" 3655 "adc r24, r1 \n\t" 3656 "adc r22, r25 \n\t" 3657 "mul r7, r14 \n\t" 3658 "add r23, r0 \n\t" 3659 "adc r24, r1 \n\t" 3660 "adc r22, r25 \n\t" 3661 "mul r8, r13 \n\t" 3662 "add r23, r0 \n\t" 3663 "adc r24, r1 \n\t" 3664 "adc r22, r25 \n\t" 3665 "mul r9, r12 \n\t" 3666 "add r23, r0 \n\t" 3667 "adc r24, r1 \n\t" 3668 "adc r22, r25 \n\t" 3669 "ld r0, z \n\t" 3670 "add r23, r0 \n\t" 3671 "adc r24, r25 \n\t" 3672 "adc r22, r25 \n\t" 3673 "st z+, r23 \n\t" 3674 3675 "ld r10, x+ \n\t" 3676 "ldi r23, 0 \n\t" 3677 "mul r11, r21 \n\t" 3678 "add r24, r0 \n\t" 3679 "adc r22, r1 \n\t" 3680 "adc r23, r25 \n\t" 3681 "mul r2, r20 \n\t" 3682 "add r24, r0 \n\t" 3683 "adc r22, r1 \n\t" 3684 "adc r23, r25 \n\t" 3685 "mul r3, r19 \n\t" 3686 "add r24, r0 \n\t" 3687 "adc r22, r1 \n\t" 3688 "adc r23, r25 \n\t" 3689 "mul r4, r18 \n\t" 3690 "add r24, r0 \n\t" 3691 "adc r22, r1 \n\t" 3692 "adc r23, r25 \n\t" 3693 "mul r5, r17 \n\t" 3694 "add r24, r0 \n\t" 3695 "adc r22, r1 \n\t" 3696 "adc r23, r25 \n\t" 3697 "mul r6, r16 \n\t" 3698 "add r24, r0 \n\t" 3699 "adc r22, r1 \n\t" 3700 "adc r23, r25 \n\t" 3701 "mul r7, r15 \n\t" 3702 "add r24, r0 \n\t" 3703 "adc r22, r1 \n\t" 3704 "adc r23, r25 \n\t" 3705 "mul r8, r14 \n\t" 3706 "add r24, r0 \n\t" 3707 "adc r22, r1 \n\t" 3708 "adc r23, r25 \n\t" 3709 "mul r9, r13 \n\t" 3710 "add r24, r0 \n\t" 3711 "adc r22, r1 \n\t" 3712 "adc r23, r25 \n\t" 3713 "mul r10, r12 \n\t" 3714 "add r24, r0 \n\t" 3715 "adc r22, r1 \n\t" 3716 "adc r23, r25 \n\t" 3717 "ld r0, z \n\t" 3718 "add r24, r0 \n\t" 3719 "adc r22, r25 \n\t" 3720 "adc r23, r25 \n\t" 3721 "st z+, r24 \n\t" 3722 3723 "ld r11, x+ \n\t" 3724 "ldi r24, 0 \n\t" 3725 "mul r2, r21 \n\t" 3726 "add r22, r0 \n\t" 3727 "adc r23, r1 \n\t" 3728 "adc r24, r25 \n\t" 3729 "mul r3, r20 \n\t" 3730 "add r22, r0 \n\t" 3731 "adc r23, r1 \n\t" 3732 "adc r24, r25 \n\t" 3733 "mul r4, r19 \n\t" 3734 "add r22, r0 \n\t" 3735 "adc r23, r1 \n\t" 3736 "adc r24, r25 \n\t" 3737 "mul r5, r18 \n\t" 3738 "add r22, r0 \n\t" 3739 "adc r23, r1 \n\t" 3740 "adc r24, r25 \n\t" 3741 "mul r6, r17 \n\t" 3742 "add r22, r0 \n\t" 3743 "adc r23, r1 \n\t" 3744 "adc r24, r25 \n\t" 3745 "mul r7, r16 \n\t" 3746 "add r22, r0 \n\t" 3747 "adc r23, r1 \n\t" 3748 "adc r24, r25 \n\t" 3749 "mul r8, r15 \n\t" 3750 "add r22, r0 \n\t" 3751 "adc r23, r1 \n\t" 3752 "adc r24, r25 \n\t" 3753 "mul r9, r14 \n\t" 3754 "add r22, r0 \n\t" 3755 "adc r23, r1 \n\t" 3756 "adc r24, r25 \n\t" 3757 "mul r10, r13 \n\t" 3758 "add r22, r0 \n\t" 3759 "adc r23, r1 \n\t" 3760 "adc r24, r25 \n\t" 3761 "mul r11, r12 \n\t" 3762 "add r22, r0 \n\t" 3763 "adc r23, r1 \n\t" 3764 "adc r24, r25 \n\t" 3765 "ld r0, z \n\t" 3766 "add r22, r0 \n\t" 3767 "adc r23, r25 \n\t" 3768 "adc r24, r25 \n\t" 3769 "st z+, r22 \n\t" 3770 3771 "ld r2, x+ \n\t" 3772 "ldi r22, 0 \n\t" 3773 "mul r3, r21 \n\t" 3774 "add r23, r0 \n\t" 3775 "adc r24, r1 \n\t" 3776 "adc r22, r25 \n\t" 3777 "mul r4, r20 \n\t" 3778 "add r23, r0 \n\t" 3779 "adc r24, r1 \n\t" 3780 "adc r22, r25 \n\t" 3781 "mul r5, r19 \n\t" 3782 "add r23, r0 \n\t" 3783 "adc r24, r1 \n\t" 3784 "adc r22, r25 \n\t" 3785 "mul r6, r18 \n\t" 3786 "add r23, r0 \n\t" 3787 "adc r24, r1 \n\t" 3788 "adc r22, r25 \n\t" 3789 "mul r7, r17 \n\t" 3790 "add r23, r0 \n\t" 3791 "adc r24, r1 \n\t" 3792 "adc r22, r25 \n\t" 3793 "mul r8, r16 \n\t" 3794 "add r23, r0 \n\t" 3795 "adc r24, r1 \n\t" 3796 "adc r22, r25 \n\t" 3797 "mul r9, r15 \n\t" 3798 "add r23, r0 \n\t" 3799 "adc r24, r1 \n\t" 3800 "adc r22, r25 \n\t" 3801 "mul r10, r14 \n\t" 3802 "add r23, r0 \n\t" 3803 "adc r24, r1 \n\t" 3804 "adc r22, r25 \n\t" 3805 "mul r11, r13 \n\t" 3806 "add r23, r0 \n\t" 3807 "adc r24, r1 \n\t" 3808 "adc r22, r25 \n\t" 3809 "mul r2, r12 \n\t" 3810 "add r23, r0 \n\t" 3811 "adc r24, r1 \n\t" 3812 "adc r22, r25 \n\t" 3813 "ld r0, z \n\t" 3814 "add r23, r0 \n\t" 3815 "adc r24, r25 \n\t" 3816 "adc r22, r25 \n\t" 3817 "st z+, r23 \n\t" 3818 3819 "ld r3, x+ \n\t" 3820 "ldi r23, 0 \n\t" 3821 "mul r4, r21 \n\t" 3822 "add r24, r0 \n\t" 3823 "adc r22, r1 \n\t" 3824 "adc r23, r25 \n\t" 3825 "mul r5, r20 \n\t" 3826 "add r24, r0 \n\t" 3827 "adc r22, r1 \n\t" 3828 "adc r23, r25 \n\t" 3829 "mul r6, r19 \n\t" 3830 "add r24, r0 \n\t" 3831 "adc r22, r1 \n\t" 3832 "adc r23, r25 \n\t" 3833 "mul r7, r18 \n\t" 3834 "add r24, r0 \n\t" 3835 "adc r22, r1 \n\t" 3836 "adc r23, r25 \n\t" 3837 "mul r8, r17 \n\t" 3838 "add r24, r0 \n\t" 3839 "adc r22, r1 \n\t" 3840 "adc r23, r25 \n\t" 3841 "mul r9, r16 \n\t" 3842 "add r24, r0 \n\t" 3843 "adc r22, r1 \n\t" 3844 "adc r23, r25 \n\t" 3845 "mul r10, r15 \n\t" 3846 "add r24, r0 \n\t" 3847 "adc r22, r1 \n\t" 3848 "adc r23, r25 \n\t" 3849 "mul r11, r14 \n\t" 3850 "add r24, r0 \n\t" 3851 "adc r22, r1 \n\t" 3852 "adc r23, r25 \n\t" 3853 "mul r2, r13 \n\t" 3854 "add r24, r0 \n\t" 3855 "adc r22, r1 \n\t" 3856 "adc r23, r25 \n\t" 3857 "mul r3, r12 \n\t" 3858 "add r24, r0 \n\t" 3859 "adc r22, r1 \n\t" 3860 "adc r23, r25 \n\t" 3861 "ld r0, z \n\t" 3862 "add r24, r0 \n\t" 3863 "adc r22, r25 \n\t" 3864 "adc r23, r25 \n\t" 3865 "st z+, r24 \n\t" 3866 3867 "ld r4, x+ \n\t" 3868 "ldi r24, 0 \n\t" 3869 "mul r5, r21 \n\t" 3870 "add r22, r0 \n\t" 3871 "adc r23, r1 \n\t" 3872 "adc r24, r25 \n\t" 3873 "mul r6, r20 \n\t" 3874 "add r22, r0 \n\t" 3875 "adc r23, r1 \n\t" 3876 "adc r24, r25 \n\t" 3877 "mul r7, r19 \n\t" 3878 "add r22, r0 \n\t" 3879 "adc r23, r1 \n\t" 3880 "adc r24, r25 \n\t" 3881 "mul r8, r18 \n\t" 3882 "add r22, r0 \n\t" 3883 "adc r23, r1 \n\t" 3884 "adc r24, r25 \n\t" 3885 "mul r9, r17 \n\t" 3886 "add r22, r0 \n\t" 3887 "adc r23, r1 \n\t" 3888 "adc r24, r25 \n\t" 3889 "mul r10, r16 \n\t" 3890 "add r22, r0 \n\t" 3891 "adc r23, r1 \n\t" 3892 "adc r24, r25 \n\t" 3893 "mul r11, r15 \n\t" 3894 "add r22, r0 \n\t" 3895 "adc r23, r1 \n\t" 3896 "adc r24, r25 \n\t" 3897 "mul r2, r14 \n\t" 3898 "add r22, r0 \n\t" 3899 "adc r23, r1 \n\t" 3900 "adc r24, r25 \n\t" 3901 "mul r3, r13 \n\t" 3902 "add r22, r0 \n\t" 3903 "adc r23, r1 \n\t" 3904 "adc r24, r25 \n\t" 3905 "mul r4, r12 \n\t" 3906 "add r22, r0 \n\t" 3907 "adc r23, r1 \n\t" 3908 "adc r24, r25 \n\t" 3909 "ld r0, z \n\t" 3910 "add r22, r0 \n\t" 3911 "adc r23, r25 \n\t" 3912 "adc r24, r25 \n\t" 3913 "st z+, r22 \n\t" 3914 3915 "ld r5, x+ \n\t" 3916 "ldi r22, 0 \n\t" 3917 "mul r6, r21 \n\t" 3918 "add r23, r0 \n\t" 3919 "adc r24, r1 \n\t" 3920 "adc r22, r25 \n\t" 3921 "mul r7, r20 \n\t" 3922 "add r23, r0 \n\t" 3923 "adc r24, r1 \n\t" 3924 "adc r22, r25 \n\t" 3925 "mul r8, r19 \n\t" 3926 "add r23, r0 \n\t" 3927 "adc r24, r1 \n\t" 3928 "adc r22, r25 \n\t" 3929 "mul r9, r18 \n\t" 3930 "add r23, r0 \n\t" 3931 "adc r24, r1 \n\t" 3932 "adc r22, r25 \n\t" 3933 "mul r10, r17 \n\t" 3934 "add r23, r0 \n\t" 3935 "adc r24, r1 \n\t" 3936 "adc r22, r25 \n\t" 3937 "mul r11, r16 \n\t" 3938 "add r23, r0 \n\t" 3939 "adc r24, r1 \n\t" 3940 "adc r22, r25 \n\t" 3941 "mul r2, r15 \n\t" 3942 "add r23, r0 \n\t" 3943 "adc r24, r1 \n\t" 3944 "adc r22, r25 \n\t" 3945 "mul r3, r14 \n\t" 3946 "add r23, r0 \n\t" 3947 "adc r24, r1 \n\t" 3948 "adc r22, r25 \n\t" 3949 "mul r4, r13 \n\t" 3950 "add r23, r0 \n\t" 3951 "adc r24, r1 \n\t" 3952 "adc r22, r25 \n\t" 3953 "mul r5, r12 \n\t" 3954 "add r23, r0 \n\t" 3955 "adc r24, r1 \n\t" 3956 "adc r22, r25 \n\t" 3957 "ld r0, z \n\t" 3958 "add r23, r0 \n\t" 3959 "adc r24, r25 \n\t" 3960 "adc r22, r25 \n\t" 3961 "st z+, r23 \n\t" 3962 3963 "ld r12, y+ \n\t" 3964 "ldi r23, 0 \n\t" 3965 "mul r6, r12 \n\t" 3966 "add r24, r0 \n\t" 3967 "adc r22, r1 \n\t" 3968 "adc r23, r25 \n\t" 3969 "mul r7, r21 \n\t" 3970 "add r24, r0 \n\t" 3971 "adc r22, r1 \n\t" 3972 "adc r23, r25 \n\t" 3973 "mul r8, r20 \n\t" 3974 "add r24, r0 \n\t" 3975 "adc r22, r1 \n\t" 3976 "adc r23, r25 \n\t" 3977 "mul r9, r19 \n\t" 3978 "add r24, r0 \n\t" 3979 "adc r22, r1 \n\t" 3980 "adc r23, r25 \n\t" 3981 "mul r10, r18 \n\t" 3982 "add r24, r0 \n\t" 3983 "adc r22, r1 \n\t" 3984 "adc r23, r25 \n\t" 3985 "mul r11, r17 \n\t" 3986 "add r24, r0 \n\t" 3987 "adc r22, r1 \n\t" 3988 "adc r23, r25 \n\t" 3989 "mul r2, r16 \n\t" 3990 "add r24, r0 \n\t" 3991 "adc r22, r1 \n\t" 3992 "adc r23, r25 \n\t" 3993 "mul r3, r15 \n\t" 3994 "add r24, r0 \n\t" 3995 "adc r22, r1 \n\t" 3996 "adc r23, r25 \n\t" 3997 "mul r4, r14 \n\t" 3998 "add r24, r0 \n\t" 3999 "adc r22, r1 \n\t" 4000 "adc r23, r25 \n\t" 4001 "mul r5, r13 \n\t" 4002 "add r24, r0 \n\t" 4003 "adc r22, r1 \n\t" 4004 "adc r23, r25 \n\t" 4005 "ld r0, z \n\t" 4006 "add r24, r0 \n\t" 4007 "adc r22, r25 \n\t" 4008 "adc r23, r25 \n\t" 4009 "st z+, r24 \n\t" 4010 4011 "ld r13, y+ \n\t" 4012 "ldi r24, 0 \n\t" 4013 "mul r6, r13 \n\t" 4014 "add r22, r0 \n\t" 4015 "adc r23, r1 \n\t" 4016 "adc r24, r25 \n\t" 4017 "mul r7, r12 \n\t" 4018 "add r22, r0 \n\t" 4019 "adc r23, r1 \n\t" 4020 "adc r24, r25 \n\t" 4021 "mul r8, r21 \n\t" 4022 "add r22, r0 \n\t" 4023 "adc r23, r1 \n\t" 4024 "adc r24, r25 \n\t" 4025 "mul r9, r20 \n\t" 4026 "add r22, r0 \n\t" 4027 "adc r23, r1 \n\t" 4028 "adc r24, r25 \n\t" 4029 "mul r10, r19 \n\t" 4030 "add r22, r0 \n\t" 4031 "adc r23, r1 \n\t" 4032 "adc r24, r25 \n\t" 4033 "mul r11, r18 \n\t" 4034 "add r22, r0 \n\t" 4035 "adc r23, r1 \n\t" 4036 "adc r24, r25 \n\t" 4037 "mul r2, r17 \n\t" 4038 "add r22, r0 \n\t" 4039 "adc r23, r1 \n\t" 4040 "adc r24, r25 \n\t" 4041 "mul r3, r16 \n\t" 4042 "add r22, r0 \n\t" 4043 "adc r23, r1 \n\t" 4044 "adc r24, r25 \n\t" 4045 "mul r4, r15 \n\t" 4046 "add r22, r0 \n\t" 4047 "adc r23, r1 \n\t" 4048 "adc r24, r25 \n\t" 4049 "mul r5, r14 \n\t" 4050 "add r22, r0 \n\t" 4051 "adc r23, r1 \n\t" 4052 "adc r24, r25 \n\t" 4053 "ld r0, z \n\t" 4054 "add r22, r0 \n\t" 4055 "adc r23, r25 \n\t" 4056 "adc r24, r25 \n\t" 4057 "st z+, r22 \n\t" 4058 4059 "ld r14, y+ \n\t" 4060 "ldi r22, 0 \n\t" 4061 "mul r6, r14 \n\t" 4062 "add r23, r0 \n\t" 4063 "adc r24, r1 \n\t" 4064 "adc r22, r25 \n\t" 4065 "mul r7, r13 \n\t" 4066 "add r23, r0 \n\t" 4067 "adc r24, r1 \n\t" 4068 "adc r22, r25 \n\t" 4069 "mul r8, r12 \n\t" 4070 "add r23, r0 \n\t" 4071 "adc r24, r1 \n\t" 4072 "adc r22, r25 \n\t" 4073 "mul r9, r21 \n\t" 4074 "add r23, r0 \n\t" 4075 "adc r24, r1 \n\t" 4076 "adc r22, r25 \n\t" 4077 "mul r10, r20 \n\t" 4078 "add r23, r0 \n\t" 4079 "adc r24, r1 \n\t" 4080 "adc r22, r25 \n\t" 4081 "mul r11, r19 \n\t" 4082 "add r23, r0 \n\t" 4083 "adc r24, r1 \n\t" 4084 "adc r22, r25 \n\t" 4085 "mul r2, r18 \n\t" 4086 "add r23, r0 \n\t" 4087 "adc r24, r1 \n\t" 4088 "adc r22, r25 \n\t" 4089 "mul r3, r17 \n\t" 4090 "add r23, r0 \n\t" 4091 "adc r24, r1 \n\t" 4092 "adc r22, r25 \n\t" 4093 "mul r4, r16 \n\t" 4094 "add r23, r0 \n\t" 4095 "adc r24, r1 \n\t" 4096 "adc r22, r25 \n\t" 4097 "mul r5, r15 \n\t" 4098 "add r23, r0 \n\t" 4099 "adc r24, r1 \n\t" 4100 "adc r22, r25 \n\t" 4101 "ld r0, z \n\t" 4102 "add r23, r0 \n\t" 4103 "adc r24, r25 \n\t" 4104 "adc r22, r25 \n\t" 4105 "st z+, r23 \n\t" 4106 4107 "ld r15, y+ \n\t" 4108 "ldi r23, 0 \n\t" 4109 "mul r6, r15 \n\t" 4110 "add r24, r0 \n\t" 4111 "adc r22, r1 \n\t" 4112 "adc r23, r25 \n\t" 4113 "mul r7, r14 \n\t" 4114 "add r24, r0 \n\t" 4115 "adc r22, r1 \n\t" 4116 "adc r23, r25 \n\t" 4117 "mul r8, r13 \n\t" 4118 "add r24, r0 \n\t" 4119 "adc r22, r1 \n\t" 4120 "adc r23, r25 \n\t" 4121 "mul r9, r12 \n\t" 4122 "add r24, r0 \n\t" 4123 "adc r22, r1 \n\t" 4124 "adc r23, r25 \n\t" 4125 "mul r10, r21 \n\t" 4126 "add r24, r0 \n\t" 4127 "adc r22, r1 \n\t" 4128 "adc r23, r25 \n\t" 4129 "mul r11, r20 \n\t" 4130 "add r24, r0 \n\t" 4131 "adc r22, r1 \n\t" 4132 "adc r23, r25 \n\t" 4133 "mul r2, r19 \n\t" 4134 "add r24, r0 \n\t" 4135 "adc r22, r1 \n\t" 4136 "adc r23, r25 \n\t" 4137 "mul r3, r18 \n\t" 4138 "add r24, r0 \n\t" 4139 "adc r22, r1 \n\t" 4140 "adc r23, r25 \n\t" 4141 "mul r4, r17 \n\t" 4142 "add r24, r0 \n\t" 4143 "adc r22, r1 \n\t" 4144 "adc r23, r25 \n\t" 4145 "mul r5, r16 \n\t" 4146 "add r24, r0 \n\t" 4147 "adc r22, r1 \n\t" 4148 "adc r23, r25 \n\t" 4149 "ld r0, z \n\t" 4150 "add r24, r0 \n\t" 4151 "adc r22, r25 \n\t" 4152 "adc r23, r25 \n\t" 4153 "st z+, r24 \n\t" 4154 4155 "ld r16, y+ \n\t" 4156 "ldi r24, 0 \n\t" 4157 "mul r6, r16 \n\t" 4158 "add r22, r0 \n\t" 4159 "adc r23, r1 \n\t" 4160 "adc r24, r25 \n\t" 4161 "mul r7, r15 \n\t" 4162 "add r22, r0 \n\t" 4163 "adc r23, r1 \n\t" 4164 "adc r24, r25 \n\t" 4165 "mul r8, r14 \n\t" 4166 "add r22, r0 \n\t" 4167 "adc r23, r1 \n\t" 4168 "adc r24, r25 \n\t" 4169 "mul r9, r13 \n\t" 4170 "add r22, r0 \n\t" 4171 "adc r23, r1 \n\t" 4172 "adc r24, r25 \n\t" 4173 "mul r10, r12 \n\t" 4174 "add r22, r0 \n\t" 4175 "adc r23, r1 \n\t" 4176 "adc r24, r25 \n\t" 4177 "mul r11, r21 \n\t" 4178 "add r22, r0 \n\t" 4179 "adc r23, r1 \n\t" 4180 "adc r24, r25 \n\t" 4181 "mul r2, r20 \n\t" 4182 "add r22, r0 \n\t" 4183 "adc r23, r1 \n\t" 4184 "adc r24, r25 \n\t" 4185 "mul r3, r19 \n\t" 4186 "add r22, r0 \n\t" 4187 "adc r23, r1 \n\t" 4188 "adc r24, r25 \n\t" 4189 "mul r4, r18 \n\t" 4190 "add r22, r0 \n\t" 4191 "adc r23, r1 \n\t" 4192 "adc r24, r25 \n\t" 4193 "mul r5, r17 \n\t" 4194 "add r22, r0 \n\t" 4195 "adc r23, r1 \n\t" 4196 "adc r24, r25 \n\t" 4197 "ld r0, z \n\t" 4198 "add r22, r0 \n\t" 4199 "adc r23, r25 \n\t" 4200 "adc r24, r25 \n\t" 4201 "st z+, r22 \n\t" 4202 4203 "ld r17, y+ \n\t" 4204 "ldi r22, 0 \n\t" 4205 "mul r6, r17 \n\t" 4206 "add r23, r0 \n\t" 4207 "adc r24, r1 \n\t" 4208 "adc r22, r25 \n\t" 4209 "mul r7, r16 \n\t" 4210 "add r23, r0 \n\t" 4211 "adc r24, r1 \n\t" 4212 "adc r22, r25 \n\t" 4213 "mul r8, r15 \n\t" 4214 "add r23, r0 \n\t" 4215 "adc r24, r1 \n\t" 4216 "adc r22, r25 \n\t" 4217 "mul r9, r14 \n\t" 4218 "add r23, r0 \n\t" 4219 "adc r24, r1 \n\t" 4220 "adc r22, r25 \n\t" 4221 "mul r10, r13 \n\t" 4222 "add r23, r0 \n\t" 4223 "adc r24, r1 \n\t" 4224 "adc r22, r25 \n\t" 4225 "mul r11, r12 \n\t" 4226 "add r23, r0 \n\t" 4227 "adc r24, r1 \n\t" 4228 "adc r22, r25 \n\t" 4229 "mul r2, r21 \n\t" 4230 "add r23, r0 \n\t" 4231 "adc r24, r1 \n\t" 4232 "adc r22, r25 \n\t" 4233 "mul r3, r20 \n\t" 4234 "add r23, r0 \n\t" 4235 "adc r24, r1 \n\t" 4236 "adc r22, r25 \n\t" 4237 "mul r4, r19 \n\t" 4238 "add r23, r0 \n\t" 4239 "adc r24, r1 \n\t" 4240 "adc r22, r25 \n\t" 4241 "mul r5, r18 \n\t" 4242 "add r23, r0 \n\t" 4243 "adc r24, r1 \n\t" 4244 "adc r22, r25 \n\t" 4245 "ld r0, z \n\t" 4246 "add r23, r0 \n\t" 4247 "adc r24, r25 \n\t" 4248 "adc r22, r25 \n\t" 4249 "st z+, r23 \n\t" 4250 4251 "ld r18, y+ \n\t" 4252 "ldi r23, 0 \n\t" 4253 "mul r6, r18 \n\t" 4254 "add r24, r0 \n\t" 4255 "adc r22, r1 \n\t" 4256 "adc r23, r25 \n\t" 4257 "mul r7, r17 \n\t" 4258 "add r24, r0 \n\t" 4259 "adc r22, r1 \n\t" 4260 "adc r23, r25 \n\t" 4261 "mul r8, r16 \n\t" 4262 "add r24, r0 \n\t" 4263 "adc r22, r1 \n\t" 4264 "adc r23, r25 \n\t" 4265 "mul r9, r15 \n\t" 4266 "add r24, r0 \n\t" 4267 "adc r22, r1 \n\t" 4268 "adc r23, r25 \n\t" 4269 "mul r10, r14 \n\t" 4270 "add r24, r0 \n\t" 4271 "adc r22, r1 \n\t" 4272 "adc r23, r25 \n\t" 4273 "mul r11, r13 \n\t" 4274 "add r24, r0 \n\t" 4275 "adc r22, r1 \n\t" 4276 "adc r23, r25 \n\t" 4277 "mul r2, r12 \n\t" 4278 "add r24, r0 \n\t" 4279 "adc r22, r1 \n\t" 4280 "adc r23, r25 \n\t" 4281 "mul r3, r21 \n\t" 4282 "add r24, r0 \n\t" 4283 "adc r22, r1 \n\t" 4284 "adc r23, r25 \n\t" 4285 "mul r4, r20 \n\t" 4286 "add r24, r0 \n\t" 4287 "adc r22, r1 \n\t" 4288 "adc r23, r25 \n\t" 4289 "mul r5, r19 \n\t" 4290 "add r24, r0 \n\t" 4291 "adc r22, r1 \n\t" 4292 "adc r23, r25 \n\t" 4293 "ld r0, z \n\t" 4294 "add r24, r0 \n\t" 4295 "adc r22, r25 \n\t" 4296 "adc r23, r25 \n\t" 4297 "st z+, r24 \n\t" 4298 4299 "ld r19, y+ \n\t" 4300 "ldi r24, 0 \n\t" 4301 "mul r6, r19 \n\t" 4302 "add r22, r0 \n\t" 4303 "adc r23, r1 \n\t" 4304 "adc r24, r25 \n\t" 4305 "mul r7, r18 \n\t" 4306 "add r22, r0 \n\t" 4307 "adc r23, r1 \n\t" 4308 "adc r24, r25 \n\t" 4309 "mul r8, r17 \n\t" 4310 "add r22, r0 \n\t" 4311 "adc r23, r1 \n\t" 4312 "adc r24, r25 \n\t" 4313 "mul r9, r16 \n\t" 4314 "add r22, r0 \n\t" 4315 "adc r23, r1 \n\t" 4316 "adc r24, r25 \n\t" 4317 "mul r10, r15 \n\t" 4318 "add r22, r0 \n\t" 4319 "adc r23, r1 \n\t" 4320 "adc r24, r25 \n\t" 4321 "mul r11, r14 \n\t" 4322 "add r22, r0 \n\t" 4323 "adc r23, r1 \n\t" 4324 "adc r24, r25 \n\t" 4325 "mul r2, r13 \n\t" 4326 "add r22, r0 \n\t" 4327 "adc r23, r1 \n\t" 4328 "adc r24, r25 \n\t" 4329 "mul r3, r12 \n\t" 4330 "add r22, r0 \n\t" 4331 "adc r23, r1 \n\t" 4332 "adc r24, r25 \n\t" 4333 "mul r4, r21 \n\t" 4334 "add r22, r0 \n\t" 4335 "adc r23, r1 \n\t" 4336 "adc r24, r25 \n\t" 4337 "mul r5, r20 \n\t" 4338 "add r22, r0 \n\t" 4339 "adc r23, r1 \n\t" 4340 "adc r24, r25 \n\t" 4341 "ld r0, z \n\t" 4342 "add r22, r0 \n\t" 4343 "adc r23, r25 \n\t" 4344 "adc r24, r25 \n\t" 4345 "st z+, r22 \n\t" 4346 4347 "ld r20, y+ \n\t" 4348 "ldi r22, 0 \n\t" 4349 "mul r6, r20 \n\t" 4350 "add r23, r0 \n\t" 4351 "adc r24, r1 \n\t" 4352 "adc r22, r25 \n\t" 4353 "mul r7, r19 \n\t" 4354 "add r23, r0 \n\t" 4355 "adc r24, r1 \n\t" 4356 "adc r22, r25 \n\t" 4357 "mul r8, r18 \n\t" 4358 "add r23, r0 \n\t" 4359 "adc r24, r1 \n\t" 4360 "adc r22, r25 \n\t" 4361 "mul r9, r17 \n\t" 4362 "add r23, r0 \n\t" 4363 "adc r24, r1 \n\t" 4364 "adc r22, r25 \n\t" 4365 "mul r10, r16 \n\t" 4366 "add r23, r0 \n\t" 4367 "adc r24, r1 \n\t" 4368 "adc r22, r25 \n\t" 4369 "mul r11, r15 \n\t" 4370 "add r23, r0 \n\t" 4371 "adc r24, r1 \n\t" 4372 "adc r22, r25 \n\t" 4373 "mul r2, r14 \n\t" 4374 "add r23, r0 \n\t" 4375 "adc r24, r1 \n\t" 4376 "adc r22, r25 \n\t" 4377 "mul r3, r13 \n\t" 4378 "add r23, r0 \n\t" 4379 "adc r24, r1 \n\t" 4380 "adc r22, r25 \n\t" 4381 "mul r4, r12 \n\t" 4382 "add r23, r0 \n\t" 4383 "adc r24, r1 \n\t" 4384 "adc r22, r25 \n\t" 4385 "mul r5, r21 \n\t" 4386 "add r23, r0 \n\t" 4387 "adc r24, r1 \n\t" 4388 "adc r22, r25 \n\t" 4389 "ld r0, z \n\t" 4390 "add r23, r0 \n\t" 4391 "adc r24, r25 \n\t" 4392 "adc r22, r25 \n\t" 4393 "st z+, r23 \n\t" 4394 4395 "ld r21, y+ \n\t" 4396 "ldi r23, 0 \n\t" 4397 "mul r6, r21 \n\t" 4398 "add r24, r0 \n\t" 4399 "adc r22, r1 \n\t" 4400 "adc r23, r25 \n\t" 4401 "mul r7, r20 \n\t" 4402 "add r24, r0 \n\t" 4403 "adc r22, r1 \n\t" 4404 "adc r23, r25 \n\t" 4405 "mul r8, r19 \n\t" 4406 "add r24, r0 \n\t" 4407 "adc r22, r1 \n\t" 4408 "adc r23, r25 \n\t" 4409 "mul r9, r18 \n\t" 4410 "add r24, r0 \n\t" 4411 "adc r22, r1 \n\t" 4412 "adc r23, r25 \n\t" 4413 "mul r10, r17 \n\t" 4414 "add r24, r0 \n\t" 4415 "adc r22, r1 \n\t" 4416 "adc r23, r25 \n\t" 4417 "mul r11, r16 \n\t" 4418 "add r24, r0 \n\t" 4419 "adc r22, r1 \n\t" 4420 "adc r23, r25 \n\t" 4421 "mul r2, r15 \n\t" 4422 "add r24, r0 \n\t" 4423 "adc r22, r1 \n\t" 4424 "adc r23, r25 \n\t" 4425 "mul r3, r14 \n\t" 4426 "add r24, r0 \n\t" 4427 "adc r22, r1 \n\t" 4428 "adc r23, r25 \n\t" 4429 "mul r4, r13 \n\t" 4430 "add r24, r0 \n\t" 4431 "adc r22, r1 \n\t" 4432 "adc r23, r25 \n\t" 4433 "mul r5, r12 \n\t" 4434 "add r24, r0 \n\t" 4435 "adc r22, r1 \n\t" 4436 "adc r23, r25 \n\t" 4437 "ld r0, z \n\t" 4438 "add r24, r0 \n\t" 4439 "adc r22, r25 \n\t" 4440 "adc r23, r25 \n\t" 4441 "st z+, r24 \n\t" 4442 4443 "ld r12, y+ \n\t" 4444 "ldi r24, 0 \n\t" 4445 "mul r6, r12 \n\t" 4446 "add r22, r0 \n\t" 4447 "adc r23, r1 \n\t" 4448 "adc r24, r25 \n\t" 4449 "mul r7, r21 \n\t" 4450 "add r22, r0 \n\t" 4451 "adc r23, r1 \n\t" 4452 "adc r24, r25 \n\t" 4453 "mul r8, r20 \n\t" 4454 "add r22, r0 \n\t" 4455 "adc r23, r1 \n\t" 4456 "adc r24, r25 \n\t" 4457 "mul r9, r19 \n\t" 4458 "add r22, r0 \n\t" 4459 "adc r23, r1 \n\t" 4460 "adc r24, r25 \n\t" 4461 "mul r10, r18 \n\t" 4462 "add r22, r0 \n\t" 4463 "adc r23, r1 \n\t" 4464 "adc r24, r25 \n\t" 4465 "mul r11, r17 \n\t" 4466 "add r22, r0 \n\t" 4467 "adc r23, r1 \n\t" 4468 "adc r24, r25 \n\t" 4469 "mul r2, r16 \n\t" 4470 "add r22, r0 \n\t" 4471 "adc r23, r1 \n\t" 4472 "adc r24, r25 \n\t" 4473 "mul r3, r15 \n\t" 4474 "add r22, r0 \n\t" 4475 "adc r23, r1 \n\t" 4476 "adc r24, r25 \n\t" 4477 "mul r4, r14 \n\t" 4478 "add r22, r0 \n\t" 4479 "adc r23, r1 \n\t" 4480 "adc r24, r25 \n\t" 4481 "mul r5, r13 \n\t" 4482 "add r22, r0 \n\t" 4483 "adc r23, r1 \n\t" 4484 "adc r24, r25 \n\t" 4485 "ld r0, z \n\t" 4486 "add r22, r0 \n\t" 4487 "adc r23, r25 \n\t" 4488 "adc r24, r25 \n\t" 4489 "st z+, r22 \n\t" 4490 4491 "ld r13, y+ \n\t" 4492 "ldi r22, 0 \n\t" 4493 "mul r6, r13 \n\t" 4494 "add r23, r0 \n\t" 4495 "adc r24, r1 \n\t" 4496 "adc r22, r25 \n\t" 4497 "mul r7, r12 \n\t" 4498 "add r23, r0 \n\t" 4499 "adc r24, r1 \n\t" 4500 "adc r22, r25 \n\t" 4501 "mul r8, r21 \n\t" 4502 "add r23, r0 \n\t" 4503 "adc r24, r1 \n\t" 4504 "adc r22, r25 \n\t" 4505 "mul r9, r20 \n\t" 4506 "add r23, r0 \n\t" 4507 "adc r24, r1 \n\t" 4508 "adc r22, r25 \n\t" 4509 "mul r10, r19 \n\t" 4510 "add r23, r0 \n\t" 4511 "adc r24, r1 \n\t" 4512 "adc r22, r25 \n\t" 4513 "mul r11, r18 \n\t" 4514 "add r23, r0 \n\t" 4515 "adc r24, r1 \n\t" 4516 "adc r22, r25 \n\t" 4517 "mul r2, r17 \n\t" 4518 "add r23, r0 \n\t" 4519 "adc r24, r1 \n\t" 4520 "adc r22, r25 \n\t" 4521 "mul r3, r16 \n\t" 4522 "add r23, r0 \n\t" 4523 "adc r24, r1 \n\t" 4524 "adc r22, r25 \n\t" 4525 "mul r4, r15 \n\t" 4526 "add r23, r0 \n\t" 4527 "adc r24, r1 \n\t" 4528 "adc r22, r25 \n\t" 4529 "mul r5, r14 \n\t" 4530 "add r23, r0 \n\t" 4531 "adc r24, r1 \n\t" 4532 "adc r22, r25 \n\t" 4533 "ld r0, z \n\t" 4534 "add r23, r0 \n\t" 4535 "adc r24, r25 \n\t" 4536 "adc r22, r25 \n\t" 4537 "st z+, r23 \n\t" 4538 4539 "ld r14, y+ \n\t" 4540 "ldi r23, 0 \n\t" 4541 "mul r6, r14 \n\t" 4542 "add r24, r0 \n\t" 4543 "adc r22, r1 \n\t" 4544 "adc r23, r25 \n\t" 4545 "mul r7, r13 \n\t" 4546 "add r24, r0 \n\t" 4547 "adc r22, r1 \n\t" 4548 "adc r23, r25 \n\t" 4549 "mul r8, r12 \n\t" 4550 "add r24, r0 \n\t" 4551 "adc r22, r1 \n\t" 4552 "adc r23, r25 \n\t" 4553 "mul r9, r21 \n\t" 4554 "add r24, r0 \n\t" 4555 "adc r22, r1 \n\t" 4556 "adc r23, r25 \n\t" 4557 "mul r10, r20 \n\t" 4558 "add r24, r0 \n\t" 4559 "adc r22, r1 \n\t" 4560 "adc r23, r25 \n\t" 4561 "mul r11, r19 \n\t" 4562 "add r24, r0 \n\t" 4563 "adc r22, r1 \n\t" 4564 "adc r23, r25 \n\t" 4565 "mul r2, r18 \n\t" 4566 "add r24, r0 \n\t" 4567 "adc r22, r1 \n\t" 4568 "adc r23, r25 \n\t" 4569 "mul r3, r17 \n\t" 4570 "add r24, r0 \n\t" 4571 "adc r22, r1 \n\t" 4572 "adc r23, r25 \n\t" 4573 "mul r4, r16 \n\t" 4574 "add r24, r0 \n\t" 4575 "adc r22, r1 \n\t" 4576 "adc r23, r25 \n\t" 4577 "mul r5, r15 \n\t" 4578 "add r24, r0 \n\t" 4579 "adc r22, r1 \n\t" 4580 "adc r23, r25 \n\t" 4581 "ld r0, z \n\t" 4582 "add r24, r0 \n\t" 4583 "adc r22, r25 \n\t" 4584 "adc r23, r25 \n\t" 4585 "st z+, r24 \n\t" 4586 4587 "ld r15, y+ \n\t" 4588 "ldi r24, 0 \n\t" 4589 "mul r6, r15 \n\t" 4590 "add r22, r0 \n\t" 4591 "adc r23, r1 \n\t" 4592 "adc r24, r25 \n\t" 4593 "mul r7, r14 \n\t" 4594 "add r22, r0 \n\t" 4595 "adc r23, r1 \n\t" 4596 "adc r24, r25 \n\t" 4597 "mul r8, r13 \n\t" 4598 "add r22, r0 \n\t" 4599 "adc r23, r1 \n\t" 4600 "adc r24, r25 \n\t" 4601 "mul r9, r12 \n\t" 4602 "add r22, r0 \n\t" 4603 "adc r23, r1 \n\t" 4604 "adc r24, r25 \n\t" 4605 "mul r10, r21 \n\t" 4606 "add r22, r0 \n\t" 4607 "adc r23, r1 \n\t" 4608 "adc r24, r25 \n\t" 4609 "mul r11, r20 \n\t" 4610 "add r22, r0 \n\t" 4611 "adc r23, r1 \n\t" 4612 "adc r24, r25 \n\t" 4613 "mul r2, r19 \n\t" 4614 "add r22, r0 \n\t" 4615 "adc r23, r1 \n\t" 4616 "adc r24, r25 \n\t" 4617 "mul r3, r18 \n\t" 4618 "add r22, r0 \n\t" 4619 "adc r23, r1 \n\t" 4620 "adc r24, r25 \n\t" 4621 "mul r4, r17 \n\t" 4622 "add r22, r0 \n\t" 4623 "adc r23, r1 \n\t" 4624 "adc r24, r25 \n\t" 4625 "mul r5, r16 \n\t" 4626 "add r22, r0 \n\t" 4627 "adc r23, r1 \n\t" 4628 "adc r24, r25 \n\t" 4629 "ld r0, z \n\t" 4630 "add r22, r0 \n\t" 4631 "adc r23, r25 \n\t" 4632 "adc r24, r25 \n\t" 4633 "st z+, r22 \n\t" 4634 4635 "ldi r22, 0 \n\t" 4636 "mul r7, r15 \n\t" 4637 "add r23, r0 \n\t" 4638 "adc r24, r1 \n\t" 4639 "adc r22, r25 \n\t" 4640 "mul r8, r14 \n\t" 4641 "add r23, r0 \n\t" 4642 "adc r24, r1 \n\t" 4643 "adc r22, r25 \n\t" 4644 "mul r9, r13 \n\t" 4645 "add r23, r0 \n\t" 4646 "adc r24, r1 \n\t" 4647 "adc r22, r25 \n\t" 4648 "mul r10, r12 \n\t" 4649 "add r23, r0 \n\t" 4650 "adc r24, r1 \n\t" 4651 "adc r22, r25 \n\t" 4652 "mul r11, r21 \n\t" 4653 "add r23, r0 \n\t" 4654 "adc r24, r1 \n\t" 4655 "adc r22, r25 \n\t" 4656 "mul r2, r20 \n\t" 4657 "add r23, r0 \n\t" 4658 "adc r24, r1 \n\t" 4659 "adc r22, r25 \n\t" 4660 "mul r3, r19 \n\t" 4661 "add r23, r0 \n\t" 4662 "adc r24, r1 \n\t" 4663 "adc r22, r25 \n\t" 4664 "mul r4, r18 \n\t" 4665 "add r23, r0 \n\t" 4666 "adc r24, r1 \n\t" 4667 "adc r22, r25 \n\t" 4668 "mul r5, r17 \n\t" 4669 "add r23, r0 \n\t" 4670 "adc r24, r1 \n\t" 4671 "adc r22, r25 \n\t" 4672 "st z+, r23 \n\t" 4673 4674 "ldi r23, 0 \n\t" 4675 "mul r8, r15 \n\t" 4676 "add r24, r0 \n\t" 4677 "adc r22, r1 \n\t" 4678 "adc r23, r25 \n\t" 4679 "mul r9, r14 \n\t" 4680 "add r24, r0 \n\t" 4681 "adc r22, r1 \n\t" 4682 "adc r23, r25 \n\t" 4683 "mul r10, r13 \n\t" 4684 "add r24, r0 \n\t" 4685 "adc r22, r1 \n\t" 4686 "adc r23, r25 \n\t" 4687 "mul r11, r12 \n\t" 4688 "add r24, r0 \n\t" 4689 "adc r22, r1 \n\t" 4690 "adc r23, r25 \n\t" 4691 "mul r2, r21 \n\t" 4692 "add r24, r0 \n\t" 4693 "adc r22, r1 \n\t" 4694 "adc r23, r25 \n\t" 4695 "mul r3, r20 \n\t" 4696 "add r24, r0 \n\t" 4697 "adc r22, r1 \n\t" 4698 "adc r23, r25 \n\t" 4699 "mul r4, r19 \n\t" 4700 "add r24, r0 \n\t" 4701 "adc r22, r1 \n\t" 4702 "adc r23, r25 \n\t" 4703 "mul r5, r18 \n\t" 4704 "add r24, r0 \n\t" 4705 "adc r22, r1 \n\t" 4706 "adc r23, r25 \n\t" 4707 "st z+, r24 \n\t" 4708 4709 "ldi r24, 0 \n\t" 4710 "mul r9, r15 \n\t" 4711 "add r22, r0 \n\t" 4712 "adc r23, r1 \n\t" 4713 "adc r24, r25 \n\t" 4714 "mul r10, r14 \n\t" 4715 "add r22, r0 \n\t" 4716 "adc r23, r1 \n\t" 4717 "adc r24, r25 \n\t" 4718 "mul r11, r13 \n\t" 4719 "add r22, r0 \n\t" 4720 "adc r23, r1 \n\t" 4721 "adc r24, r25 \n\t" 4722 "mul r2, r12 \n\t" 4723 "add r22, r0 \n\t" 4724 "adc r23, r1 \n\t" 4725 "adc r24, r25 \n\t" 4726 "mul r3, r21 \n\t" 4727 "add r22, r0 \n\t" 4728 "adc r23, r1 \n\t" 4729 "adc r24, r25 \n\t" 4730 "mul r4, r20 \n\t" 4731 "add r22, r0 \n\t" 4732 "adc r23, r1 \n\t" 4733 "adc r24, r25 \n\t" 4734 "mul r5, r19 \n\t" 4735 "add r22, r0 \n\t" 4736 "adc r23, r1 \n\t" 4737 "adc r24, r25 \n\t" 4738 "st z+, r22 \n\t" 4739 4740 "ldi r22, 0 \n\t" 4741 "mul r10, r15 \n\t" 4742 "add r23, r0 \n\t" 4743 "adc r24, r1 \n\t" 4744 "adc r22, r25 \n\t" 4745 "mul r11, r14 \n\t" 4746 "add r23, r0 \n\t" 4747 "adc r24, r1 \n\t" 4748 "adc r22, r25 \n\t" 4749 "mul r2, r13 \n\t" 4750 "add r23, r0 \n\t" 4751 "adc r24, r1 \n\t" 4752 "adc r22, r25 \n\t" 4753 "mul r3, r12 \n\t" 4754 "add r23, r0 \n\t" 4755 "adc r24, r1 \n\t" 4756 "adc r22, r25 \n\t" 4757 "mul r4, r21 \n\t" 4758 "add r23, r0 \n\t" 4759 "adc r24, r1 \n\t" 4760 "adc r22, r25 \n\t" 4761 "mul r5, r20 \n\t" 4762 "add r23, r0 \n\t" 4763 "adc r24, r1 \n\t" 4764 "adc r22, r25 \n\t" 4765 "st z+, r23 \n\t" 4766 4767 "ldi r23, 0 \n\t" 4768 "mul r11, r15 \n\t" 4769 "add r24, r0 \n\t" 4770 "adc r22, r1 \n\t" 4771 "adc r23, r25 \n\t" 4772 "mul r2, r14 \n\t" 4773 "add r24, r0 \n\t" 4774 "adc r22, r1 \n\t" 4775 "adc r23, r25 \n\t" 4776 "mul r3, r13 \n\t" 4777 "add r24, r0 \n\t" 4778 "adc r22, r1 \n\t" 4779 "adc r23, r25 \n\t" 4780 "mul r4, r12 \n\t" 4781 "add r24, r0 \n\t" 4782 "adc r22, r1 \n\t" 4783 "adc r23, r25 \n\t" 4784 "mul r5, r21 \n\t" 4785 "add r24, r0 \n\t" 4786 "adc r22, r1 \n\t" 4787 "adc r23, r25 \n\t" 4788 "st z+, r24 \n\t" 4789 4790 "ldi r24, 0 \n\t" 4791 "mul r2, r15 \n\t" 4792 "add r22, r0 \n\t" 4793 "adc r23, r1 \n\t" 4794 "adc r24, r25 \n\t" 4795 "mul r3, r14 \n\t" 4796 "add r22, r0 \n\t" 4797 "adc r23, r1 \n\t" 4798 "adc r24, r25 \n\t" 4799 "mul r4, r13 \n\t" 4800 "add r22, r0 \n\t" 4801 "adc r23, r1 \n\t" 4802 "adc r24, r25 \n\t" 4803 "mul r5, r12 \n\t" 4804 "add r22, r0 \n\t" 4805 "adc r23, r1 \n\t" 4806 "adc r24, r25 \n\t" 4807 "st z+, r22 \n\t" 4808 4809 "ldi r22, 0 \n\t" 4810 "mul r3, r15 \n\t" 4811 "add r23, r0 \n\t" 4812 "adc r24, r1 \n\t" 4813 "adc r22, r25 \n\t" 4814 "mul r4, r14 \n\t" 4815 "add r23, r0 \n\t" 4816 "adc r24, r1 \n\t" 4817 "adc r22, r25 \n\t" 4818 "mul r5, r13 \n\t" 4819 "add r23, r0 \n\t" 4820 "adc r24, r1 \n\t" 4821 "adc r22, r25 \n\t" 4822 "st z+, r23 \n\t" 4823 4824 "ldi r23, 0 \n\t" 4825 "mul r4, r15 \n\t" 4826 "add r24, r0 \n\t" 4827 "adc r22, r1 \n\t" 4828 "adc r23, r25 \n\t" 4829 "mul r5, r14 \n\t" 4830 "add r24, r0 \n\t" 4831 "adc r22, r1 \n\t" 4832 "adc r23, r25 \n\t" 4833 "st z+, r24 \n\t" 4834 4835 "mul r5, r15 \n\t" 4836 "add r22, r0 \n\t" 4837 "adc r23, r1 \n\t" 4838 "st z+, r22 \n\t" 4839 "st z+, r23 \n\t" 4840 4841 "eor r1, r1 \n\t" 4842 : "+x" (left), "+y" (right), "+z" (result) 4843 : 4844 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 4845 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 4846 "r21", "r22", "r23", "r24", "r25", "cc", "memory" 4847 ); 4848} 4849#define asm_mult 1 4850#elif (uECC_BYTES == 28) 4851__attribute((noinline)) 4852static void vli_mult(uint8_t *result, const uint8_t *left, const uint8_t *right) { 4853 __asm__ volatile ( 4854 "adiw r30, 20 \n\t" 4855 "adiw r28, 20 \n\t" 4856 "ld r2, x+ \n\t" 4857 "ld r3, x+ \n\t" 4858 "ld r4, x+ \n\t" 4859 "ld r5, x+ \n\t" 4860 "ld r6, x+ \n\t" 4861 "ld r7, x+ \n\t" 4862 "ld r8, x+ \n\t" 4863 "ld r9, x+ \n\t" 4864 "ld r12, y+ \n\t" 4865 "ld r13, y+ \n\t" 4866 "ld r14, y+ \n\t" 4867 "ld r15, y+ \n\t" 4868 "ld r16, y+ \n\t" 4869 "ld r17, y+ \n\t" 4870 "ld r18, y+ \n\t" 4871 "ld r19, y+ \n\t" 4872 "ldi r25, 0 \n\t" 4873 4874 "ldi r23, 0 \n\t" 4875 "mul r2, r12 \n\t" 4876 "st z+, r0 \n\t" 4877 "mov r22, r1 \n\t" 4878 4879 "ldi r24, 0 \n\t" 4880 "mul r2, r13 \n\t" 4881 "add r22, r0 \n\t" 4882 "adc r23, r1 \n\t" 4883 "mul r3, r12 \n\t" 4884 "add r22, r0 \n\t" 4885 "adc r23, r1 \n\t" 4886 "adc r24, r25 \n\t" 4887 "st z+, r22 \n\t" 4888 4889 "ldi r22, 0 \n\t" 4890 "mul r2, r14 \n\t" 4891 "add r23, r0 \n\t" 4892 "adc r24, r1 \n\t" 4893 "adc r22, r25 \n\t" 4894 "mul r3, r13 \n\t" 4895 "add r23, r0 \n\t" 4896 "adc r24, r1 \n\t" 4897 "adc r22, r25 \n\t" 4898 "mul r4, r12 \n\t" 4899 "add r23, r0 \n\t" 4900 "adc r24, r1 \n\t" 4901 "adc r22, r25 \n\t" 4902 "st z+, r23 \n\t" 4903 4904 "ldi r23, 0 \n\t" 4905 "mul r2, r15 \n\t" 4906 "add r24, r0 \n\t" 4907 "adc r22, r1 \n\t" 4908 "adc r23, r25 \n\t" 4909 "mul r3, r14 \n\t" 4910 "add r24, r0 \n\t" 4911 "adc r22, r1 \n\t" 4912 "adc r23, r25 \n\t" 4913 "mul r4, r13 \n\t" 4914 "add r24, r0 \n\t" 4915 "adc r22, r1 \n\t" 4916 "adc r23, r25 \n\t" 4917 "mul r5, r12 \n\t" 4918 "add r24, r0 \n\t" 4919 "adc r22, r1 \n\t" 4920 "adc r23, r25 \n\t" 4921 "st z+, r24 \n\t" 4922 4923 "ldi r24, 0 \n\t" 4924 "mul r2, r16 \n\t" 4925 "add r22, r0 \n\t" 4926 "adc r23, r1 \n\t" 4927 "adc r24, r25 \n\t" 4928 "mul r3, r15 \n\t" 4929 "add r22, r0 \n\t" 4930 "adc r23, r1 \n\t" 4931 "adc r24, r25 \n\t" 4932 "mul r4, r14 \n\t" 4933 "add r22, r0 \n\t" 4934 "adc r23, r1 \n\t" 4935 "adc r24, r25 \n\t" 4936 "mul r5, r13 \n\t" 4937 "add r22, r0 \n\t" 4938 "adc r23, r1 \n\t" 4939 "adc r24, r25 \n\t" 4940 "mul r6, r12 \n\t" 4941 "add r22, r0 \n\t" 4942 "adc r23, r1 \n\t" 4943 "adc r24, r25 \n\t" 4944 "st z+, r22 \n\t" 4945 4946 "ldi r22, 0 \n\t" 4947 "mul r2, r17 \n\t" 4948 "add r23, r0 \n\t" 4949 "adc r24, r1 \n\t" 4950 "adc r22, r25 \n\t" 4951 "mul r3, r16 \n\t" 4952 "add r23, r0 \n\t" 4953 "adc r24, r1 \n\t" 4954 "adc r22, r25 \n\t" 4955 "mul r4, r15 \n\t" 4956 "add r23, r0 \n\t" 4957 "adc r24, r1 \n\t" 4958 "adc r22, r25 \n\t" 4959 "mul r5, r14 \n\t" 4960 "add r23, r0 \n\t" 4961 "adc r24, r1 \n\t" 4962 "adc r22, r25 \n\t" 4963 "mul r6, r13 \n\t" 4964 "add r23, r0 \n\t" 4965 "adc r24, r1 \n\t" 4966 "adc r22, r25 \n\t" 4967 "mul r7, r12 \n\t" 4968 "add r23, r0 \n\t" 4969 "adc r24, r1 \n\t" 4970 "adc r22, r25 \n\t" 4971 "st z+, r23 \n\t" 4972 4973 "ldi r23, 0 \n\t" 4974 "mul r2, r18 \n\t" 4975 "add r24, r0 \n\t" 4976 "adc r22, r1 \n\t" 4977 "adc r23, r25 \n\t" 4978 "mul r3, r17 \n\t" 4979 "add r24, r0 \n\t" 4980 "adc r22, r1 \n\t" 4981 "adc r23, r25 \n\t" 4982 "mul r4, r16 \n\t" 4983 "add r24, r0 \n\t" 4984 "adc r22, r1 \n\t" 4985 "adc r23, r25 \n\t" 4986 "mul r5, r15 \n\t" 4987 "add r24, r0 \n\t" 4988 "adc r22, r1 \n\t" 4989 "adc r23, r25 \n\t" 4990 "mul r6, r14 \n\t" 4991 "add r24, r0 \n\t" 4992 "adc r22, r1 \n\t" 4993 "adc r23, r25 \n\t" 4994 "mul r7, r13 \n\t" 4995 "add r24, r0 \n\t" 4996 "adc r22, r1 \n\t" 4997 "adc r23, r25 \n\t" 4998 "mul r8, r12 \n\t" 4999 "add r24, r0 \n\t" 5000 "adc r22, r1 \n\t" 5001 "adc r23, r25 \n\t" 5002 "st z+, r24 \n\t" 5003 5004 "ldi r24, 0 \n\t" 5005 "mul r2, r19 \n\t" 5006 "add r22, r0 \n\t" 5007 "adc r23, r1 \n\t" 5008 "adc r24, r25 \n\t" 5009 "mul r3, r18 \n\t" 5010 "add r22, r0 \n\t" 5011 "adc r23, r1 \n\t" 5012 "adc r24, r25 \n\t" 5013 "mul r4, r17 \n\t" 5014 "add r22, r0 \n\t" 5015 "adc r23, r1 \n\t" 5016 "adc r24, r25 \n\t" 5017 "mul r5, r16 \n\t" 5018 "add r22, r0 \n\t" 5019 "adc r23, r1 \n\t" 5020 "adc r24, r25 \n\t" 5021 "mul r6, r15 \n\t" 5022 "add r22, r0 \n\t" 5023 "adc r23, r1 \n\t" 5024 "adc r24, r25 \n\t" 5025 "mul r7, r14 \n\t" 5026 "add r22, r0 \n\t" 5027 "adc r23, r1 \n\t" 5028 "adc r24, r25 \n\t" 5029 "mul r8, r13 \n\t" 5030 "add r22, r0 \n\t" 5031 "adc r23, r1 \n\t" 5032 "adc r24, r25 \n\t" 5033 "mul r9, r12 \n\t" 5034 "add r22, r0 \n\t" 5035 "adc r23, r1 \n\t" 5036 "adc r24, r25 \n\t" 5037 "st z+, r22 \n\t" 5038 5039 "ldi r22, 0 \n\t" 5040 "mul r3, r19 \n\t" 5041 "add r23, r0 \n\t" 5042 "adc r24, r1 \n\t" 5043 "adc r22, r25 \n\t" 5044 "mul r4, r18 \n\t" 5045 "add r23, r0 \n\t" 5046 "adc r24, r1 \n\t" 5047 "adc r22, r25 \n\t" 5048 "mul r5, r17 \n\t" 5049 "add r23, r0 \n\t" 5050 "adc r24, r1 \n\t" 5051 "adc r22, r25 \n\t" 5052 "mul r6, r16 \n\t" 5053 "add r23, r0 \n\t" 5054 "adc r24, r1 \n\t" 5055 "adc r22, r25 \n\t" 5056 "mul r7, r15 \n\t" 5057 "add r23, r0 \n\t" 5058 "adc r24, r1 \n\t" 5059 "adc r22, r25 \n\t" 5060 "mul r8, r14 \n\t" 5061 "add r23, r0 \n\t" 5062 "adc r24, r1 \n\t" 5063 "adc r22, r25 \n\t" 5064 "mul r9, r13 \n\t" 5065 "add r23, r0 \n\t" 5066 "adc r24, r1 \n\t" 5067 "adc r22, r25 \n\t" 5068 "st z+, r23 \n\t" 5069 5070 "ldi r23, 0 \n\t" 5071 "mul r4, r19 \n\t" 5072 "add r24, r0 \n\t" 5073 "adc r22, r1 \n\t" 5074 "adc r23, r25 \n\t" 5075 "mul r5, r18 \n\t" 5076 "add r24, r0 \n\t" 5077 "adc r22, r1 \n\t" 5078 "adc r23, r25 \n\t" 5079 "mul r6, r17 \n\t" 5080 "add r24, r0 \n\t" 5081 "adc r22, r1 \n\t" 5082 "adc r23, r25 \n\t" 5083 "mul r7, r16 \n\t" 5084 "add r24, r0 \n\t" 5085 "adc r22, r1 \n\t" 5086 "adc r23, r25 \n\t" 5087 "mul r8, r15 \n\t" 5088 "add r24, r0 \n\t" 5089 "adc r22, r1 \n\t" 5090 "adc r23, r25 \n\t" 5091 "mul r9, r14 \n\t" 5092 "add r24, r0 \n\t" 5093 "adc r22, r1 \n\t" 5094 "adc r23, r25 \n\t" 5095 "st z+, r24 \n\t" 5096 5097 "ldi r24, 0 \n\t" 5098 "mul r5, r19 \n\t" 5099 "add r22, r0 \n\t" 5100 "adc r23, r1 \n\t" 5101 "adc r24, r25 \n\t" 5102 "mul r6, r18 \n\t" 5103 "add r22, r0 \n\t" 5104 "adc r23, r1 \n\t" 5105 "adc r24, r25 \n\t" 5106 "mul r7, r17 \n\t" 5107 "add r22, r0 \n\t" 5108 "adc r23, r1 \n\t" 5109 "adc r24, r25 \n\t" 5110 "mul r8, r16 \n\t" 5111 "add r22, r0 \n\t" 5112 "adc r23, r1 \n\t" 5113 "adc r24, r25 \n\t" 5114 "mul r9, r15 \n\t" 5115 "add r22, r0 \n\t" 5116 "adc r23, r1 \n\t" 5117 "adc r24, r25 \n\t" 5118 "st z+, r22 \n\t" 5119 5120 "ldi r22, 0 \n\t" 5121 "mul r6, r19 \n\t" 5122 "add r23, r0 \n\t" 5123 "adc r24, r1 \n\t" 5124 "adc r22, r25 \n\t" 5125 "mul r7, r18 \n\t" 5126 "add r23, r0 \n\t" 5127 "adc r24, r1 \n\t" 5128 "adc r22, r25 \n\t" 5129 "mul r8, r17 \n\t" 5130 "add r23, r0 \n\t" 5131 "adc r24, r1 \n\t" 5132 "adc r22, r25 \n\t" 5133 "mul r9, r16 \n\t" 5134 "add r23, r0 \n\t" 5135 "adc r24, r1 \n\t" 5136 "adc r22, r25 \n\t" 5137 "st z+, r23 \n\t" 5138 5139 "ldi r23, 0 \n\t" 5140 "mul r7, r19 \n\t" 5141 "add r24, r0 \n\t" 5142 "adc r22, r1 \n\t" 5143 "adc r23, r25 \n\t" 5144 "mul r8, r18 \n\t" 5145 "add r24, r0 \n\t" 5146 "adc r22, r1 \n\t" 5147 "adc r23, r25 \n\t" 5148 "mul r9, r17 \n\t" 5149 "add r24, r0 \n\t" 5150 "adc r22, r1 \n\t" 5151 "adc r23, r25 \n\t" 5152 "st z+, r24 \n\t" 5153 5154 "ldi r24, 0 \n\t" 5155 "mul r8, r19 \n\t" 5156 "add r22, r0 \n\t" 5157 "adc r23, r1 \n\t" 5158 "adc r24, r25 \n\t" 5159 "mul r9, r18 \n\t" 5160 "add r22, r0 \n\t" 5161 "adc r23, r1 \n\t" 5162 "adc r24, r25 \n\t" 5163 "st z+, r22 \n\t" 5164 5165 "mul r9, r19 \n\t" 5166 "add r23, r0 \n\t" 5167 "adc r24, r1 \n\t" 5168 "st z+, r23 \n\t" 5169 "st z+, r24 \n\t" 5170 5171 "sbiw r30, 26 \n\t" 5172 "sbiw r28, 18 \n\t" 5173 "ld r12, y+ \n\t" 5174 "ld r13, y+ \n\t" 5175 "ld r14, y+ \n\t" 5176 "ld r15, y+ \n\t" 5177 "ld r16, y+ \n\t" 5178 "ld r17, y+ \n\t" 5179 "ld r18, y+ \n\t" 5180 "ld r19, y+ \n\t" 5181 "ld r20, y+ \n\t" 5182 "ld r21, y+ \n\t" 5183 "ld r10, x+ \n\t" 5184 "ld r11, x+ \n\t" 5185 5186 "ldi r23, 0 \n\t" 5187 "mul r2, r12 \n\t" 5188 "st z+, r0 \n\t" 5189 "mov r22, r1 \n\t" 5190 5191 "ldi r24, 0 \n\t" 5192 "mul r2, r13 \n\t" 5193 "add r22, r0 \n\t" 5194 "adc r23, r1 \n\t" 5195 "mul r3, r12 \n\t" 5196 "add r22, r0 \n\t" 5197 "adc r23, r1 \n\t" 5198 "adc r24, r25 \n\t" 5199 "st z+, r22 \n\t" 5200 5201 "ldi r22, 0 \n\t" 5202 "mul r2, r14 \n\t" 5203 "add r23, r0 \n\t" 5204 "adc r24, r1 \n\t" 5205 "adc r22, r25 \n\t" 5206 "mul r3, r13 \n\t" 5207 "add r23, r0 \n\t" 5208 "adc r24, r1 \n\t" 5209 "adc r22, r25 \n\t" 5210 "mul r4, r12 \n\t" 5211 "add r23, r0 \n\t" 5212 "adc r24, r1 \n\t" 5213 "adc r22, r25 \n\t" 5214 "st z+, r23 \n\t" 5215 5216 "ldi r23, 0 \n\t" 5217 "mul r2, r15 \n\t" 5218 "add r24, r0 \n\t" 5219 "adc r22, r1 \n\t" 5220 "adc r23, r25 \n\t" 5221 "mul r3, r14 \n\t" 5222 "add r24, r0 \n\t" 5223 "adc r22, r1 \n\t" 5224 "adc r23, r25 \n\t" 5225 "mul r4, r13 \n\t" 5226 "add r24, r0 \n\t" 5227 "adc r22, r1 \n\t" 5228 "adc r23, r25 \n\t" 5229 "mul r5, r12 \n\t" 5230 "add r24, r0 \n\t" 5231 "adc r22, r1 \n\t" 5232 "adc r23, r25 \n\t" 5233 "st z+, r24 \n\t" 5234 5235 "ldi r24, 0 \n\t" 5236 "mul r2, r16 \n\t" 5237 "add r22, r0 \n\t" 5238 "adc r23, r1 \n\t" 5239 "adc r24, r25 \n\t" 5240 "mul r3, r15 \n\t" 5241 "add r22, r0 \n\t" 5242 "adc r23, r1 \n\t" 5243 "adc r24, r25 \n\t" 5244 "mul r4, r14 \n\t" 5245 "add r22, r0 \n\t" 5246 "adc r23, r1 \n\t" 5247 "adc r24, r25 \n\t" 5248 "mul r5, r13 \n\t" 5249 "add r22, r0 \n\t" 5250 "adc r23, r1 \n\t" 5251 "adc r24, r25 \n\t" 5252 "mul r6, r12 \n\t" 5253 "add r22, r0 \n\t" 5254 "adc r23, r1 \n\t" 5255 "adc r24, r25 \n\t" 5256 "st z+, r22 \n\t" 5257 5258 "ldi r22, 0 \n\t" 5259 "mul r2, r17 \n\t" 5260 "add r23, r0 \n\t" 5261 "adc r24, r1 \n\t" 5262 "adc r22, r25 \n\t" 5263 "mul r3, r16 \n\t" 5264 "add r23, r0 \n\t" 5265 "adc r24, r1 \n\t" 5266 "adc r22, r25 \n\t" 5267 "mul r4, r15 \n\t" 5268 "add r23, r0 \n\t" 5269 "adc r24, r1 \n\t" 5270 "adc r22, r25 \n\t" 5271 "mul r5, r14 \n\t" 5272 "add r23, r0 \n\t" 5273 "adc r24, r1 \n\t" 5274 "adc r22, r25 \n\t" 5275 "mul r6, r13 \n\t" 5276 "add r23, r0 \n\t" 5277 "adc r24, r1 \n\t" 5278 "adc r22, r25 \n\t" 5279 "mul r7, r12 \n\t" 5280 "add r23, r0 \n\t" 5281 "adc r24, r1 \n\t" 5282 "adc r22, r25 \n\t" 5283 "st z+, r23 \n\t" 5284 5285 "ldi r23, 0 \n\t" 5286 "mul r2, r18 \n\t" 5287 "add r24, r0 \n\t" 5288 "adc r22, r1 \n\t" 5289 "adc r23, r25 \n\t" 5290 "mul r3, r17 \n\t" 5291 "add r24, r0 \n\t" 5292 "adc r22, r1 \n\t" 5293 "adc r23, r25 \n\t" 5294 "mul r4, r16 \n\t" 5295 "add r24, r0 \n\t" 5296 "adc r22, r1 \n\t" 5297 "adc r23, r25 \n\t" 5298 "mul r5, r15 \n\t" 5299 "add r24, r0 \n\t" 5300 "adc r22, r1 \n\t" 5301 "adc r23, r25 \n\t" 5302 "mul r6, r14 \n\t" 5303 "add r24, r0 \n\t" 5304 "adc r22, r1 \n\t" 5305 "adc r23, r25 \n\t" 5306 "mul r7, r13 \n\t" 5307 "add r24, r0 \n\t" 5308 "adc r22, r1 \n\t" 5309 "adc r23, r25 \n\t" 5310 "mul r8, r12 \n\t" 5311 "add r24, r0 \n\t" 5312 "adc r22, r1 \n\t" 5313 "adc r23, r25 \n\t" 5314 "st z+, r24 \n\t" 5315 5316 "ldi r24, 0 \n\t" 5317 "mul r2, r19 \n\t" 5318 "add r22, r0 \n\t" 5319 "adc r23, r1 \n\t" 5320 "adc r24, r25 \n\t" 5321 "mul r3, r18 \n\t" 5322 "add r22, r0 \n\t" 5323 "adc r23, r1 \n\t" 5324 "adc r24, r25 \n\t" 5325 "mul r4, r17 \n\t" 5326 "add r22, r0 \n\t" 5327 "adc r23, r1 \n\t" 5328 "adc r24, r25 \n\t" 5329 "mul r5, r16 \n\t" 5330 "add r22, r0 \n\t" 5331 "adc r23, r1 \n\t" 5332 "adc r24, r25 \n\t" 5333 "mul r6, r15 \n\t" 5334 "add r22, r0 \n\t" 5335 "adc r23, r1 \n\t" 5336 "adc r24, r25 \n\t" 5337 "mul r7, r14 \n\t" 5338 "add r22, r0 \n\t" 5339 "adc r23, r1 \n\t" 5340 "adc r24, r25 \n\t" 5341 "mul r8, r13 \n\t" 5342 "add r22, r0 \n\t" 5343 "adc r23, r1 \n\t" 5344 "adc r24, r25 \n\t" 5345 "mul r9, r12 \n\t" 5346 "add r22, r0 \n\t" 5347 "adc r23, r1 \n\t" 5348 "adc r24, r25 \n\t" 5349 "st z+, r22 \n\t" 5350 5351 "ldi r22, 0 \n\t" 5352 "mul r2, r20 \n\t" 5353 "add r23, r0 \n\t" 5354 "adc r24, r1 \n\t" 5355 "adc r22, r25 \n\t" 5356 "mul r3, r19 \n\t" 5357 "add r23, r0 \n\t" 5358 "adc r24, r1 \n\t" 5359 "adc r22, r25 \n\t" 5360 "mul r4, r18 \n\t" 5361 "add r23, r0 \n\t" 5362 "adc r24, r1 \n\t" 5363 "adc r22, r25 \n\t" 5364 "mul r5, r17 \n\t" 5365 "add r23, r0 \n\t" 5366 "adc r24, r1 \n\t" 5367 "adc r22, r25 \n\t" 5368 "mul r6, r16 \n\t" 5369 "add r23, r0 \n\t" 5370 "adc r24, r1 \n\t" 5371 "adc r22, r25 \n\t" 5372 "mul r7, r15 \n\t" 5373 "add r23, r0 \n\t" 5374 "adc r24, r1 \n\t" 5375 "adc r22, r25 \n\t" 5376 "mul r8, r14 \n\t" 5377 "add r23, r0 \n\t" 5378 "adc r24, r1 \n\t" 5379 "adc r22, r25 \n\t" 5380 "mul r9, r13 \n\t" 5381 "add r23, r0 \n\t" 5382 "adc r24, r1 \n\t" 5383 "adc r22, r25 \n\t" 5384 "mul r10, r12 \n\t" 5385 "add r23, r0 \n\t" 5386 "adc r24, r1 \n\t" 5387 "adc r22, r25 \n\t" 5388 "st z+, r23 \n\t" 5389 5390 "ldi r23, 0 \n\t" 5391 "mul r2, r21 \n\t" 5392 "add r24, r0 \n\t" 5393 "adc r22, r1 \n\t" 5394 "adc r23, r25 \n\t" 5395 "mul r3, r20 \n\t" 5396 "add r24, r0 \n\t" 5397 "adc r22, r1 \n\t" 5398 "adc r23, r25 \n\t" 5399 "mul r4, r19 \n\t" 5400 "add r24, r0 \n\t" 5401 "adc r22, r1 \n\t" 5402 "adc r23, r25 \n\t" 5403 "mul r5, r18 \n\t" 5404 "add r24, r0 \n\t" 5405 "adc r22, r1 \n\t" 5406 "adc r23, r25 \n\t" 5407 "mul r6, r17 \n\t" 5408 "add r24, r0 \n\t" 5409 "adc r22, r1 \n\t" 5410 "adc r23, r25 \n\t" 5411 "mul r7, r16 \n\t" 5412 "add r24, r0 \n\t" 5413 "adc r22, r1 \n\t" 5414 "adc r23, r25 \n\t" 5415 "mul r8, r15 \n\t" 5416 "add r24, r0 \n\t" 5417 "adc r22, r1 \n\t" 5418 "adc r23, r25 \n\t" 5419 "mul r9, r14 \n\t" 5420 "add r24, r0 \n\t" 5421 "adc r22, r1 \n\t" 5422 "adc r23, r25 \n\t" 5423 "mul r10, r13 \n\t" 5424 "add r24, r0 \n\t" 5425 "adc r22, r1 \n\t" 5426 "adc r23, r25 \n\t" 5427 "mul r11, r12 \n\t" 5428 "add r24, r0 \n\t" 5429 "adc r22, r1 \n\t" 5430 "adc r23, r25 \n\t" 5431 "st z+, r24 \n\t" 5432 5433 "ld r2, x+ \n\t" 5434 "ldi r24, 0 \n\t" 5435 "mul r3, r21 \n\t" 5436 "add r22, r0 \n\t" 5437 "adc r23, r1 \n\t" 5438 "adc r24, r25 \n\t" 5439 "mul r4, r20 \n\t" 5440 "add r22, r0 \n\t" 5441 "adc r23, r1 \n\t" 5442 "adc r24, r25 \n\t" 5443 "mul r5, r19 \n\t" 5444 "add r22, r0 \n\t" 5445 "adc r23, r1 \n\t" 5446 "adc r24, r25 \n\t" 5447 "mul r6, r18 \n\t" 5448 "add r22, r0 \n\t" 5449 "adc r23, r1 \n\t" 5450 "adc r24, r25 \n\t" 5451 "mul r7, r17 \n\t" 5452 "add r22, r0 \n\t" 5453 "adc r23, r1 \n\t" 5454 "adc r24, r25 \n\t" 5455 "mul r8, r16 \n\t" 5456 "add r22, r0 \n\t" 5457 "adc r23, r1 \n\t" 5458 "adc r24, r25 \n\t" 5459 "mul r9, r15 \n\t" 5460 "add r22, r0 \n\t" 5461 "adc r23, r1 \n\t" 5462 "adc r24, r25 \n\t" 5463 "mul r10, r14 \n\t" 5464 "add r22, r0 \n\t" 5465 "adc r23, r1 \n\t" 5466 "adc r24, r25 \n\t" 5467 "mul r11, r13 \n\t" 5468 "add r22, r0 \n\t" 5469 "adc r23, r1 \n\t" 5470 "adc r24, r25 \n\t" 5471 "mul r2, r12 \n\t" 5472 "add r22, r0 \n\t" 5473 "adc r23, r1 \n\t" 5474 "adc r24, r25 \n\t" 5475 "ld r0, z \n\t" 5476 "add r22, r0 \n\t" 5477 "adc r23, r25 \n\t" 5478 "adc r24, r25 \n\t" 5479 "st z+, r22 \n\t" 5480 5481 "ld r3, x+ \n\t" 5482 "ldi r22, 0 \n\t" 5483 "mul r4, r21 \n\t" 5484 "add r23, r0 \n\t" 5485 "adc r24, r1 \n\t" 5486 "adc r22, r25 \n\t" 5487 "mul r5, r20 \n\t" 5488 "add r23, r0 \n\t" 5489 "adc r24, r1 \n\t" 5490 "adc r22, r25 \n\t" 5491 "mul r6, r19 \n\t" 5492 "add r23, r0 \n\t" 5493 "adc r24, r1 \n\t" 5494 "adc r22, r25 \n\t" 5495 "mul r7, r18 \n\t" 5496 "add r23, r0 \n\t" 5497 "adc r24, r1 \n\t" 5498 "adc r22, r25 \n\t" 5499 "mul r8, r17 \n\t" 5500 "add r23, r0 \n\t" 5501 "adc r24, r1 \n\t" 5502 "adc r22, r25 \n\t" 5503 "mul r9, r16 \n\t" 5504 "add r23, r0 \n\t" 5505 "adc r24, r1 \n\t" 5506 "adc r22, r25 \n\t" 5507 "mul r10, r15 \n\t" 5508 "add r23, r0 \n\t" 5509 "adc r24, r1 \n\t" 5510 "adc r22, r25 \n\t" 5511 "mul r11, r14 \n\t" 5512 "add r23, r0 \n\t" 5513 "adc r24, r1 \n\t" 5514 "adc r22, r25 \n\t" 5515 "mul r2, r13 \n\t" 5516 "add r23, r0 \n\t" 5517 "adc r24, r1 \n\t" 5518 "adc r22, r25 \n\t" 5519 "mul r3, r12 \n\t" 5520 "add r23, r0 \n\t" 5521 "adc r24, r1 \n\t" 5522 "adc r22, r25 \n\t" 5523 "ld r0, z \n\t" 5524 "add r23, r0 \n\t" 5525 "adc r24, r25 \n\t" 5526 "adc r22, r25 \n\t" 5527 "st z+, r23 \n\t" 5528 5529 "ld r4, x+ \n\t" 5530 "ldi r23, 0 \n\t" 5531 "mul r5, r21 \n\t" 5532 "add r24, r0 \n\t" 5533 "adc r22, r1 \n\t" 5534 "adc r23, r25 \n\t" 5535 "mul r6, r20 \n\t" 5536 "add r24, r0 \n\t" 5537 "adc r22, r1 \n\t" 5538 "adc r23, r25 \n\t" 5539 "mul r7, r19 \n\t" 5540 "add r24, r0 \n\t" 5541 "adc r22, r1 \n\t" 5542 "adc r23, r25 \n\t" 5543 "mul r8, r18 \n\t" 5544 "add r24, r0 \n\t" 5545 "adc r22, r1 \n\t" 5546 "adc r23, r25 \n\t" 5547 "mul r9, r17 \n\t" 5548 "add r24, r0 \n\t" 5549 "adc r22, r1 \n\t" 5550 "adc r23, r25 \n\t" 5551 "mul r10, r16 \n\t" 5552 "add r24, r0 \n\t" 5553 "adc r22, r1 \n\t" 5554 "adc r23, r25 \n\t" 5555 "mul r11, r15 \n\t" 5556 "add r24, r0 \n\t" 5557 "adc r22, r1 \n\t" 5558 "adc r23, r25 \n\t" 5559 "mul r2, r14 \n\t" 5560 "add r24, r0 \n\t" 5561 "adc r22, r1 \n\t" 5562 "adc r23, r25 \n\t" 5563 "mul r3, r13 \n\t" 5564 "add r24, r0 \n\t" 5565 "adc r22, r1 \n\t" 5566 "adc r23, r25 \n\t" 5567 "mul r4, r12 \n\t" 5568 "add r24, r0 \n\t" 5569 "adc r22, r1 \n\t" 5570 "adc r23, r25 \n\t" 5571 "ld r0, z \n\t" 5572 "add r24, r0 \n\t" 5573 "adc r22, r25 \n\t" 5574 "adc r23, r25 \n\t" 5575 "st z+, r24 \n\t" 5576 5577 "ld r5, x+ \n\t" 5578 "ldi r24, 0 \n\t" 5579 "mul r6, r21 \n\t" 5580 "add r22, r0 \n\t" 5581 "adc r23, r1 \n\t" 5582 "adc r24, r25 \n\t" 5583 "mul r7, r20 \n\t" 5584 "add r22, r0 \n\t" 5585 "adc r23, r1 \n\t" 5586 "adc r24, r25 \n\t" 5587 "mul r8, r19 \n\t" 5588 "add r22, r0 \n\t" 5589 "adc r23, r1 \n\t" 5590 "adc r24, r25 \n\t" 5591 "mul r9, r18 \n\t" 5592 "add r22, r0 \n\t" 5593 "adc r23, r1 \n\t" 5594 "adc r24, r25 \n\t" 5595 "mul r10, r17 \n\t" 5596 "add r22, r0 \n\t" 5597 "adc r23, r1 \n\t" 5598 "adc r24, r25 \n\t" 5599 "mul r11, r16 \n\t" 5600 "add r22, r0 \n\t" 5601 "adc r23, r1 \n\t" 5602 "adc r24, r25 \n\t" 5603 "mul r2, r15 \n\t" 5604 "add r22, r0 \n\t" 5605 "adc r23, r1 \n\t" 5606 "adc r24, r25 \n\t" 5607 "mul r3, r14 \n\t" 5608 "add r22, r0 \n\t" 5609 "adc r23, r1 \n\t" 5610 "adc r24, r25 \n\t" 5611 "mul r4, r13 \n\t" 5612 "add r22, r0 \n\t" 5613 "adc r23, r1 \n\t" 5614 "adc r24, r25 \n\t" 5615 "mul r5, r12 \n\t" 5616 "add r22, r0 \n\t" 5617 "adc r23, r1 \n\t" 5618 "adc r24, r25 \n\t" 5619 "ld r0, z \n\t" 5620 "add r22, r0 \n\t" 5621 "adc r23, r25 \n\t" 5622 "adc r24, r25 \n\t" 5623 "st z+, r22 \n\t" 5624 5625 "ld r6, x+ \n\t" 5626 "ldi r22, 0 \n\t" 5627 "mul r7, r21 \n\t" 5628 "add r23, r0 \n\t" 5629 "adc r24, r1 \n\t" 5630 "adc r22, r25 \n\t" 5631 "mul r8, r20 \n\t" 5632 "add r23, r0 \n\t" 5633 "adc r24, r1 \n\t" 5634 "adc r22, r25 \n\t" 5635 "mul r9, r19 \n\t" 5636 "add r23, r0 \n\t" 5637 "adc r24, r1 \n\t" 5638 "adc r22, r25 \n\t" 5639 "mul r10, r18 \n\t" 5640 "add r23, r0 \n\t" 5641 "adc r24, r1 \n\t" 5642 "adc r22, r25 \n\t" 5643 "mul r11, r17 \n\t" 5644 "add r23, r0 \n\t" 5645 "adc r24, r1 \n\t" 5646 "adc r22, r25 \n\t" 5647 "mul r2, r16 \n\t" 5648 "add r23, r0 \n\t" 5649 "adc r24, r1 \n\t" 5650 "adc r22, r25 \n\t" 5651 "mul r3, r15 \n\t" 5652 "add r23, r0 \n\t" 5653 "adc r24, r1 \n\t" 5654 "adc r22, r25 \n\t" 5655 "mul r4, r14 \n\t" 5656 "add r23, r0 \n\t" 5657 "adc r24, r1 \n\t" 5658 "adc r22, r25 \n\t" 5659 "mul r5, r13 \n\t" 5660 "add r23, r0 \n\t" 5661 "adc r24, r1 \n\t" 5662 "adc r22, r25 \n\t" 5663 "mul r6, r12 \n\t" 5664 "add r23, r0 \n\t" 5665 "adc r24, r1 \n\t" 5666 "adc r22, r25 \n\t" 5667 "ld r0, z \n\t" 5668 "add r23, r0 \n\t" 5669 "adc r24, r25 \n\t" 5670 "adc r22, r25 \n\t" 5671 "st z+, r23 \n\t" 5672 5673 "ld r7, x+ \n\t" 5674 "ldi r23, 0 \n\t" 5675 "mul r8, r21 \n\t" 5676 "add r24, r0 \n\t" 5677 "adc r22, r1 \n\t" 5678 "adc r23, r25 \n\t" 5679 "mul r9, r20 \n\t" 5680 "add r24, r0 \n\t" 5681 "adc r22, r1 \n\t" 5682 "adc r23, r25 \n\t" 5683 "mul r10, r19 \n\t" 5684 "add r24, r0 \n\t" 5685 "adc r22, r1 \n\t" 5686 "adc r23, r25 \n\t" 5687 "mul r11, r18 \n\t" 5688 "add r24, r0 \n\t" 5689 "adc r22, r1 \n\t" 5690 "adc r23, r25 \n\t" 5691 "mul r2, r17 \n\t" 5692 "add r24, r0 \n\t" 5693 "adc r22, r1 \n\t" 5694 "adc r23, r25 \n\t" 5695 "mul r3, r16 \n\t" 5696 "add r24, r0 \n\t" 5697 "adc r22, r1 \n\t" 5698 "adc r23, r25 \n\t" 5699 "mul r4, r15 \n\t" 5700 "add r24, r0 \n\t" 5701 "adc r22, r1 \n\t" 5702 "adc r23, r25 \n\t" 5703 "mul r5, r14 \n\t" 5704 "add r24, r0 \n\t" 5705 "adc r22, r1 \n\t" 5706 "adc r23, r25 \n\t" 5707 "mul r6, r13 \n\t" 5708 "add r24, r0 \n\t" 5709 "adc r22, r1 \n\t" 5710 "adc r23, r25 \n\t" 5711 "mul r7, r12 \n\t" 5712 "add r24, r0 \n\t" 5713 "adc r22, r1 \n\t" 5714 "adc r23, r25 \n\t" 5715 "ld r0, z \n\t" 5716 "add r24, r0 \n\t" 5717 "adc r22, r25 \n\t" 5718 "adc r23, r25 \n\t" 5719 "st z+, r24 \n\t" 5720 5721 "ld r8, x+ \n\t" 5722 "ldi r24, 0 \n\t" 5723 "mul r9, r21 \n\t" 5724 "add r22, r0 \n\t" 5725 "adc r23, r1 \n\t" 5726 "adc r24, r25 \n\t" 5727 "mul r10, r20 \n\t" 5728 "add r22, r0 \n\t" 5729 "adc r23, r1 \n\t" 5730 "adc r24, r25 \n\t" 5731 "mul r11, r19 \n\t" 5732 "add r22, r0 \n\t" 5733 "adc r23, r1 \n\t" 5734 "adc r24, r25 \n\t" 5735 "mul r2, r18 \n\t" 5736 "add r22, r0 \n\t" 5737 "adc r23, r1 \n\t" 5738 "adc r24, r25 \n\t" 5739 "mul r3, r17 \n\t" 5740 "add r22, r0 \n\t" 5741 "adc r23, r1 \n\t" 5742 "adc r24, r25 \n\t" 5743 "mul r4, r16 \n\t" 5744 "add r22, r0 \n\t" 5745 "adc r23, r1 \n\t" 5746 "adc r24, r25 \n\t" 5747 "mul r5, r15 \n\t" 5748 "add r22, r0 \n\t" 5749 "adc r23, r1 \n\t" 5750 "adc r24, r25 \n\t" 5751 "mul r6, r14 \n\t" 5752 "add r22, r0 \n\t" 5753 "adc r23, r1 \n\t" 5754 "adc r24, r25 \n\t" 5755 "mul r7, r13 \n\t" 5756 "add r22, r0 \n\t" 5757 "adc r23, r1 \n\t" 5758 "adc r24, r25 \n\t" 5759 "mul r8, r12 \n\t" 5760 "add r22, r0 \n\t" 5761 "adc r23, r1 \n\t" 5762 "adc r24, r25 \n\t" 5763 "ld r0, z \n\t" 5764 "add r22, r0 \n\t" 5765 "adc r23, r25 \n\t" 5766 "adc r24, r25 \n\t" 5767 "st z+, r22 \n\t" 5768 5769 "ld r9, x+ \n\t" 5770 "ldi r22, 0 \n\t" 5771 "mul r10, r21 \n\t" 5772 "add r23, r0 \n\t" 5773 "adc r24, r1 \n\t" 5774 "adc r22, r25 \n\t" 5775 "mul r11, r20 \n\t" 5776 "add r23, r0 \n\t" 5777 "adc r24, r1 \n\t" 5778 "adc r22, r25 \n\t" 5779 "mul r2, r19 \n\t" 5780 "add r23, r0 \n\t" 5781 "adc r24, r1 \n\t" 5782 "adc r22, r25 \n\t" 5783 "mul r3, r18 \n\t" 5784 "add r23, r0 \n\t" 5785 "adc r24, r1 \n\t" 5786 "adc r22, r25 \n\t" 5787 "mul r4, r17 \n\t" 5788 "add r23, r0 \n\t" 5789 "adc r24, r1 \n\t" 5790 "adc r22, r25 \n\t" 5791 "mul r5, r16 \n\t" 5792 "add r23, r0 \n\t" 5793 "adc r24, r1 \n\t" 5794 "adc r22, r25 \n\t" 5795 "mul r6, r15 \n\t" 5796 "add r23, r0 \n\t" 5797 "adc r24, r1 \n\t" 5798 "adc r22, r25 \n\t" 5799 "mul r7, r14 \n\t" 5800 "add r23, r0 \n\t" 5801 "adc r24, r1 \n\t" 5802 "adc r22, r25 \n\t" 5803 "mul r8, r13 \n\t" 5804 "add r23, r0 \n\t" 5805 "adc r24, r1 \n\t" 5806 "adc r22, r25 \n\t" 5807 "mul r9, r12 \n\t" 5808 "add r23, r0 \n\t" 5809 "adc r24, r1 \n\t" 5810 "adc r22, r25 \n\t" 5811 "ld r0, z \n\t" 5812 "add r23, r0 \n\t" 5813 "adc r24, r25 \n\t" 5814 "adc r22, r25 \n\t" 5815 "st z+, r23 \n\t" 5816 5817 "ld r12, y+ \n\t" 5818 "ldi r23, 0 \n\t" 5819 "mul r10, r12 \n\t" 5820 "add r24, r0 \n\t" 5821 "adc r22, r1 \n\t" 5822 "adc r23, r25 \n\t" 5823 "mul r11, r21 \n\t" 5824 "add r24, r0 \n\t" 5825 "adc r22, r1 \n\t" 5826 "adc r23, r25 \n\t" 5827 "mul r2, r20 \n\t" 5828 "add r24, r0 \n\t" 5829 "adc r22, r1 \n\t" 5830 "adc r23, r25 \n\t" 5831 "mul r3, r19 \n\t" 5832 "add r24, r0 \n\t" 5833 "adc r22, r1 \n\t" 5834 "adc r23, r25 \n\t" 5835 "mul r4, r18 \n\t" 5836 "add r24, r0 \n\t" 5837 "adc r22, r1 \n\t" 5838 "adc r23, r25 \n\t" 5839 "mul r5, r17 \n\t" 5840 "add r24, r0 \n\t" 5841 "adc r22, r1 \n\t" 5842 "adc r23, r25 \n\t" 5843 "mul r6, r16 \n\t" 5844 "add r24, r0 \n\t" 5845 "adc r22, r1 \n\t" 5846 "adc r23, r25 \n\t" 5847 "mul r7, r15 \n\t" 5848 "add r24, r0 \n\t" 5849 "adc r22, r1 \n\t" 5850 "adc r23, r25 \n\t" 5851 "mul r8, r14 \n\t" 5852 "add r24, r0 \n\t" 5853 "adc r22, r1 \n\t" 5854 "adc r23, r25 \n\t" 5855 "mul r9, r13 \n\t" 5856 "add r24, r0 \n\t" 5857 "adc r22, r1 \n\t" 5858 "adc r23, r25 \n\t" 5859 "ld r0, z \n\t" 5860 "add r24, r0 \n\t" 5861 "adc r22, r25 \n\t" 5862 "adc r23, r25 \n\t" 5863 "st z+, r24 \n\t" 5864 5865 "ld r13, y+ \n\t" 5866 "ldi r24, 0 \n\t" 5867 "mul r10, r13 \n\t" 5868 "add r22, r0 \n\t" 5869 "adc r23, r1 \n\t" 5870 "adc r24, r25 \n\t" 5871 "mul r11, r12 \n\t" 5872 "add r22, r0 \n\t" 5873 "adc r23, r1 \n\t" 5874 "adc r24, r25 \n\t" 5875 "mul r2, r21 \n\t" 5876 "add r22, r0 \n\t" 5877 "adc r23, r1 \n\t" 5878 "adc r24, r25 \n\t" 5879 "mul r3, r20 \n\t" 5880 "add r22, r0 \n\t" 5881 "adc r23, r1 \n\t" 5882 "adc r24, r25 \n\t" 5883 "mul r4, r19 \n\t" 5884 "add r22, r0 \n\t" 5885 "adc r23, r1 \n\t" 5886 "adc r24, r25 \n\t" 5887 "mul r5, r18 \n\t" 5888 "add r22, r0 \n\t" 5889 "adc r23, r1 \n\t" 5890 "adc r24, r25 \n\t" 5891 "mul r6, r17 \n\t" 5892 "add r22, r0 \n\t" 5893 "adc r23, r1 \n\t" 5894 "adc r24, r25 \n\t" 5895 "mul r7, r16 \n\t" 5896 "add r22, r0 \n\t" 5897 "adc r23, r1 \n\t" 5898 "adc r24, r25 \n\t" 5899 "mul r8, r15 \n\t" 5900 "add r22, r0 \n\t" 5901 "adc r23, r1 \n\t" 5902 "adc r24, r25 \n\t" 5903 "mul r9, r14 \n\t" 5904 "add r22, r0 \n\t" 5905 "adc r23, r1 \n\t" 5906 "adc r24, r25 \n\t" 5907 "ld r0, z \n\t" 5908 "add r22, r0 \n\t" 5909 "adc r23, r25 \n\t" 5910 "adc r24, r25 \n\t" 5911 "st z+, r22 \n\t" 5912 5913 "ld r14, y+ \n\t" 5914 "ldi r22, 0 \n\t" 5915 "mul r10, r14 \n\t" 5916 "add r23, r0 \n\t" 5917 "adc r24, r1 \n\t" 5918 "adc r22, r25 \n\t" 5919 "mul r11, r13 \n\t" 5920 "add r23, r0 \n\t" 5921 "adc r24, r1 \n\t" 5922 "adc r22, r25 \n\t" 5923 "mul r2, r12 \n\t" 5924 "add r23, r0 \n\t" 5925 "adc r24, r1 \n\t" 5926 "adc r22, r25 \n\t" 5927 "mul r3, r21 \n\t" 5928 "add r23, r0 \n\t" 5929 "adc r24, r1 \n\t" 5930 "adc r22, r25 \n\t" 5931 "mul r4, r20 \n\t" 5932 "add r23, r0 \n\t" 5933 "adc r24, r1 \n\t" 5934 "adc r22, r25 \n\t" 5935 "mul r5, r19 \n\t" 5936 "add r23, r0 \n\t" 5937 "adc r24, r1 \n\t" 5938 "adc r22, r25 \n\t" 5939 "mul r6, r18 \n\t" 5940 "add r23, r0 \n\t" 5941 "adc r24, r1 \n\t" 5942 "adc r22, r25 \n\t" 5943 "mul r7, r17 \n\t" 5944 "add r23, r0 \n\t" 5945 "adc r24, r1 \n\t" 5946 "adc r22, r25 \n\t" 5947 "mul r8, r16 \n\t" 5948 "add r23, r0 \n\t" 5949 "adc r24, r1 \n\t" 5950 "adc r22, r25 \n\t" 5951 "mul r9, r15 \n\t" 5952 "add r23, r0 \n\t" 5953 "adc r24, r1 \n\t" 5954 "adc r22, r25 \n\t" 5955 "ld r0, z \n\t" 5956 "add r23, r0 \n\t" 5957 "adc r24, r25 \n\t" 5958 "adc r22, r25 \n\t" 5959 "st z+, r23 \n\t" 5960 5961 "ld r15, y+ \n\t" 5962 "ldi r23, 0 \n\t" 5963 "mul r10, r15 \n\t" 5964 "add r24, r0 \n\t" 5965 "adc r22, r1 \n\t" 5966 "adc r23, r25 \n\t" 5967 "mul r11, r14 \n\t" 5968 "add r24, r0 \n\t" 5969 "adc r22, r1 \n\t" 5970 "adc r23, r25 \n\t" 5971 "mul r2, r13 \n\t" 5972 "add r24, r0 \n\t" 5973 "adc r22, r1 \n\t" 5974 "adc r23, r25 \n\t" 5975 "mul r3, r12 \n\t" 5976 "add r24, r0 \n\t" 5977 "adc r22, r1 \n\t" 5978 "adc r23, r25 \n\t" 5979 "mul r4, r21 \n\t" 5980 "add r24, r0 \n\t" 5981 "adc r22, r1 \n\t" 5982 "adc r23, r25 \n\t" 5983 "mul r5, r20 \n\t" 5984 "add r24, r0 \n\t" 5985 "adc r22, r1 \n\t" 5986 "adc r23, r25 \n\t" 5987 "mul r6, r19 \n\t" 5988 "add r24, r0 \n\t" 5989 "adc r22, r1 \n\t" 5990 "adc r23, r25 \n\t" 5991 "mul r7, r18 \n\t" 5992 "add r24, r0 \n\t" 5993 "adc r22, r1 \n\t" 5994 "adc r23, r25 \n\t" 5995 "mul r8, r17 \n\t" 5996 "add r24, r0 \n\t" 5997 "adc r22, r1 \n\t" 5998 "adc r23, r25 \n\t" 5999 "mul r9, r16 \n\t" 6000 "add r24, r0 \n\t" 6001 "adc r22, r1 \n\t" 6002 "adc r23, r25 \n\t" 6003 "ld r0, z \n\t" 6004 "add r24, r0 \n\t" 6005 "adc r22, r25 \n\t" 6006 "adc r23, r25 \n\t" 6007 "st z+, r24 \n\t" 6008 6009 "ld r16, y+ \n\t" 6010 "ldi r24, 0 \n\t" 6011 "mul r10, r16 \n\t" 6012 "add r22, r0 \n\t" 6013 "adc r23, r1 \n\t" 6014 "adc r24, r25 \n\t" 6015 "mul r11, r15 \n\t" 6016 "add r22, r0 \n\t" 6017 "adc r23, r1 \n\t" 6018 "adc r24, r25 \n\t" 6019 "mul r2, r14 \n\t" 6020 "add r22, r0 \n\t" 6021 "adc r23, r1 \n\t" 6022 "adc r24, r25 \n\t" 6023 "mul r3, r13 \n\t" 6024 "add r22, r0 \n\t" 6025 "adc r23, r1 \n\t" 6026 "adc r24, r25 \n\t" 6027 "mul r4, r12 \n\t" 6028 "add r22, r0 \n\t" 6029 "adc r23, r1 \n\t" 6030 "adc r24, r25 \n\t" 6031 "mul r5, r21 \n\t" 6032 "add r22, r0 \n\t" 6033 "adc r23, r1 \n\t" 6034 "adc r24, r25 \n\t" 6035 "mul r6, r20 \n\t" 6036 "add r22, r0 \n\t" 6037 "adc r23, r1 \n\t" 6038 "adc r24, r25 \n\t" 6039 "mul r7, r19 \n\t" 6040 "add r22, r0 \n\t" 6041 "adc r23, r1 \n\t" 6042 "adc r24, r25 \n\t" 6043 "mul r8, r18 \n\t" 6044 "add r22, r0 \n\t" 6045 "adc r23, r1 \n\t" 6046 "adc r24, r25 \n\t" 6047 "mul r9, r17 \n\t" 6048 "add r22, r0 \n\t" 6049 "adc r23, r1 \n\t" 6050 "adc r24, r25 \n\t" 6051 "ld r0, z \n\t" 6052 "add r22, r0 \n\t" 6053 "adc r23, r25 \n\t" 6054 "adc r24, r25 \n\t" 6055 "st z+, r22 \n\t" 6056 6057 "ld r17, y+ \n\t" 6058 "ldi r22, 0 \n\t" 6059 "mul r10, r17 \n\t" 6060 "add r23, r0 \n\t" 6061 "adc r24, r1 \n\t" 6062 "adc r22, r25 \n\t" 6063 "mul r11, r16 \n\t" 6064 "add r23, r0 \n\t" 6065 "adc r24, r1 \n\t" 6066 "adc r22, r25 \n\t" 6067 "mul r2, r15 \n\t" 6068 "add r23, r0 \n\t" 6069 "adc r24, r1 \n\t" 6070 "adc r22, r25 \n\t" 6071 "mul r3, r14 \n\t" 6072 "add r23, r0 \n\t" 6073 "adc r24, r1 \n\t" 6074 "adc r22, r25 \n\t" 6075 "mul r4, r13 \n\t" 6076 "add r23, r0 \n\t" 6077 "adc r24, r1 \n\t" 6078 "adc r22, r25 \n\t" 6079 "mul r5, r12 \n\t" 6080 "add r23, r0 \n\t" 6081 "adc r24, r1 \n\t" 6082 "adc r22, r25 \n\t" 6083 "mul r6, r21 \n\t" 6084 "add r23, r0 \n\t" 6085 "adc r24, r1 \n\t" 6086 "adc r22, r25 \n\t" 6087 "mul r7, r20 \n\t" 6088 "add r23, r0 \n\t" 6089 "adc r24, r1 \n\t" 6090 "adc r22, r25 \n\t" 6091 "mul r8, r19 \n\t" 6092 "add r23, r0 \n\t" 6093 "adc r24, r1 \n\t" 6094 "adc r22, r25 \n\t" 6095 "mul r9, r18 \n\t" 6096 "add r23, r0 \n\t" 6097 "adc r24, r1 \n\t" 6098 "adc r22, r25 \n\t" 6099 "ld r0, z \n\t" 6100 "add r23, r0 \n\t" 6101 "adc r24, r25 \n\t" 6102 "adc r22, r25 \n\t" 6103 "st z+, r23 \n\t" 6104 6105 "ld r18, y+ \n\t" 6106 "ldi r23, 0 \n\t" 6107 "mul r10, r18 \n\t" 6108 "add r24, r0 \n\t" 6109 "adc r22, r1 \n\t" 6110 "adc r23, r25 \n\t" 6111 "mul r11, r17 \n\t" 6112 "add r24, r0 \n\t" 6113 "adc r22, r1 \n\t" 6114 "adc r23, r25 \n\t" 6115 "mul r2, r16 \n\t" 6116 "add r24, r0 \n\t" 6117 "adc r22, r1 \n\t" 6118 "adc r23, r25 \n\t" 6119 "mul r3, r15 \n\t" 6120 "add r24, r0 \n\t" 6121 "adc r22, r1 \n\t" 6122 "adc r23, r25 \n\t" 6123 "mul r4, r14 \n\t" 6124 "add r24, r0 \n\t" 6125 "adc r22, r1 \n\t" 6126 "adc r23, r25 \n\t" 6127 "mul r5, r13 \n\t" 6128 "add r24, r0 \n\t" 6129 "adc r22, r1 \n\t" 6130 "adc r23, r25 \n\t" 6131 "mul r6, r12 \n\t" 6132 "add r24, r0 \n\t" 6133 "adc r22, r1 \n\t" 6134 "adc r23, r25 \n\t" 6135 "mul r7, r21 \n\t" 6136 "add r24, r0 \n\t" 6137 "adc r22, r1 \n\t" 6138 "adc r23, r25 \n\t" 6139 "mul r8, r20 \n\t" 6140 "add r24, r0 \n\t" 6141 "adc r22, r1 \n\t" 6142 "adc r23, r25 \n\t" 6143 "mul r9, r19 \n\t" 6144 "add r24, r0 \n\t" 6145 "adc r22, r1 \n\t" 6146 "adc r23, r25 \n\t" 6147 "ld r0, z \n\t" 6148 "add r24, r0 \n\t" 6149 "adc r22, r25 \n\t" 6150 "adc r23, r25 \n\t" 6151 "st z+, r24 \n\t" 6152 6153 "ld r19, y+ \n\t" 6154 "ldi r24, 0 \n\t" 6155 "mul r10, r19 \n\t" 6156 "add r22, r0 \n\t" 6157 "adc r23, r1 \n\t" 6158 "adc r24, r25 \n\t" 6159 "mul r11, r18 \n\t" 6160 "add r22, r0 \n\t" 6161 "adc r23, r1 \n\t" 6162 "adc r24, r25 \n\t" 6163 "mul r2, r17 \n\t" 6164 "add r22, r0 \n\t" 6165 "adc r23, r1 \n\t" 6166 "adc r24, r25 \n\t" 6167 "mul r3, r16 \n\t" 6168 "add r22, r0 \n\t" 6169 "adc r23, r1 \n\t" 6170 "adc r24, r25 \n\t" 6171 "mul r4, r15 \n\t" 6172 "add r22, r0 \n\t" 6173 "adc r23, r1 \n\t" 6174 "adc r24, r25 \n\t" 6175 "mul r5, r14 \n\t" 6176 "add r22, r0 \n\t" 6177 "adc r23, r1 \n\t" 6178 "adc r24, r25 \n\t" 6179 "mul r6, r13 \n\t" 6180 "add r22, r0 \n\t" 6181 "adc r23, r1 \n\t" 6182 "adc r24, r25 \n\t" 6183 "mul r7, r12 \n\t" 6184 "add r22, r0 \n\t" 6185 "adc r23, r1 \n\t" 6186 "adc r24, r25 \n\t" 6187 "mul r8, r21 \n\t" 6188 "add r22, r0 \n\t" 6189 "adc r23, r1 \n\t" 6190 "adc r24, r25 \n\t" 6191 "mul r9, r20 \n\t" 6192 "add r22, r0 \n\t" 6193 "adc r23, r1 \n\t" 6194 "adc r24, r25 \n\t" 6195 "ld r0, z \n\t" 6196 "add r22, r0 \n\t" 6197 "adc r23, r25 \n\t" 6198 "adc r24, r25 \n\t" 6199 "st z+, r22 \n\t" 6200 6201 "ldi r22, 0 \n\t" 6202 "mul r11, r19 \n\t" 6203 "add r23, r0 \n\t" 6204 "adc r24, r1 \n\t" 6205 "adc r22, r25 \n\t" 6206 "mul r2, r18 \n\t" 6207 "add r23, r0 \n\t" 6208 "adc r24, r1 \n\t" 6209 "adc r22, r25 \n\t" 6210 "mul r3, r17 \n\t" 6211 "add r23, r0 \n\t" 6212 "adc r24, r1 \n\t" 6213 "adc r22, r25 \n\t" 6214 "mul r4, r16 \n\t" 6215 "add r23, r0 \n\t" 6216 "adc r24, r1 \n\t" 6217 "adc r22, r25 \n\t" 6218 "mul r5, r15 \n\t" 6219 "add r23, r0 \n\t" 6220 "adc r24, r1 \n\t" 6221 "adc r22, r25 \n\t" 6222 "mul r6, r14 \n\t" 6223 "add r23, r0 \n\t" 6224 "adc r24, r1 \n\t" 6225 "adc r22, r25 \n\t" 6226 "mul r7, r13 \n\t" 6227 "add r23, r0 \n\t" 6228 "adc r24, r1 \n\t" 6229 "adc r22, r25 \n\t" 6230 "mul r8, r12 \n\t" 6231 "add r23, r0 \n\t" 6232 "adc r24, r1 \n\t" 6233 "adc r22, r25 \n\t" 6234 "mul r9, r21 \n\t" 6235 "add r23, r0 \n\t" 6236 "adc r24, r1 \n\t" 6237 "adc r22, r25 \n\t" 6238 "st z+, r23 \n\t" 6239 6240 "ldi r23, 0 \n\t" 6241 "mul r2, r19 \n\t" 6242 "add r24, r0 \n\t" 6243 "adc r22, r1 \n\t" 6244 "adc r23, r25 \n\t" 6245 "mul r3, r18 \n\t" 6246 "add r24, r0 \n\t" 6247 "adc r22, r1 \n\t" 6248 "adc r23, r25 \n\t" 6249 "mul r4, r17 \n\t" 6250 "add r24, r0 \n\t" 6251 "adc r22, r1 \n\t" 6252 "adc r23, r25 \n\t" 6253 "mul r5, r16 \n\t" 6254 "add r24, r0 \n\t" 6255 "adc r22, r1 \n\t" 6256 "adc r23, r25 \n\t" 6257 "mul r6, r15 \n\t" 6258 "add r24, r0 \n\t" 6259 "adc r22, r1 \n\t" 6260 "adc r23, r25 \n\t" 6261 "mul r7, r14 \n\t" 6262 "add r24, r0 \n\t" 6263 "adc r22, r1 \n\t" 6264 "adc r23, r25 \n\t" 6265 "mul r8, r13 \n\t" 6266 "add r24, r0 \n\t" 6267 "adc r22, r1 \n\t" 6268 "adc r23, r25 \n\t" 6269 "mul r9, r12 \n\t" 6270 "add r24, r0 \n\t" 6271 "adc r22, r1 \n\t" 6272 "adc r23, r25 \n\t" 6273 "st z+, r24 \n\t" 6274 6275 "ldi r24, 0 \n\t" 6276 "mul r3, r19 \n\t" 6277 "add r22, r0 \n\t" 6278 "adc r23, r1 \n\t" 6279 "adc r24, r25 \n\t" 6280 "mul r4, r18 \n\t" 6281 "add r22, r0 \n\t" 6282 "adc r23, r1 \n\t" 6283 "adc r24, r25 \n\t" 6284 "mul r5, r17 \n\t" 6285 "add r22, r0 \n\t" 6286 "adc r23, r1 \n\t" 6287 "adc r24, r25 \n\t" 6288 "mul r6, r16 \n\t" 6289 "add r22, r0 \n\t" 6290 "adc r23, r1 \n\t" 6291 "adc r24, r25 \n\t" 6292 "mul r7, r15 \n\t" 6293 "add r22, r0 \n\t" 6294 "adc r23, r1 \n\t" 6295 "adc r24, r25 \n\t" 6296 "mul r8, r14 \n\t" 6297 "add r22, r0 \n\t" 6298 "adc r23, r1 \n\t" 6299 "adc r24, r25 \n\t" 6300 "mul r9, r13 \n\t" 6301 "add r22, r0 \n\t" 6302 "adc r23, r1 \n\t" 6303 "adc r24, r25 \n\t" 6304 "st z+, r22 \n\t" 6305 6306 "ldi r22, 0 \n\t" 6307 "mul r4, r19 \n\t" 6308 "add r23, r0 \n\t" 6309 "adc r24, r1 \n\t" 6310 "adc r22, r25 \n\t" 6311 "mul r5, r18 \n\t" 6312 "add r23, r0 \n\t" 6313 "adc r24, r1 \n\t" 6314 "adc r22, r25 \n\t" 6315 "mul r6, r17 \n\t" 6316 "add r23, r0 \n\t" 6317 "adc r24, r1 \n\t" 6318 "adc r22, r25 \n\t" 6319 "mul r7, r16 \n\t" 6320 "add r23, r0 \n\t" 6321 "adc r24, r1 \n\t" 6322 "adc r22, r25 \n\t" 6323 "mul r8, r15 \n\t" 6324 "add r23, r0 \n\t" 6325 "adc r24, r1 \n\t" 6326 "adc r22, r25 \n\t" 6327 "mul r9, r14 \n\t" 6328 "add r23, r0 \n\t" 6329 "adc r24, r1 \n\t" 6330 "adc r22, r25 \n\t" 6331 "st z+, r23 \n\t" 6332 6333 "ldi r23, 0 \n\t" 6334 "mul r5, r19 \n\t" 6335 "add r24, r0 \n\t" 6336 "adc r22, r1 \n\t" 6337 "adc r23, r25 \n\t" 6338 "mul r6, r18 \n\t" 6339 "add r24, r0 \n\t" 6340 "adc r22, r1 \n\t" 6341 "adc r23, r25 \n\t" 6342 "mul r7, r17 \n\t" 6343 "add r24, r0 \n\t" 6344 "adc r22, r1 \n\t" 6345 "adc r23, r25 \n\t" 6346 "mul r8, r16 \n\t" 6347 "add r24, r0 \n\t" 6348 "adc r22, r1 \n\t" 6349 "adc r23, r25 \n\t" 6350 "mul r9, r15 \n\t" 6351 "add r24, r0 \n\t" 6352 "adc r22, r1 \n\t" 6353 "adc r23, r25 \n\t" 6354 "st z+, r24 \n\t" 6355 6356 "ldi r24, 0 \n\t" 6357 "mul r6, r19 \n\t" 6358 "add r22, r0 \n\t" 6359 "adc r23, r1 \n\t" 6360 "adc r24, r25 \n\t" 6361 "mul r7, r18 \n\t" 6362 "add r22, r0 \n\t" 6363 "adc r23, r1 \n\t" 6364 "adc r24, r25 \n\t" 6365 "mul r8, r17 \n\t" 6366 "add r22, r0 \n\t" 6367 "adc r23, r1 \n\t" 6368 "adc r24, r25 \n\t" 6369 "mul r9, r16 \n\t" 6370 "add r22, r0 \n\t" 6371 "adc r23, r1 \n\t" 6372 "adc r24, r25 \n\t" 6373 "st z+, r22 \n\t" 6374 6375 "ldi r22, 0 \n\t" 6376 "mul r7, r19 \n\t" 6377 "add r23, r0 \n\t" 6378 "adc r24, r1 \n\t" 6379 "adc r22, r25 \n\t" 6380 "mul r8, r18 \n\t" 6381 "add r23, r0 \n\t" 6382 "adc r24, r1 \n\t" 6383 "adc r22, r25 \n\t" 6384 "mul r9, r17 \n\t" 6385 "add r23, r0 \n\t" 6386 "adc r24, r1 \n\t" 6387 "adc r22, r25 \n\t" 6388 "st z+, r23 \n\t" 6389 6390 "ldi r23, 0 \n\t" 6391 "mul r8, r19 \n\t" 6392 "add r24, r0 \n\t" 6393 "adc r22, r1 \n\t" 6394 "adc r23, r25 \n\t" 6395 "mul r9, r18 \n\t" 6396 "add r24, r0 \n\t" 6397 "adc r22, r1 \n\t" 6398 "adc r23, r25 \n\t" 6399 "st z+, r24 \n\t" 6400 6401 "mul r9, r19 \n\t" 6402 "add r22, r0 \n\t" 6403 "adc r23, r1 \n\t" 6404 "st z+, r22 \n\t" 6405 "st z+, r23 \n\t" 6406 6407 "sbiw r30, 46 \n\t" 6408 "sbiw r28, 28 \n\t" 6409 "sbiw r26, 18 \n\t" 6410 "ld r2, x+ \n\t" 6411 "ld r12, y+ \n\t" 6412 "ld r3, x+ \n\t" 6413 "ld r13, y+ \n\t" 6414 "ld r4, x+ \n\t" 6415 "ld r14, y+ \n\t" 6416 "ld r5, x+ \n\t" 6417 "ld r15, y+ \n\t" 6418 "ld r6, x+ \n\t" 6419 "ld r16, y+ \n\t" 6420 "ld r7, x+ \n\t" 6421 "ld r17, y+ \n\t" 6422 "ld r8, x+ \n\t" 6423 "ld r18, y+ \n\t" 6424 "ld r9, x+ \n\t" 6425 "ld r19, y+ \n\t" 6426 "ld r10, x+ \n\t" 6427 "ld r20, y+ \n\t" 6428 "ld r11, x+ \n\t" 6429 "ld r21, y+ \n\t" 6430 6431 "ldi r23, 0 \n\t" 6432 "mul r2, r12 \n\t" 6433 "st z+, r0 \n\t" 6434 "mov r22, r1 \n\t" 6435 6436 "ldi r24, 0 \n\t" 6437 "mul r2, r13 \n\t" 6438 "add r22, r0 \n\t" 6439 "adc r23, r1 \n\t" 6440 "mul r3, r12 \n\t" 6441 "add r22, r0 \n\t" 6442 "adc r23, r1 \n\t" 6443 "adc r24, r25 \n\t" 6444 "st z+, r22 \n\t" 6445 6446 "ldi r22, 0 \n\t" 6447 "mul r2, r14 \n\t" 6448 "add r23, r0 \n\t" 6449 "adc r24, r1 \n\t" 6450 "adc r22, r25 \n\t" 6451 "mul r3, r13 \n\t" 6452 "add r23, r0 \n\t" 6453 "adc r24, r1 \n\t" 6454 "adc r22, r25 \n\t" 6455 "mul r4, r12 \n\t" 6456 "add r23, r0 \n\t" 6457 "adc r24, r1 \n\t" 6458 "adc r22, r25 \n\t" 6459 "st z+, r23 \n\t" 6460 6461 "ldi r23, 0 \n\t" 6462 "mul r2, r15 \n\t" 6463 "add r24, r0 \n\t" 6464 "adc r22, r1 \n\t" 6465 "adc r23, r25 \n\t" 6466 "mul r3, r14 \n\t" 6467 "add r24, r0 \n\t" 6468 "adc r22, r1 \n\t" 6469 "adc r23, r25 \n\t" 6470 "mul r4, r13 \n\t" 6471 "add r24, r0 \n\t" 6472 "adc r22, r1 \n\t" 6473 "adc r23, r25 \n\t" 6474 "mul r5, r12 \n\t" 6475 "add r24, r0 \n\t" 6476 "adc r22, r1 \n\t" 6477 "adc r23, r25 \n\t" 6478 "st z+, r24 \n\t" 6479 6480 "ldi r24, 0 \n\t" 6481 "mul r2, r16 \n\t" 6482 "add r22, r0 \n\t" 6483 "adc r23, r1 \n\t" 6484 "adc r24, r25 \n\t" 6485 "mul r3, r15 \n\t" 6486 "add r22, r0 \n\t" 6487 "adc r23, r1 \n\t" 6488 "adc r24, r25 \n\t" 6489 "mul r4, r14 \n\t" 6490 "add r22, r0 \n\t" 6491 "adc r23, r1 \n\t" 6492 "adc r24, r25 \n\t" 6493 "mul r5, r13 \n\t" 6494 "add r22, r0 \n\t" 6495 "adc r23, r1 \n\t" 6496 "adc r24, r25 \n\t" 6497 "mul r6, r12 \n\t" 6498 "add r22, r0 \n\t" 6499 "adc r23, r1 \n\t" 6500 "adc r24, r25 \n\t" 6501 "st z+, r22 \n\t" 6502 6503 "ldi r22, 0 \n\t" 6504 "mul r2, r17 \n\t" 6505 "add r23, r0 \n\t" 6506 "adc r24, r1 \n\t" 6507 "adc r22, r25 \n\t" 6508 "mul r3, r16 \n\t" 6509 "add r23, r0 \n\t" 6510 "adc r24, r1 \n\t" 6511 "adc r22, r25 \n\t" 6512 "mul r4, r15 \n\t" 6513 "add r23, r0 \n\t" 6514 "adc r24, r1 \n\t" 6515 "adc r22, r25 \n\t" 6516 "mul r5, r14 \n\t" 6517 "add r23, r0 \n\t" 6518 "adc r24, r1 \n\t" 6519 "adc r22, r25 \n\t" 6520 "mul r6, r13 \n\t" 6521 "add r23, r0 \n\t" 6522 "adc r24, r1 \n\t" 6523 "adc r22, r25 \n\t" 6524 "mul r7, r12 \n\t" 6525 "add r23, r0 \n\t" 6526 "adc r24, r1 \n\t" 6527 "adc r22, r25 \n\t" 6528 "st z+, r23 \n\t" 6529 6530 "ldi r23, 0 \n\t" 6531 "mul r2, r18 \n\t" 6532 "add r24, r0 \n\t" 6533 "adc r22, r1 \n\t" 6534 "adc r23, r25 \n\t" 6535 "mul r3, r17 \n\t" 6536 "add r24, r0 \n\t" 6537 "adc r22, r1 \n\t" 6538 "adc r23, r25 \n\t" 6539 "mul r4, r16 \n\t" 6540 "add r24, r0 \n\t" 6541 "adc r22, r1 \n\t" 6542 "adc r23, r25 \n\t" 6543 "mul r5, r15 \n\t" 6544 "add r24, r0 \n\t" 6545 "adc r22, r1 \n\t" 6546 "adc r23, r25 \n\t" 6547 "mul r6, r14 \n\t" 6548 "add r24, r0 \n\t" 6549 "adc r22, r1 \n\t" 6550 "adc r23, r25 \n\t" 6551 "mul r7, r13 \n\t" 6552 "add r24, r0 \n\t" 6553 "adc r22, r1 \n\t" 6554 "adc r23, r25 \n\t" 6555 "mul r8, r12 \n\t" 6556 "add r24, r0 \n\t" 6557 "adc r22, r1 \n\t" 6558 "adc r23, r25 \n\t" 6559 "st z+, r24 \n\t" 6560 6561 "ldi r24, 0 \n\t" 6562 "mul r2, r19 \n\t" 6563 "add r22, r0 \n\t" 6564 "adc r23, r1 \n\t" 6565 "adc r24, r25 \n\t" 6566 "mul r3, r18 \n\t" 6567 "add r22, r0 \n\t" 6568 "adc r23, r1 \n\t" 6569 "adc r24, r25 \n\t" 6570 "mul r4, r17 \n\t" 6571 "add r22, r0 \n\t" 6572 "adc r23, r1 \n\t" 6573 "adc r24, r25 \n\t" 6574 "mul r5, r16 \n\t" 6575 "add r22, r0 \n\t" 6576 "adc r23, r1 \n\t" 6577 "adc r24, r25 \n\t" 6578 "mul r6, r15 \n\t" 6579 "add r22, r0 \n\t" 6580 "adc r23, r1 \n\t" 6581 "adc r24, r25 \n\t" 6582 "mul r7, r14 \n\t" 6583 "add r22, r0 \n\t" 6584 "adc r23, r1 \n\t" 6585 "adc r24, r25 \n\t" 6586 "mul r8, r13 \n\t" 6587 "add r22, r0 \n\t" 6588 "adc r23, r1 \n\t" 6589 "adc r24, r25 \n\t" 6590 "mul r9, r12 \n\t" 6591 "add r22, r0 \n\t" 6592 "adc r23, r1 \n\t" 6593 "adc r24, r25 \n\t" 6594 "st z+, r22 \n\t" 6595 6596 "ldi r22, 0 \n\t" 6597 "mul r2, r20 \n\t" 6598 "add r23, r0 \n\t" 6599 "adc r24, r1 \n\t" 6600 "adc r22, r25 \n\t" 6601 "mul r3, r19 \n\t" 6602 "add r23, r0 \n\t" 6603 "adc r24, r1 \n\t" 6604 "adc r22, r25 \n\t" 6605 "mul r4, r18 \n\t" 6606 "add r23, r0 \n\t" 6607 "adc r24, r1 \n\t" 6608 "adc r22, r25 \n\t" 6609 "mul r5, r17 \n\t" 6610 "add r23, r0 \n\t" 6611 "adc r24, r1 \n\t" 6612 "adc r22, r25 \n\t" 6613 "mul r6, r16 \n\t" 6614 "add r23, r0 \n\t" 6615 "adc r24, r1 \n\t" 6616 "adc r22, r25 \n\t" 6617 "mul r7, r15 \n\t" 6618 "add r23, r0 \n\t" 6619 "adc r24, r1 \n\t" 6620 "adc r22, r25 \n\t" 6621 "mul r8, r14 \n\t" 6622 "add r23, r0 \n\t" 6623 "adc r24, r1 \n\t" 6624 "adc r22, r25 \n\t" 6625 "mul r9, r13 \n\t" 6626 "add r23, r0 \n\t" 6627 "adc r24, r1 \n\t" 6628 "adc r22, r25 \n\t" 6629 "mul r10, r12 \n\t" 6630 "add r23, r0 \n\t" 6631 "adc r24, r1 \n\t" 6632 "adc r22, r25 \n\t" 6633 "st z+, r23 \n\t" 6634 6635 "ldi r23, 0 \n\t" 6636 "mul r2, r21 \n\t" 6637 "add r24, r0 \n\t" 6638 "adc r22, r1 \n\t" 6639 "adc r23, r25 \n\t" 6640 "mul r3, r20 \n\t" 6641 "add r24, r0 \n\t" 6642 "adc r22, r1 \n\t" 6643 "adc r23, r25 \n\t" 6644 "mul r4, r19 \n\t" 6645 "add r24, r0 \n\t" 6646 "adc r22, r1 \n\t" 6647 "adc r23, r25 \n\t" 6648 "mul r5, r18 \n\t" 6649 "add r24, r0 \n\t" 6650 "adc r22, r1 \n\t" 6651 "adc r23, r25 \n\t" 6652 "mul r6, r17 \n\t" 6653 "add r24, r0 \n\t" 6654 "adc r22, r1 \n\t" 6655 "adc r23, r25 \n\t" 6656 "mul r7, r16 \n\t" 6657 "add r24, r0 \n\t" 6658 "adc r22, r1 \n\t" 6659 "adc r23, r25 \n\t" 6660 "mul r8, r15 \n\t" 6661 "add r24, r0 \n\t" 6662 "adc r22, r1 \n\t" 6663 "adc r23, r25 \n\t" 6664 "mul r9, r14 \n\t" 6665 "add r24, r0 \n\t" 6666 "adc r22, r1 \n\t" 6667 "adc r23, r25 \n\t" 6668 "mul r10, r13 \n\t" 6669 "add r24, r0 \n\t" 6670 "adc r22, r1 \n\t" 6671 "adc r23, r25 \n\t" 6672 "mul r11, r12 \n\t" 6673 "add r24, r0 \n\t" 6674 "adc r22, r1 \n\t" 6675 "adc r23, r25 \n\t" 6676 "st z+, r24 \n\t" 6677 6678 "ld r2, x+ \n\t" 6679 "ldi r24, 0 \n\t" 6680 "mul r3, r21 \n\t" 6681 "add r22, r0 \n\t" 6682 "adc r23, r1 \n\t" 6683 "adc r24, r25 \n\t" 6684 "mul r4, r20 \n\t" 6685 "add r22, r0 \n\t" 6686 "adc r23, r1 \n\t" 6687 "adc r24, r25 \n\t" 6688 "mul r5, r19 \n\t" 6689 "add r22, r0 \n\t" 6690 "adc r23, r1 \n\t" 6691 "adc r24, r25 \n\t" 6692 "mul r6, r18 \n\t" 6693 "add r22, r0 \n\t" 6694 "adc r23, r1 \n\t" 6695 "adc r24, r25 \n\t" 6696 "mul r7, r17 \n\t" 6697 "add r22, r0 \n\t" 6698 "adc r23, r1 \n\t" 6699 "adc r24, r25 \n\t" 6700 "mul r8, r16 \n\t" 6701 "add r22, r0 \n\t" 6702 "adc r23, r1 \n\t" 6703 "adc r24, r25 \n\t" 6704 "mul r9, r15 \n\t" 6705 "add r22, r0 \n\t" 6706 "adc r23, r1 \n\t" 6707 "adc r24, r25 \n\t" 6708 "mul r10, r14 \n\t" 6709 "add r22, r0 \n\t" 6710 "adc r23, r1 \n\t" 6711 "adc r24, r25 \n\t" 6712 "mul r11, r13 \n\t" 6713 "add r22, r0 \n\t" 6714 "adc r23, r1 \n\t" 6715 "adc r24, r25 \n\t" 6716 "mul r2, r12 \n\t" 6717 "add r22, r0 \n\t" 6718 "adc r23, r1 \n\t" 6719 "adc r24, r25 \n\t" 6720 "ld r0, z \n\t" 6721 "add r22, r0 \n\t" 6722 "adc r23, r25 \n\t" 6723 "adc r24, r25 \n\t" 6724 "st z+, r22 \n\t" 6725 6726 "ld r3, x+ \n\t" 6727 "ldi r22, 0 \n\t" 6728 "mul r4, r21 \n\t" 6729 "add r23, r0 \n\t" 6730 "adc r24, r1 \n\t" 6731 "adc r22, r25 \n\t" 6732 "mul r5, r20 \n\t" 6733 "add r23, r0 \n\t" 6734 "adc r24, r1 \n\t" 6735 "adc r22, r25 \n\t" 6736 "mul r6, r19 \n\t" 6737 "add r23, r0 \n\t" 6738 "adc r24, r1 \n\t" 6739 "adc r22, r25 \n\t" 6740 "mul r7, r18 \n\t" 6741 "add r23, r0 \n\t" 6742 "adc r24, r1 \n\t" 6743 "adc r22, r25 \n\t" 6744 "mul r8, r17 \n\t" 6745 "add r23, r0 \n\t" 6746 "adc r24, r1 \n\t" 6747 "adc r22, r25 \n\t" 6748 "mul r9, r16 \n\t" 6749 "add r23, r0 \n\t" 6750 "adc r24, r1 \n\t" 6751 "adc r22, r25 \n\t" 6752 "mul r10, r15 \n\t" 6753 "add r23, r0 \n\t" 6754 "adc r24, r1 \n\t" 6755 "adc r22, r25 \n\t" 6756 "mul r11, r14 \n\t" 6757 "add r23, r0 \n\t" 6758 "adc r24, r1 \n\t" 6759 "adc r22, r25 \n\t" 6760 "mul r2, r13 \n\t" 6761 "add r23, r0 \n\t" 6762 "adc r24, r1 \n\t" 6763 "adc r22, r25 \n\t" 6764 "mul r3, r12 \n\t" 6765 "add r23, r0 \n\t" 6766 "adc r24, r1 \n\t" 6767 "adc r22, r25 \n\t" 6768 "ld r0, z \n\t" 6769 "add r23, r0 \n\t" 6770 "adc r24, r25 \n\t" 6771 "adc r22, r25 \n\t" 6772 "st z+, r23 \n\t" 6773 6774 "ld r4, x+ \n\t" 6775 "ldi r23, 0 \n\t" 6776 "mul r5, r21 \n\t" 6777 "add r24, r0 \n\t" 6778 "adc r22, r1 \n\t" 6779 "adc r23, r25 \n\t" 6780 "mul r6, r20 \n\t" 6781 "add r24, r0 \n\t" 6782 "adc r22, r1 \n\t" 6783 "adc r23, r25 \n\t" 6784 "mul r7, r19 \n\t" 6785 "add r24, r0 \n\t" 6786 "adc r22, r1 \n\t" 6787 "adc r23, r25 \n\t" 6788 "mul r8, r18 \n\t" 6789 "add r24, r0 \n\t" 6790 "adc r22, r1 \n\t" 6791 "adc r23, r25 \n\t" 6792 "mul r9, r17 \n\t" 6793 "add r24, r0 \n\t" 6794 "adc r22, r1 \n\t" 6795 "adc r23, r25 \n\t" 6796 "mul r10, r16 \n\t" 6797 "add r24, r0 \n\t" 6798 "adc r22, r1 \n\t" 6799 "adc r23, r25 \n\t" 6800 "mul r11, r15 \n\t" 6801 "add r24, r0 \n\t" 6802 "adc r22, r1 \n\t" 6803 "adc r23, r25 \n\t" 6804 "mul r2, r14 \n\t" 6805 "add r24, r0 \n\t" 6806 "adc r22, r1 \n\t" 6807 "adc r23, r25 \n\t" 6808 "mul r3, r13 \n\t" 6809 "add r24, r0 \n\t" 6810 "adc r22, r1 \n\t" 6811 "adc r23, r25 \n\t" 6812 "mul r4, r12 \n\t" 6813 "add r24, r0 \n\t" 6814 "adc r22, r1 \n\t" 6815 "adc r23, r25 \n\t" 6816 "ld r0, z \n\t" 6817 "add r24, r0 \n\t" 6818 "adc r22, r25 \n\t" 6819 "adc r23, r25 \n\t" 6820 "st z+, r24 \n\t" 6821 6822 "ld r5, x+ \n\t" 6823 "ldi r24, 0 \n\t" 6824 "mul r6, r21 \n\t" 6825 "add r22, r0 \n\t" 6826 "adc r23, r1 \n\t" 6827 "adc r24, r25 \n\t" 6828 "mul r7, r20 \n\t" 6829 "add r22, r0 \n\t" 6830 "adc r23, r1 \n\t" 6831 "adc r24, r25 \n\t" 6832 "mul r8, r19 \n\t" 6833 "add r22, r0 \n\t" 6834 "adc r23, r1 \n\t" 6835 "adc r24, r25 \n\t" 6836 "mul r9, r18 \n\t" 6837 "add r22, r0 \n\t" 6838 "adc r23, r1 \n\t" 6839 "adc r24, r25 \n\t" 6840 "mul r10, r17 \n\t" 6841 "add r22, r0 \n\t" 6842 "adc r23, r1 \n\t" 6843 "adc r24, r25 \n\t" 6844 "mul r11, r16 \n\t" 6845 "add r22, r0 \n\t" 6846 "adc r23, r1 \n\t" 6847 "adc r24, r25 \n\t" 6848 "mul r2, r15 \n\t" 6849 "add r22, r0 \n\t" 6850 "adc r23, r1 \n\t" 6851 "adc r24, r25 \n\t" 6852 "mul r3, r14 \n\t" 6853 "add r22, r0 \n\t" 6854 "adc r23, r1 \n\t" 6855 "adc r24, r25 \n\t" 6856 "mul r4, r13 \n\t" 6857 "add r22, r0 \n\t" 6858 "adc r23, r1 \n\t" 6859 "adc r24, r25 \n\t" 6860 "mul r5, r12 \n\t" 6861 "add r22, r0 \n\t" 6862 "adc r23, r1 \n\t" 6863 "adc r24, r25 \n\t" 6864 "ld r0, z \n\t" 6865 "add r22, r0 \n\t" 6866 "adc r23, r25 \n\t" 6867 "adc r24, r25 \n\t" 6868 "st z+, r22 \n\t" 6869 6870 "ld r6, x+ \n\t" 6871 "ldi r22, 0 \n\t" 6872 "mul r7, r21 \n\t" 6873 "add r23, r0 \n\t" 6874 "adc r24, r1 \n\t" 6875 "adc r22, r25 \n\t" 6876 "mul r8, r20 \n\t" 6877 "add r23, r0 \n\t" 6878 "adc r24, r1 \n\t" 6879 "adc r22, r25 \n\t" 6880 "mul r9, r19 \n\t" 6881 "add r23, r0 \n\t" 6882 "adc r24, r1 \n\t" 6883 "adc r22, r25 \n\t" 6884 "mul r10, r18 \n\t" 6885 "add r23, r0 \n\t" 6886 "adc r24, r1 \n\t" 6887 "adc r22, r25 \n\t" 6888 "mul r11, r17 \n\t" 6889 "add r23, r0 \n\t" 6890 "adc r24, r1 \n\t" 6891 "adc r22, r25 \n\t" 6892 "mul r2, r16 \n\t" 6893 "add r23, r0 \n\t" 6894 "adc r24, r1 \n\t" 6895 "adc r22, r25 \n\t" 6896 "mul r3, r15 \n\t" 6897 "add r23, r0 \n\t" 6898 "adc r24, r1 \n\t" 6899 "adc r22, r25 \n\t" 6900 "mul r4, r14 \n\t" 6901 "add r23, r0 \n\t" 6902 "adc r24, r1 \n\t" 6903 "adc r22, r25 \n\t" 6904 "mul r5, r13 \n\t" 6905 "add r23, r0 \n\t" 6906 "adc r24, r1 \n\t" 6907 "adc r22, r25 \n\t" 6908 "mul r6, r12 \n\t" 6909 "add r23, r0 \n\t" 6910 "adc r24, r1 \n\t" 6911 "adc r22, r25 \n\t" 6912 "ld r0, z \n\t" 6913 "add r23, r0 \n\t" 6914 "adc r24, r25 \n\t" 6915 "adc r22, r25 \n\t" 6916 "st z+, r23 \n\t" 6917 6918 "ld r7, x+ \n\t" 6919 "ldi r23, 0 \n\t" 6920 "mul r8, r21 \n\t" 6921 "add r24, r0 \n\t" 6922 "adc r22, r1 \n\t" 6923 "adc r23, r25 \n\t" 6924 "mul r9, r20 \n\t" 6925 "add r24, r0 \n\t" 6926 "adc r22, r1 \n\t" 6927 "adc r23, r25 \n\t" 6928 "mul r10, r19 \n\t" 6929 "add r24, r0 \n\t" 6930 "adc r22, r1 \n\t" 6931 "adc r23, r25 \n\t" 6932 "mul r11, r18 \n\t" 6933 "add r24, r0 \n\t" 6934 "adc r22, r1 \n\t" 6935 "adc r23, r25 \n\t" 6936 "mul r2, r17 \n\t" 6937 "add r24, r0 \n\t" 6938 "adc r22, r1 \n\t" 6939 "adc r23, r25 \n\t" 6940 "mul r3, r16 \n\t" 6941 "add r24, r0 \n\t" 6942 "adc r22, r1 \n\t" 6943 "adc r23, r25 \n\t" 6944 "mul r4, r15 \n\t" 6945 "add r24, r0 \n\t" 6946 "adc r22, r1 \n\t" 6947 "adc r23, r25 \n\t" 6948 "mul r5, r14 \n\t" 6949 "add r24, r0 \n\t" 6950 "adc r22, r1 \n\t" 6951 "adc r23, r25 \n\t" 6952 "mul r6, r13 \n\t" 6953 "add r24, r0 \n\t" 6954 "adc r22, r1 \n\t" 6955 "adc r23, r25 \n\t" 6956 "mul r7, r12 \n\t" 6957 "add r24, r0 \n\t" 6958 "adc r22, r1 \n\t" 6959 "adc r23, r25 \n\t" 6960 "ld r0, z \n\t" 6961 "add r24, r0 \n\t" 6962 "adc r22, r25 \n\t" 6963 "adc r23, r25 \n\t" 6964 "st z+, r24 \n\t" 6965 6966 "ld r8, x+ \n\t" 6967 "ldi r24, 0 \n\t" 6968 "mul r9, r21 \n\t" 6969 "add r22, r0 \n\t" 6970 "adc r23, r1 \n\t" 6971 "adc r24, r25 \n\t" 6972 "mul r10, r20 \n\t" 6973 "add r22, r0 \n\t" 6974 "adc r23, r1 \n\t" 6975 "adc r24, r25 \n\t" 6976 "mul r11, r19 \n\t" 6977 "add r22, r0 \n\t" 6978 "adc r23, r1 \n\t" 6979 "adc r24, r25 \n\t" 6980 "mul r2, r18 \n\t" 6981 "add r22, r0 \n\t" 6982 "adc r23, r1 \n\t" 6983 "adc r24, r25 \n\t" 6984 "mul r3, r17 \n\t" 6985 "add r22, r0 \n\t" 6986 "adc r23, r1 \n\t" 6987 "adc r24, r25 \n\t" 6988 "mul r4, r16 \n\t" 6989 "add r22, r0 \n\t" 6990 "adc r23, r1 \n\t" 6991 "adc r24, r25 \n\t" 6992 "mul r5, r15 \n\t" 6993 "add r22, r0 \n\t" 6994 "adc r23, r1 \n\t" 6995 "adc r24, r25 \n\t" 6996 "mul r6, r14 \n\t" 6997 "add r22, r0 \n\t" 6998 "adc r23, r1 \n\t" 6999 "adc r24, r25 \n\t" 7000 "mul r7, r13 \n\t" 7001 "add r22, r0 \n\t" 7002 "adc r23, r1 \n\t" 7003 "adc r24, r25 \n\t" 7004 "mul r8, r12 \n\t" 7005 "add r22, r0 \n\t" 7006 "adc r23, r1 \n\t" 7007 "adc r24, r25 \n\t" 7008 "ld r0, z \n\t" 7009 "add r22, r0 \n\t" 7010 "adc r23, r25 \n\t" 7011 "adc r24, r25 \n\t" 7012 "st z+, r22 \n\t" 7013 7014 "ld r9, x+ \n\t" 7015 "ldi r22, 0 \n\t" 7016 "mul r10, r21 \n\t" 7017 "add r23, r0 \n\t" 7018 "adc r24, r1 \n\t" 7019 "adc r22, r25 \n\t" 7020 "mul r11, r20 \n\t" 7021 "add r23, r0 \n\t" 7022 "adc r24, r1 \n\t" 7023 "adc r22, r25 \n\t" 7024 "mul r2, r19 \n\t" 7025 "add r23, r0 \n\t" 7026 "adc r24, r1 \n\t" 7027 "adc r22, r25 \n\t" 7028 "mul r3, r18 \n\t" 7029 "add r23, r0 \n\t" 7030 "adc r24, r1 \n\t" 7031 "adc r22, r25 \n\t" 7032 "mul r4, r17 \n\t" 7033 "add r23, r0 \n\t" 7034 "adc r24, r1 \n\t" 7035 "adc r22, r25 \n\t" 7036 "mul r5, r16 \n\t" 7037 "add r23, r0 \n\t" 7038 "adc r24, r1 \n\t" 7039 "adc r22, r25 \n\t" 7040 "mul r6, r15 \n\t" 7041 "add r23, r0 \n\t" 7042 "adc r24, r1 \n\t" 7043 "adc r22, r25 \n\t" 7044 "mul r7, r14 \n\t" 7045 "add r23, r0 \n\t" 7046 "adc r24, r1 \n\t" 7047 "adc r22, r25 \n\t" 7048 "mul r8, r13 \n\t" 7049 "add r23, r0 \n\t" 7050 "adc r24, r1 \n\t" 7051 "adc r22, r25 \n\t" 7052 "mul r9, r12 \n\t" 7053 "add r23, r0 \n\t" 7054 "adc r24, r1 \n\t" 7055 "adc r22, r25 \n\t" 7056 "ld r0, z \n\t" 7057 "add r23, r0 \n\t" 7058 "adc r24, r25 \n\t" 7059 "adc r22, r25 \n\t" 7060 "st z+, r23 \n\t" 7061 7062 "ld r10, x+ \n\t" 7063 "ldi r23, 0 \n\t" 7064 "mul r11, r21 \n\t" 7065 "add r24, r0 \n\t" 7066 "adc r22, r1 \n\t" 7067 "adc r23, r25 \n\t" 7068 "mul r2, r20 \n\t" 7069 "add r24, r0 \n\t" 7070 "adc r22, r1 \n\t" 7071 "adc r23, r25 \n\t" 7072 "mul r3, r19 \n\t" 7073 "add r24, r0 \n\t" 7074 "adc r22, r1 \n\t" 7075 "adc r23, r25 \n\t" 7076 "mul r4, r18 \n\t" 7077 "add r24, r0 \n\t" 7078 "adc r22, r1 \n\t" 7079 "adc r23, r25 \n\t" 7080 "mul r5, r17 \n\t" 7081 "add r24, r0 \n\t" 7082 "adc r22, r1 \n\t" 7083 "adc r23, r25 \n\t" 7084 "mul r6, r16 \n\t" 7085 "add r24, r0 \n\t" 7086 "adc r22, r1 \n\t" 7087 "adc r23, r25 \n\t" 7088 "mul r7, r15 \n\t" 7089 "add r24, r0 \n\t" 7090 "adc r22, r1 \n\t" 7091 "adc r23, r25 \n\t" 7092 "mul r8, r14 \n\t" 7093 "add r24, r0 \n\t" 7094 "adc r22, r1 \n\t" 7095 "adc r23, r25 \n\t" 7096 "mul r9, r13 \n\t" 7097 "add r24, r0 \n\t" 7098 "adc r22, r1 \n\t" 7099 "adc r23, r25 \n\t" 7100 "mul r10, r12 \n\t" 7101 "add r24, r0 \n\t" 7102 "adc r22, r1 \n\t" 7103 "adc r23, r25 \n\t" 7104 "ld r0, z \n\t" 7105 "add r24, r0 \n\t" 7106 "adc r22, r25 \n\t" 7107 "adc r23, r25 \n\t" 7108 "st z+, r24 \n\t" 7109 7110 "ld r11, x+ \n\t" 7111 "ldi r24, 0 \n\t" 7112 "mul r2, r21 \n\t" 7113 "add r22, r0 \n\t" 7114 "adc r23, r1 \n\t" 7115 "adc r24, r25 \n\t" 7116 "mul r3, r20 \n\t" 7117 "add r22, r0 \n\t" 7118 "adc r23, r1 \n\t" 7119 "adc r24, r25 \n\t" 7120 "mul r4, r19 \n\t" 7121 "add r22, r0 \n\t" 7122 "adc r23, r1 \n\t" 7123 "adc r24, r25 \n\t" 7124 "mul r5, r18 \n\t" 7125 "add r22, r0 \n\t" 7126 "adc r23, r1 \n\t" 7127 "adc r24, r25 \n\t" 7128 "mul r6, r17 \n\t" 7129 "add r22, r0 \n\t" 7130 "adc r23, r1 \n\t" 7131 "adc r24, r25 \n\t" 7132 "mul r7, r16 \n\t" 7133 "add r22, r0 \n\t" 7134 "adc r23, r1 \n\t" 7135 "adc r24, r25 \n\t" 7136 "mul r8, r15 \n\t" 7137 "add r22, r0 \n\t" 7138 "adc r23, r1 \n\t" 7139 "adc r24, r25 \n\t" 7140 "mul r9, r14 \n\t" 7141 "add r22, r0 \n\t" 7142 "adc r23, r1 \n\t" 7143 "adc r24, r25 \n\t" 7144 "mul r10, r13 \n\t" 7145 "add r22, r0 \n\t" 7146 "adc r23, r1 \n\t" 7147 "adc r24, r25 \n\t" 7148 "mul r11, r12 \n\t" 7149 "add r22, r0 \n\t" 7150 "adc r23, r1 \n\t" 7151 "adc r24, r25 \n\t" 7152 "ld r0, z \n\t" 7153 "add r22, r0 \n\t" 7154 "adc r23, r25 \n\t" 7155 "adc r24, r25 \n\t" 7156 "st z+, r22 \n\t" 7157 7158 "ld r2, x+ \n\t" 7159 "ldi r22, 0 \n\t" 7160 "mul r3, r21 \n\t" 7161 "add r23, r0 \n\t" 7162 "adc r24, r1 \n\t" 7163 "adc r22, r25 \n\t" 7164 "mul r4, r20 \n\t" 7165 "add r23, r0 \n\t" 7166 "adc r24, r1 \n\t" 7167 "adc r22, r25 \n\t" 7168 "mul r5, r19 \n\t" 7169 "add r23, r0 \n\t" 7170 "adc r24, r1 \n\t" 7171 "adc r22, r25 \n\t" 7172 "mul r6, r18 \n\t" 7173 "add r23, r0 \n\t" 7174 "adc r24, r1 \n\t" 7175 "adc r22, r25 \n\t" 7176 "mul r7, r17 \n\t" 7177 "add r23, r0 \n\t" 7178 "adc r24, r1 \n\t" 7179 "adc r22, r25 \n\t" 7180 "mul r8, r16 \n\t" 7181 "add r23, r0 \n\t" 7182 "adc r24, r1 \n\t" 7183 "adc r22, r25 \n\t" 7184 "mul r9, r15 \n\t" 7185 "add r23, r0 \n\t" 7186 "adc r24, r1 \n\t" 7187 "adc r22, r25 \n\t" 7188 "mul r10, r14 \n\t" 7189 "add r23, r0 \n\t" 7190 "adc r24, r1 \n\t" 7191 "adc r22, r25 \n\t" 7192 "mul r11, r13 \n\t" 7193 "add r23, r0 \n\t" 7194 "adc r24, r1 \n\t" 7195 "adc r22, r25 \n\t" 7196 "mul r2, r12 \n\t" 7197 "add r23, r0 \n\t" 7198 "adc r24, r1 \n\t" 7199 "adc r22, r25 \n\t" 7200 "ld r0, z \n\t" 7201 "add r23, r0 \n\t" 7202 "adc r24, r25 \n\t" 7203 "adc r22, r25 \n\t" 7204 "st z+, r23 \n\t" 7205 7206 "ld r3, x+ \n\t" 7207 "ldi r23, 0 \n\t" 7208 "mul r4, r21 \n\t" 7209 "add r24, r0 \n\t" 7210 "adc r22, r1 \n\t" 7211 "adc r23, r25 \n\t" 7212 "mul r5, r20 \n\t" 7213 "add r24, r0 \n\t" 7214 "adc r22, r1 \n\t" 7215 "adc r23, r25 \n\t" 7216 "mul r6, r19 \n\t" 7217 "add r24, r0 \n\t" 7218 "adc r22, r1 \n\t" 7219 "adc r23, r25 \n\t" 7220 "mul r7, r18 \n\t" 7221 "add r24, r0 \n\t" 7222 "adc r22, r1 \n\t" 7223 "adc r23, r25 \n\t" 7224 "mul r8, r17 \n\t" 7225 "add r24, r0 \n\t" 7226 "adc r22, r1 \n\t" 7227 "adc r23, r25 \n\t" 7228 "mul r9, r16 \n\t" 7229 "add r24, r0 \n\t" 7230 "adc r22, r1 \n\t" 7231 "adc r23, r25 \n\t" 7232 "mul r10, r15 \n\t" 7233 "add r24, r0 \n\t" 7234 "adc r22, r1 \n\t" 7235 "adc r23, r25 \n\t" 7236 "mul r11, r14 \n\t" 7237 "add r24, r0 \n\t" 7238 "adc r22, r1 \n\t" 7239 "adc r23, r25 \n\t" 7240 "mul r2, r13 \n\t" 7241 "add r24, r0 \n\t" 7242 "adc r22, r1 \n\t" 7243 "adc r23, r25 \n\t" 7244 "mul r3, r12 \n\t" 7245 "add r24, r0 \n\t" 7246 "adc r22, r1 \n\t" 7247 "adc r23, r25 \n\t" 7248 "ld r0, z \n\t" 7249 "add r24, r0 \n\t" 7250 "adc r22, r25 \n\t" 7251 "adc r23, r25 \n\t" 7252 "st z+, r24 \n\t" 7253 7254 "ld r4, x+ \n\t" 7255 "ldi r24, 0 \n\t" 7256 "mul r5, r21 \n\t" 7257 "add r22, r0 \n\t" 7258 "adc r23, r1 \n\t" 7259 "adc r24, r25 \n\t" 7260 "mul r6, r20 \n\t" 7261 "add r22, r0 \n\t" 7262 "adc r23, r1 \n\t" 7263 "adc r24, r25 \n\t" 7264 "mul r7, r19 \n\t" 7265 "add r22, r0 \n\t" 7266 "adc r23, r1 \n\t" 7267 "adc r24, r25 \n\t" 7268 "mul r8, r18 \n\t" 7269 "add r22, r0 \n\t" 7270 "adc r23, r1 \n\t" 7271 "adc r24, r25 \n\t" 7272 "mul r9, r17 \n\t" 7273 "add r22, r0 \n\t" 7274 "adc r23, r1 \n\t" 7275 "adc r24, r25 \n\t" 7276 "mul r10, r16 \n\t" 7277 "add r22, r0 \n\t" 7278 "adc r23, r1 \n\t" 7279 "adc r24, r25 \n\t" 7280 "mul r11, r15 \n\t" 7281 "add r22, r0 \n\t" 7282 "adc r23, r1 \n\t" 7283 "adc r24, r25 \n\t" 7284 "mul r2, r14 \n\t" 7285 "add r22, r0 \n\t" 7286 "adc r23, r1 \n\t" 7287 "adc r24, r25 \n\t" 7288 "mul r3, r13 \n\t" 7289 "add r22, r0 \n\t" 7290 "adc r23, r1 \n\t" 7291 "adc r24, r25 \n\t" 7292 "mul r4, r12 \n\t" 7293 "add r22, r0 \n\t" 7294 "adc r23, r1 \n\t" 7295 "adc r24, r25 \n\t" 7296 "ld r0, z \n\t" 7297 "add r22, r0 \n\t" 7298 "adc r23, r25 \n\t" 7299 "adc r24, r25 \n\t" 7300 "st z+, r22 \n\t" 7301 7302 "ld r5, x+ \n\t" 7303 "ldi r22, 0 \n\t" 7304 "mul r6, r21 \n\t" 7305 "add r23, r0 \n\t" 7306 "adc r24, r1 \n\t" 7307 "adc r22, r25 \n\t" 7308 "mul r7, r20 \n\t" 7309 "add r23, r0 \n\t" 7310 "adc r24, r1 \n\t" 7311 "adc r22, r25 \n\t" 7312 "mul r8, r19 \n\t" 7313 "add r23, r0 \n\t" 7314 "adc r24, r1 \n\t" 7315 "adc r22, r25 \n\t" 7316 "mul r9, r18 \n\t" 7317 "add r23, r0 \n\t" 7318 "adc r24, r1 \n\t" 7319 "adc r22, r25 \n\t" 7320 "mul r10, r17 \n\t" 7321 "add r23, r0 \n\t" 7322 "adc r24, r1 \n\t" 7323 "adc r22, r25 \n\t" 7324 "mul r11, r16 \n\t" 7325 "add r23, r0 \n\t" 7326 "adc r24, r1 \n\t" 7327 "adc r22, r25 \n\t" 7328 "mul r2, r15 \n\t" 7329 "add r23, r0 \n\t" 7330 "adc r24, r1 \n\t" 7331 "adc r22, r25 \n\t" 7332 "mul r3, r14 \n\t" 7333 "add r23, r0 \n\t" 7334 "adc r24, r1 \n\t" 7335 "adc r22, r25 \n\t" 7336 "mul r4, r13 \n\t" 7337 "add r23, r0 \n\t" 7338 "adc r24, r1 \n\t" 7339 "adc r22, r25 \n\t" 7340 "mul r5, r12 \n\t" 7341 "add r23, r0 \n\t" 7342 "adc r24, r1 \n\t" 7343 "adc r22, r25 \n\t" 7344 "ld r0, z \n\t" 7345 "add r23, r0 \n\t" 7346 "adc r24, r25 \n\t" 7347 "adc r22, r25 \n\t" 7348 "st z+, r23 \n\t" 7349 7350 "ld r6, x+ \n\t" 7351 "ldi r23, 0 \n\t" 7352 "mul r7, r21 \n\t" 7353 "add r24, r0 \n\t" 7354 "adc r22, r1 \n\t" 7355 "adc r23, r25 \n\t" 7356 "mul r8, r20 \n\t" 7357 "add r24, r0 \n\t" 7358 "adc r22, r1 \n\t" 7359 "adc r23, r25 \n\t" 7360 "mul r9, r19 \n\t" 7361 "add r24, r0 \n\t" 7362 "adc r22, r1 \n\t" 7363 "adc r23, r25 \n\t" 7364 "mul r10, r18 \n\t" 7365 "add r24, r0 \n\t" 7366 "adc r22, r1 \n\t" 7367 "adc r23, r25 \n\t" 7368 "mul r11, r17 \n\t" 7369 "add r24, r0 \n\t" 7370 "adc r22, r1 \n\t" 7371 "adc r23, r25 \n\t" 7372 "mul r2, r16 \n\t" 7373 "add r24, r0 \n\t" 7374 "adc r22, r1 \n\t" 7375 "adc r23, r25 \n\t" 7376 "mul r3, r15 \n\t" 7377 "add r24, r0 \n\t" 7378 "adc r22, r1 \n\t" 7379 "adc r23, r25 \n\t" 7380 "mul r4, r14 \n\t" 7381 "add r24, r0 \n\t" 7382 "adc r22, r1 \n\t" 7383 "adc r23, r25 \n\t" 7384 "mul r5, r13 \n\t" 7385 "add r24, r0 \n\t" 7386 "adc r22, r1 \n\t" 7387 "adc r23, r25 \n\t" 7388 "mul r6, r12 \n\t" 7389 "add r24, r0 \n\t" 7390 "adc r22, r1 \n\t" 7391 "adc r23, r25 \n\t" 7392 "ld r0, z \n\t" 7393 "add r24, r0 \n\t" 7394 "adc r22, r25 \n\t" 7395 "adc r23, r25 \n\t" 7396 "st z+, r24 \n\t" 7397 7398 "ld r7, x+ \n\t" 7399 "ldi r24, 0 \n\t" 7400 "mul r8, r21 \n\t" 7401 "add r22, r0 \n\t" 7402 "adc r23, r1 \n\t" 7403 "adc r24, r25 \n\t" 7404 "mul r9, r20 \n\t" 7405 "add r22, r0 \n\t" 7406 "adc r23, r1 \n\t" 7407 "adc r24, r25 \n\t" 7408 "mul r10, r19 \n\t" 7409 "add r22, r0 \n\t" 7410 "adc r23, r1 \n\t" 7411 "adc r24, r25 \n\t" 7412 "mul r11, r18 \n\t" 7413 "add r22, r0 \n\t" 7414 "adc r23, r1 \n\t" 7415 "adc r24, r25 \n\t" 7416 "mul r2, r17 \n\t" 7417 "add r22, r0 \n\t" 7418 "adc r23, r1 \n\t" 7419 "adc r24, r25 \n\t" 7420 "mul r3, r16 \n\t" 7421 "add r22, r0 \n\t" 7422 "adc r23, r1 \n\t" 7423 "adc r24, r25 \n\t" 7424 "mul r4, r15 \n\t" 7425 "add r22, r0 \n\t" 7426 "adc r23, r1 \n\t" 7427 "adc r24, r25 \n\t" 7428 "mul r5, r14 \n\t" 7429 "add r22, r0 \n\t" 7430 "adc r23, r1 \n\t" 7431 "adc r24, r25 \n\t" 7432 "mul r6, r13 \n\t" 7433 "add r22, r0 \n\t" 7434 "adc r23, r1 \n\t" 7435 "adc r24, r25 \n\t" 7436 "mul r7, r12 \n\t" 7437 "add r22, r0 \n\t" 7438 "adc r23, r1 \n\t" 7439 "adc r24, r25 \n\t" 7440 "ld r0, z \n\t" 7441 "add r22, r0 \n\t" 7442 "adc r23, r25 \n\t" 7443 "adc r24, r25 \n\t" 7444 "st z+, r22 \n\t" 7445 7446 "ld r8, x+ \n\t" 7447 "ldi r22, 0 \n\t" 7448 "mul r9, r21 \n\t" 7449 "add r23, r0 \n\t" 7450 "adc r24, r1 \n\t" 7451 "adc r22, r25 \n\t" 7452 "mul r10, r20 \n\t" 7453 "add r23, r0 \n\t" 7454 "adc r24, r1 \n\t" 7455 "adc r22, r25 \n\t" 7456 "mul r11, r19 \n\t" 7457 "add r23, r0 \n\t" 7458 "adc r24, r1 \n\t" 7459 "adc r22, r25 \n\t" 7460 "mul r2, r18 \n\t" 7461 "add r23, r0 \n\t" 7462 "adc r24, r1 \n\t" 7463 "adc r22, r25 \n\t" 7464 "mul r3, r17 \n\t" 7465 "add r23, r0 \n\t" 7466 "adc r24, r1 \n\t" 7467 "adc r22, r25 \n\t" 7468 "mul r4, r16 \n\t" 7469 "add r23, r0 \n\t" 7470 "adc r24, r1 \n\t" 7471 "adc r22, r25 \n\t" 7472 "mul r5, r15 \n\t" 7473 "add r23, r0 \n\t" 7474 "adc r24, r1 \n\t" 7475 "adc r22, r25 \n\t" 7476 "mul r6, r14 \n\t" 7477 "add r23, r0 \n\t" 7478 "adc r24, r1 \n\t" 7479 "adc r22, r25 \n\t" 7480 "mul r7, r13 \n\t" 7481 "add r23, r0 \n\t" 7482 "adc r24, r1 \n\t" 7483 "adc r22, r25 \n\t" 7484 "mul r8, r12 \n\t" 7485 "add r23, r0 \n\t" 7486 "adc r24, r1 \n\t" 7487 "adc r22, r25 \n\t" 7488 "ld r0, z \n\t" 7489 "add r23, r0 \n\t" 7490 "adc r24, r25 \n\t" 7491 "adc r22, r25 \n\t" 7492 "st z+, r23 \n\t" 7493 7494 "ld r9, x+ \n\t" 7495 "ldi r23, 0 \n\t" 7496 "mul r10, r21 \n\t" 7497 "add r24, r0 \n\t" 7498 "adc r22, r1 \n\t" 7499 "adc r23, r25 \n\t" 7500 "mul r11, r20 \n\t" 7501 "add r24, r0 \n\t" 7502 "adc r22, r1 \n\t" 7503 "adc r23, r25 \n\t" 7504 "mul r2, r19 \n\t" 7505 "add r24, r0 \n\t" 7506 "adc r22, r1 \n\t" 7507 "adc r23, r25 \n\t" 7508 "mul r3, r18 \n\t" 7509 "add r24, r0 \n\t" 7510 "adc r22, r1 \n\t" 7511 "adc r23, r25 \n\t" 7512 "mul r4, r17 \n\t" 7513 "add r24, r0 \n\t" 7514 "adc r22, r1 \n\t" 7515 "adc r23, r25 \n\t" 7516 "mul r5, r16 \n\t" 7517 "add r24, r0 \n\t" 7518 "adc r22, r1 \n\t" 7519 "adc r23, r25 \n\t" 7520 "mul r6, r15 \n\t" 7521 "add r24, r0 \n\t" 7522 "adc r22, r1 \n\t" 7523 "adc r23, r25 \n\t" 7524 "mul r7, r14 \n\t" 7525 "add r24, r0 \n\t" 7526 "adc r22, r1 \n\t" 7527 "adc r23, r25 \n\t" 7528 "mul r8, r13 \n\t" 7529 "add r24, r0 \n\t" 7530 "adc r22, r1 \n\t" 7531 "adc r23, r25 \n\t" 7532 "mul r9, r12 \n\t" 7533 "add r24, r0 \n\t" 7534 "adc r22, r1 \n\t" 7535 "adc r23, r25 \n\t" 7536 "ld r0, z \n\t" 7537 "add r24, r0 \n\t" 7538 "adc r22, r25 \n\t" 7539 "adc r23, r25 \n\t" 7540 "st z+, r24 \n\t" 7541 7542 "ld r12, y+ \n\t" 7543 "ldi r24, 0 \n\t" 7544 "mul r10, r12 \n\t" 7545 "add r22, r0 \n\t" 7546 "adc r23, r1 \n\t" 7547 "adc r24, r25 \n\t" 7548 "mul r11, r21 \n\t" 7549 "add r22, r0 \n\t" 7550 "adc r23, r1 \n\t" 7551 "adc r24, r25 \n\t" 7552 "mul r2, r20 \n\t" 7553 "add r22, r0 \n\t" 7554 "adc r23, r1 \n\t" 7555 "adc r24, r25 \n\t" 7556 "mul r3, r19 \n\t" 7557 "add r22, r0 \n\t" 7558 "adc r23, r1 \n\t" 7559 "adc r24, r25 \n\t" 7560 "mul r4, r18 \n\t" 7561 "add r22, r0 \n\t" 7562 "adc r23, r1 \n\t" 7563 "adc r24, r25 \n\t" 7564 "mul r5, r17 \n\t" 7565 "add r22, r0 \n\t" 7566 "adc r23, r1 \n\t" 7567 "adc r24, r25 \n\t" 7568 "mul r6, r16 \n\t" 7569 "add r22, r0 \n\t" 7570 "adc r23, r1 \n\t" 7571 "adc r24, r25 \n\t" 7572 "mul r7, r15 \n\t" 7573 "add r22, r0 \n\t" 7574 "adc r23, r1 \n\t" 7575 "adc r24, r25 \n\t" 7576 "mul r8, r14 \n\t" 7577 "add r22, r0 \n\t" 7578 "adc r23, r1 \n\t" 7579 "adc r24, r25 \n\t" 7580 "mul r9, r13 \n\t" 7581 "add r22, r0 \n\t" 7582 "adc r23, r1 \n\t" 7583 "adc r24, r25 \n\t" 7584 "ld r0, z \n\t" 7585 "add r22, r0 \n\t" 7586 "adc r23, r25 \n\t" 7587 "adc r24, r25 \n\t" 7588 "st z+, r22 \n\t" 7589 7590 "ld r13, y+ \n\t" 7591 "ldi r22, 0 \n\t" 7592 "mul r10, r13 \n\t" 7593 "add r23, r0 \n\t" 7594 "adc r24, r1 \n\t" 7595 "adc r22, r25 \n\t" 7596 "mul r11, r12 \n\t" 7597 "add r23, r0 \n\t" 7598 "adc r24, r1 \n\t" 7599 "adc r22, r25 \n\t" 7600 "mul r2, r21 \n\t" 7601 "add r23, r0 \n\t" 7602 "adc r24, r1 \n\t" 7603 "adc r22, r25 \n\t" 7604 "mul r3, r20 \n\t" 7605 "add r23, r0 \n\t" 7606 "adc r24, r1 \n\t" 7607 "adc r22, r25 \n\t" 7608 "mul r4, r19 \n\t" 7609 "add r23, r0 \n\t" 7610 "adc r24, r1 \n\t" 7611 "adc r22, r25 \n\t" 7612 "mul r5, r18 \n\t" 7613 "add r23, r0 \n\t" 7614 "adc r24, r1 \n\t" 7615 "adc r22, r25 \n\t" 7616 "mul r6, r17 \n\t" 7617 "add r23, r0 \n\t" 7618 "adc r24, r1 \n\t" 7619 "adc r22, r25 \n\t" 7620 "mul r7, r16 \n\t" 7621 "add r23, r0 \n\t" 7622 "adc r24, r1 \n\t" 7623 "adc r22, r25 \n\t" 7624 "mul r8, r15 \n\t" 7625 "add r23, r0 \n\t" 7626 "adc r24, r1 \n\t" 7627 "adc r22, r25 \n\t" 7628 "mul r9, r14 \n\t" 7629 "add r23, r0 \n\t" 7630 "adc r24, r1 \n\t" 7631 "adc r22, r25 \n\t" 7632 "ld r0, z \n\t" 7633 "add r23, r0 \n\t" 7634 "adc r24, r25 \n\t" 7635 "adc r22, r25 \n\t" 7636 "st z+, r23 \n\t" 7637 7638 "ld r14, y+ \n\t" 7639 "ldi r23, 0 \n\t" 7640 "mul r10, r14 \n\t" 7641 "add r24, r0 \n\t" 7642 "adc r22, r1 \n\t" 7643 "adc r23, r25 \n\t" 7644 "mul r11, r13 \n\t" 7645 "add r24, r0 \n\t" 7646 "adc r22, r1 \n\t" 7647 "adc r23, r25 \n\t" 7648 "mul r2, r12 \n\t" 7649 "add r24, r0 \n\t" 7650 "adc r22, r1 \n\t" 7651 "adc r23, r25 \n\t" 7652 "mul r3, r21 \n\t" 7653 "add r24, r0 \n\t" 7654 "adc r22, r1 \n\t" 7655 "adc r23, r25 \n\t" 7656 "mul r4, r20 \n\t" 7657 "add r24, r0 \n\t" 7658 "adc r22, r1 \n\t" 7659 "adc r23, r25 \n\t" 7660 "mul r5, r19 \n\t" 7661 "add r24, r0 \n\t" 7662 "adc r22, r1 \n\t" 7663 "adc r23, r25 \n\t" 7664 "mul r6, r18 \n\t" 7665 "add r24, r0 \n\t" 7666 "adc r22, r1 \n\t" 7667 "adc r23, r25 \n\t" 7668 "mul r7, r17 \n\t" 7669 "add r24, r0 \n\t" 7670 "adc r22, r1 \n\t" 7671 "adc r23, r25 \n\t" 7672 "mul r8, r16 \n\t" 7673 "add r24, r0 \n\t" 7674 "adc r22, r1 \n\t" 7675 "adc r23, r25 \n\t" 7676 "mul r9, r15 \n\t" 7677 "add r24, r0 \n\t" 7678 "adc r22, r1 \n\t" 7679 "adc r23, r25 \n\t" 7680 "ld r0, z \n\t" 7681 "add r24, r0 \n\t" 7682 "adc r22, r25 \n\t" 7683 "adc r23, r25 \n\t" 7684 "st z+, r24 \n\t" 7685 7686 "ld r15, y+ \n\t" 7687 "ldi r24, 0 \n\t" 7688 "mul r10, r15 \n\t" 7689 "add r22, r0 \n\t" 7690 "adc r23, r1 \n\t" 7691 "adc r24, r25 \n\t" 7692 "mul r11, r14 \n\t" 7693 "add r22, r0 \n\t" 7694 "adc r23, r1 \n\t" 7695 "adc r24, r25 \n\t" 7696 "mul r2, r13 \n\t" 7697 "add r22, r0 \n\t" 7698 "adc r23, r1 \n\t" 7699 "adc r24, r25 \n\t" 7700 "mul r3, r12 \n\t" 7701 "add r22, r0 \n\t" 7702 "adc r23, r1 \n\t" 7703 "adc r24, r25 \n\t" 7704 "mul r4, r21 \n\t" 7705 "add r22, r0 \n\t" 7706 "adc r23, r1 \n\t" 7707 "adc r24, r25 \n\t" 7708 "mul r5, r20 \n\t" 7709 "add r22, r0 \n\t" 7710 "adc r23, r1 \n\t" 7711 "adc r24, r25 \n\t" 7712 "mul r6, r19 \n\t" 7713 "add r22, r0 \n\t" 7714 "adc r23, r1 \n\t" 7715 "adc r24, r25 \n\t" 7716 "mul r7, r18 \n\t" 7717 "add r22, r0 \n\t" 7718 "adc r23, r1 \n\t" 7719 "adc r24, r25 \n\t" 7720 "mul r8, r17 \n\t" 7721 "add r22, r0 \n\t" 7722 "adc r23, r1 \n\t" 7723 "adc r24, r25 \n\t" 7724 "mul r9, r16 \n\t" 7725 "add r22, r0 \n\t" 7726 "adc r23, r1 \n\t" 7727 "adc r24, r25 \n\t" 7728 "ld r0, z \n\t" 7729 "add r22, r0 \n\t" 7730 "adc r23, r25 \n\t" 7731 "adc r24, r25 \n\t" 7732 "st z+, r22 \n\t" 7733 7734 "ld r16, y+ \n\t" 7735 "ldi r22, 0 \n\t" 7736 "mul r10, r16 \n\t" 7737 "add r23, r0 \n\t" 7738 "adc r24, r1 \n\t" 7739 "adc r22, r25 \n\t" 7740 "mul r11, r15 \n\t" 7741 "add r23, r0 \n\t" 7742 "adc r24, r1 \n\t" 7743 "adc r22, r25 \n\t" 7744 "mul r2, r14 \n\t" 7745 "add r23, r0 \n\t" 7746 "adc r24, r1 \n\t" 7747 "adc r22, r25 \n\t" 7748 "mul r3, r13 \n\t" 7749 "add r23, r0 \n\t" 7750 "adc r24, r1 \n\t" 7751 "adc r22, r25 \n\t" 7752 "mul r4, r12 \n\t" 7753 "add r23, r0 \n\t" 7754 "adc r24, r1 \n\t" 7755 "adc r22, r25 \n\t" 7756 "mul r5, r21 \n\t" 7757 "add r23, r0 \n\t" 7758 "adc r24, r1 \n\t" 7759 "adc r22, r25 \n\t" 7760 "mul r6, r20 \n\t" 7761 "add r23, r0 \n\t" 7762 "adc r24, r1 \n\t" 7763 "adc r22, r25 \n\t" 7764 "mul r7, r19 \n\t" 7765 "add r23, r0 \n\t" 7766 "adc r24, r1 \n\t" 7767 "adc r22, r25 \n\t" 7768 "mul r8, r18 \n\t" 7769 "add r23, r0 \n\t" 7770 "adc r24, r1 \n\t" 7771 "adc r22, r25 \n\t" 7772 "mul r9, r17 \n\t" 7773 "add r23, r0 \n\t" 7774 "adc r24, r1 \n\t" 7775 "adc r22, r25 \n\t" 7776 "ld r0, z \n\t" 7777 "add r23, r0 \n\t" 7778 "adc r24, r25 \n\t" 7779 "adc r22, r25 \n\t" 7780 "st z+, r23 \n\t" 7781 7782 "ld r17, y+ \n\t" 7783 "ldi r23, 0 \n\t" 7784 "mul r10, r17 \n\t" 7785 "add r24, r0 \n\t" 7786 "adc r22, r1 \n\t" 7787 "adc r23, r25 \n\t" 7788 "mul r11, r16 \n\t" 7789 "add r24, r0 \n\t" 7790 "adc r22, r1 \n\t" 7791 "adc r23, r25 \n\t" 7792 "mul r2, r15 \n\t" 7793 "add r24, r0 \n\t" 7794 "adc r22, r1 \n\t" 7795 "adc r23, r25 \n\t" 7796 "mul r3, r14 \n\t" 7797 "add r24, r0 \n\t" 7798 "adc r22, r1 \n\t" 7799 "adc r23, r25 \n\t" 7800 "mul r4, r13 \n\t" 7801 "add r24, r0 \n\t" 7802 "adc r22, r1 \n\t" 7803 "adc r23, r25 \n\t" 7804 "mul r5, r12 \n\t" 7805 "add r24, r0 \n\t" 7806 "adc r22, r1 \n\t" 7807 "adc r23, r25 \n\t" 7808 "mul r6, r21 \n\t" 7809 "add r24, r0 \n\t" 7810 "adc r22, r1 \n\t" 7811 "adc r23, r25 \n\t" 7812 "mul r7, r20 \n\t" 7813 "add r24, r0 \n\t" 7814 "adc r22, r1 \n\t" 7815 "adc r23, r25 \n\t" 7816 "mul r8, r19 \n\t" 7817 "add r24, r0 \n\t" 7818 "adc r22, r1 \n\t" 7819 "adc r23, r25 \n\t" 7820 "mul r9, r18 \n\t" 7821 "add r24, r0 \n\t" 7822 "adc r22, r1 \n\t" 7823 "adc r23, r25 \n\t" 7824 "ld r0, z \n\t" 7825 "add r24, r0 \n\t" 7826 "adc r22, r25 \n\t" 7827 "adc r23, r25 \n\t" 7828 "st z+, r24 \n\t" 7829 7830 "ld r18, y+ \n\t" 7831 "ldi r24, 0 \n\t" 7832 "mul r10, r18 \n\t" 7833 "add r22, r0 \n\t" 7834 "adc r23, r1 \n\t" 7835 "adc r24, r25 \n\t" 7836 "mul r11, r17 \n\t" 7837 "add r22, r0 \n\t" 7838 "adc r23, r1 \n\t" 7839 "adc r24, r25 \n\t" 7840 "mul r2, r16 \n\t" 7841 "add r22, r0 \n\t" 7842 "adc r23, r1 \n\t" 7843 "adc r24, r25 \n\t" 7844 "mul r3, r15 \n\t" 7845 "add r22, r0 \n\t" 7846 "adc r23, r1 \n\t" 7847 "adc r24, r25 \n\t" 7848 "mul r4, r14 \n\t" 7849 "add r22, r0 \n\t" 7850 "adc r23, r1 \n\t" 7851 "adc r24, r25 \n\t" 7852 "mul r5, r13 \n\t" 7853 "add r22, r0 \n\t" 7854 "adc r23, r1 \n\t" 7855 "adc r24, r25 \n\t" 7856 "mul r6, r12 \n\t" 7857 "add r22, r0 \n\t" 7858 "adc r23, r1 \n\t" 7859 "adc r24, r25 \n\t" 7860 "mul r7, r21 \n\t" 7861 "add r22, r0 \n\t" 7862 "adc r23, r1 \n\t" 7863 "adc r24, r25 \n\t" 7864 "mul r8, r20 \n\t" 7865 "add r22, r0 \n\t" 7866 "adc r23, r1 \n\t" 7867 "adc r24, r25 \n\t" 7868 "mul r9, r19 \n\t" 7869 "add r22, r0 \n\t" 7870 "adc r23, r1 \n\t" 7871 "adc r24, r25 \n\t" 7872 "ld r0, z \n\t" 7873 "add r22, r0 \n\t" 7874 "adc r23, r25 \n\t" 7875 "adc r24, r25 \n\t" 7876 "st z+, r22 \n\t" 7877 7878 "ld r19, y+ \n\t" 7879 "ldi r22, 0 \n\t" 7880 "mul r10, r19 \n\t" 7881 "add r23, r0 \n\t" 7882 "adc r24, r1 \n\t" 7883 "adc r22, r25 \n\t" 7884 "mul r11, r18 \n\t" 7885 "add r23, r0 \n\t" 7886 "adc r24, r1 \n\t" 7887 "adc r22, r25 \n\t" 7888 "mul r2, r17 \n\t" 7889 "add r23, r0 \n\t" 7890 "adc r24, r1 \n\t" 7891 "adc r22, r25 \n\t" 7892 "mul r3, r16 \n\t" 7893 "add r23, r0 \n\t" 7894 "adc r24, r1 \n\t" 7895 "adc r22, r25 \n\t" 7896 "mul r4, r15 \n\t" 7897 "add r23, r0 \n\t" 7898 "adc r24, r1 \n\t" 7899 "adc r22, r25 \n\t" 7900 "mul r5, r14 \n\t" 7901 "add r23, r0 \n\t" 7902 "adc r24, r1 \n\t" 7903 "adc r22, r25 \n\t" 7904 "mul r6, r13 \n\t" 7905 "add r23, r0 \n\t" 7906 "adc r24, r1 \n\t" 7907 "adc r22, r25 \n\t" 7908 "mul r7, r12 \n\t" 7909 "add r23, r0 \n\t" 7910 "adc r24, r1 \n\t" 7911 "adc r22, r25 \n\t" 7912 "mul r8, r21 \n\t" 7913 "add r23, r0 \n\t" 7914 "adc r24, r1 \n\t" 7915 "adc r22, r25 \n\t" 7916 "mul r9, r20 \n\t" 7917 "add r23, r0 \n\t" 7918 "adc r24, r1 \n\t" 7919 "adc r22, r25 \n\t" 7920 "ld r0, z \n\t" 7921 "add r23, r0 \n\t" 7922 "adc r24, r25 \n\t" 7923 "adc r22, r25 \n\t" 7924 "st z+, r23 \n\t" 7925 7926 "ld r20, y+ \n\t" 7927 "ldi r23, 0 \n\t" 7928 "mul r10, r20 \n\t" 7929 "add r24, r0 \n\t" 7930 "adc r22, r1 \n\t" 7931 "adc r23, r25 \n\t" 7932 "mul r11, r19 \n\t" 7933 "add r24, r0 \n\t" 7934 "adc r22, r1 \n\t" 7935 "adc r23, r25 \n\t" 7936 "mul r2, r18 \n\t" 7937 "add r24, r0 \n\t" 7938 "adc r22, r1 \n\t" 7939 "adc r23, r25 \n\t" 7940 "mul r3, r17 \n\t" 7941 "add r24, r0 \n\t" 7942 "adc r22, r1 \n\t" 7943 "adc r23, r25 \n\t" 7944 "mul r4, r16 \n\t" 7945 "add r24, r0 \n\t" 7946 "adc r22, r1 \n\t" 7947 "adc r23, r25 \n\t" 7948 "mul r5, r15 \n\t" 7949 "add r24, r0 \n\t" 7950 "adc r22, r1 \n\t" 7951 "adc r23, r25 \n\t" 7952 "mul r6, r14 \n\t" 7953 "add r24, r0 \n\t" 7954 "adc r22, r1 \n\t" 7955 "adc r23, r25 \n\t" 7956 "mul r7, r13 \n\t" 7957 "add r24, r0 \n\t" 7958 "adc r22, r1 \n\t" 7959 "adc r23, r25 \n\t" 7960 "mul r8, r12 \n\t" 7961 "add r24, r0 \n\t" 7962 "adc r22, r1 \n\t" 7963 "adc r23, r25 \n\t" 7964 "mul r9, r21 \n\t" 7965 "add r24, r0 \n\t" 7966 "adc r22, r1 \n\t" 7967 "adc r23, r25 \n\t" 7968 "ld r0, z \n\t" 7969 "add r24, r0 \n\t" 7970 "adc r22, r25 \n\t" 7971 "adc r23, r25 \n\t" 7972 "st z+, r24 \n\t" 7973 7974 "ld r21, y+ \n\t" 7975 "ldi r24, 0 \n\t" 7976 "mul r10, r21 \n\t" 7977 "add r22, r0 \n\t" 7978 "adc r23, r1 \n\t" 7979 "adc r24, r25 \n\t" 7980 "mul r11, r20 \n\t" 7981 "add r22, r0 \n\t" 7982 "adc r23, r1 \n\t" 7983 "adc r24, r25 \n\t" 7984 "mul r2, r19 \n\t" 7985 "add r22, r0 \n\t" 7986 "adc r23, r1 \n\t" 7987 "adc r24, r25 \n\t" 7988 "mul r3, r18 \n\t" 7989 "add r22, r0 \n\t" 7990 "adc r23, r1 \n\t" 7991 "adc r24, r25 \n\t" 7992 "mul r4, r17 \n\t" 7993 "add r22, r0 \n\t" 7994 "adc r23, r1 \n\t" 7995 "adc r24, r25 \n\t" 7996 "mul r5, r16 \n\t" 7997 "add r22, r0 \n\t" 7998 "adc r23, r1 \n\t" 7999 "adc r24, r25 \n\t" 8000 "mul r6, r15 \n\t" 8001 "add r22, r0 \n\t" 8002 "adc r23, r1 \n\t" 8003 "adc r24, r25 \n\t" 8004 "mul r7, r14 \n\t" 8005 "add r22, r0 \n\t" 8006 "adc r23, r1 \n\t" 8007 "adc r24, r25 \n\t" 8008 "mul r8, r13 \n\t" 8009 "add r22, r0 \n\t" 8010 "adc r23, r1 \n\t" 8011 "adc r24, r25 \n\t" 8012 "mul r9, r12 \n\t" 8013 "add r22, r0 \n\t" 8014 "adc r23, r1 \n\t" 8015 "adc r24, r25 \n\t" 8016 "ld r0, z \n\t" 8017 "add r22, r0 \n\t" 8018 "adc r23, r25 \n\t" 8019 "adc r24, r25 \n\t" 8020 "st z+, r22 \n\t" 8021 8022 "ld r12, y+ \n\t" 8023 "ldi r22, 0 \n\t" 8024 "mul r10, r12 \n\t" 8025 "add r23, r0 \n\t" 8026 "adc r24, r1 \n\t" 8027 "adc r22, r25 \n\t" 8028 "mul r11, r21 \n\t" 8029 "add r23, r0 \n\t" 8030 "adc r24, r1 \n\t" 8031 "adc r22, r25 \n\t" 8032 "mul r2, r20 \n\t" 8033 "add r23, r0 \n\t" 8034 "adc r24, r1 \n\t" 8035 "adc r22, r25 \n\t" 8036 "mul r3, r19 \n\t" 8037 "add r23, r0 \n\t" 8038 "adc r24, r1 \n\t" 8039 "adc r22, r25 \n\t" 8040 "mul r4, r18 \n\t" 8041 "add r23, r0 \n\t" 8042 "adc r24, r1 \n\t" 8043 "adc r22, r25 \n\t" 8044 "mul r5, r17 \n\t" 8045 "add r23, r0 \n\t" 8046 "adc r24, r1 \n\t" 8047 "adc r22, r25 \n\t" 8048 "mul r6, r16 \n\t" 8049 "add r23, r0 \n\t" 8050 "adc r24, r1 \n\t" 8051 "adc r22, r25 \n\t" 8052 "mul r7, r15 \n\t" 8053 "add r23, r0 \n\t" 8054 "adc r24, r1 \n\t" 8055 "adc r22, r25 \n\t" 8056 "mul r8, r14 \n\t" 8057 "add r23, r0 \n\t" 8058 "adc r24, r1 \n\t" 8059 "adc r22, r25 \n\t" 8060 "mul r9, r13 \n\t" 8061 "add r23, r0 \n\t" 8062 "adc r24, r1 \n\t" 8063 "adc r22, r25 \n\t" 8064 "ld r0, z \n\t" 8065 "add r23, r0 \n\t" 8066 "adc r24, r25 \n\t" 8067 "adc r22, r25 \n\t" 8068 "st z+, r23 \n\t" 8069 8070 "ld r13, y+ \n\t" 8071 "ldi r23, 0 \n\t" 8072 "mul r10, r13 \n\t" 8073 "add r24, r0 \n\t" 8074 "adc r22, r1 \n\t" 8075 "adc r23, r25 \n\t" 8076 "mul r11, r12 \n\t" 8077 "add r24, r0 \n\t" 8078 "adc r22, r1 \n\t" 8079 "adc r23, r25 \n\t" 8080 "mul r2, r21 \n\t" 8081 "add r24, r0 \n\t" 8082 "adc r22, r1 \n\t" 8083 "adc r23, r25 \n\t" 8084 "mul r3, r20 \n\t" 8085 "add r24, r0 \n\t" 8086 "adc r22, r1 \n\t" 8087 "adc r23, r25 \n\t" 8088 "mul r4, r19 \n\t" 8089 "add r24, r0 \n\t" 8090 "adc r22, r1 \n\t" 8091 "adc r23, r25 \n\t" 8092 "mul r5, r18 \n\t" 8093 "add r24, r0 \n\t" 8094 "adc r22, r1 \n\t" 8095 "adc r23, r25 \n\t" 8096 "mul r6, r17 \n\t" 8097 "add r24, r0 \n\t" 8098 "adc r22, r1 \n\t" 8099 "adc r23, r25 \n\t" 8100 "mul r7, r16 \n\t" 8101 "add r24, r0 \n\t" 8102 "adc r22, r1 \n\t" 8103 "adc r23, r25 \n\t" 8104 "mul r8, r15 \n\t" 8105 "add r24, r0 \n\t" 8106 "adc r22, r1 \n\t" 8107 "adc r23, r25 \n\t" 8108 "mul r9, r14 \n\t" 8109 "add r24, r0 \n\t" 8110 "adc r22, r1 \n\t" 8111 "adc r23, r25 \n\t" 8112 "ld r0, z \n\t" 8113 "add r24, r0 \n\t" 8114 "adc r22, r25 \n\t" 8115 "adc r23, r25 \n\t" 8116 "st z+, r24 \n\t" 8117 8118 "ld r14, y+ \n\t" 8119 "ldi r24, 0 \n\t" 8120 "mul r10, r14 \n\t" 8121 "add r22, r0 \n\t" 8122 "adc r23, r1 \n\t" 8123 "adc r24, r25 \n\t" 8124 "mul r11, r13 \n\t" 8125 "add r22, r0 \n\t" 8126 "adc r23, r1 \n\t" 8127 "adc r24, r25 \n\t" 8128 "mul r2, r12 \n\t" 8129 "add r22, r0 \n\t" 8130 "adc r23, r1 \n\t" 8131 "adc r24, r25 \n\t" 8132 "mul r3, r21 \n\t" 8133 "add r22, r0 \n\t" 8134 "adc r23, r1 \n\t" 8135 "adc r24, r25 \n\t" 8136 "mul r4, r20 \n\t" 8137 "add r22, r0 \n\t" 8138 "adc r23, r1 \n\t" 8139 "adc r24, r25 \n\t" 8140 "mul r5, r19 \n\t" 8141 "add r22, r0 \n\t" 8142 "adc r23, r1 \n\t" 8143 "adc r24, r25 \n\t" 8144 "mul r6, r18 \n\t" 8145 "add r22, r0 \n\t" 8146 "adc r23, r1 \n\t" 8147 "adc r24, r25 \n\t" 8148 "mul r7, r17 \n\t" 8149 "add r22, r0 \n\t" 8150 "adc r23, r1 \n\t" 8151 "adc r24, r25 \n\t" 8152 "mul r8, r16 \n\t" 8153 "add r22, r0 \n\t" 8154 "adc r23, r1 \n\t" 8155 "adc r24, r25 \n\t" 8156 "mul r9, r15 \n\t" 8157 "add r22, r0 \n\t" 8158 "adc r23, r1 \n\t" 8159 "adc r24, r25 \n\t" 8160 "ld r0, z \n\t" 8161 "add r22, r0 \n\t" 8162 "adc r23, r25 \n\t" 8163 "adc r24, r25 \n\t" 8164 "st z+, r22 \n\t" 8165 8166 "ld r15, y+ \n\t" 8167 "ldi r22, 0 \n\t" 8168 "mul r10, r15 \n\t" 8169 "add r23, r0 \n\t" 8170 "adc r24, r1 \n\t" 8171 "adc r22, r25 \n\t" 8172 "mul r11, r14 \n\t" 8173 "add r23, r0 \n\t" 8174 "adc r24, r1 \n\t" 8175 "adc r22, r25 \n\t" 8176 "mul r2, r13 \n\t" 8177 "add r23, r0 \n\t" 8178 "adc r24, r1 \n\t" 8179 "adc r22, r25 \n\t" 8180 "mul r3, r12 \n\t" 8181 "add r23, r0 \n\t" 8182 "adc r24, r1 \n\t" 8183 "adc r22, r25 \n\t" 8184 "mul r4, r21 \n\t" 8185 "add r23, r0 \n\t" 8186 "adc r24, r1 \n\t" 8187 "adc r22, r25 \n\t" 8188 "mul r5, r20 \n\t" 8189 "add r23, r0 \n\t" 8190 "adc r24, r1 \n\t" 8191 "adc r22, r25 \n\t" 8192 "mul r6, r19 \n\t" 8193 "add r23, r0 \n\t" 8194 "adc r24, r1 \n\t" 8195 "adc r22, r25 \n\t" 8196 "mul r7, r18 \n\t" 8197 "add r23, r0 \n\t" 8198 "adc r24, r1 \n\t" 8199 "adc r22, r25 \n\t" 8200 "mul r8, r17 \n\t" 8201 "add r23, r0 \n\t" 8202 "adc r24, r1 \n\t" 8203 "adc r22, r25 \n\t" 8204 "mul r9, r16 \n\t" 8205 "add r23, r0 \n\t" 8206 "adc r24, r1 \n\t" 8207 "adc r22, r25 \n\t" 8208 "ld r0, z \n\t" 8209 "add r23, r0 \n\t" 8210 "adc r24, r25 \n\t" 8211 "adc r22, r25 \n\t" 8212 "st z+, r23 \n\t" 8213 8214 "ld r16, y+ \n\t" 8215 "ldi r23, 0 \n\t" 8216 "mul r10, r16 \n\t" 8217 "add r24, r0 \n\t" 8218 "adc r22, r1 \n\t" 8219 "adc r23, r25 \n\t" 8220 "mul r11, r15 \n\t" 8221 "add r24, r0 \n\t" 8222 "adc r22, r1 \n\t" 8223 "adc r23, r25 \n\t" 8224 "mul r2, r14 \n\t" 8225 "add r24, r0 \n\t" 8226 "adc r22, r1 \n\t" 8227 "adc r23, r25 \n\t" 8228 "mul r3, r13 \n\t" 8229 "add r24, r0 \n\t" 8230 "adc r22, r1 \n\t" 8231 "adc r23, r25 \n\t" 8232 "mul r4, r12 \n\t" 8233 "add r24, r0 \n\t" 8234 "adc r22, r1 \n\t" 8235 "adc r23, r25 \n\t" 8236 "mul r5, r21 \n\t" 8237 "add r24, r0 \n\t" 8238 "adc r22, r1 \n\t" 8239 "adc r23, r25 \n\t" 8240 "mul r6, r20 \n\t" 8241 "add r24, r0 \n\t" 8242 "adc r22, r1 \n\t" 8243 "adc r23, r25 \n\t" 8244 "mul r7, r19 \n\t" 8245 "add r24, r0 \n\t" 8246 "adc r22, r1 \n\t" 8247 "adc r23, r25 \n\t" 8248 "mul r8, r18 \n\t" 8249 "add r24, r0 \n\t" 8250 "adc r22, r1 \n\t" 8251 "adc r23, r25 \n\t" 8252 "mul r9, r17 \n\t" 8253 "add r24, r0 \n\t" 8254 "adc r22, r1 \n\t" 8255 "adc r23, r25 \n\t" 8256 "ld r0, z \n\t" 8257 "add r24, r0 \n\t" 8258 "adc r22, r25 \n\t" 8259 "adc r23, r25 \n\t" 8260 "st z+, r24 \n\t" 8261 8262 "ld r17, y+ \n\t" 8263 "ldi r24, 0 \n\t" 8264 "mul r10, r17 \n\t" 8265 "add r22, r0 \n\t" 8266 "adc r23, r1 \n\t" 8267 "adc r24, r25 \n\t" 8268 "mul r11, r16 \n\t" 8269 "add r22, r0 \n\t" 8270 "adc r23, r1 \n\t" 8271 "adc r24, r25 \n\t" 8272 "mul r2, r15 \n\t" 8273 "add r22, r0 \n\t" 8274 "adc r23, r1 \n\t" 8275 "adc r24, r25 \n\t" 8276 "mul r3, r14 \n\t" 8277 "add r22, r0 \n\t" 8278 "adc r23, r1 \n\t" 8279 "adc r24, r25 \n\t" 8280 "mul r4, r13 \n\t" 8281 "add r22, r0 \n\t" 8282 "adc r23, r1 \n\t" 8283 "adc r24, r25 \n\t" 8284 "mul r5, r12 \n\t" 8285 "add r22, r0 \n\t" 8286 "adc r23, r1 \n\t" 8287 "adc r24, r25 \n\t" 8288 "mul r6, r21 \n\t" 8289 "add r22, r0 \n\t" 8290 "adc r23, r1 \n\t" 8291 "adc r24, r25 \n\t" 8292 "mul r7, r20 \n\t" 8293 "add r22, r0 \n\t" 8294 "adc r23, r1 \n\t" 8295 "adc r24, r25 \n\t" 8296 "mul r8, r19 \n\t" 8297 "add r22, r0 \n\t" 8298 "adc r23, r1 \n\t" 8299 "adc r24, r25 \n\t" 8300 "mul r9, r18 \n\t" 8301 "add r22, r0 \n\t" 8302 "adc r23, r1 \n\t" 8303 "adc r24, r25 \n\t" 8304 "ld r0, z \n\t" 8305 "add r22, r0 \n\t" 8306 "adc r23, r25 \n\t" 8307 "adc r24, r25 \n\t" 8308 "st z+, r22 \n\t" 8309 8310 "ld r18, y+ \n\t" 8311 "ldi r22, 0 \n\t" 8312 "mul r10, r18 \n\t" 8313 "add r23, r0 \n\t" 8314 "adc r24, r1 \n\t" 8315 "adc r22, r25 \n\t" 8316 "mul r11, r17 \n\t" 8317 "add r23, r0 \n\t" 8318 "adc r24, r1 \n\t" 8319 "adc r22, r25 \n\t" 8320 "mul r2, r16 \n\t" 8321 "add r23, r0 \n\t" 8322 "adc r24, r1 \n\t" 8323 "adc r22, r25 \n\t" 8324 "mul r3, r15 \n\t" 8325 "add r23, r0 \n\t" 8326 "adc r24, r1 \n\t" 8327 "adc r22, r25 \n\t" 8328 "mul r4, r14 \n\t" 8329 "add r23, r0 \n\t" 8330 "adc r24, r1 \n\t" 8331 "adc r22, r25 \n\t" 8332 "mul r5, r13 \n\t" 8333 "add r23, r0 \n\t" 8334 "adc r24, r1 \n\t" 8335 "adc r22, r25 \n\t" 8336 "mul r6, r12 \n\t" 8337 "add r23, r0 \n\t" 8338 "adc r24, r1 \n\t" 8339 "adc r22, r25 \n\t" 8340 "mul r7, r21 \n\t" 8341 "add r23, r0 \n\t" 8342 "adc r24, r1 \n\t" 8343 "adc r22, r25 \n\t" 8344 "mul r8, r20 \n\t" 8345 "add r23, r0 \n\t" 8346 "adc r24, r1 \n\t" 8347 "adc r22, r25 \n\t" 8348 "mul r9, r19 \n\t" 8349 "add r23, r0 \n\t" 8350 "adc r24, r1 \n\t" 8351 "adc r22, r25 \n\t" 8352 "ld r0, z \n\t" 8353 "add r23, r0 \n\t" 8354 "adc r24, r25 \n\t" 8355 "adc r22, r25 \n\t" 8356 "st z+, r23 \n\t" 8357 8358 "ld r19, y+ \n\t" 8359 "ldi r23, 0 \n\t" 8360 "mul r10, r19 \n\t" 8361 "add r24, r0 \n\t" 8362 "adc r22, r1 \n\t" 8363 "adc r23, r25 \n\t" 8364 "mul r11, r18 \n\t" 8365 "add r24, r0 \n\t" 8366 "adc r22, r1 \n\t" 8367 "adc r23, r25 \n\t" 8368 "mul r2, r17 \n\t" 8369 "add r24, r0 \n\t" 8370 "adc r22, r1 \n\t" 8371 "adc r23, r25 \n\t" 8372 "mul r3, r16 \n\t" 8373 "add r24, r0 \n\t" 8374 "adc r22, r1 \n\t" 8375 "adc r23, r25 \n\t" 8376 "mul r4, r15 \n\t" 8377 "add r24, r0 \n\t" 8378 "adc r22, r1 \n\t" 8379 "adc r23, r25 \n\t" 8380 "mul r5, r14 \n\t" 8381 "add r24, r0 \n\t" 8382 "adc r22, r1 \n\t" 8383 "adc r23, r25 \n\t" 8384 "mul r6, r13 \n\t" 8385 "add r24, r0 \n\t" 8386 "adc r22, r1 \n\t" 8387 "adc r23, r25 \n\t" 8388 "mul r7, r12 \n\t" 8389 "add r24, r0 \n\t" 8390 "adc r22, r1 \n\t" 8391 "adc r23, r25 \n\t" 8392 "mul r8, r21 \n\t" 8393 "add r24, r0 \n\t" 8394 "adc r22, r1 \n\t" 8395 "adc r23, r25 \n\t" 8396 "mul r9, r20 \n\t" 8397 "add r24, r0 \n\t" 8398 "adc r22, r1 \n\t" 8399 "adc r23, r25 \n\t" 8400 "ld r0, z \n\t" 8401 "add r24, r0 \n\t" 8402 "adc r22, r25 \n\t" 8403 "adc r23, r25 \n\t" 8404 "st z+, r24 \n\t" 8405 8406 "ldi r24, 0 \n\t" 8407 "mul r11, r19 \n\t" 8408 "add r22, r0 \n\t" 8409 "adc r23, r1 \n\t" 8410 "adc r24, r25 \n\t" 8411 "mul r2, r18 \n\t" 8412 "add r22, r0 \n\t" 8413 "adc r23, r1 \n\t" 8414 "adc r24, r25 \n\t" 8415 "mul r3, r17 \n\t" 8416 "add r22, r0 \n\t" 8417 "adc r23, r1 \n\t" 8418 "adc r24, r25 \n\t" 8419 "mul r4, r16 \n\t" 8420 "add r22, r0 \n\t" 8421 "adc r23, r1 \n\t" 8422 "adc r24, r25 \n\t" 8423 "mul r5, r15 \n\t" 8424 "add r22, r0 \n\t" 8425 "adc r23, r1 \n\t" 8426 "adc r24, r25 \n\t" 8427 "mul r6, r14 \n\t" 8428 "add r22, r0 \n\t" 8429 "adc r23, r1 \n\t" 8430 "adc r24, r25 \n\t" 8431 "mul r7, r13 \n\t" 8432 "add r22, r0 \n\t" 8433 "adc r23, r1 \n\t" 8434 "adc r24, r25 \n\t" 8435 "mul r8, r12 \n\t" 8436 "add r22, r0 \n\t" 8437 "adc r23, r1 \n\t" 8438 "adc r24, r25 \n\t" 8439 "mul r9, r21 \n\t" 8440 "add r22, r0 \n\t" 8441 "adc r23, r1 \n\t" 8442 "adc r24, r25 \n\t" 8443 "st z+, r22 \n\t" 8444 8445 "ldi r22, 0 \n\t" 8446 "mul r2, r19 \n\t" 8447 "add r23, r0 \n\t" 8448 "adc r24, r1 \n\t" 8449 "adc r22, r25 \n\t" 8450 "mul r3, r18 \n\t" 8451 "add r23, r0 \n\t" 8452 "adc r24, r1 \n\t" 8453 "adc r22, r25 \n\t" 8454 "mul r4, r17 \n\t" 8455 "add r23, r0 \n\t" 8456 "adc r24, r1 \n\t" 8457 "adc r22, r25 \n\t" 8458 "mul r5, r16 \n\t" 8459 "add r23, r0 \n\t" 8460 "adc r24, r1 \n\t" 8461 "adc r22, r25 \n\t" 8462 "mul r6, r15 \n\t" 8463 "add r23, r0 \n\t" 8464 "adc r24, r1 \n\t" 8465 "adc r22, r25 \n\t" 8466 "mul r7, r14 \n\t" 8467 "add r23, r0 \n\t" 8468 "adc r24, r1 \n\t" 8469 "adc r22, r25 \n\t" 8470 "mul r8, r13 \n\t" 8471 "add r23, r0 \n\t" 8472 "adc r24, r1 \n\t" 8473 "adc r22, r25 \n\t" 8474 "mul r9, r12 \n\t" 8475 "add r23, r0 \n\t" 8476 "adc r24, r1 \n\t" 8477 "adc r22, r25 \n\t" 8478 "st z+, r23 \n\t" 8479 8480 "ldi r23, 0 \n\t" 8481 "mul r3, r19 \n\t" 8482 "add r24, r0 \n\t" 8483 "adc r22, r1 \n\t" 8484 "adc r23, r25 \n\t" 8485 "mul r4, r18 \n\t" 8486 "add r24, r0 \n\t" 8487 "adc r22, r1 \n\t" 8488 "adc r23, r25 \n\t" 8489 "mul r5, r17 \n\t" 8490 "add r24, r0 \n\t" 8491 "adc r22, r1 \n\t" 8492 "adc r23, r25 \n\t" 8493 "mul r6, r16 \n\t" 8494 "add r24, r0 \n\t" 8495 "adc r22, r1 \n\t" 8496 "adc r23, r25 \n\t" 8497 "mul r7, r15 \n\t" 8498 "add r24, r0 \n\t" 8499 "adc r22, r1 \n\t" 8500 "adc r23, r25 \n\t" 8501 "mul r8, r14 \n\t" 8502 "add r24, r0 \n\t" 8503 "adc r22, r1 \n\t" 8504 "adc r23, r25 \n\t" 8505 "mul r9, r13 \n\t" 8506 "add r24, r0 \n\t" 8507 "adc r22, r1 \n\t" 8508 "adc r23, r25 \n\t" 8509 "st z+, r24 \n\t" 8510 8511 "ldi r24, 0 \n\t" 8512 "mul r4, r19 \n\t" 8513 "add r22, r0 \n\t" 8514 "adc r23, r1 \n\t" 8515 "adc r24, r25 \n\t" 8516 "mul r5, r18 \n\t" 8517 "add r22, r0 \n\t" 8518 "adc r23, r1 \n\t" 8519 "adc r24, r25 \n\t" 8520 "mul r6, r17 \n\t" 8521 "add r22, r0 \n\t" 8522 "adc r23, r1 \n\t" 8523 "adc r24, r25 \n\t" 8524 "mul r7, r16 \n\t" 8525 "add r22, r0 \n\t" 8526 "adc r23, r1 \n\t" 8527 "adc r24, r25 \n\t" 8528 "mul r8, r15 \n\t" 8529 "add r22, r0 \n\t" 8530 "adc r23, r1 \n\t" 8531 "adc r24, r25 \n\t" 8532 "mul r9, r14 \n\t" 8533 "add r22, r0 \n\t" 8534 "adc r23, r1 \n\t" 8535 "adc r24, r25 \n\t" 8536 "st z+, r22 \n\t" 8537 8538 "ldi r22, 0 \n\t" 8539 "mul r5, r19 \n\t" 8540 "add r23, r0 \n\t" 8541 "adc r24, r1 \n\t" 8542 "adc r22, r25 \n\t" 8543 "mul r6, r18 \n\t" 8544 "add r23, r0 \n\t" 8545 "adc r24, r1 \n\t" 8546 "adc r22, r25 \n\t" 8547 "mul r7, r17 \n\t" 8548 "add r23, r0 \n\t" 8549 "adc r24, r1 \n\t" 8550 "adc r22, r25 \n\t" 8551 "mul r8, r16 \n\t" 8552 "add r23, r0 \n\t" 8553 "adc r24, r1 \n\t" 8554 "adc r22, r25 \n\t" 8555 "mul r9, r15 \n\t" 8556 "add r23, r0 \n\t" 8557 "adc r24, r1 \n\t" 8558 "adc r22, r25 \n\t" 8559 "st z+, r23 \n\t" 8560 8561 "ldi r23, 0 \n\t" 8562 "mul r6, r19 \n\t" 8563 "add r24, r0 \n\t" 8564 "adc r22, r1 \n\t" 8565 "adc r23, r25 \n\t" 8566 "mul r7, r18 \n\t" 8567 "add r24, r0 \n\t" 8568 "adc r22, r1 \n\t" 8569 "adc r23, r25 \n\t" 8570 "mul r8, r17 \n\t" 8571 "add r24, r0 \n\t" 8572 "adc r22, r1 \n\t" 8573 "adc r23, r25 \n\t" 8574 "mul r9, r16 \n\t" 8575 "add r24, r0 \n\t" 8576 "adc r22, r1 \n\t" 8577 "adc r23, r25 \n\t" 8578 "st z+, r24 \n\t" 8579 8580 "ldi r24, 0 \n\t" 8581 "mul r7, r19 \n\t" 8582 "add r22, r0 \n\t" 8583 "adc r23, r1 \n\t" 8584 "adc r24, r25 \n\t" 8585 "mul r8, r18 \n\t" 8586 "add r22, r0 \n\t" 8587 "adc r23, r1 \n\t" 8588 "adc r24, r25 \n\t" 8589 "mul r9, r17 \n\t" 8590 "add r22, r0 \n\t" 8591 "adc r23, r1 \n\t" 8592 "adc r24, r25 \n\t" 8593 "st z+, r22 \n\t" 8594 8595 "ldi r22, 0 \n\t" 8596 "mul r8, r19 \n\t" 8597 "add r23, r0 \n\t" 8598 "adc r24, r1 \n\t" 8599 "adc r22, r25 \n\t" 8600 "mul r9, r18 \n\t" 8601 "add r23, r0 \n\t" 8602 "adc r24, r1 \n\t" 8603 "adc r22, r25 \n\t" 8604 "st z+, r23 \n\t" 8605 8606 "mul r9, r19 \n\t" 8607 "add r24, r0 \n\t" 8608 "adc r22, r1 \n\t" 8609 "st z+, r24 \n\t" 8610 "st z+, r22 \n\t" 8611 "eor r1, r1 \n\t" 8612 : "+x" (left), "+y" (right), "+z" (result) 8613 : 8614 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 8615 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 8616 "r21", "r22", "r23", "r24", "r25", "cc", "memory" 8617 ); 8618} 8619#define asm_mult 1 8620#elif (uECC_BYTES == 32) 8621__attribute((noinline)) 8622static void vli_mult(uint8_t *result, const uint8_t *left, const uint8_t *right) { 8623 __asm__ volatile ( 8624 "adiw r30, 30 \n\t" 8625 "adiw r28, 30 \n\t" 8626 "ld r2, x+ \n\t" 8627 "ld r3, x+ \n\t" 8628 "ld r12, y+ \n\t" 8629 "ld r13, y+ \n\t" 8630 "ldi r25, 0 \n\t" 8631 8632 "ldi r23, 0 \n\t" 8633 "mul r2, r12 \n\t" 8634 "st z+, r0 \n\t" 8635 "mov r22, r1 \n\t" 8636 8637 "ldi r24, 0 \n\t" 8638 "mul r2, r13 \n\t" 8639 "add r22, r0 \n\t" 8640 "adc r23, r1 \n\t" 8641 "mul r3, r12 \n\t" 8642 "add r22, r0 \n\t" 8643 "adc r23, r1 \n\t" 8644 "adc r24, r25 \n\t" 8645 "st z+, r22 \n\t" 8646 8647 "mul r3, r13 \n\t" 8648 "add r23, r0 \n\t" 8649 "adc r24, r1 \n\t" 8650 "st z+, r23 \n\t" 8651 "st z+, r24 \n\t" 8652 8653 "sbiw r30, 14 \n\t" 8654 "sbiw r28, 12 \n\t" 8655 "ld r12, y+ \n\t" 8656 "ld r13, y+ \n\t" 8657 "ld r14, y+ \n\t" 8658 "ld r15, y+ \n\t" 8659 "ld r16, y+ \n\t" 8660 "ld r17, y+ \n\t" 8661 "ld r18, y+ \n\t" 8662 "ld r19, y+ \n\t" 8663 "ld r20, y+ \n\t" 8664 "ld r21, y+ \n\t" 8665 "ld r4, x+ \n\t" 8666 "ld r5, x+ \n\t" 8667 "ld r6, x+ \n\t" 8668 "ld r7, x+ \n\t" 8669 "ld r8, x+ \n\t" 8670 "ld r9, x+ \n\t" 8671 "ld r10, x+ \n\t" 8672 "ld r11, x+ \n\t" 8673 8674 "ldi r23, 0 \n\t" 8675 "mul r2, r12 \n\t" 8676 "st z+, r0 \n\t" 8677 "mov r22, r1 \n\t" 8678 8679 "ldi r24, 0 \n\t" 8680 "mul r2, r13 \n\t" 8681 "add r22, r0 \n\t" 8682 "adc r23, r1 \n\t" 8683 "mul r3, r12 \n\t" 8684 "add r22, r0 \n\t" 8685 "adc r23, r1 \n\t" 8686 "adc r24, r25 \n\t" 8687 "st z+, r22 \n\t" 8688 8689 "ldi r22, 0 \n\t" 8690 "mul r2, r14 \n\t" 8691 "add r23, r0 \n\t" 8692 "adc r24, r1 \n\t" 8693 "adc r22, r25 \n\t" 8694 "mul r3, r13 \n\t" 8695 "add r23, r0 \n\t" 8696 "adc r24, r1 \n\t" 8697 "adc r22, r25 \n\t" 8698 "mul r4, r12 \n\t" 8699 "add r23, r0 \n\t" 8700 "adc r24, r1 \n\t" 8701 "adc r22, r25 \n\t" 8702 "st z+, r23 \n\t" 8703 8704 "ldi r23, 0 \n\t" 8705 "mul r2, r15 \n\t" 8706 "add r24, r0 \n\t" 8707 "adc r22, r1 \n\t" 8708 "adc r23, r25 \n\t" 8709 "mul r3, r14 \n\t" 8710 "add r24, r0 \n\t" 8711 "adc r22, r1 \n\t" 8712 "adc r23, r25 \n\t" 8713 "mul r4, r13 \n\t" 8714 "add r24, r0 \n\t" 8715 "adc r22, r1 \n\t" 8716 "adc r23, r25 \n\t" 8717 "mul r5, r12 \n\t" 8718 "add r24, r0 \n\t" 8719 "adc r22, r1 \n\t" 8720 "adc r23, r25 \n\t" 8721 "st z+, r24 \n\t" 8722 8723 "ldi r24, 0 \n\t" 8724 "mul r2, r16 \n\t" 8725 "add r22, r0 \n\t" 8726 "adc r23, r1 \n\t" 8727 "adc r24, r25 \n\t" 8728 "mul r3, r15 \n\t" 8729 "add r22, r0 \n\t" 8730 "adc r23, r1 \n\t" 8731 "adc r24, r25 \n\t" 8732 "mul r4, r14 \n\t" 8733 "add r22, r0 \n\t" 8734 "adc r23, r1 \n\t" 8735 "adc r24, r25 \n\t" 8736 "mul r5, r13 \n\t" 8737 "add r22, r0 \n\t" 8738 "adc r23, r1 \n\t" 8739 "adc r24, r25 \n\t" 8740 "mul r6, r12 \n\t" 8741 "add r22, r0 \n\t" 8742 "adc r23, r1 \n\t" 8743 "adc r24, r25 \n\t" 8744 "st z+, r22 \n\t" 8745 8746 "ldi r22, 0 \n\t" 8747 "mul r2, r17 \n\t" 8748 "add r23, r0 \n\t" 8749 "adc r24, r1 \n\t" 8750 "adc r22, r25 \n\t" 8751 "mul r3, r16 \n\t" 8752 "add r23, r0 \n\t" 8753 "adc r24, r1 \n\t" 8754 "adc r22, r25 \n\t" 8755 "mul r4, r15 \n\t" 8756 "add r23, r0 \n\t" 8757 "adc r24, r1 \n\t" 8758 "adc r22, r25 \n\t" 8759 "mul r5, r14 \n\t" 8760 "add r23, r0 \n\t" 8761 "adc r24, r1 \n\t" 8762 "adc r22, r25 \n\t" 8763 "mul r6, r13 \n\t" 8764 "add r23, r0 \n\t" 8765 "adc r24, r1 \n\t" 8766 "adc r22, r25 \n\t" 8767 "mul r7, r12 \n\t" 8768 "add r23, r0 \n\t" 8769 "adc r24, r1 \n\t" 8770 "adc r22, r25 \n\t" 8771 "st z+, r23 \n\t" 8772 8773 "ldi r23, 0 \n\t" 8774 "mul r2, r18 \n\t" 8775 "add r24, r0 \n\t" 8776 "adc r22, r1 \n\t" 8777 "adc r23, r25 \n\t" 8778 "mul r3, r17 \n\t" 8779 "add r24, r0 \n\t" 8780 "adc r22, r1 \n\t" 8781 "adc r23, r25 \n\t" 8782 "mul r4, r16 \n\t" 8783 "add r24, r0 \n\t" 8784 "adc r22, r1 \n\t" 8785 "adc r23, r25 \n\t" 8786 "mul r5, r15 \n\t" 8787 "add r24, r0 \n\t" 8788 "adc r22, r1 \n\t" 8789 "adc r23, r25 \n\t" 8790 "mul r6, r14 \n\t" 8791 "add r24, r0 \n\t" 8792 "adc r22, r1 \n\t" 8793 "adc r23, r25 \n\t" 8794 "mul r7, r13 \n\t" 8795 "add r24, r0 \n\t" 8796 "adc r22, r1 \n\t" 8797 "adc r23, r25 \n\t" 8798 "mul r8, r12 \n\t" 8799 "add r24, r0 \n\t" 8800 "adc r22, r1 \n\t" 8801 "adc r23, r25 \n\t" 8802 "st z+, r24 \n\t" 8803 8804 "ldi r24, 0 \n\t" 8805 "mul r2, r19 \n\t" 8806 "add r22, r0 \n\t" 8807 "adc r23, r1 \n\t" 8808 "adc r24, r25 \n\t" 8809 "mul r3, r18 \n\t" 8810 "add r22, r0 \n\t" 8811 "adc r23, r1 \n\t" 8812 "adc r24, r25 \n\t" 8813 "mul r4, r17 \n\t" 8814 "add r22, r0 \n\t" 8815 "adc r23, r1 \n\t" 8816 "adc r24, r25 \n\t" 8817 "mul r5, r16 \n\t" 8818 "add r22, r0 \n\t" 8819 "adc r23, r1 \n\t" 8820 "adc r24, r25 \n\t" 8821 "mul r6, r15 \n\t" 8822 "add r22, r0 \n\t" 8823 "adc r23, r1 \n\t" 8824 "adc r24, r25 \n\t" 8825 "mul r7, r14 \n\t" 8826 "add r22, r0 \n\t" 8827 "adc r23, r1 \n\t" 8828 "adc r24, r25 \n\t" 8829 "mul r8, r13 \n\t" 8830 "add r22, r0 \n\t" 8831 "adc r23, r1 \n\t" 8832 "adc r24, r25 \n\t" 8833 "mul r9, r12 \n\t" 8834 "add r22, r0 \n\t" 8835 "adc r23, r1 \n\t" 8836 "adc r24, r25 \n\t" 8837 "st z+, r22 \n\t" 8838 8839 "ldi r22, 0 \n\t" 8840 "mul r2, r20 \n\t" 8841 "add r23, r0 \n\t" 8842 "adc r24, r1 \n\t" 8843 "adc r22, r25 \n\t" 8844 "mul r3, r19 \n\t" 8845 "add r23, r0 \n\t" 8846 "adc r24, r1 \n\t" 8847 "adc r22, r25 \n\t" 8848 "mul r4, r18 \n\t" 8849 "add r23, r0 \n\t" 8850 "adc r24, r1 \n\t" 8851 "adc r22, r25 \n\t" 8852 "mul r5, r17 \n\t" 8853 "add r23, r0 \n\t" 8854 "adc r24, r1 \n\t" 8855 "adc r22, r25 \n\t" 8856 "mul r6, r16 \n\t" 8857 "add r23, r0 \n\t" 8858 "adc r24, r1 \n\t" 8859 "adc r22, r25 \n\t" 8860 "mul r7, r15 \n\t" 8861 "add r23, r0 \n\t" 8862 "adc r24, r1 \n\t" 8863 "adc r22, r25 \n\t" 8864 "mul r8, r14 \n\t" 8865 "add r23, r0 \n\t" 8866 "adc r24, r1 \n\t" 8867 "adc r22, r25 \n\t" 8868 "mul r9, r13 \n\t" 8869 "add r23, r0 \n\t" 8870 "adc r24, r1 \n\t" 8871 "adc r22, r25 \n\t" 8872 "mul r10, r12 \n\t" 8873 "add r23, r0 \n\t" 8874 "adc r24, r1 \n\t" 8875 "adc r22, r25 \n\t" 8876 "st z+, r23 \n\t" 8877 8878 "ldi r23, 0 \n\t" 8879 "mul r2, r21 \n\t" 8880 "add r24, r0 \n\t" 8881 "adc r22, r1 \n\t" 8882 "adc r23, r25 \n\t" 8883 "mul r3, r20 \n\t" 8884 "add r24, r0 \n\t" 8885 "adc r22, r1 \n\t" 8886 "adc r23, r25 \n\t" 8887 "mul r4, r19 \n\t" 8888 "add r24, r0 \n\t" 8889 "adc r22, r1 \n\t" 8890 "adc r23, r25 \n\t" 8891 "mul r5, r18 \n\t" 8892 "add r24, r0 \n\t" 8893 "adc r22, r1 \n\t" 8894 "adc r23, r25 \n\t" 8895 "mul r6, r17 \n\t" 8896 "add r24, r0 \n\t" 8897 "adc r22, r1 \n\t" 8898 "adc r23, r25 \n\t" 8899 "mul r7, r16 \n\t" 8900 "add r24, r0 \n\t" 8901 "adc r22, r1 \n\t" 8902 "adc r23, r25 \n\t" 8903 "mul r8, r15 \n\t" 8904 "add r24, r0 \n\t" 8905 "adc r22, r1 \n\t" 8906 "adc r23, r25 \n\t" 8907 "mul r9, r14 \n\t" 8908 "add r24, r0 \n\t" 8909 "adc r22, r1 \n\t" 8910 "adc r23, r25 \n\t" 8911 "mul r10, r13 \n\t" 8912 "add r24, r0 \n\t" 8913 "adc r22, r1 \n\t" 8914 "adc r23, r25 \n\t" 8915 "mul r11, r12 \n\t" 8916 "add r24, r0 \n\t" 8917 "adc r22, r1 \n\t" 8918 "adc r23, r25 \n\t" 8919 "st z+, r24 \n\t" 8920 8921 "ld r2, x+ \n\t" 8922 "ldi r24, 0 \n\t" 8923 "mul r3, r21 \n\t" 8924 "add r22, r0 \n\t" 8925 "adc r23, r1 \n\t" 8926 "adc r24, r25 \n\t" 8927 "mul r4, r20 \n\t" 8928 "add r22, r0 \n\t" 8929 "adc r23, r1 \n\t" 8930 "adc r24, r25 \n\t" 8931 "mul r5, r19 \n\t" 8932 "add r22, r0 \n\t" 8933 "adc r23, r1 \n\t" 8934 "adc r24, r25 \n\t" 8935 "mul r6, r18 \n\t" 8936 "add r22, r0 \n\t" 8937 "adc r23, r1 \n\t" 8938 "adc r24, r25 \n\t" 8939 "mul r7, r17 \n\t" 8940 "add r22, r0 \n\t" 8941 "adc r23, r1 \n\t" 8942 "adc r24, r25 \n\t" 8943 "mul r8, r16 \n\t" 8944 "add r22, r0 \n\t" 8945 "adc r23, r1 \n\t" 8946 "adc r24, r25 \n\t" 8947 "mul r9, r15 \n\t" 8948 "add r22, r0 \n\t" 8949 "adc r23, r1 \n\t" 8950 "adc r24, r25 \n\t" 8951 "mul r10, r14 \n\t" 8952 "add r22, r0 \n\t" 8953 "adc r23, r1 \n\t" 8954 "adc r24, r25 \n\t" 8955 "mul r11, r13 \n\t" 8956 "add r22, r0 \n\t" 8957 "adc r23, r1 \n\t" 8958 "adc r24, r25 \n\t" 8959 "mul r2, r12 \n\t" 8960 "add r22, r0 \n\t" 8961 "adc r23, r1 \n\t" 8962 "adc r24, r25 \n\t" 8963 "ld r0, z \n\t" 8964 "add r22, r0 \n\t" 8965 "adc r23, r25 \n\t" 8966 "adc r24, r25 \n\t" 8967 "st z+, r22 \n\t" 8968 8969 "ld r3, x+ \n\t" 8970 "ldi r22, 0 \n\t" 8971 "mul r4, r21 \n\t" 8972 "add r23, r0 \n\t" 8973 "adc r24, r1 \n\t" 8974 "adc r22, r25 \n\t" 8975 "mul r5, r20 \n\t" 8976 "add r23, r0 \n\t" 8977 "adc r24, r1 \n\t" 8978 "adc r22, r25 \n\t" 8979 "mul r6, r19 \n\t" 8980 "add r23, r0 \n\t" 8981 "adc r24, r1 \n\t" 8982 "adc r22, r25 \n\t" 8983 "mul r7, r18 \n\t" 8984 "add r23, r0 \n\t" 8985 "adc r24, r1 \n\t" 8986 "adc r22, r25 \n\t" 8987 "mul r8, r17 \n\t" 8988 "add r23, r0 \n\t" 8989 "adc r24, r1 \n\t" 8990 "adc r22, r25 \n\t" 8991 "mul r9, r16 \n\t" 8992 "add r23, r0 \n\t" 8993 "adc r24, r1 \n\t" 8994 "adc r22, r25 \n\t" 8995 "mul r10, r15 \n\t" 8996 "add r23, r0 \n\t" 8997 "adc r24, r1 \n\t" 8998 "adc r22, r25 \n\t" 8999 "mul r11, r14 \n\t" 9000 "add r23, r0 \n\t" 9001 "adc r24, r1 \n\t" 9002 "adc r22, r25 \n\t" 9003 "mul r2, r13 \n\t" 9004 "add r23, r0 \n\t" 9005 "adc r24, r1 \n\t" 9006 "adc r22, r25 \n\t" 9007 "mul r3, r12 \n\t" 9008 "add r23, r0 \n\t" 9009 "adc r24, r1 \n\t" 9010 "adc r22, r25 \n\t" 9011 "ld r0, z \n\t" 9012 "add r23, r0 \n\t" 9013 "adc r24, r25 \n\t" 9014 "adc r22, r25 \n\t" 9015 "st z+, r23 \n\t" 9016 9017 "ld r12, y+ \n\t" 9018 "ldi r23, 0 \n\t" 9019 "mul r4, r12 \n\t" 9020 "add r24, r0 \n\t" 9021 "adc r22, r1 \n\t" 9022 "adc r23, r25 \n\t" 9023 "mul r5, r21 \n\t" 9024 "add r24, r0 \n\t" 9025 "adc r22, r1 \n\t" 9026 "adc r23, r25 \n\t" 9027 "mul r6, r20 \n\t" 9028 "add r24, r0 \n\t" 9029 "adc r22, r1 \n\t" 9030 "adc r23, r25 \n\t" 9031 "mul r7, r19 \n\t" 9032 "add r24, r0 \n\t" 9033 "adc r22, r1 \n\t" 9034 "adc r23, r25 \n\t" 9035 "mul r8, r18 \n\t" 9036 "add r24, r0 \n\t" 9037 "adc r22, r1 \n\t" 9038 "adc r23, r25 \n\t" 9039 "mul r9, r17 \n\t" 9040 "add r24, r0 \n\t" 9041 "adc r22, r1 \n\t" 9042 "adc r23, r25 \n\t" 9043 "mul r10, r16 \n\t" 9044 "add r24, r0 \n\t" 9045 "adc r22, r1 \n\t" 9046 "adc r23, r25 \n\t" 9047 "mul r11, r15 \n\t" 9048 "add r24, r0 \n\t" 9049 "adc r22, r1 \n\t" 9050 "adc r23, r25 \n\t" 9051 "mul r2, r14 \n\t" 9052 "add r24, r0 \n\t" 9053 "adc r22, r1 \n\t" 9054 "adc r23, r25 \n\t" 9055 "mul r3, r13 \n\t" 9056 "add r24, r0 \n\t" 9057 "adc r22, r1 \n\t" 9058 "adc r23, r25 \n\t" 9059 "ld r0, z \n\t" 9060 "add r24, r0 \n\t" 9061 "adc r22, r25 \n\t" 9062 "adc r23, r25 \n\t" 9063 "st z+, r24 \n\t" 9064 9065 "ld r13, y+ \n\t" 9066 "ldi r24, 0 \n\t" 9067 "mul r4, r13 \n\t" 9068 "add r22, r0 \n\t" 9069 "adc r23, r1 \n\t" 9070 "adc r24, r25 \n\t" 9071 "mul r5, r12 \n\t" 9072 "add r22, r0 \n\t" 9073 "adc r23, r1 \n\t" 9074 "adc r24, r25 \n\t" 9075 "mul r6, r21 \n\t" 9076 "add r22, r0 \n\t" 9077 "adc r23, r1 \n\t" 9078 "adc r24, r25 \n\t" 9079 "mul r7, r20 \n\t" 9080 "add r22, r0 \n\t" 9081 "adc r23, r1 \n\t" 9082 "adc r24, r25 \n\t" 9083 "mul r8, r19 \n\t" 9084 "add r22, r0 \n\t" 9085 "adc r23, r1 \n\t" 9086 "adc r24, r25 \n\t" 9087 "mul r9, r18 \n\t" 9088 "add r22, r0 \n\t" 9089 "adc r23, r1 \n\t" 9090 "adc r24, r25 \n\t" 9091 "mul r10, r17 \n\t" 9092 "add r22, r0 \n\t" 9093 "adc r23, r1 \n\t" 9094 "adc r24, r25 \n\t" 9095 "mul r11, r16 \n\t" 9096 "add r22, r0 \n\t" 9097 "adc r23, r1 \n\t" 9098 "adc r24, r25 \n\t" 9099 "mul r2, r15 \n\t" 9100 "add r22, r0 \n\t" 9101 "adc r23, r1 \n\t" 9102 "adc r24, r25 \n\t" 9103 "mul r3, r14 \n\t" 9104 "add r22, r0 \n\t" 9105 "adc r23, r1 \n\t" 9106 "adc r24, r25 \n\t" 9107 "ld r0, z \n\t" 9108 "add r22, r0 \n\t" 9109 "adc r23, r25 \n\t" 9110 "adc r24, r25 \n\t" 9111 "st z+, r22 \n\t" 9112 9113 "ldi r22, 0 \n\t" 9114 "mul r5, r13 \n\t" 9115 "add r23, r0 \n\t" 9116 "adc r24, r1 \n\t" 9117 "adc r22, r25 \n\t" 9118 "mul r6, r12 \n\t" 9119 "add r23, r0 \n\t" 9120 "adc r24, r1 \n\t" 9121 "adc r22, r25 \n\t" 9122 "mul r7, r21 \n\t" 9123 "add r23, r0 \n\t" 9124 "adc r24, r1 \n\t" 9125 "adc r22, r25 \n\t" 9126 "mul r8, r20 \n\t" 9127 "add r23, r0 \n\t" 9128 "adc r24, r1 \n\t" 9129 "adc r22, r25 \n\t" 9130 "mul r9, r19 \n\t" 9131 "add r23, r0 \n\t" 9132 "adc r24, r1 \n\t" 9133 "adc r22, r25 \n\t" 9134 "mul r10, r18 \n\t" 9135 "add r23, r0 \n\t" 9136 "adc r24, r1 \n\t" 9137 "adc r22, r25 \n\t" 9138 "mul r11, r17 \n\t" 9139 "add r23, r0 \n\t" 9140 "adc r24, r1 \n\t" 9141 "adc r22, r25 \n\t" 9142 "mul r2, r16 \n\t" 9143 "add r23, r0 \n\t" 9144 "adc r24, r1 \n\t" 9145 "adc r22, r25 \n\t" 9146 "mul r3, r15 \n\t" 9147 "add r23, r0 \n\t" 9148 "adc r24, r1 \n\t" 9149 "adc r22, r25 \n\t" 9150 "st z+, r23 \n\t" 9151 9152 "ldi r23, 0 \n\t" 9153 "mul r6, r13 \n\t" 9154 "add r24, r0 \n\t" 9155 "adc r22, r1 \n\t" 9156 "adc r23, r25 \n\t" 9157 "mul r7, r12 \n\t" 9158 "add r24, r0 \n\t" 9159 "adc r22, r1 \n\t" 9160 "adc r23, r25 \n\t" 9161 "mul r8, r21 \n\t" 9162 "add r24, r0 \n\t" 9163 "adc r22, r1 \n\t" 9164 "adc r23, r25 \n\t" 9165 "mul r9, r20 \n\t" 9166 "add r24, r0 \n\t" 9167 "adc r22, r1 \n\t" 9168 "adc r23, r25 \n\t" 9169 "mul r10, r19 \n\t" 9170 "add r24, r0 \n\t" 9171 "adc r22, r1 \n\t" 9172 "adc r23, r25 \n\t" 9173 "mul r11, r18 \n\t" 9174 "add r24, r0 \n\t" 9175 "adc r22, r1 \n\t" 9176 "adc r23, r25 \n\t" 9177 "mul r2, r17 \n\t" 9178 "add r24, r0 \n\t" 9179 "adc r22, r1 \n\t" 9180 "adc r23, r25 \n\t" 9181 "mul r3, r16 \n\t" 9182 "add r24, r0 \n\t" 9183 "adc r22, r1 \n\t" 9184 "adc r23, r25 \n\t" 9185 "st z+, r24 \n\t" 9186 9187 "ldi r24, 0 \n\t" 9188 "mul r7, r13 \n\t" 9189 "add r22, r0 \n\t" 9190 "adc r23, r1 \n\t" 9191 "adc r24, r25 \n\t" 9192 "mul r8, r12 \n\t" 9193 "add r22, r0 \n\t" 9194 "adc r23, r1 \n\t" 9195 "adc r24, r25 \n\t" 9196 "mul r9, r21 \n\t" 9197 "add r22, r0 \n\t" 9198 "adc r23, r1 \n\t" 9199 "adc r24, r25 \n\t" 9200 "mul r10, r20 \n\t" 9201 "add r22, r0 \n\t" 9202 "adc r23, r1 \n\t" 9203 "adc r24, r25 \n\t" 9204 "mul r11, r19 \n\t" 9205 "add r22, r0 \n\t" 9206 "adc r23, r1 \n\t" 9207 "adc r24, r25 \n\t" 9208 "mul r2, r18 \n\t" 9209 "add r22, r0 \n\t" 9210 "adc r23, r1 \n\t" 9211 "adc r24, r25 \n\t" 9212 "mul r3, r17 \n\t" 9213 "add r22, r0 \n\t" 9214 "adc r23, r1 \n\t" 9215 "adc r24, r25 \n\t" 9216 "st z+, r22 \n\t" 9217 9218 "ldi r22, 0 \n\t" 9219 "mul r8, r13 \n\t" 9220 "add r23, r0 \n\t" 9221 "adc r24, r1 \n\t" 9222 "adc r22, r25 \n\t" 9223 "mul r9, r12 \n\t" 9224 "add r23, r0 \n\t" 9225 "adc r24, r1 \n\t" 9226 "adc r22, r25 \n\t" 9227 "mul r10, r21 \n\t" 9228 "add r23, r0 \n\t" 9229 "adc r24, r1 \n\t" 9230 "adc r22, r25 \n\t" 9231 "mul r11, r20 \n\t" 9232 "add r23, r0 \n\t" 9233 "adc r24, r1 \n\t" 9234 "adc r22, r25 \n\t" 9235 "mul r2, r19 \n\t" 9236 "add r23, r0 \n\t" 9237 "adc r24, r1 \n\t" 9238 "adc r22, r25 \n\t" 9239 "mul r3, r18 \n\t" 9240 "add r23, r0 \n\t" 9241 "adc r24, r1 \n\t" 9242 "adc r22, r25 \n\t" 9243 "st z+, r23 \n\t" 9244 9245 "ldi r23, 0 \n\t" 9246 "mul r9, r13 \n\t" 9247 "add r24, r0 \n\t" 9248 "adc r22, r1 \n\t" 9249 "adc r23, r25 \n\t" 9250 "mul r10, r12 \n\t" 9251 "add r24, r0 \n\t" 9252 "adc r22, r1 \n\t" 9253 "adc r23, r25 \n\t" 9254 "mul r11, r21 \n\t" 9255 "add r24, r0 \n\t" 9256 "adc r22, r1 \n\t" 9257 "adc r23, r25 \n\t" 9258 "mul r2, r20 \n\t" 9259 "add r24, r0 \n\t" 9260 "adc r22, r1 \n\t" 9261 "adc r23, r25 \n\t" 9262 "mul r3, r19 \n\t" 9263 "add r24, r0 \n\t" 9264 "adc r22, r1 \n\t" 9265 "adc r23, r25 \n\t" 9266 "st z+, r24 \n\t" 9267 9268 "ldi r24, 0 \n\t" 9269 "mul r10, r13 \n\t" 9270 "add r22, r0 \n\t" 9271 "adc r23, r1 \n\t" 9272 "adc r24, r25 \n\t" 9273 "mul r11, r12 \n\t" 9274 "add r22, r0 \n\t" 9275 "adc r23, r1 \n\t" 9276 "adc r24, r25 \n\t" 9277 "mul r2, r21 \n\t" 9278 "add r22, r0 \n\t" 9279 "adc r23, r1 \n\t" 9280 "adc r24, r25 \n\t" 9281 "mul r3, r20 \n\t" 9282 "add r22, r0 \n\t" 9283 "adc r23, r1 \n\t" 9284 "adc r24, r25 \n\t" 9285 "st z+, r22 \n\t" 9286 9287 "ldi r22, 0 \n\t" 9288 "mul r11, r13 \n\t" 9289 "add r23, r0 \n\t" 9290 "adc r24, r1 \n\t" 9291 "adc r22, r25 \n\t" 9292 "mul r2, r12 \n\t" 9293 "add r23, r0 \n\t" 9294 "adc r24, r1 \n\t" 9295 "adc r22, r25 \n\t" 9296 "mul r3, r21 \n\t" 9297 "add r23, r0 \n\t" 9298 "adc r24, r1 \n\t" 9299 "adc r22, r25 \n\t" 9300 "st z+, r23 \n\t" 9301 9302 "ldi r23, 0 \n\t" 9303 "mul r2, r13 \n\t" 9304 "add r24, r0 \n\t" 9305 "adc r22, r1 \n\t" 9306 "adc r23, r25 \n\t" 9307 "mul r3, r12 \n\t" 9308 "add r24, r0 \n\t" 9309 "adc r22, r1 \n\t" 9310 "adc r23, r25 \n\t" 9311 "st z+, r24 \n\t" 9312 9313 "mul r3, r13 \n\t" 9314 "add r22, r0 \n\t" 9315 "adc r23, r1 \n\t" 9316 "st z+, r22 \n\t" 9317 "st z+, r23 \n\t" 9318 9319 "sbiw r30, 34 \n\t" 9320 "sbiw r28, 22 \n\t" 9321 "sbiw r26, 12 \n\t" 9322 "ld r2, x+ \n\t" 9323 "ld r12, y+ \n\t" 9324 "ld r3, x+ \n\t" 9325 "ld r13, y+ \n\t" 9326 "ld r4, x+ \n\t" 9327 "ld r14, y+ \n\t" 9328 "ld r5, x+ \n\t" 9329 "ld r15, y+ \n\t" 9330 "ld r6, x+ \n\t" 9331 "ld r16, y+ \n\t" 9332 "ld r7, x+ \n\t" 9333 "ld r17, y+ \n\t" 9334 "ld r8, x+ \n\t" 9335 "ld r18, y+ \n\t" 9336 "ld r9, x+ \n\t" 9337 "ld r19, y+ \n\t" 9338 "ld r10, x+ \n\t" 9339 "ld r20, y+ \n\t" 9340 "ld r11, x+ \n\t" 9341 "ld r21, y+ \n\t" 9342 9343 "ldi r23, 0 \n\t" 9344 "mul r2, r12 \n\t" 9345 "st z+, r0 \n\t" 9346 "mov r22, r1 \n\t" 9347 9348 "ldi r24, 0 \n\t" 9349 "mul r2, r13 \n\t" 9350 "add r22, r0 \n\t" 9351 "adc r23, r1 \n\t" 9352 "mul r3, r12 \n\t" 9353 "add r22, r0 \n\t" 9354 "adc r23, r1 \n\t" 9355 "adc r24, r25 \n\t" 9356 "st z+, r22 \n\t" 9357 9358 "ldi r22, 0 \n\t" 9359 "mul r2, r14 \n\t" 9360 "add r23, r0 \n\t" 9361 "adc r24, r1 \n\t" 9362 "adc r22, r25 \n\t" 9363 "mul r3, r13 \n\t" 9364 "add r23, r0 \n\t" 9365 "adc r24, r1 \n\t" 9366 "adc r22, r25 \n\t" 9367 "mul r4, r12 \n\t" 9368 "add r23, r0 \n\t" 9369 "adc r24, r1 \n\t" 9370 "adc r22, r25 \n\t" 9371 "st z+, r23 \n\t" 9372 9373 "ldi r23, 0 \n\t" 9374 "mul r2, r15 \n\t" 9375 "add r24, r0 \n\t" 9376 "adc r22, r1 \n\t" 9377 "adc r23, r25 \n\t" 9378 "mul r3, r14 \n\t" 9379 "add r24, r0 \n\t" 9380 "adc r22, r1 \n\t" 9381 "adc r23, r25 \n\t" 9382 "mul r4, r13 \n\t" 9383 "add r24, r0 \n\t" 9384 "adc r22, r1 \n\t" 9385 "adc r23, r25 \n\t" 9386 "mul r5, r12 \n\t" 9387 "add r24, r0 \n\t" 9388 "adc r22, r1 \n\t" 9389 "adc r23, r25 \n\t" 9390 "st z+, r24 \n\t" 9391 9392 "ldi r24, 0 \n\t" 9393 "mul r2, r16 \n\t" 9394 "add r22, r0 \n\t" 9395 "adc r23, r1 \n\t" 9396 "adc r24, r25 \n\t" 9397 "mul r3, r15 \n\t" 9398 "add r22, r0 \n\t" 9399 "adc r23, r1 \n\t" 9400 "adc r24, r25 \n\t" 9401 "mul r4, r14 \n\t" 9402 "add r22, r0 \n\t" 9403 "adc r23, r1 \n\t" 9404 "adc r24, r25 \n\t" 9405 "mul r5, r13 \n\t" 9406 "add r22, r0 \n\t" 9407 "adc r23, r1 \n\t" 9408 "adc r24, r25 \n\t" 9409 "mul r6, r12 \n\t" 9410 "add r22, r0 \n\t" 9411 "adc r23, r1 \n\t" 9412 "adc r24, r25 \n\t" 9413 "st z+, r22 \n\t" 9414 9415 "ldi r22, 0 \n\t" 9416 "mul r2, r17 \n\t" 9417 "add r23, r0 \n\t" 9418 "adc r24, r1 \n\t" 9419 "adc r22, r25 \n\t" 9420 "mul r3, r16 \n\t" 9421 "add r23, r0 \n\t" 9422 "adc r24, r1 \n\t" 9423 "adc r22, r25 \n\t" 9424 "mul r4, r15 \n\t" 9425 "add r23, r0 \n\t" 9426 "adc r24, r1 \n\t" 9427 "adc r22, r25 \n\t" 9428 "mul r5, r14 \n\t" 9429 "add r23, r0 \n\t" 9430 "adc r24, r1 \n\t" 9431 "adc r22, r25 \n\t" 9432 "mul r6, r13 \n\t" 9433 "add r23, r0 \n\t" 9434 "adc r24, r1 \n\t" 9435 "adc r22, r25 \n\t" 9436 "mul r7, r12 \n\t" 9437 "add r23, r0 \n\t" 9438 "adc r24, r1 \n\t" 9439 "adc r22, r25 \n\t" 9440 "st z+, r23 \n\t" 9441 9442 "ldi r23, 0 \n\t" 9443 "mul r2, r18 \n\t" 9444 "add r24, r0 \n\t" 9445 "adc r22, r1 \n\t" 9446 "adc r23, r25 \n\t" 9447 "mul r3, r17 \n\t" 9448 "add r24, r0 \n\t" 9449 "adc r22, r1 \n\t" 9450 "adc r23, r25 \n\t" 9451 "mul r4, r16 \n\t" 9452 "add r24, r0 \n\t" 9453 "adc r22, r1 \n\t" 9454 "adc r23, r25 \n\t" 9455 "mul r5, r15 \n\t" 9456 "add r24, r0 \n\t" 9457 "adc r22, r1 \n\t" 9458 "adc r23, r25 \n\t" 9459 "mul r6, r14 \n\t" 9460 "add r24, r0 \n\t" 9461 "adc r22, r1 \n\t" 9462 "adc r23, r25 \n\t" 9463 "mul r7, r13 \n\t" 9464 "add r24, r0 \n\t" 9465 "adc r22, r1 \n\t" 9466 "adc r23, r25 \n\t" 9467 "mul r8, r12 \n\t" 9468 "add r24, r0 \n\t" 9469 "adc r22, r1 \n\t" 9470 "adc r23, r25 \n\t" 9471 "st z+, r24 \n\t" 9472 9473 "ldi r24, 0 \n\t" 9474 "mul r2, r19 \n\t" 9475 "add r22, r0 \n\t" 9476 "adc r23, r1 \n\t" 9477 "adc r24, r25 \n\t" 9478 "mul r3, r18 \n\t" 9479 "add r22, r0 \n\t" 9480 "adc r23, r1 \n\t" 9481 "adc r24, r25 \n\t" 9482 "mul r4, r17 \n\t" 9483 "add r22, r0 \n\t" 9484 "adc r23, r1 \n\t" 9485 "adc r24, r25 \n\t" 9486 "mul r5, r16 \n\t" 9487 "add r22, r0 \n\t" 9488 "adc r23, r1 \n\t" 9489 "adc r24, r25 \n\t" 9490 "mul r6, r15 \n\t" 9491 "add r22, r0 \n\t" 9492 "adc r23, r1 \n\t" 9493 "adc r24, r25 \n\t" 9494 "mul r7, r14 \n\t" 9495 "add r22, r0 \n\t" 9496 "adc r23, r1 \n\t" 9497 "adc r24, r25 \n\t" 9498 "mul r8, r13 \n\t" 9499 "add r22, r0 \n\t" 9500 "adc r23, r1 \n\t" 9501 "adc r24, r25 \n\t" 9502 "mul r9, r12 \n\t" 9503 "add r22, r0 \n\t" 9504 "adc r23, r1 \n\t" 9505 "adc r24, r25 \n\t" 9506 "st z+, r22 \n\t" 9507 9508 "ldi r22, 0 \n\t" 9509 "mul r2, r20 \n\t" 9510 "add r23, r0 \n\t" 9511 "adc r24, r1 \n\t" 9512 "adc r22, r25 \n\t" 9513 "mul r3, r19 \n\t" 9514 "add r23, r0 \n\t" 9515 "adc r24, r1 \n\t" 9516 "adc r22, r25 \n\t" 9517 "mul r4, r18 \n\t" 9518 "add r23, r0 \n\t" 9519 "adc r24, r1 \n\t" 9520 "adc r22, r25 \n\t" 9521 "mul r5, r17 \n\t" 9522 "add r23, r0 \n\t" 9523 "adc r24, r1 \n\t" 9524 "adc r22, r25 \n\t" 9525 "mul r6, r16 \n\t" 9526 "add r23, r0 \n\t" 9527 "adc r24, r1 \n\t" 9528 "adc r22, r25 \n\t" 9529 "mul r7, r15 \n\t" 9530 "add r23, r0 \n\t" 9531 "adc r24, r1 \n\t" 9532 "adc r22, r25 \n\t" 9533 "mul r8, r14 \n\t" 9534 "add r23, r0 \n\t" 9535 "adc r24, r1 \n\t" 9536 "adc r22, r25 \n\t" 9537 "mul r9, r13 \n\t" 9538 "add r23, r0 \n\t" 9539 "adc r24, r1 \n\t" 9540 "adc r22, r25 \n\t" 9541 "mul r10, r12 \n\t" 9542 "add r23, r0 \n\t" 9543 "adc r24, r1 \n\t" 9544 "adc r22, r25 \n\t" 9545 "st z+, r23 \n\t" 9546 9547 "ldi r23, 0 \n\t" 9548 "mul r2, r21 \n\t" 9549 "add r24, r0 \n\t" 9550 "adc r22, r1 \n\t" 9551 "adc r23, r25 \n\t" 9552 "mul r3, r20 \n\t" 9553 "add r24, r0 \n\t" 9554 "adc r22, r1 \n\t" 9555 "adc r23, r25 \n\t" 9556 "mul r4, r19 \n\t" 9557 "add r24, r0 \n\t" 9558 "adc r22, r1 \n\t" 9559 "adc r23, r25 \n\t" 9560 "mul r5, r18 \n\t" 9561 "add r24, r0 \n\t" 9562 "adc r22, r1 \n\t" 9563 "adc r23, r25 \n\t" 9564 "mul r6, r17 \n\t" 9565 "add r24, r0 \n\t" 9566 "adc r22, r1 \n\t" 9567 "adc r23, r25 \n\t" 9568 "mul r7, r16 \n\t" 9569 "add r24, r0 \n\t" 9570 "adc r22, r1 \n\t" 9571 "adc r23, r25 \n\t" 9572 "mul r8, r15 \n\t" 9573 "add r24, r0 \n\t" 9574 "adc r22, r1 \n\t" 9575 "adc r23, r25 \n\t" 9576 "mul r9, r14 \n\t" 9577 "add r24, r0 \n\t" 9578 "adc r22, r1 \n\t" 9579 "adc r23, r25 \n\t" 9580 "mul r10, r13 \n\t" 9581 "add r24, r0 \n\t" 9582 "adc r22, r1 \n\t" 9583 "adc r23, r25 \n\t" 9584 "mul r11, r12 \n\t" 9585 "add r24, r0 \n\t" 9586 "adc r22, r1 \n\t" 9587 "adc r23, r25 \n\t" 9588 "st z+, r24 \n\t" 9589 9590 "ld r2, x+ \n\t" 9591 "ldi r24, 0 \n\t" 9592 "mul r3, r21 \n\t" 9593 "add r22, r0 \n\t" 9594 "adc r23, r1 \n\t" 9595 "adc r24, r25 \n\t" 9596 "mul r4, r20 \n\t" 9597 "add r22, r0 \n\t" 9598 "adc r23, r1 \n\t" 9599 "adc r24, r25 \n\t" 9600 "mul r5, r19 \n\t" 9601 "add r22, r0 \n\t" 9602 "adc r23, r1 \n\t" 9603 "adc r24, r25 \n\t" 9604 "mul r6, r18 \n\t" 9605 "add r22, r0 \n\t" 9606 "adc r23, r1 \n\t" 9607 "adc r24, r25 \n\t" 9608 "mul r7, r17 \n\t" 9609 "add r22, r0 \n\t" 9610 "adc r23, r1 \n\t" 9611 "adc r24, r25 \n\t" 9612 "mul r8, r16 \n\t" 9613 "add r22, r0 \n\t" 9614 "adc r23, r1 \n\t" 9615 "adc r24, r25 \n\t" 9616 "mul r9, r15 \n\t" 9617 "add r22, r0 \n\t" 9618 "adc r23, r1 \n\t" 9619 "adc r24, r25 \n\t" 9620 "mul r10, r14 \n\t" 9621 "add r22, r0 \n\t" 9622 "adc r23, r1 \n\t" 9623 "adc r24, r25 \n\t" 9624 "mul r11, r13 \n\t" 9625 "add r22, r0 \n\t" 9626 "adc r23, r1 \n\t" 9627 "adc r24, r25 \n\t" 9628 "mul r2, r12 \n\t" 9629 "add r22, r0 \n\t" 9630 "adc r23, r1 \n\t" 9631 "adc r24, r25 \n\t" 9632 "ld r0, z \n\t" 9633 "add r22, r0 \n\t" 9634 "adc r23, r25 \n\t" 9635 "adc r24, r25 \n\t" 9636 "st z+, r22 \n\t" 9637 9638 "ld r3, x+ \n\t" 9639 "ldi r22, 0 \n\t" 9640 "mul r4, r21 \n\t" 9641 "add r23, r0 \n\t" 9642 "adc r24, r1 \n\t" 9643 "adc r22, r25 \n\t" 9644 "mul r5, r20 \n\t" 9645 "add r23, r0 \n\t" 9646 "adc r24, r1 \n\t" 9647 "adc r22, r25 \n\t" 9648 "mul r6, r19 \n\t" 9649 "add r23, r0 \n\t" 9650 "adc r24, r1 \n\t" 9651 "adc r22, r25 \n\t" 9652 "mul r7, r18 \n\t" 9653 "add r23, r0 \n\t" 9654 "adc r24, r1 \n\t" 9655 "adc r22, r25 \n\t" 9656 "mul r8, r17 \n\t" 9657 "add r23, r0 \n\t" 9658 "adc r24, r1 \n\t" 9659 "adc r22, r25 \n\t" 9660 "mul r9, r16 \n\t" 9661 "add r23, r0 \n\t" 9662 "adc r24, r1 \n\t" 9663 "adc r22, r25 \n\t" 9664 "mul r10, r15 \n\t" 9665 "add r23, r0 \n\t" 9666 "adc r24, r1 \n\t" 9667 "adc r22, r25 \n\t" 9668 "mul r11, r14 \n\t" 9669 "add r23, r0 \n\t" 9670 "adc r24, r1 \n\t" 9671 "adc r22, r25 \n\t" 9672 "mul r2, r13 \n\t" 9673 "add r23, r0 \n\t" 9674 "adc r24, r1 \n\t" 9675 "adc r22, r25 \n\t" 9676 "mul r3, r12 \n\t" 9677 "add r23, r0 \n\t" 9678 "adc r24, r1 \n\t" 9679 "adc r22, r25 \n\t" 9680 "ld r0, z \n\t" 9681 "add r23, r0 \n\t" 9682 "adc r24, r25 \n\t" 9683 "adc r22, r25 \n\t" 9684 "st z+, r23 \n\t" 9685 9686 "ld r4, x+ \n\t" 9687 "ldi r23, 0 \n\t" 9688 "mul r5, r21 \n\t" 9689 "add r24, r0 \n\t" 9690 "adc r22, r1 \n\t" 9691 "adc r23, r25 \n\t" 9692 "mul r6, r20 \n\t" 9693 "add r24, r0 \n\t" 9694 "adc r22, r1 \n\t" 9695 "adc r23, r25 \n\t" 9696 "mul r7, r19 \n\t" 9697 "add r24, r0 \n\t" 9698 "adc r22, r1 \n\t" 9699 "adc r23, r25 \n\t" 9700 "mul r8, r18 \n\t" 9701 "add r24, r0 \n\t" 9702 "adc r22, r1 \n\t" 9703 "adc r23, r25 \n\t" 9704 "mul r9, r17 \n\t" 9705 "add r24, r0 \n\t" 9706 "adc r22, r1 \n\t" 9707 "adc r23, r25 \n\t" 9708 "mul r10, r16 \n\t" 9709 "add r24, r0 \n\t" 9710 "adc r22, r1 \n\t" 9711 "adc r23, r25 \n\t" 9712 "mul r11, r15 \n\t" 9713 "add r24, r0 \n\t" 9714 "adc r22, r1 \n\t" 9715 "adc r23, r25 \n\t" 9716 "mul r2, r14 \n\t" 9717 "add r24, r0 \n\t" 9718 "adc r22, r1 \n\t" 9719 "adc r23, r25 \n\t" 9720 "mul r3, r13 \n\t" 9721 "add r24, r0 \n\t" 9722 "adc r22, r1 \n\t" 9723 "adc r23, r25 \n\t" 9724 "mul r4, r12 \n\t" 9725 "add r24, r0 \n\t" 9726 "adc r22, r1 \n\t" 9727 "adc r23, r25 \n\t" 9728 "ld r0, z \n\t" 9729 "add r24, r0 \n\t" 9730 "adc r22, r25 \n\t" 9731 "adc r23, r25 \n\t" 9732 "st z+, r24 \n\t" 9733 9734 "ld r5, x+ \n\t" 9735 "ldi r24, 0 \n\t" 9736 "mul r6, r21 \n\t" 9737 "add r22, r0 \n\t" 9738 "adc r23, r1 \n\t" 9739 "adc r24, r25 \n\t" 9740 "mul r7, r20 \n\t" 9741 "add r22, r0 \n\t" 9742 "adc r23, r1 \n\t" 9743 "adc r24, r25 \n\t" 9744 "mul r8, r19 \n\t" 9745 "add r22, r0 \n\t" 9746 "adc r23, r1 \n\t" 9747 "adc r24, r25 \n\t" 9748 "mul r9, r18 \n\t" 9749 "add r22, r0 \n\t" 9750 "adc r23, r1 \n\t" 9751 "adc r24, r25 \n\t" 9752 "mul r10, r17 \n\t" 9753 "add r22, r0 \n\t" 9754 "adc r23, r1 \n\t" 9755 "adc r24, r25 \n\t" 9756 "mul r11, r16 \n\t" 9757 "add r22, r0 \n\t" 9758 "adc r23, r1 \n\t" 9759 "adc r24, r25 \n\t" 9760 "mul r2, r15 \n\t" 9761 "add r22, r0 \n\t" 9762 "adc r23, r1 \n\t" 9763 "adc r24, r25 \n\t" 9764 "mul r3, r14 \n\t" 9765 "add r22, r0 \n\t" 9766 "adc r23, r1 \n\t" 9767 "adc r24, r25 \n\t" 9768 "mul r4, r13 \n\t" 9769 "add r22, r0 \n\t" 9770 "adc r23, r1 \n\t" 9771 "adc r24, r25 \n\t" 9772 "mul r5, r12 \n\t" 9773 "add r22, r0 \n\t" 9774 "adc r23, r1 \n\t" 9775 "adc r24, r25 \n\t" 9776 "ld r0, z \n\t" 9777 "add r22, r0 \n\t" 9778 "adc r23, r25 \n\t" 9779 "adc r24, r25 \n\t" 9780 "st z+, r22 \n\t" 9781 9782 "ld r6, x+ \n\t" 9783 "ldi r22, 0 \n\t" 9784 "mul r7, r21 \n\t" 9785 "add r23, r0 \n\t" 9786 "adc r24, r1 \n\t" 9787 "adc r22, r25 \n\t" 9788 "mul r8, r20 \n\t" 9789 "add r23, r0 \n\t" 9790 "adc r24, r1 \n\t" 9791 "adc r22, r25 \n\t" 9792 "mul r9, r19 \n\t" 9793 "add r23, r0 \n\t" 9794 "adc r24, r1 \n\t" 9795 "adc r22, r25 \n\t" 9796 "mul r10, r18 \n\t" 9797 "add r23, r0 \n\t" 9798 "adc r24, r1 \n\t" 9799 "adc r22, r25 \n\t" 9800 "mul r11, r17 \n\t" 9801 "add r23, r0 \n\t" 9802 "adc r24, r1 \n\t" 9803 "adc r22, r25 \n\t" 9804 "mul r2, r16 \n\t" 9805 "add r23, r0 \n\t" 9806 "adc r24, r1 \n\t" 9807 "adc r22, r25 \n\t" 9808 "mul r3, r15 \n\t" 9809 "add r23, r0 \n\t" 9810 "adc r24, r1 \n\t" 9811 "adc r22, r25 \n\t" 9812 "mul r4, r14 \n\t" 9813 "add r23, r0 \n\t" 9814 "adc r24, r1 \n\t" 9815 "adc r22, r25 \n\t" 9816 "mul r5, r13 \n\t" 9817 "add r23, r0 \n\t" 9818 "adc r24, r1 \n\t" 9819 "adc r22, r25 \n\t" 9820 "mul r6, r12 \n\t" 9821 "add r23, r0 \n\t" 9822 "adc r24, r1 \n\t" 9823 "adc r22, r25 \n\t" 9824 "ld r0, z \n\t" 9825 "add r23, r0 \n\t" 9826 "adc r24, r25 \n\t" 9827 "adc r22, r25 \n\t" 9828 "st z+, r23 \n\t" 9829 9830 "ld r7, x+ \n\t" 9831 "ldi r23, 0 \n\t" 9832 "mul r8, r21 \n\t" 9833 "add r24, r0 \n\t" 9834 "adc r22, r1 \n\t" 9835 "adc r23, r25 \n\t" 9836 "mul r9, r20 \n\t" 9837 "add r24, r0 \n\t" 9838 "adc r22, r1 \n\t" 9839 "adc r23, r25 \n\t" 9840 "mul r10, r19 \n\t" 9841 "add r24, r0 \n\t" 9842 "adc r22, r1 \n\t" 9843 "adc r23, r25 \n\t" 9844 "mul r11, r18 \n\t" 9845 "add r24, r0 \n\t" 9846 "adc r22, r1 \n\t" 9847 "adc r23, r25 \n\t" 9848 "mul r2, r17 \n\t" 9849 "add r24, r0 \n\t" 9850 "adc r22, r1 \n\t" 9851 "adc r23, r25 \n\t" 9852 "mul r3, r16 \n\t" 9853 "add r24, r0 \n\t" 9854 "adc r22, r1 \n\t" 9855 "adc r23, r25 \n\t" 9856 "mul r4, r15 \n\t" 9857 "add r24, r0 \n\t" 9858 "adc r22, r1 \n\t" 9859 "adc r23, r25 \n\t" 9860 "mul r5, r14 \n\t" 9861 "add r24, r0 \n\t" 9862 "adc r22, r1 \n\t" 9863 "adc r23, r25 \n\t" 9864 "mul r6, r13 \n\t" 9865 "add r24, r0 \n\t" 9866 "adc r22, r1 \n\t" 9867 "adc r23, r25 \n\t" 9868 "mul r7, r12 \n\t" 9869 "add r24, r0 \n\t" 9870 "adc r22, r1 \n\t" 9871 "adc r23, r25 \n\t" 9872 "ld r0, z \n\t" 9873 "add r24, r0 \n\t" 9874 "adc r22, r25 \n\t" 9875 "adc r23, r25 \n\t" 9876 "st z+, r24 \n\t" 9877 9878 "ld r8, x+ \n\t" 9879 "ldi r24, 0 \n\t" 9880 "mul r9, r21 \n\t" 9881 "add r22, r0 \n\t" 9882 "adc r23, r1 \n\t" 9883 "adc r24, r25 \n\t" 9884 "mul r10, r20 \n\t" 9885 "add r22, r0 \n\t" 9886 "adc r23, r1 \n\t" 9887 "adc r24, r25 \n\t" 9888 "mul r11, r19 \n\t" 9889 "add r22, r0 \n\t" 9890 "adc r23, r1 \n\t" 9891 "adc r24, r25 \n\t" 9892 "mul r2, r18 \n\t" 9893 "add r22, r0 \n\t" 9894 "adc r23, r1 \n\t" 9895 "adc r24, r25 \n\t" 9896 "mul r3, r17 \n\t" 9897 "add r22, r0 \n\t" 9898 "adc r23, r1 \n\t" 9899 "adc r24, r25 \n\t" 9900 "mul r4, r16 \n\t" 9901 "add r22, r0 \n\t" 9902 "adc r23, r1 \n\t" 9903 "adc r24, r25 \n\t" 9904 "mul r5, r15 \n\t" 9905 "add r22, r0 \n\t" 9906 "adc r23, r1 \n\t" 9907 "adc r24, r25 \n\t" 9908 "mul r6, r14 \n\t" 9909 "add r22, r0 \n\t" 9910 "adc r23, r1 \n\t" 9911 "adc r24, r25 \n\t" 9912 "mul r7, r13 \n\t" 9913 "add r22, r0 \n\t" 9914 "adc r23, r1 \n\t" 9915 "adc r24, r25 \n\t" 9916 "mul r8, r12 \n\t" 9917 "add r22, r0 \n\t" 9918 "adc r23, r1 \n\t" 9919 "adc r24, r25 \n\t" 9920 "ld r0, z \n\t" 9921 "add r22, r0 \n\t" 9922 "adc r23, r25 \n\t" 9923 "adc r24, r25 \n\t" 9924 "st z+, r22 \n\t" 9925 9926 "ld r9, x+ \n\t" 9927 "ldi r22, 0 \n\t" 9928 "mul r10, r21 \n\t" 9929 "add r23, r0 \n\t" 9930 "adc r24, r1 \n\t" 9931 "adc r22, r25 \n\t" 9932 "mul r11, r20 \n\t" 9933 "add r23, r0 \n\t" 9934 "adc r24, r1 \n\t" 9935 "adc r22, r25 \n\t" 9936 "mul r2, r19 \n\t" 9937 "add r23, r0 \n\t" 9938 "adc r24, r1 \n\t" 9939 "adc r22, r25 \n\t" 9940 "mul r3, r18 \n\t" 9941 "add r23, r0 \n\t" 9942 "adc r24, r1 \n\t" 9943 "adc r22, r25 \n\t" 9944 "mul r4, r17 \n\t" 9945 "add r23, r0 \n\t" 9946 "adc r24, r1 \n\t" 9947 "adc r22, r25 \n\t" 9948 "mul r5, r16 \n\t" 9949 "add r23, r0 \n\t" 9950 "adc r24, r1 \n\t" 9951 "adc r22, r25 \n\t" 9952 "mul r6, r15 \n\t" 9953 "add r23, r0 \n\t" 9954 "adc r24, r1 \n\t" 9955 "adc r22, r25 \n\t" 9956 "mul r7, r14 \n\t" 9957 "add r23, r0 \n\t" 9958 "adc r24, r1 \n\t" 9959 "adc r22, r25 \n\t" 9960 "mul r8, r13 \n\t" 9961 "add r23, r0 \n\t" 9962 "adc r24, r1 \n\t" 9963 "adc r22, r25 \n\t" 9964 "mul r9, r12 \n\t" 9965 "add r23, r0 \n\t" 9966 "adc r24, r1 \n\t" 9967 "adc r22, r25 \n\t" 9968 "ld r0, z \n\t" 9969 "add r23, r0 \n\t" 9970 "adc r24, r25 \n\t" 9971 "adc r22, r25 \n\t" 9972 "st z+, r23 \n\t" 9973 9974 "ld r10, x+ \n\t" 9975 "ldi r23, 0 \n\t" 9976 "mul r11, r21 \n\t" 9977 "add r24, r0 \n\t" 9978 "adc r22, r1 \n\t" 9979 "adc r23, r25 \n\t" 9980 "mul r2, r20 \n\t" 9981 "add r24, r0 \n\t" 9982 "adc r22, r1 \n\t" 9983 "adc r23, r25 \n\t" 9984 "mul r3, r19 \n\t" 9985 "add r24, r0 \n\t" 9986 "adc r22, r1 \n\t" 9987 "adc r23, r25 \n\t" 9988 "mul r4, r18 \n\t" 9989 "add r24, r0 \n\t" 9990 "adc r22, r1 \n\t" 9991 "adc r23, r25 \n\t" 9992 "mul r5, r17 \n\t" 9993 "add r24, r0 \n\t" 9994 "adc r22, r1 \n\t" 9995 "adc r23, r25 \n\t" 9996 "mul r6, r16 \n\t" 9997 "add r24, r0 \n\t" 9998 "adc r22, r1 \n\t" 9999 "adc r23, r25 \n\t" 10000 "mul r7, r15 \n\t" 10001 "add r24, r0 \n\t" 10002 "adc r22, r1 \n\t" 10003 "adc r23, r25 \n\t" 10004 "mul r8, r14 \n\t" 10005 "add r24, r0 \n\t" 10006 "adc r22, r1 \n\t" 10007 "adc r23, r25 \n\t" 10008 "mul r9, r13 \n\t" 10009 "add r24, r0 \n\t" 10010 "adc r22, r1 \n\t" 10011 "adc r23, r25 \n\t" 10012 "mul r10, r12 \n\t" 10013 "add r24, r0 \n\t" 10014 "adc r22, r1 \n\t" 10015 "adc r23, r25 \n\t" 10016 "ld r0, z \n\t" 10017 "add r24, r0 \n\t" 10018 "adc r22, r25 \n\t" 10019 "adc r23, r25 \n\t" 10020 "st z+, r24 \n\t" 10021 10022 "ld r11, x+ \n\t" 10023 "ldi r24, 0 \n\t" 10024 "mul r2, r21 \n\t" 10025 "add r22, r0 \n\t" 10026 "adc r23, r1 \n\t" 10027 "adc r24, r25 \n\t" 10028 "mul r3, r20 \n\t" 10029 "add r22, r0 \n\t" 10030 "adc r23, r1 \n\t" 10031 "adc r24, r25 \n\t" 10032 "mul r4, r19 \n\t" 10033 "add r22, r0 \n\t" 10034 "adc r23, r1 \n\t" 10035 "adc r24, r25 \n\t" 10036 "mul r5, r18 \n\t" 10037 "add r22, r0 \n\t" 10038 "adc r23, r1 \n\t" 10039 "adc r24, r25 \n\t" 10040 "mul r6, r17 \n\t" 10041 "add r22, r0 \n\t" 10042 "adc r23, r1 \n\t" 10043 "adc r24, r25 \n\t" 10044 "mul r7, r16 \n\t" 10045 "add r22, r0 \n\t" 10046 "adc r23, r1 \n\t" 10047 "adc r24, r25 \n\t" 10048 "mul r8, r15 \n\t" 10049 "add r22, r0 \n\t" 10050 "adc r23, r1 \n\t" 10051 "adc r24, r25 \n\t" 10052 "mul r9, r14 \n\t" 10053 "add r22, r0 \n\t" 10054 "adc r23, r1 \n\t" 10055 "adc r24, r25 \n\t" 10056 "mul r10, r13 \n\t" 10057 "add r22, r0 \n\t" 10058 "adc r23, r1 \n\t" 10059 "adc r24, r25 \n\t" 10060 "mul r11, r12 \n\t" 10061 "add r22, r0 \n\t" 10062 "adc r23, r1 \n\t" 10063 "adc r24, r25 \n\t" 10064 "ld r0, z \n\t" 10065 "add r22, r0 \n\t" 10066 "adc r23, r25 \n\t" 10067 "adc r24, r25 \n\t" 10068 "st z+, r22 \n\t" 10069 10070 "ld r2, x+ \n\t" 10071 "ldi r22, 0 \n\t" 10072 "mul r3, r21 \n\t" 10073 "add r23, r0 \n\t" 10074 "adc r24, r1 \n\t" 10075 "adc r22, r25 \n\t" 10076 "mul r4, r20 \n\t" 10077 "add r23, r0 \n\t" 10078 "adc r24, r1 \n\t" 10079 "adc r22, r25 \n\t" 10080 "mul r5, r19 \n\t" 10081 "add r23, r0 \n\t" 10082 "adc r24, r1 \n\t" 10083 "adc r22, r25 \n\t" 10084 "mul r6, r18 \n\t" 10085 "add r23, r0 \n\t" 10086 "adc r24, r1 \n\t" 10087 "adc r22, r25 \n\t" 10088 "mul r7, r17 \n\t" 10089 "add r23, r0 \n\t" 10090 "adc r24, r1 \n\t" 10091 "adc r22, r25 \n\t" 10092 "mul r8, r16 \n\t" 10093 "add r23, r0 \n\t" 10094 "adc r24, r1 \n\t" 10095 "adc r22, r25 \n\t" 10096 "mul r9, r15 \n\t" 10097 "add r23, r0 \n\t" 10098 "adc r24, r1 \n\t" 10099 "adc r22, r25 \n\t" 10100 "mul r10, r14 \n\t" 10101 "add r23, r0 \n\t" 10102 "adc r24, r1 \n\t" 10103 "adc r22, r25 \n\t" 10104 "mul r11, r13 \n\t" 10105 "add r23, r0 \n\t" 10106 "adc r24, r1 \n\t" 10107 "adc r22, r25 \n\t" 10108 "mul r2, r12 \n\t" 10109 "add r23, r0 \n\t" 10110 "adc r24, r1 \n\t" 10111 "adc r22, r25 \n\t" 10112 "ld r0, z \n\t" 10113 "add r23, r0 \n\t" 10114 "adc r24, r25 \n\t" 10115 "adc r22, r25 \n\t" 10116 "st z+, r23 \n\t" 10117 10118 "ld r3, x+ \n\t" 10119 "ldi r23, 0 \n\t" 10120 "mul r4, r21 \n\t" 10121 "add r24, r0 \n\t" 10122 "adc r22, r1 \n\t" 10123 "adc r23, r25 \n\t" 10124 "mul r5, r20 \n\t" 10125 "add r24, r0 \n\t" 10126 "adc r22, r1 \n\t" 10127 "adc r23, r25 \n\t" 10128 "mul r6, r19 \n\t" 10129 "add r24, r0 \n\t" 10130 "adc r22, r1 \n\t" 10131 "adc r23, r25 \n\t" 10132 "mul r7, r18 \n\t" 10133 "add r24, r0 \n\t" 10134 "adc r22, r1 \n\t" 10135 "adc r23, r25 \n\t" 10136 "mul r8, r17 \n\t" 10137 "add r24, r0 \n\t" 10138 "adc r22, r1 \n\t" 10139 "adc r23, r25 \n\t" 10140 "mul r9, r16 \n\t" 10141 "add r24, r0 \n\t" 10142 "adc r22, r1 \n\t" 10143 "adc r23, r25 \n\t" 10144 "mul r10, r15 \n\t" 10145 "add r24, r0 \n\t" 10146 "adc r22, r1 \n\t" 10147 "adc r23, r25 \n\t" 10148 "mul r11, r14 \n\t" 10149 "add r24, r0 \n\t" 10150 "adc r22, r1 \n\t" 10151 "adc r23, r25 \n\t" 10152 "mul r2, r13 \n\t" 10153 "add r24, r0 \n\t" 10154 "adc r22, r1 \n\t" 10155 "adc r23, r25 \n\t" 10156 "mul r3, r12 \n\t" 10157 "add r24, r0 \n\t" 10158 "adc r22, r1 \n\t" 10159 "adc r23, r25 \n\t" 10160 "ld r0, z \n\t" 10161 "add r24, r0 \n\t" 10162 "adc r22, r25 \n\t" 10163 "adc r23, r25 \n\t" 10164 "st z+, r24 \n\t" 10165 10166 "ld r12, y+ \n\t" 10167 "ldi r24, 0 \n\t" 10168 "mul r4, r12 \n\t" 10169 "add r22, r0 \n\t" 10170 "adc r23, r1 \n\t" 10171 "adc r24, r25 \n\t" 10172 "mul r5, r21 \n\t" 10173 "add r22, r0 \n\t" 10174 "adc r23, r1 \n\t" 10175 "adc r24, r25 \n\t" 10176 "mul r6, r20 \n\t" 10177 "add r22, r0 \n\t" 10178 "adc r23, r1 \n\t" 10179 "adc r24, r25 \n\t" 10180 "mul r7, r19 \n\t" 10181 "add r22, r0 \n\t" 10182 "adc r23, r1 \n\t" 10183 "adc r24, r25 \n\t" 10184 "mul r8, r18 \n\t" 10185 "add r22, r0 \n\t" 10186 "adc r23, r1 \n\t" 10187 "adc r24, r25 \n\t" 10188 "mul r9, r17 \n\t" 10189 "add r22, r0 \n\t" 10190 "adc r23, r1 \n\t" 10191 "adc r24, r25 \n\t" 10192 "mul r10, r16 \n\t" 10193 "add r22, r0 \n\t" 10194 "adc r23, r1 \n\t" 10195 "adc r24, r25 \n\t" 10196 "mul r11, r15 \n\t" 10197 "add r22, r0 \n\t" 10198 "adc r23, r1 \n\t" 10199 "adc r24, r25 \n\t" 10200 "mul r2, r14 \n\t" 10201 "add r22, r0 \n\t" 10202 "adc r23, r1 \n\t" 10203 "adc r24, r25 \n\t" 10204 "mul r3, r13 \n\t" 10205 "add r22, r0 \n\t" 10206 "adc r23, r1 \n\t" 10207 "adc r24, r25 \n\t" 10208 "ld r0, z \n\t" 10209 "add r22, r0 \n\t" 10210 "adc r23, r25 \n\t" 10211 "adc r24, r25 \n\t" 10212 "st z+, r22 \n\t" 10213 10214 "ld r13, y+ \n\t" 10215 "ldi r22, 0 \n\t" 10216 "mul r4, r13 \n\t" 10217 "add r23, r0 \n\t" 10218 "adc r24, r1 \n\t" 10219 "adc r22, r25 \n\t" 10220 "mul r5, r12 \n\t" 10221 "add r23, r0 \n\t" 10222 "adc r24, r1 \n\t" 10223 "adc r22, r25 \n\t" 10224 "mul r6, r21 \n\t" 10225 "add r23, r0 \n\t" 10226 "adc r24, r1 \n\t" 10227 "adc r22, r25 \n\t" 10228 "mul r7, r20 \n\t" 10229 "add r23, r0 \n\t" 10230 "adc r24, r1 \n\t" 10231 "adc r22, r25 \n\t" 10232 "mul r8, r19 \n\t" 10233 "add r23, r0 \n\t" 10234 "adc r24, r1 \n\t" 10235 "adc r22, r25 \n\t" 10236 "mul r9, r18 \n\t" 10237 "add r23, r0 \n\t" 10238 "adc r24, r1 \n\t" 10239 "adc r22, r25 \n\t" 10240 "mul r10, r17 \n\t" 10241 "add r23, r0 \n\t" 10242 "adc r24, r1 \n\t" 10243 "adc r22, r25 \n\t" 10244 "mul r11, r16 \n\t" 10245 "add r23, r0 \n\t" 10246 "adc r24, r1 \n\t" 10247 "adc r22, r25 \n\t" 10248 "mul r2, r15 \n\t" 10249 "add r23, r0 \n\t" 10250 "adc r24, r1 \n\t" 10251 "adc r22, r25 \n\t" 10252 "mul r3, r14 \n\t" 10253 "add r23, r0 \n\t" 10254 "adc r24, r1 \n\t" 10255 "adc r22, r25 \n\t" 10256 "ld r0, z \n\t" 10257 "add r23, r0 \n\t" 10258 "adc r24, r25 \n\t" 10259 "adc r22, r25 \n\t" 10260 "st z+, r23 \n\t" 10261 10262 "ld r14, y+ \n\t" 10263 "ldi r23, 0 \n\t" 10264 "mul r4, r14 \n\t" 10265 "add r24, r0 \n\t" 10266 "adc r22, r1 \n\t" 10267 "adc r23, r25 \n\t" 10268 "mul r5, r13 \n\t" 10269 "add r24, r0 \n\t" 10270 "adc r22, r1 \n\t" 10271 "adc r23, r25 \n\t" 10272 "mul r6, r12 \n\t" 10273 "add r24, r0 \n\t" 10274 "adc r22, r1 \n\t" 10275 "adc r23, r25 \n\t" 10276 "mul r7, r21 \n\t" 10277 "add r24, r0 \n\t" 10278 "adc r22, r1 \n\t" 10279 "adc r23, r25 \n\t" 10280 "mul r8, r20 \n\t" 10281 "add r24, r0 \n\t" 10282 "adc r22, r1 \n\t" 10283 "adc r23, r25 \n\t" 10284 "mul r9, r19 \n\t" 10285 "add r24, r0 \n\t" 10286 "adc r22, r1 \n\t" 10287 "adc r23, r25 \n\t" 10288 "mul r10, r18 \n\t" 10289 "add r24, r0 \n\t" 10290 "adc r22, r1 \n\t" 10291 "adc r23, r25 \n\t" 10292 "mul r11, r17 \n\t" 10293 "add r24, r0 \n\t" 10294 "adc r22, r1 \n\t" 10295 "adc r23, r25 \n\t" 10296 "mul r2, r16 \n\t" 10297 "add r24, r0 \n\t" 10298 "adc r22, r1 \n\t" 10299 "adc r23, r25 \n\t" 10300 "mul r3, r15 \n\t" 10301 "add r24, r0 \n\t" 10302 "adc r22, r1 \n\t" 10303 "adc r23, r25 \n\t" 10304 "ld r0, z \n\t" 10305 "add r24, r0 \n\t" 10306 "adc r22, r25 \n\t" 10307 "adc r23, r25 \n\t" 10308 "st z+, r24 \n\t" 10309 10310 "ld r15, y+ \n\t" 10311 "ldi r24, 0 \n\t" 10312 "mul r4, r15 \n\t" 10313 "add r22, r0 \n\t" 10314 "adc r23, r1 \n\t" 10315 "adc r24, r25 \n\t" 10316 "mul r5, r14 \n\t" 10317 "add r22, r0 \n\t" 10318 "adc r23, r1 \n\t" 10319 "adc r24, r25 \n\t" 10320 "mul r6, r13 \n\t" 10321 "add r22, r0 \n\t" 10322 "adc r23, r1 \n\t" 10323 "adc r24, r25 \n\t" 10324 "mul r7, r12 \n\t" 10325 "add r22, r0 \n\t" 10326 "adc r23, r1 \n\t" 10327 "adc r24, r25 \n\t" 10328 "mul r8, r21 \n\t" 10329 "add r22, r0 \n\t" 10330 "adc r23, r1 \n\t" 10331 "adc r24, r25 \n\t" 10332 "mul r9, r20 \n\t" 10333 "add r22, r0 \n\t" 10334 "adc r23, r1 \n\t" 10335 "adc r24, r25 \n\t" 10336 "mul r10, r19 \n\t" 10337 "add r22, r0 \n\t" 10338 "adc r23, r1 \n\t" 10339 "adc r24, r25 \n\t" 10340 "mul r11, r18 \n\t" 10341 "add r22, r0 \n\t" 10342 "adc r23, r1 \n\t" 10343 "adc r24, r25 \n\t" 10344 "mul r2, r17 \n\t" 10345 "add r22, r0 \n\t" 10346 "adc r23, r1 \n\t" 10347 "adc r24, r25 \n\t" 10348 "mul r3, r16 \n\t" 10349 "add r22, r0 \n\t" 10350 "adc r23, r1 \n\t" 10351 "adc r24, r25 \n\t" 10352 "ld r0, z \n\t" 10353 "add r22, r0 \n\t" 10354 "adc r23, r25 \n\t" 10355 "adc r24, r25 \n\t" 10356 "st z+, r22 \n\t" 10357 10358 "ld r16, y+ \n\t" 10359 "ldi r22, 0 \n\t" 10360 "mul r4, r16 \n\t" 10361 "add r23, r0 \n\t" 10362 "adc r24, r1 \n\t" 10363 "adc r22, r25 \n\t" 10364 "mul r5, r15 \n\t" 10365 "add r23, r0 \n\t" 10366 "adc r24, r1 \n\t" 10367 "adc r22, r25 \n\t" 10368 "mul r6, r14 \n\t" 10369 "add r23, r0 \n\t" 10370 "adc r24, r1 \n\t" 10371 "adc r22, r25 \n\t" 10372 "mul r7, r13 \n\t" 10373 "add r23, r0 \n\t" 10374 "adc r24, r1 \n\t" 10375 "adc r22, r25 \n\t" 10376 "mul r8, r12 \n\t" 10377 "add r23, r0 \n\t" 10378 "adc r24, r1 \n\t" 10379 "adc r22, r25 \n\t" 10380 "mul r9, r21 \n\t" 10381 "add r23, r0 \n\t" 10382 "adc r24, r1 \n\t" 10383 "adc r22, r25 \n\t" 10384 "mul r10, r20 \n\t" 10385 "add r23, r0 \n\t" 10386 "adc r24, r1 \n\t" 10387 "adc r22, r25 \n\t" 10388 "mul r11, r19 \n\t" 10389 "add r23, r0 \n\t" 10390 "adc r24, r1 \n\t" 10391 "adc r22, r25 \n\t" 10392 "mul r2, r18 \n\t" 10393 "add r23, r0 \n\t" 10394 "adc r24, r1 \n\t" 10395 "adc r22, r25 \n\t" 10396 "mul r3, r17 \n\t" 10397 "add r23, r0 \n\t" 10398 "adc r24, r1 \n\t" 10399 "adc r22, r25 \n\t" 10400 "ld r0, z \n\t" 10401 "add r23, r0 \n\t" 10402 "adc r24, r25 \n\t" 10403 "adc r22, r25 \n\t" 10404 "st z+, r23 \n\t" 10405 10406 "ld r17, y+ \n\t" 10407 "ldi r23, 0 \n\t" 10408 "mul r4, r17 \n\t" 10409 "add r24, r0 \n\t" 10410 "adc r22, r1 \n\t" 10411 "adc r23, r25 \n\t" 10412 "mul r5, r16 \n\t" 10413 "add r24, r0 \n\t" 10414 "adc r22, r1 \n\t" 10415 "adc r23, r25 \n\t" 10416 "mul r6, r15 \n\t" 10417 "add r24, r0 \n\t" 10418 "adc r22, r1 \n\t" 10419 "adc r23, r25 \n\t" 10420 "mul r7, r14 \n\t" 10421 "add r24, r0 \n\t" 10422 "adc r22, r1 \n\t" 10423 "adc r23, r25 \n\t" 10424 "mul r8, r13 \n\t" 10425 "add r24, r0 \n\t" 10426 "adc r22, r1 \n\t" 10427 "adc r23, r25 \n\t" 10428 "mul r9, r12 \n\t" 10429 "add r24, r0 \n\t" 10430 "adc r22, r1 \n\t" 10431 "adc r23, r25 \n\t" 10432 "mul r10, r21 \n\t" 10433 "add r24, r0 \n\t" 10434 "adc r22, r1 \n\t" 10435 "adc r23, r25 \n\t" 10436 "mul r11, r20 \n\t" 10437 "add r24, r0 \n\t" 10438 "adc r22, r1 \n\t" 10439 "adc r23, r25 \n\t" 10440 "mul r2, r19 \n\t" 10441 "add r24, r0 \n\t" 10442 "adc r22, r1 \n\t" 10443 "adc r23, r25 \n\t" 10444 "mul r3, r18 \n\t" 10445 "add r24, r0 \n\t" 10446 "adc r22, r1 \n\t" 10447 "adc r23, r25 \n\t" 10448 "ld r0, z \n\t" 10449 "add r24, r0 \n\t" 10450 "adc r22, r25 \n\t" 10451 "adc r23, r25 \n\t" 10452 "st z+, r24 \n\t" 10453 10454 "ld r18, y+ \n\t" 10455 "ldi r24, 0 \n\t" 10456 "mul r4, r18 \n\t" 10457 "add r22, r0 \n\t" 10458 "adc r23, r1 \n\t" 10459 "adc r24, r25 \n\t" 10460 "mul r5, r17 \n\t" 10461 "add r22, r0 \n\t" 10462 "adc r23, r1 \n\t" 10463 "adc r24, r25 \n\t" 10464 "mul r6, r16 \n\t" 10465 "add r22, r0 \n\t" 10466 "adc r23, r1 \n\t" 10467 "adc r24, r25 \n\t" 10468 "mul r7, r15 \n\t" 10469 "add r22, r0 \n\t" 10470 "adc r23, r1 \n\t" 10471 "adc r24, r25 \n\t" 10472 "mul r8, r14 \n\t" 10473 "add r22, r0 \n\t" 10474 "adc r23, r1 \n\t" 10475 "adc r24, r25 \n\t" 10476 "mul r9, r13 \n\t" 10477 "add r22, r0 \n\t" 10478 "adc r23, r1 \n\t" 10479 "adc r24, r25 \n\t" 10480 "mul r10, r12 \n\t" 10481 "add r22, r0 \n\t" 10482 "adc r23, r1 \n\t" 10483 "adc r24, r25 \n\t" 10484 "mul r11, r21 \n\t" 10485 "add r22, r0 \n\t" 10486 "adc r23, r1 \n\t" 10487 "adc r24, r25 \n\t" 10488 "mul r2, r20 \n\t" 10489 "add r22, r0 \n\t" 10490 "adc r23, r1 \n\t" 10491 "adc r24, r25 \n\t" 10492 "mul r3, r19 \n\t" 10493 "add r22, r0 \n\t" 10494 "adc r23, r1 \n\t" 10495 "adc r24, r25 \n\t" 10496 "ld r0, z \n\t" 10497 "add r22, r0 \n\t" 10498 "adc r23, r25 \n\t" 10499 "adc r24, r25 \n\t" 10500 "st z+, r22 \n\t" 10501 10502 "ld r19, y+ \n\t" 10503 "ldi r22, 0 \n\t" 10504 "mul r4, r19 \n\t" 10505 "add r23, r0 \n\t" 10506 "adc r24, r1 \n\t" 10507 "adc r22, r25 \n\t" 10508 "mul r5, r18 \n\t" 10509 "add r23, r0 \n\t" 10510 "adc r24, r1 \n\t" 10511 "adc r22, r25 \n\t" 10512 "mul r6, r17 \n\t" 10513 "add r23, r0 \n\t" 10514 "adc r24, r1 \n\t" 10515 "adc r22, r25 \n\t" 10516 "mul r7, r16 \n\t" 10517 "add r23, r0 \n\t" 10518 "adc r24, r1 \n\t" 10519 "adc r22, r25 \n\t" 10520 "mul r8, r15 \n\t" 10521 "add r23, r0 \n\t" 10522 "adc r24, r1 \n\t" 10523 "adc r22, r25 \n\t" 10524 "mul r9, r14 \n\t" 10525 "add r23, r0 \n\t" 10526 "adc r24, r1 \n\t" 10527 "adc r22, r25 \n\t" 10528 "mul r10, r13 \n\t" 10529 "add r23, r0 \n\t" 10530 "adc r24, r1 \n\t" 10531 "adc r22, r25 \n\t" 10532 "mul r11, r12 \n\t" 10533 "add r23, r0 \n\t" 10534 "adc r24, r1 \n\t" 10535 "adc r22, r25 \n\t" 10536 "mul r2, r21 \n\t" 10537 "add r23, r0 \n\t" 10538 "adc r24, r1 \n\t" 10539 "adc r22, r25 \n\t" 10540 "mul r3, r20 \n\t" 10541 "add r23, r0 \n\t" 10542 "adc r24, r1 \n\t" 10543 "adc r22, r25 \n\t" 10544 "ld r0, z \n\t" 10545 "add r23, r0 \n\t" 10546 "adc r24, r25 \n\t" 10547 "adc r22, r25 \n\t" 10548 "st z+, r23 \n\t" 10549 10550 "ld r20, y+ \n\t" 10551 "ldi r23, 0 \n\t" 10552 "mul r4, r20 \n\t" 10553 "add r24, r0 \n\t" 10554 "adc r22, r1 \n\t" 10555 "adc r23, r25 \n\t" 10556 "mul r5, r19 \n\t" 10557 "add r24, r0 \n\t" 10558 "adc r22, r1 \n\t" 10559 "adc r23, r25 \n\t" 10560 "mul r6, r18 \n\t" 10561 "add r24, r0 \n\t" 10562 "adc r22, r1 \n\t" 10563 "adc r23, r25 \n\t" 10564 "mul r7, r17 \n\t" 10565 "add r24, r0 \n\t" 10566 "adc r22, r1 \n\t" 10567 "adc r23, r25 \n\t" 10568 "mul r8, r16 \n\t" 10569 "add r24, r0 \n\t" 10570 "adc r22, r1 \n\t" 10571 "adc r23, r25 \n\t" 10572 "mul r9, r15 \n\t" 10573 "add r24, r0 \n\t" 10574 "adc r22, r1 \n\t" 10575 "adc r23, r25 \n\t" 10576 "mul r10, r14 \n\t" 10577 "add r24, r0 \n\t" 10578 "adc r22, r1 \n\t" 10579 "adc r23, r25 \n\t" 10580 "mul r11, r13 \n\t" 10581 "add r24, r0 \n\t" 10582 "adc r22, r1 \n\t" 10583 "adc r23, r25 \n\t" 10584 "mul r2, r12 \n\t" 10585 "add r24, r0 \n\t" 10586 "adc r22, r1 \n\t" 10587 "adc r23, r25 \n\t" 10588 "mul r3, r21 \n\t" 10589 "add r24, r0 \n\t" 10590 "adc r22, r1 \n\t" 10591 "adc r23, r25 \n\t" 10592 "ld r0, z \n\t" 10593 "add r24, r0 \n\t" 10594 "adc r22, r25 \n\t" 10595 "adc r23, r25 \n\t" 10596 "st z+, r24 \n\t" 10597 10598 "ld r21, y+ \n\t" 10599 "ldi r24, 0 \n\t" 10600 "mul r4, r21 \n\t" 10601 "add r22, r0 \n\t" 10602 "adc r23, r1 \n\t" 10603 "adc r24, r25 \n\t" 10604 "mul r5, r20 \n\t" 10605 "add r22, r0 \n\t" 10606 "adc r23, r1 \n\t" 10607 "adc r24, r25 \n\t" 10608 "mul r6, r19 \n\t" 10609 "add r22, r0 \n\t" 10610 "adc r23, r1 \n\t" 10611 "adc r24, r25 \n\t" 10612 "mul r7, r18 \n\t" 10613 "add r22, r0 \n\t" 10614 "adc r23, r1 \n\t" 10615 "adc r24, r25 \n\t" 10616 "mul r8, r17 \n\t" 10617 "add r22, r0 \n\t" 10618 "adc r23, r1 \n\t" 10619 "adc r24, r25 \n\t" 10620 "mul r9, r16 \n\t" 10621 "add r22, r0 \n\t" 10622 "adc r23, r1 \n\t" 10623 "adc r24, r25 \n\t" 10624 "mul r10, r15 \n\t" 10625 "add r22, r0 \n\t" 10626 "adc r23, r1 \n\t" 10627 "adc r24, r25 \n\t" 10628 "mul r11, r14 \n\t" 10629 "add r22, r0 \n\t" 10630 "adc r23, r1 \n\t" 10631 "adc r24, r25 \n\t" 10632 "mul r2, r13 \n\t" 10633 "add r22, r0 \n\t" 10634 "adc r23, r1 \n\t" 10635 "adc r24, r25 \n\t" 10636 "mul r3, r12 \n\t" 10637 "add r22, r0 \n\t" 10638 "adc r23, r1 \n\t" 10639 "adc r24, r25 \n\t" 10640 "ld r0, z \n\t" 10641 "add r22, r0 \n\t" 10642 "adc r23, r25 \n\t" 10643 "adc r24, r25 \n\t" 10644 "st z+, r22 \n\t" 10645 10646 "ld r12, y+ \n\t" 10647 "ldi r22, 0 \n\t" 10648 "mul r4, r12 \n\t" 10649 "add r23, r0 \n\t" 10650 "adc r24, r1 \n\t" 10651 "adc r22, r25 \n\t" 10652 "mul r5, r21 \n\t" 10653 "add r23, r0 \n\t" 10654 "adc r24, r1 \n\t" 10655 "adc r22, r25 \n\t" 10656 "mul r6, r20 \n\t" 10657 "add r23, r0 \n\t" 10658 "adc r24, r1 \n\t" 10659 "adc r22, r25 \n\t" 10660 "mul r7, r19 \n\t" 10661 "add r23, r0 \n\t" 10662 "adc r24, r1 \n\t" 10663 "adc r22, r25 \n\t" 10664 "mul r8, r18 \n\t" 10665 "add r23, r0 \n\t" 10666 "adc r24, r1 \n\t" 10667 "adc r22, r25 \n\t" 10668 "mul r9, r17 \n\t" 10669 "add r23, r0 \n\t" 10670 "adc r24, r1 \n\t" 10671 "adc r22, r25 \n\t" 10672 "mul r10, r16 \n\t" 10673 "add r23, r0 \n\t" 10674 "adc r24, r1 \n\t" 10675 "adc r22, r25 \n\t" 10676 "mul r11, r15 \n\t" 10677 "add r23, r0 \n\t" 10678 "adc r24, r1 \n\t" 10679 "adc r22, r25 \n\t" 10680 "mul r2, r14 \n\t" 10681 "add r23, r0 \n\t" 10682 "adc r24, r1 \n\t" 10683 "adc r22, r25 \n\t" 10684 "mul r3, r13 \n\t" 10685 "add r23, r0 \n\t" 10686 "adc r24, r1 \n\t" 10687 "adc r22, r25 \n\t" 10688 "ld r0, z \n\t" 10689 "add r23, r0 \n\t" 10690 "adc r24, r25 \n\t" 10691 "adc r22, r25 \n\t" 10692 "st z+, r23 \n\t" 10693 10694 "ld r13, y+ \n\t" 10695 "ldi r23, 0 \n\t" 10696 "mul r4, r13 \n\t" 10697 "add r24, r0 \n\t" 10698 "adc r22, r1 \n\t" 10699 "adc r23, r25 \n\t" 10700 "mul r5, r12 \n\t" 10701 "add r24, r0 \n\t" 10702 "adc r22, r1 \n\t" 10703 "adc r23, r25 \n\t" 10704 "mul r6, r21 \n\t" 10705 "add r24, r0 \n\t" 10706 "adc r22, r1 \n\t" 10707 "adc r23, r25 \n\t" 10708 "mul r7, r20 \n\t" 10709 "add r24, r0 \n\t" 10710 "adc r22, r1 \n\t" 10711 "adc r23, r25 \n\t" 10712 "mul r8, r19 \n\t" 10713 "add r24, r0 \n\t" 10714 "adc r22, r1 \n\t" 10715 "adc r23, r25 \n\t" 10716 "mul r9, r18 \n\t" 10717 "add r24, r0 \n\t" 10718 "adc r22, r1 \n\t" 10719 "adc r23, r25 \n\t" 10720 "mul r10, r17 \n\t" 10721 "add r24, r0 \n\t" 10722 "adc r22, r1 \n\t" 10723 "adc r23, r25 \n\t" 10724 "mul r11, r16 \n\t" 10725 "add r24, r0 \n\t" 10726 "adc r22, r1 \n\t" 10727 "adc r23, r25 \n\t" 10728 "mul r2, r15 \n\t" 10729 "add r24, r0 \n\t" 10730 "adc r22, r1 \n\t" 10731 "adc r23, r25 \n\t" 10732 "mul r3, r14 \n\t" 10733 "add r24, r0 \n\t" 10734 "adc r22, r1 \n\t" 10735 "adc r23, r25 \n\t" 10736 "ld r0, z \n\t" 10737 "add r24, r0 \n\t" 10738 "adc r22, r25 \n\t" 10739 "adc r23, r25 \n\t" 10740 "st z+, r24 \n\t" 10741 10742 "ldi r24, 0 \n\t" 10743 "mul r5, r13 \n\t" 10744 "add r22, r0 \n\t" 10745 "adc r23, r1 \n\t" 10746 "adc r24, r25 \n\t" 10747 "mul r6, r12 \n\t" 10748 "add r22, r0 \n\t" 10749 "adc r23, r1 \n\t" 10750 "adc r24, r25 \n\t" 10751 "mul r7, r21 \n\t" 10752 "add r22, r0 \n\t" 10753 "adc r23, r1 \n\t" 10754 "adc r24, r25 \n\t" 10755 "mul r8, r20 \n\t" 10756 "add r22, r0 \n\t" 10757 "adc r23, r1 \n\t" 10758 "adc r24, r25 \n\t" 10759 "mul r9, r19 \n\t" 10760 "add r22, r0 \n\t" 10761 "adc r23, r1 \n\t" 10762 "adc r24, r25 \n\t" 10763 "mul r10, r18 \n\t" 10764 "add r22, r0 \n\t" 10765 "adc r23, r1 \n\t" 10766 "adc r24, r25 \n\t" 10767 "mul r11, r17 \n\t" 10768 "add r22, r0 \n\t" 10769 "adc r23, r1 \n\t" 10770 "adc r24, r25 \n\t" 10771 "mul r2, r16 \n\t" 10772 "add r22, r0 \n\t" 10773 "adc r23, r1 \n\t" 10774 "adc r24, r25 \n\t" 10775 "mul r3, r15 \n\t" 10776 "add r22, r0 \n\t" 10777 "adc r23, r1 \n\t" 10778 "adc r24, r25 \n\t" 10779 "st z+, r22 \n\t" 10780 10781 "ldi r22, 0 \n\t" 10782 "mul r6, r13 \n\t" 10783 "add r23, r0 \n\t" 10784 "adc r24, r1 \n\t" 10785 "adc r22, r25 \n\t" 10786 "mul r7, r12 \n\t" 10787 "add r23, r0 \n\t" 10788 "adc r24, r1 \n\t" 10789 "adc r22, r25 \n\t" 10790 "mul r8, r21 \n\t" 10791 "add r23, r0 \n\t" 10792 "adc r24, r1 \n\t" 10793 "adc r22, r25 \n\t" 10794 "mul r9, r20 \n\t" 10795 "add r23, r0 \n\t" 10796 "adc r24, r1 \n\t" 10797 "adc r22, r25 \n\t" 10798 "mul r10, r19 \n\t" 10799 "add r23, r0 \n\t" 10800 "adc r24, r1 \n\t" 10801 "adc r22, r25 \n\t" 10802 "mul r11, r18 \n\t" 10803 "add r23, r0 \n\t" 10804 "adc r24, r1 \n\t" 10805 "adc r22, r25 \n\t" 10806 "mul r2, r17 \n\t" 10807 "add r23, r0 \n\t" 10808 "adc r24, r1 \n\t" 10809 "adc r22, r25 \n\t" 10810 "mul r3, r16 \n\t" 10811 "add r23, r0 \n\t" 10812 "adc r24, r1 \n\t" 10813 "adc r22, r25 \n\t" 10814 "st z+, r23 \n\t" 10815 10816 "ldi r23, 0 \n\t" 10817 "mul r7, r13 \n\t" 10818 "add r24, r0 \n\t" 10819 "adc r22, r1 \n\t" 10820 "adc r23, r25 \n\t" 10821 "mul r8, r12 \n\t" 10822 "add r24, r0 \n\t" 10823 "adc r22, r1 \n\t" 10824 "adc r23, r25 \n\t" 10825 "mul r9, r21 \n\t" 10826 "add r24, r0 \n\t" 10827 "adc r22, r1 \n\t" 10828 "adc r23, r25 \n\t" 10829 "mul r10, r20 \n\t" 10830 "add r24, r0 \n\t" 10831 "adc r22, r1 \n\t" 10832 "adc r23, r25 \n\t" 10833 "mul r11, r19 \n\t" 10834 "add r24, r0 \n\t" 10835 "adc r22, r1 \n\t" 10836 "adc r23, r25 \n\t" 10837 "mul r2, r18 \n\t" 10838 "add r24, r0 \n\t" 10839 "adc r22, r1 \n\t" 10840 "adc r23, r25 \n\t" 10841 "mul r3, r17 \n\t" 10842 "add r24, r0 \n\t" 10843 "adc r22, r1 \n\t" 10844 "adc r23, r25 \n\t" 10845 "st z+, r24 \n\t" 10846 10847 "ldi r24, 0 \n\t" 10848 "mul r8, r13 \n\t" 10849 "add r22, r0 \n\t" 10850 "adc r23, r1 \n\t" 10851 "adc r24, r25 \n\t" 10852 "mul r9, r12 \n\t" 10853 "add r22, r0 \n\t" 10854 "adc r23, r1 \n\t" 10855 "adc r24, r25 \n\t" 10856 "mul r10, r21 \n\t" 10857 "add r22, r0 \n\t" 10858 "adc r23, r1 \n\t" 10859 "adc r24, r25 \n\t" 10860 "mul r11, r20 \n\t" 10861 "add r22, r0 \n\t" 10862 "adc r23, r1 \n\t" 10863 "adc r24, r25 \n\t" 10864 "mul r2, r19 \n\t" 10865 "add r22, r0 \n\t" 10866 "adc r23, r1 \n\t" 10867 "adc r24, r25 \n\t" 10868 "mul r3, r18 \n\t" 10869 "add r22, r0 \n\t" 10870 "adc r23, r1 \n\t" 10871 "adc r24, r25 \n\t" 10872 "st z+, r22 \n\t" 10873 10874 "ldi r22, 0 \n\t" 10875 "mul r9, r13 \n\t" 10876 "add r23, r0 \n\t" 10877 "adc r24, r1 \n\t" 10878 "adc r22, r25 \n\t" 10879 "mul r10, r12 \n\t" 10880 "add r23, r0 \n\t" 10881 "adc r24, r1 \n\t" 10882 "adc r22, r25 \n\t" 10883 "mul r11, r21 \n\t" 10884 "add r23, r0 \n\t" 10885 "adc r24, r1 \n\t" 10886 "adc r22, r25 \n\t" 10887 "mul r2, r20 \n\t" 10888 "add r23, r0 \n\t" 10889 "adc r24, r1 \n\t" 10890 "adc r22, r25 \n\t" 10891 "mul r3, r19 \n\t" 10892 "add r23, r0 \n\t" 10893 "adc r24, r1 \n\t" 10894 "adc r22, r25 \n\t" 10895 "st z+, r23 \n\t" 10896 10897 "ldi r23, 0 \n\t" 10898 "mul r10, r13 \n\t" 10899 "add r24, r0 \n\t" 10900 "adc r22, r1 \n\t" 10901 "adc r23, r25 \n\t" 10902 "mul r11, r12 \n\t" 10903 "add r24, r0 \n\t" 10904 "adc r22, r1 \n\t" 10905 "adc r23, r25 \n\t" 10906 "mul r2, r21 \n\t" 10907 "add r24, r0 \n\t" 10908 "adc r22, r1 \n\t" 10909 "adc r23, r25 \n\t" 10910 "mul r3, r20 \n\t" 10911 "add r24, r0 \n\t" 10912 "adc r22, r1 \n\t" 10913 "adc r23, r25 \n\t" 10914 "st z+, r24 \n\t" 10915 10916 "ldi r24, 0 \n\t" 10917 "mul r11, r13 \n\t" 10918 "add r22, r0 \n\t" 10919 "adc r23, r1 \n\t" 10920 "adc r24, r25 \n\t" 10921 "mul r2, r12 \n\t" 10922 "add r22, r0 \n\t" 10923 "adc r23, r1 \n\t" 10924 "adc r24, r25 \n\t" 10925 "mul r3, r21 \n\t" 10926 "add r22, r0 \n\t" 10927 "adc r23, r1 \n\t" 10928 "adc r24, r25 \n\t" 10929 "st z+, r22 \n\t" 10930 10931 "ldi r22, 0 \n\t" 10932 "mul r2, r13 \n\t" 10933 "add r23, r0 \n\t" 10934 "adc r24, r1 \n\t" 10935 "adc r22, r25 \n\t" 10936 "mul r3, r12 \n\t" 10937 "add r23, r0 \n\t" 10938 "adc r24, r1 \n\t" 10939 "adc r22, r25 \n\t" 10940 "st z+, r23 \n\t" 10941 10942 "mul r3, r13 \n\t" 10943 "add r24, r0 \n\t" 10944 "adc r22, r1 \n\t" 10945 "st z+, r24 \n\t" 10946 "st z+, r22 \n\t" 10947 10948 "sbiw r30, 54 \n\t" 10949 "sbiw r28, 32 \n\t" 10950 "sbiw r26, 22 \n\t" 10951 "ld r2, x+ \n\t" 10952 "ld r12, y+ \n\t" 10953 "ld r3, x+ \n\t" 10954 "ld r13, y+ \n\t" 10955 "ld r4, x+ \n\t" 10956 "ld r14, y+ \n\t" 10957 "ld r5, x+ \n\t" 10958 "ld r15, y+ \n\t" 10959 "ld r6, x+ \n\t" 10960 "ld r16, y+ \n\t" 10961 "ld r7, x+ \n\t" 10962 "ld r17, y+ \n\t" 10963 "ld r8, x+ \n\t" 10964 "ld r18, y+ \n\t" 10965 "ld r9, x+ \n\t" 10966 "ld r19, y+ \n\t" 10967 "ld r10, x+ \n\t" 10968 "ld r20, y+ \n\t" 10969 "ld r11, x+ \n\t" 10970 "ld r21, y+ \n\t" 10971 10972 "ldi r23, 0 \n\t" 10973 "mul r2, r12 \n\t" 10974 "st z+, r0 \n\t" 10975 "mov r22, r1 \n\t" 10976 10977 "ldi r24, 0 \n\t" 10978 "mul r2, r13 \n\t" 10979 "add r22, r0 \n\t" 10980 "adc r23, r1 \n\t" 10981 "mul r3, r12 \n\t" 10982 "add r22, r0 \n\t" 10983 "adc r23, r1 \n\t" 10984 "adc r24, r25 \n\t" 10985 "st z+, r22 \n\t" 10986 10987 "ldi r22, 0 \n\t" 10988 "mul r2, r14 \n\t" 10989 "add r23, r0 \n\t" 10990 "adc r24, r1 \n\t" 10991 "adc r22, r25 \n\t" 10992 "mul r3, r13 \n\t" 10993 "add r23, r0 \n\t" 10994 "adc r24, r1 \n\t" 10995 "adc r22, r25 \n\t" 10996 "mul r4, r12 \n\t" 10997 "add r23, r0 \n\t" 10998 "adc r24, r1 \n\t" 10999 "adc r22, r25 \n\t" 11000 "st z+, r23 \n\t" 11001 11002 "ldi r23, 0 \n\t" 11003 "mul r2, r15 \n\t" 11004 "add r24, r0 \n\t" 11005 "adc r22, r1 \n\t" 11006 "adc r23, r25 \n\t" 11007 "mul r3, r14 \n\t" 11008 "add r24, r0 \n\t" 11009 "adc r22, r1 \n\t" 11010 "adc r23, r25 \n\t" 11011 "mul r4, r13 \n\t" 11012 "add r24, r0 \n\t" 11013 "adc r22, r1 \n\t" 11014 "adc r23, r25 \n\t" 11015 "mul r5, r12 \n\t" 11016 "add r24, r0 \n\t" 11017 "adc r22, r1 \n\t" 11018 "adc r23, r25 \n\t" 11019 "st z+, r24 \n\t" 11020 11021 "ldi r24, 0 \n\t" 11022 "mul r2, r16 \n\t" 11023 "add r22, r0 \n\t" 11024 "adc r23, r1 \n\t" 11025 "adc r24, r25 \n\t" 11026 "mul r3, r15 \n\t" 11027 "add r22, r0 \n\t" 11028 "adc r23, r1 \n\t" 11029 "adc r24, r25 \n\t" 11030 "mul r4, r14 \n\t" 11031 "add r22, r0 \n\t" 11032 "adc r23, r1 \n\t" 11033 "adc r24, r25 \n\t" 11034 "mul r5, r13 \n\t" 11035 "add r22, r0 \n\t" 11036 "adc r23, r1 \n\t" 11037 "adc r24, r25 \n\t" 11038 "mul r6, r12 \n\t" 11039 "add r22, r0 \n\t" 11040 "adc r23, r1 \n\t" 11041 "adc r24, r25 \n\t" 11042 "st z+, r22 \n\t" 11043 11044 "ldi r22, 0 \n\t" 11045 "mul r2, r17 \n\t" 11046 "add r23, r0 \n\t" 11047 "adc r24, r1 \n\t" 11048 "adc r22, r25 \n\t" 11049 "mul r3, r16 \n\t" 11050 "add r23, r0 \n\t" 11051 "adc r24, r1 \n\t" 11052 "adc r22, r25 \n\t" 11053 "mul r4, r15 \n\t" 11054 "add r23, r0 \n\t" 11055 "adc r24, r1 \n\t" 11056 "adc r22, r25 \n\t" 11057 "mul r5, r14 \n\t" 11058 "add r23, r0 \n\t" 11059 "adc r24, r1 \n\t" 11060 "adc r22, r25 \n\t" 11061 "mul r6, r13 \n\t" 11062 "add r23, r0 \n\t" 11063 "adc r24, r1 \n\t" 11064 "adc r22, r25 \n\t" 11065 "mul r7, r12 \n\t" 11066 "add r23, r0 \n\t" 11067 "adc r24, r1 \n\t" 11068 "adc r22, r25 \n\t" 11069 "st z+, r23 \n\t" 11070 11071 "ldi r23, 0 \n\t" 11072 "mul r2, r18 \n\t" 11073 "add r24, r0 \n\t" 11074 "adc r22, r1 \n\t" 11075 "adc r23, r25 \n\t" 11076 "mul r3, r17 \n\t" 11077 "add r24, r0 \n\t" 11078 "adc r22, r1 \n\t" 11079 "adc r23, r25 \n\t" 11080 "mul r4, r16 \n\t" 11081 "add r24, r0 \n\t" 11082 "adc r22, r1 \n\t" 11083 "adc r23, r25 \n\t" 11084 "mul r5, r15 \n\t" 11085 "add r24, r0 \n\t" 11086 "adc r22, r1 \n\t" 11087 "adc r23, r25 \n\t" 11088 "mul r6, r14 \n\t" 11089 "add r24, r0 \n\t" 11090 "adc r22, r1 \n\t" 11091 "adc r23, r25 \n\t" 11092 "mul r7, r13 \n\t" 11093 "add r24, r0 \n\t" 11094 "adc r22, r1 \n\t" 11095 "adc r23, r25 \n\t" 11096 "mul r8, r12 \n\t" 11097 "add r24, r0 \n\t" 11098 "adc r22, r1 \n\t" 11099 "adc r23, r25 \n\t" 11100 "st z+, r24 \n\t" 11101 11102 "ldi r24, 0 \n\t" 11103 "mul r2, r19 \n\t" 11104 "add r22, r0 \n\t" 11105 "adc r23, r1 \n\t" 11106 "adc r24, r25 \n\t" 11107 "mul r3, r18 \n\t" 11108 "add r22, r0 \n\t" 11109 "adc r23, r1 \n\t" 11110 "adc r24, r25 \n\t" 11111 "mul r4, r17 \n\t" 11112 "add r22, r0 \n\t" 11113 "adc r23, r1 \n\t" 11114 "adc r24, r25 \n\t" 11115 "mul r5, r16 \n\t" 11116 "add r22, r0 \n\t" 11117 "adc r23, r1 \n\t" 11118 "adc r24, r25 \n\t" 11119 "mul r6, r15 \n\t" 11120 "add r22, r0 \n\t" 11121 "adc r23, r1 \n\t" 11122 "adc r24, r25 \n\t" 11123 "mul r7, r14 \n\t" 11124 "add r22, r0 \n\t" 11125 "adc r23, r1 \n\t" 11126 "adc r24, r25 \n\t" 11127 "mul r8, r13 \n\t" 11128 "add r22, r0 \n\t" 11129 "adc r23, r1 \n\t" 11130 "adc r24, r25 \n\t" 11131 "mul r9, r12 \n\t" 11132 "add r22, r0 \n\t" 11133 "adc r23, r1 \n\t" 11134 "adc r24, r25 \n\t" 11135 "st z+, r22 \n\t" 11136 11137 "ldi r22, 0 \n\t" 11138 "mul r2, r20 \n\t" 11139 "add r23, r0 \n\t" 11140 "adc r24, r1 \n\t" 11141 "adc r22, r25 \n\t" 11142 "mul r3, r19 \n\t" 11143 "add r23, r0 \n\t" 11144 "adc r24, r1 \n\t" 11145 "adc r22, r25 \n\t" 11146 "mul r4, r18 \n\t" 11147 "add r23, r0 \n\t" 11148 "adc r24, r1 \n\t" 11149 "adc r22, r25 \n\t" 11150 "mul r5, r17 \n\t" 11151 "add r23, r0 \n\t" 11152 "adc r24, r1 \n\t" 11153 "adc r22, r25 \n\t" 11154 "mul r6, r16 \n\t" 11155 "add r23, r0 \n\t" 11156 "adc r24, r1 \n\t" 11157 "adc r22, r25 \n\t" 11158 "mul r7, r15 \n\t" 11159 "add r23, r0 \n\t" 11160 "adc r24, r1 \n\t" 11161 "adc r22, r25 \n\t" 11162 "mul r8, r14 \n\t" 11163 "add r23, r0 \n\t" 11164 "adc r24, r1 \n\t" 11165 "adc r22, r25 \n\t" 11166 "mul r9, r13 \n\t" 11167 "add r23, r0 \n\t" 11168 "adc r24, r1 \n\t" 11169 "adc r22, r25 \n\t" 11170 "mul r10, r12 \n\t" 11171 "add r23, r0 \n\t" 11172 "adc r24, r1 \n\t" 11173 "adc r22, r25 \n\t" 11174 "st z+, r23 \n\t" 11175 11176 "ldi r23, 0 \n\t" 11177 "mul r2, r21 \n\t" 11178 "add r24, r0 \n\t" 11179 "adc r22, r1 \n\t" 11180 "adc r23, r25 \n\t" 11181 "mul r3, r20 \n\t" 11182 "add r24, r0 \n\t" 11183 "adc r22, r1 \n\t" 11184 "adc r23, r25 \n\t" 11185 "mul r4, r19 \n\t" 11186 "add r24, r0 \n\t" 11187 "adc r22, r1 \n\t" 11188 "adc r23, r25 \n\t" 11189 "mul r5, r18 \n\t" 11190 "add r24, r0 \n\t" 11191 "adc r22, r1 \n\t" 11192 "adc r23, r25 \n\t" 11193 "mul r6, r17 \n\t" 11194 "add r24, r0 \n\t" 11195 "adc r22, r1 \n\t" 11196 "adc r23, r25 \n\t" 11197 "mul r7, r16 \n\t" 11198 "add r24, r0 \n\t" 11199 "adc r22, r1 \n\t" 11200 "adc r23, r25 \n\t" 11201 "mul r8, r15 \n\t" 11202 "add r24, r0 \n\t" 11203 "adc r22, r1 \n\t" 11204 "adc r23, r25 \n\t" 11205 "mul r9, r14 \n\t" 11206 "add r24, r0 \n\t" 11207 "adc r22, r1 \n\t" 11208 "adc r23, r25 \n\t" 11209 "mul r10, r13 \n\t" 11210 "add r24, r0 \n\t" 11211 "adc r22, r1 \n\t" 11212 "adc r23, r25 \n\t" 11213 "mul r11, r12 \n\t" 11214 "add r24, r0 \n\t" 11215 "adc r22, r1 \n\t" 11216 "adc r23, r25 \n\t" 11217 "st z+, r24 \n\t" 11218 11219 "ld r2, x+ \n\t" 11220 "ldi r24, 0 \n\t" 11221 "mul r3, r21 \n\t" 11222 "add r22, r0 \n\t" 11223 "adc r23, r1 \n\t" 11224 "adc r24, r25 \n\t" 11225 "mul r4, r20 \n\t" 11226 "add r22, r0 \n\t" 11227 "adc r23, r1 \n\t" 11228 "adc r24, r25 \n\t" 11229 "mul r5, r19 \n\t" 11230 "add r22, r0 \n\t" 11231 "adc r23, r1 \n\t" 11232 "adc r24, r25 \n\t" 11233 "mul r6, r18 \n\t" 11234 "add r22, r0 \n\t" 11235 "adc r23, r1 \n\t" 11236 "adc r24, r25 \n\t" 11237 "mul r7, r17 \n\t" 11238 "add r22, r0 \n\t" 11239 "adc r23, r1 \n\t" 11240 "adc r24, r25 \n\t" 11241 "mul r8, r16 \n\t" 11242 "add r22, r0 \n\t" 11243 "adc r23, r1 \n\t" 11244 "adc r24, r25 \n\t" 11245 "mul r9, r15 \n\t" 11246 "add r22, r0 \n\t" 11247 "adc r23, r1 \n\t" 11248 "adc r24, r25 \n\t" 11249 "mul r10, r14 \n\t" 11250 "add r22, r0 \n\t" 11251 "adc r23, r1 \n\t" 11252 "adc r24, r25 \n\t" 11253 "mul r11, r13 \n\t" 11254 "add r22, r0 \n\t" 11255 "adc r23, r1 \n\t" 11256 "adc r24, r25 \n\t" 11257 "mul r2, r12 \n\t" 11258 "add r22, r0 \n\t" 11259 "adc r23, r1 \n\t" 11260 "adc r24, r25 \n\t" 11261 "ld r0, z \n\t" 11262 "add r22, r0 \n\t" 11263 "adc r23, r25 \n\t" 11264 "adc r24, r25 \n\t" 11265 "st z+, r22 \n\t" 11266 11267 "ld r3, x+ \n\t" 11268 "ldi r22, 0 \n\t" 11269 "mul r4, r21 \n\t" 11270 "add r23, r0 \n\t" 11271 "adc r24, r1 \n\t" 11272 "adc r22, r25 \n\t" 11273 "mul r5, r20 \n\t" 11274 "add r23, r0 \n\t" 11275 "adc r24, r1 \n\t" 11276 "adc r22, r25 \n\t" 11277 "mul r6, r19 \n\t" 11278 "add r23, r0 \n\t" 11279 "adc r24, r1 \n\t" 11280 "adc r22, r25 \n\t" 11281 "mul r7, r18 \n\t" 11282 "add r23, r0 \n\t" 11283 "adc r24, r1 \n\t" 11284 "adc r22, r25 \n\t" 11285 "mul r8, r17 \n\t" 11286 "add r23, r0 \n\t" 11287 "adc r24, r1 \n\t" 11288 "adc r22, r25 \n\t" 11289 "mul r9, r16 \n\t" 11290 "add r23, r0 \n\t" 11291 "adc r24, r1 \n\t" 11292 "adc r22, r25 \n\t" 11293 "mul r10, r15 \n\t" 11294 "add r23, r0 \n\t" 11295 "adc r24, r1 \n\t" 11296 "adc r22, r25 \n\t" 11297 "mul r11, r14 \n\t" 11298 "add r23, r0 \n\t" 11299 "adc r24, r1 \n\t" 11300 "adc r22, r25 \n\t" 11301 "mul r2, r13 \n\t" 11302 "add r23, r0 \n\t" 11303 "adc r24, r1 \n\t" 11304 "adc r22, r25 \n\t" 11305 "mul r3, r12 \n\t" 11306 "add r23, r0 \n\t" 11307 "adc r24, r1 \n\t" 11308 "adc r22, r25 \n\t" 11309 "ld r0, z \n\t" 11310 "add r23, r0 \n\t" 11311 "adc r24, r25 \n\t" 11312 "adc r22, r25 \n\t" 11313 "st z+, r23 \n\t" 11314 11315 "ld r4, x+ \n\t" 11316 "ldi r23, 0 \n\t" 11317 "mul r5, r21 \n\t" 11318 "add r24, r0 \n\t" 11319 "adc r22, r1 \n\t" 11320 "adc r23, r25 \n\t" 11321 "mul r6, r20 \n\t" 11322 "add r24, r0 \n\t" 11323 "adc r22, r1 \n\t" 11324 "adc r23, r25 \n\t" 11325 "mul r7, r19 \n\t" 11326 "add r24, r0 \n\t" 11327 "adc r22, r1 \n\t" 11328 "adc r23, r25 \n\t" 11329 "mul r8, r18 \n\t" 11330 "add r24, r0 \n\t" 11331 "adc r22, r1 \n\t" 11332 "adc r23, r25 \n\t" 11333 "mul r9, r17 \n\t" 11334 "add r24, r0 \n\t" 11335 "adc r22, r1 \n\t" 11336 "adc r23, r25 \n\t" 11337 "mul r10, r16 \n\t" 11338 "add r24, r0 \n\t" 11339 "adc r22, r1 \n\t" 11340 "adc r23, r25 \n\t" 11341 "mul r11, r15 \n\t" 11342 "add r24, r0 \n\t" 11343 "adc r22, r1 \n\t" 11344 "adc r23, r25 \n\t" 11345 "mul r2, r14 \n\t" 11346 "add r24, r0 \n\t" 11347 "adc r22, r1 \n\t" 11348 "adc r23, r25 \n\t" 11349 "mul r3, r13 \n\t" 11350 "add r24, r0 \n\t" 11351 "adc r22, r1 \n\t" 11352 "adc r23, r25 \n\t" 11353 "mul r4, r12 \n\t" 11354 "add r24, r0 \n\t" 11355 "adc r22, r1 \n\t" 11356 "adc r23, r25 \n\t" 11357 "ld r0, z \n\t" 11358 "add r24, r0 \n\t" 11359 "adc r22, r25 \n\t" 11360 "adc r23, r25 \n\t" 11361 "st z+, r24 \n\t" 11362 11363 "ld r5, x+ \n\t" 11364 "ldi r24, 0 \n\t" 11365 "mul r6, r21 \n\t" 11366 "add r22, r0 \n\t" 11367 "adc r23, r1 \n\t" 11368 "adc r24, r25 \n\t" 11369 "mul r7, r20 \n\t" 11370 "add r22, r0 \n\t" 11371 "adc r23, r1 \n\t" 11372 "adc r24, r25 \n\t" 11373 "mul r8, r19 \n\t" 11374 "add r22, r0 \n\t" 11375 "adc r23, r1 \n\t" 11376 "adc r24, r25 \n\t" 11377 "mul r9, r18 \n\t" 11378 "add r22, r0 \n\t" 11379 "adc r23, r1 \n\t" 11380 "adc r24, r25 \n\t" 11381 "mul r10, r17 \n\t" 11382 "add r22, r0 \n\t" 11383 "adc r23, r1 \n\t" 11384 "adc r24, r25 \n\t" 11385 "mul r11, r16 \n\t" 11386 "add r22, r0 \n\t" 11387 "adc r23, r1 \n\t" 11388 "adc r24, r25 \n\t" 11389 "mul r2, r15 \n\t" 11390 "add r22, r0 \n\t" 11391 "adc r23, r1 \n\t" 11392 "adc r24, r25 \n\t" 11393 "mul r3, r14 \n\t" 11394 "add r22, r0 \n\t" 11395 "adc r23, r1 \n\t" 11396 "adc r24, r25 \n\t" 11397 "mul r4, r13 \n\t" 11398 "add r22, r0 \n\t" 11399 "adc r23, r1 \n\t" 11400 "adc r24, r25 \n\t" 11401 "mul r5, r12 \n\t" 11402 "add r22, r0 \n\t" 11403 "adc r23, r1 \n\t" 11404 "adc r24, r25 \n\t" 11405 "ld r0, z \n\t" 11406 "add r22, r0 \n\t" 11407 "adc r23, r25 \n\t" 11408 "adc r24, r25 \n\t" 11409 "st z+, r22 \n\t" 11410 11411 "ld r6, x+ \n\t" 11412 "ldi r22, 0 \n\t" 11413 "mul r7, r21 \n\t" 11414 "add r23, r0 \n\t" 11415 "adc r24, r1 \n\t" 11416 "adc r22, r25 \n\t" 11417 "mul r8, r20 \n\t" 11418 "add r23, r0 \n\t" 11419 "adc r24, r1 \n\t" 11420 "adc r22, r25 \n\t" 11421 "mul r9, r19 \n\t" 11422 "add r23, r0 \n\t" 11423 "adc r24, r1 \n\t" 11424 "adc r22, r25 \n\t" 11425 "mul r10, r18 \n\t" 11426 "add r23, r0 \n\t" 11427 "adc r24, r1 \n\t" 11428 "adc r22, r25 \n\t" 11429 "mul r11, r17 \n\t" 11430 "add r23, r0 \n\t" 11431 "adc r24, r1 \n\t" 11432 "adc r22, r25 \n\t" 11433 "mul r2, r16 \n\t" 11434 "add r23, r0 \n\t" 11435 "adc r24, r1 \n\t" 11436 "adc r22, r25 \n\t" 11437 "mul r3, r15 \n\t" 11438 "add r23, r0 \n\t" 11439 "adc r24, r1 \n\t" 11440 "adc r22, r25 \n\t" 11441 "mul r4, r14 \n\t" 11442 "add r23, r0 \n\t" 11443 "adc r24, r1 \n\t" 11444 "adc r22, r25 \n\t" 11445 "mul r5, r13 \n\t" 11446 "add r23, r0 \n\t" 11447 "adc r24, r1 \n\t" 11448 "adc r22, r25 \n\t" 11449 "mul r6, r12 \n\t" 11450 "add r23, r0 \n\t" 11451 "adc r24, r1 \n\t" 11452 "adc r22, r25 \n\t" 11453 "ld r0, z \n\t" 11454 "add r23, r0 \n\t" 11455 "adc r24, r25 \n\t" 11456 "adc r22, r25 \n\t" 11457 "st z+, r23 \n\t" 11458 11459 "ld r7, x+ \n\t" 11460 "ldi r23, 0 \n\t" 11461 "mul r8, r21 \n\t" 11462 "add r24, r0 \n\t" 11463 "adc r22, r1 \n\t" 11464 "adc r23, r25 \n\t" 11465 "mul r9, r20 \n\t" 11466 "add r24, r0 \n\t" 11467 "adc r22, r1 \n\t" 11468 "adc r23, r25 \n\t" 11469 "mul r10, r19 \n\t" 11470 "add r24, r0 \n\t" 11471 "adc r22, r1 \n\t" 11472 "adc r23, r25 \n\t" 11473 "mul r11, r18 \n\t" 11474 "add r24, r0 \n\t" 11475 "adc r22, r1 \n\t" 11476 "adc r23, r25 \n\t" 11477 "mul r2, r17 \n\t" 11478 "add r24, r0 \n\t" 11479 "adc r22, r1 \n\t" 11480 "adc r23, r25 \n\t" 11481 "mul r3, r16 \n\t" 11482 "add r24, r0 \n\t" 11483 "adc r22, r1 \n\t" 11484 "adc r23, r25 \n\t" 11485 "mul r4, r15 \n\t" 11486 "add r24, r0 \n\t" 11487 "adc r22, r1 \n\t" 11488 "adc r23, r25 \n\t" 11489 "mul r5, r14 \n\t" 11490 "add r24, r0 \n\t" 11491 "adc r22, r1 \n\t" 11492 "adc r23, r25 \n\t" 11493 "mul r6, r13 \n\t" 11494 "add r24, r0 \n\t" 11495 "adc r22, r1 \n\t" 11496 "adc r23, r25 \n\t" 11497 "mul r7, r12 \n\t" 11498 "add r24, r0 \n\t" 11499 "adc r22, r1 \n\t" 11500 "adc r23, r25 \n\t" 11501 "ld r0, z \n\t" 11502 "add r24, r0 \n\t" 11503 "adc r22, r25 \n\t" 11504 "adc r23, r25 \n\t" 11505 "st z+, r24 \n\t" 11506 11507 "ld r8, x+ \n\t" 11508 "ldi r24, 0 \n\t" 11509 "mul r9, r21 \n\t" 11510 "add r22, r0 \n\t" 11511 "adc r23, r1 \n\t" 11512 "adc r24, r25 \n\t" 11513 "mul r10, r20 \n\t" 11514 "add r22, r0 \n\t" 11515 "adc r23, r1 \n\t" 11516 "adc r24, r25 \n\t" 11517 "mul r11, r19 \n\t" 11518 "add r22, r0 \n\t" 11519 "adc r23, r1 \n\t" 11520 "adc r24, r25 \n\t" 11521 "mul r2, r18 \n\t" 11522 "add r22, r0 \n\t" 11523 "adc r23, r1 \n\t" 11524 "adc r24, r25 \n\t" 11525 "mul r3, r17 \n\t" 11526 "add r22, r0 \n\t" 11527 "adc r23, r1 \n\t" 11528 "adc r24, r25 \n\t" 11529 "mul r4, r16 \n\t" 11530 "add r22, r0 \n\t" 11531 "adc r23, r1 \n\t" 11532 "adc r24, r25 \n\t" 11533 "mul r5, r15 \n\t" 11534 "add r22, r0 \n\t" 11535 "adc r23, r1 \n\t" 11536 "adc r24, r25 \n\t" 11537 "mul r6, r14 \n\t" 11538 "add r22, r0 \n\t" 11539 "adc r23, r1 \n\t" 11540 "adc r24, r25 \n\t" 11541 "mul r7, r13 \n\t" 11542 "add r22, r0 \n\t" 11543 "adc r23, r1 \n\t" 11544 "adc r24, r25 \n\t" 11545 "mul r8, r12 \n\t" 11546 "add r22, r0 \n\t" 11547 "adc r23, r1 \n\t" 11548 "adc r24, r25 \n\t" 11549 "ld r0, z \n\t" 11550 "add r22, r0 \n\t" 11551 "adc r23, r25 \n\t" 11552 "adc r24, r25 \n\t" 11553 "st z+, r22 \n\t" 11554 11555 "ld r9, x+ \n\t" 11556 "ldi r22, 0 \n\t" 11557 "mul r10, r21 \n\t" 11558 "add r23, r0 \n\t" 11559 "adc r24, r1 \n\t" 11560 "adc r22, r25 \n\t" 11561 "mul r11, r20 \n\t" 11562 "add r23, r0 \n\t" 11563 "adc r24, r1 \n\t" 11564 "adc r22, r25 \n\t" 11565 "mul r2, r19 \n\t" 11566 "add r23, r0 \n\t" 11567 "adc r24, r1 \n\t" 11568 "adc r22, r25 \n\t" 11569 "mul r3, r18 \n\t" 11570 "add r23, r0 \n\t" 11571 "adc r24, r1 \n\t" 11572 "adc r22, r25 \n\t" 11573 "mul r4, r17 \n\t" 11574 "add r23, r0 \n\t" 11575 "adc r24, r1 \n\t" 11576 "adc r22, r25 \n\t" 11577 "mul r5, r16 \n\t" 11578 "add r23, r0 \n\t" 11579 "adc r24, r1 \n\t" 11580 "adc r22, r25 \n\t" 11581 "mul r6, r15 \n\t" 11582 "add r23, r0 \n\t" 11583 "adc r24, r1 \n\t" 11584 "adc r22, r25 \n\t" 11585 "mul r7, r14 \n\t" 11586 "add r23, r0 \n\t" 11587 "adc r24, r1 \n\t" 11588 "adc r22, r25 \n\t" 11589 "mul r8, r13 \n\t" 11590 "add r23, r0 \n\t" 11591 "adc r24, r1 \n\t" 11592 "adc r22, r25 \n\t" 11593 "mul r9, r12 \n\t" 11594 "add r23, r0 \n\t" 11595 "adc r24, r1 \n\t" 11596 "adc r22, r25 \n\t" 11597 "ld r0, z \n\t" 11598 "add r23, r0 \n\t" 11599 "adc r24, r25 \n\t" 11600 "adc r22, r25 \n\t" 11601 "st z+, r23 \n\t" 11602 11603 "ld r10, x+ \n\t" 11604 "ldi r23, 0 \n\t" 11605 "mul r11, r21 \n\t" 11606 "add r24, r0 \n\t" 11607 "adc r22, r1 \n\t" 11608 "adc r23, r25 \n\t" 11609 "mul r2, r20 \n\t" 11610 "add r24, r0 \n\t" 11611 "adc r22, r1 \n\t" 11612 "adc r23, r25 \n\t" 11613 "mul r3, r19 \n\t" 11614 "add r24, r0 \n\t" 11615 "adc r22, r1 \n\t" 11616 "adc r23, r25 \n\t" 11617 "mul r4, r18 \n\t" 11618 "add r24, r0 \n\t" 11619 "adc r22, r1 \n\t" 11620 "adc r23, r25 \n\t" 11621 "mul r5, r17 \n\t" 11622 "add r24, r0 \n\t" 11623 "adc r22, r1 \n\t" 11624 "adc r23, r25 \n\t" 11625 "mul r6, r16 \n\t" 11626 "add r24, r0 \n\t" 11627 "adc r22, r1 \n\t" 11628 "adc r23, r25 \n\t" 11629 "mul r7, r15 \n\t" 11630 "add r24, r0 \n\t" 11631 "adc r22, r1 \n\t" 11632 "adc r23, r25 \n\t" 11633 "mul r8, r14 \n\t" 11634 "add r24, r0 \n\t" 11635 "adc r22, r1 \n\t" 11636 "adc r23, r25 \n\t" 11637 "mul r9, r13 \n\t" 11638 "add r24, r0 \n\t" 11639 "adc r22, r1 \n\t" 11640 "adc r23, r25 \n\t" 11641 "mul r10, r12 \n\t" 11642 "add r24, r0 \n\t" 11643 "adc r22, r1 \n\t" 11644 "adc r23, r25 \n\t" 11645 "ld r0, z \n\t" 11646 "add r24, r0 \n\t" 11647 "adc r22, r25 \n\t" 11648 "adc r23, r25 \n\t" 11649 "st z+, r24 \n\t" 11650 11651 "ld r11, x+ \n\t" 11652 "ldi r24, 0 \n\t" 11653 "mul r2, r21 \n\t" 11654 "add r22, r0 \n\t" 11655 "adc r23, r1 \n\t" 11656 "adc r24, r25 \n\t" 11657 "mul r3, r20 \n\t" 11658 "add r22, r0 \n\t" 11659 "adc r23, r1 \n\t" 11660 "adc r24, r25 \n\t" 11661 "mul r4, r19 \n\t" 11662 "add r22, r0 \n\t" 11663 "adc r23, r1 \n\t" 11664 "adc r24, r25 \n\t" 11665 "mul r5, r18 \n\t" 11666 "add r22, r0 \n\t" 11667 "adc r23, r1 \n\t" 11668 "adc r24, r25 \n\t" 11669 "mul r6, r17 \n\t" 11670 "add r22, r0 \n\t" 11671 "adc r23, r1 \n\t" 11672 "adc r24, r25 \n\t" 11673 "mul r7, r16 \n\t" 11674 "add r22, r0 \n\t" 11675 "adc r23, r1 \n\t" 11676 "adc r24, r25 \n\t" 11677 "mul r8, r15 \n\t" 11678 "add r22, r0 \n\t" 11679 "adc r23, r1 \n\t" 11680 "adc r24, r25 \n\t" 11681 "mul r9, r14 \n\t" 11682 "add r22, r0 \n\t" 11683 "adc r23, r1 \n\t" 11684 "adc r24, r25 \n\t" 11685 "mul r10, r13 \n\t" 11686 "add r22, r0 \n\t" 11687 "adc r23, r1 \n\t" 11688 "adc r24, r25 \n\t" 11689 "mul r11, r12 \n\t" 11690 "add r22, r0 \n\t" 11691 "adc r23, r1 \n\t" 11692 "adc r24, r25 \n\t" 11693 "ld r0, z \n\t" 11694 "add r22, r0 \n\t" 11695 "adc r23, r25 \n\t" 11696 "adc r24, r25 \n\t" 11697 "st z+, r22 \n\t" 11698 11699 "ld r2, x+ \n\t" 11700 "ldi r22, 0 \n\t" 11701 "mul r3, r21 \n\t" 11702 "add r23, r0 \n\t" 11703 "adc r24, r1 \n\t" 11704 "adc r22, r25 \n\t" 11705 "mul r4, r20 \n\t" 11706 "add r23, r0 \n\t" 11707 "adc r24, r1 \n\t" 11708 "adc r22, r25 \n\t" 11709 "mul r5, r19 \n\t" 11710 "add r23, r0 \n\t" 11711 "adc r24, r1 \n\t" 11712 "adc r22, r25 \n\t" 11713 "mul r6, r18 \n\t" 11714 "add r23, r0 \n\t" 11715 "adc r24, r1 \n\t" 11716 "adc r22, r25 \n\t" 11717 "mul r7, r17 \n\t" 11718 "add r23, r0 \n\t" 11719 "adc r24, r1 \n\t" 11720 "adc r22, r25 \n\t" 11721 "mul r8, r16 \n\t" 11722 "add r23, r0 \n\t" 11723 "adc r24, r1 \n\t" 11724 "adc r22, r25 \n\t" 11725 "mul r9, r15 \n\t" 11726 "add r23, r0 \n\t" 11727 "adc r24, r1 \n\t" 11728 "adc r22, r25 \n\t" 11729 "mul r10, r14 \n\t" 11730 "add r23, r0 \n\t" 11731 "adc r24, r1 \n\t" 11732 "adc r22, r25 \n\t" 11733 "mul r11, r13 \n\t" 11734 "add r23, r0 \n\t" 11735 "adc r24, r1 \n\t" 11736 "adc r22, r25 \n\t" 11737 "mul r2, r12 \n\t" 11738 "add r23, r0 \n\t" 11739 "adc r24, r1 \n\t" 11740 "adc r22, r25 \n\t" 11741 "ld r0, z \n\t" 11742 "add r23, r0 \n\t" 11743 "adc r24, r25 \n\t" 11744 "adc r22, r25 \n\t" 11745 "st z+, r23 \n\t" 11746 11747 "ld r3, x+ \n\t" 11748 "ldi r23, 0 \n\t" 11749 "mul r4, r21 \n\t" 11750 "add r24, r0 \n\t" 11751 "adc r22, r1 \n\t" 11752 "adc r23, r25 \n\t" 11753 "mul r5, r20 \n\t" 11754 "add r24, r0 \n\t" 11755 "adc r22, r1 \n\t" 11756 "adc r23, r25 \n\t" 11757 "mul r6, r19 \n\t" 11758 "add r24, r0 \n\t" 11759 "adc r22, r1 \n\t" 11760 "adc r23, r25 \n\t" 11761 "mul r7, r18 \n\t" 11762 "add r24, r0 \n\t" 11763 "adc r22, r1 \n\t" 11764 "adc r23, r25 \n\t" 11765 "mul r8, r17 \n\t" 11766 "add r24, r0 \n\t" 11767 "adc r22, r1 \n\t" 11768 "adc r23, r25 \n\t" 11769 "mul r9, r16 \n\t" 11770 "add r24, r0 \n\t" 11771 "adc r22, r1 \n\t" 11772 "adc r23, r25 \n\t" 11773 "mul r10, r15 \n\t" 11774 "add r24, r0 \n\t" 11775 "adc r22, r1 \n\t" 11776 "adc r23, r25 \n\t" 11777 "mul r11, r14 \n\t" 11778 "add r24, r0 \n\t" 11779 "adc r22, r1 \n\t" 11780 "adc r23, r25 \n\t" 11781 "mul r2, r13 \n\t" 11782 "add r24, r0 \n\t" 11783 "adc r22, r1 \n\t" 11784 "adc r23, r25 \n\t" 11785 "mul r3, r12 \n\t" 11786 "add r24, r0 \n\t" 11787 "adc r22, r1 \n\t" 11788 "adc r23, r25 \n\t" 11789 "ld r0, z \n\t" 11790 "add r24, r0 \n\t" 11791 "adc r22, r25 \n\t" 11792 "adc r23, r25 \n\t" 11793 "st z+, r24 \n\t" 11794 11795 "ld r4, x+ \n\t" 11796 "ldi r24, 0 \n\t" 11797 "mul r5, r21 \n\t" 11798 "add r22, r0 \n\t" 11799 "adc r23, r1 \n\t" 11800 "adc r24, r25 \n\t" 11801 "mul r6, r20 \n\t" 11802 "add r22, r0 \n\t" 11803 "adc r23, r1 \n\t" 11804 "adc r24, r25 \n\t" 11805 "mul r7, r19 \n\t" 11806 "add r22, r0 \n\t" 11807 "adc r23, r1 \n\t" 11808 "adc r24, r25 \n\t" 11809 "mul r8, r18 \n\t" 11810 "add r22, r0 \n\t" 11811 "adc r23, r1 \n\t" 11812 "adc r24, r25 \n\t" 11813 "mul r9, r17 \n\t" 11814 "add r22, r0 \n\t" 11815 "adc r23, r1 \n\t" 11816 "adc r24, r25 \n\t" 11817 "mul r10, r16 \n\t" 11818 "add r22, r0 \n\t" 11819 "adc r23, r1 \n\t" 11820 "adc r24, r25 \n\t" 11821 "mul r11, r15 \n\t" 11822 "add r22, r0 \n\t" 11823 "adc r23, r1 \n\t" 11824 "adc r24, r25 \n\t" 11825 "mul r2, r14 \n\t" 11826 "add r22, r0 \n\t" 11827 "adc r23, r1 \n\t" 11828 "adc r24, r25 \n\t" 11829 "mul r3, r13 \n\t" 11830 "add r22, r0 \n\t" 11831 "adc r23, r1 \n\t" 11832 "adc r24, r25 \n\t" 11833 "mul r4, r12 \n\t" 11834 "add r22, r0 \n\t" 11835 "adc r23, r1 \n\t" 11836 "adc r24, r25 \n\t" 11837 "ld r0, z \n\t" 11838 "add r22, r0 \n\t" 11839 "adc r23, r25 \n\t" 11840 "adc r24, r25 \n\t" 11841 "st z+, r22 \n\t" 11842 11843 "ld r5, x+ \n\t" 11844 "ldi r22, 0 \n\t" 11845 "mul r6, r21 \n\t" 11846 "add r23, r0 \n\t" 11847 "adc r24, r1 \n\t" 11848 "adc r22, r25 \n\t" 11849 "mul r7, r20 \n\t" 11850 "add r23, r0 \n\t" 11851 "adc r24, r1 \n\t" 11852 "adc r22, r25 \n\t" 11853 "mul r8, r19 \n\t" 11854 "add r23, r0 \n\t" 11855 "adc r24, r1 \n\t" 11856 "adc r22, r25 \n\t" 11857 "mul r9, r18 \n\t" 11858 "add r23, r0 \n\t" 11859 "adc r24, r1 \n\t" 11860 "adc r22, r25 \n\t" 11861 "mul r10, r17 \n\t" 11862 "add r23, r0 \n\t" 11863 "adc r24, r1 \n\t" 11864 "adc r22, r25 \n\t" 11865 "mul r11, r16 \n\t" 11866 "add r23, r0 \n\t" 11867 "adc r24, r1 \n\t" 11868 "adc r22, r25 \n\t" 11869 "mul r2, r15 \n\t" 11870 "add r23, r0 \n\t" 11871 "adc r24, r1 \n\t" 11872 "adc r22, r25 \n\t" 11873 "mul r3, r14 \n\t" 11874 "add r23, r0 \n\t" 11875 "adc r24, r1 \n\t" 11876 "adc r22, r25 \n\t" 11877 "mul r4, r13 \n\t" 11878 "add r23, r0 \n\t" 11879 "adc r24, r1 \n\t" 11880 "adc r22, r25 \n\t" 11881 "mul r5, r12 \n\t" 11882 "add r23, r0 \n\t" 11883 "adc r24, r1 \n\t" 11884 "adc r22, r25 \n\t" 11885 "ld r0, z \n\t" 11886 "add r23, r0 \n\t" 11887 "adc r24, r25 \n\t" 11888 "adc r22, r25 \n\t" 11889 "st z+, r23 \n\t" 11890 11891 "ld r6, x+ \n\t" 11892 "ldi r23, 0 \n\t" 11893 "mul r7, r21 \n\t" 11894 "add r24, r0 \n\t" 11895 "adc r22, r1 \n\t" 11896 "adc r23, r25 \n\t" 11897 "mul r8, r20 \n\t" 11898 "add r24, r0 \n\t" 11899 "adc r22, r1 \n\t" 11900 "adc r23, r25 \n\t" 11901 "mul r9, r19 \n\t" 11902 "add r24, r0 \n\t" 11903 "adc r22, r1 \n\t" 11904 "adc r23, r25 \n\t" 11905 "mul r10, r18 \n\t" 11906 "add r24, r0 \n\t" 11907 "adc r22, r1 \n\t" 11908 "adc r23, r25 \n\t" 11909 "mul r11, r17 \n\t" 11910 "add r24, r0 \n\t" 11911 "adc r22, r1 \n\t" 11912 "adc r23, r25 \n\t" 11913 "mul r2, r16 \n\t" 11914 "add r24, r0 \n\t" 11915 "adc r22, r1 \n\t" 11916 "adc r23, r25 \n\t" 11917 "mul r3, r15 \n\t" 11918 "add r24, r0 \n\t" 11919 "adc r22, r1 \n\t" 11920 "adc r23, r25 \n\t" 11921 "mul r4, r14 \n\t" 11922 "add r24, r0 \n\t" 11923 "adc r22, r1 \n\t" 11924 "adc r23, r25 \n\t" 11925 "mul r5, r13 \n\t" 11926 "add r24, r0 \n\t" 11927 "adc r22, r1 \n\t" 11928 "adc r23, r25 \n\t" 11929 "mul r6, r12 \n\t" 11930 "add r24, r0 \n\t" 11931 "adc r22, r1 \n\t" 11932 "adc r23, r25 \n\t" 11933 "ld r0, z \n\t" 11934 "add r24, r0 \n\t" 11935 "adc r22, r25 \n\t" 11936 "adc r23, r25 \n\t" 11937 "st z+, r24 \n\t" 11938 11939 "ld r7, x+ \n\t" 11940 "ldi r24, 0 \n\t" 11941 "mul r8, r21 \n\t" 11942 "add r22, r0 \n\t" 11943 "adc r23, r1 \n\t" 11944 "adc r24, r25 \n\t" 11945 "mul r9, r20 \n\t" 11946 "add r22, r0 \n\t" 11947 "adc r23, r1 \n\t" 11948 "adc r24, r25 \n\t" 11949 "mul r10, r19 \n\t" 11950 "add r22, r0 \n\t" 11951 "adc r23, r1 \n\t" 11952 "adc r24, r25 \n\t" 11953 "mul r11, r18 \n\t" 11954 "add r22, r0 \n\t" 11955 "adc r23, r1 \n\t" 11956 "adc r24, r25 \n\t" 11957 "mul r2, r17 \n\t" 11958 "add r22, r0 \n\t" 11959 "adc r23, r1 \n\t" 11960 "adc r24, r25 \n\t" 11961 "mul r3, r16 \n\t" 11962 "add r22, r0 \n\t" 11963 "adc r23, r1 \n\t" 11964 "adc r24, r25 \n\t" 11965 "mul r4, r15 \n\t" 11966 "add r22, r0 \n\t" 11967 "adc r23, r1 \n\t" 11968 "adc r24, r25 \n\t" 11969 "mul r5, r14 \n\t" 11970 "add r22, r0 \n\t" 11971 "adc r23, r1 \n\t" 11972 "adc r24, r25 \n\t" 11973 "mul r6, r13 \n\t" 11974 "add r22, r0 \n\t" 11975 "adc r23, r1 \n\t" 11976 "adc r24, r25 \n\t" 11977 "mul r7, r12 \n\t" 11978 "add r22, r0 \n\t" 11979 "adc r23, r1 \n\t" 11980 "adc r24, r25 \n\t" 11981 "ld r0, z \n\t" 11982 "add r22, r0 \n\t" 11983 "adc r23, r25 \n\t" 11984 "adc r24, r25 \n\t" 11985 "st z+, r22 \n\t" 11986 11987 "ld r8, x+ \n\t" 11988 "ldi r22, 0 \n\t" 11989 "mul r9, r21 \n\t" 11990 "add r23, r0 \n\t" 11991 "adc r24, r1 \n\t" 11992 "adc r22, r25 \n\t" 11993 "mul r10, r20 \n\t" 11994 "add r23, r0 \n\t" 11995 "adc r24, r1 \n\t" 11996 "adc r22, r25 \n\t" 11997 "mul r11, r19 \n\t" 11998 "add r23, r0 \n\t" 11999 "adc r24, r1 \n\t" 12000 "adc r22, r25 \n\t" 12001 "mul r2, r18 \n\t" 12002 "add r23, r0 \n\t" 12003 "adc r24, r1 \n\t" 12004 "adc r22, r25 \n\t" 12005 "mul r3, r17 \n\t" 12006 "add r23, r0 \n\t" 12007 "adc r24, r1 \n\t" 12008 "adc r22, r25 \n\t" 12009 "mul r4, r16 \n\t" 12010 "add r23, r0 \n\t" 12011 "adc r24, r1 \n\t" 12012 "adc r22, r25 \n\t" 12013 "mul r5, r15 \n\t" 12014 "add r23, r0 \n\t" 12015 "adc r24, r1 \n\t" 12016 "adc r22, r25 \n\t" 12017 "mul r6, r14 \n\t" 12018 "add r23, r0 \n\t" 12019 "adc r24, r1 \n\t" 12020 "adc r22, r25 \n\t" 12021 "mul r7, r13 \n\t" 12022 "add r23, r0 \n\t" 12023 "adc r24, r1 \n\t" 12024 "adc r22, r25 \n\t" 12025 "mul r8, r12 \n\t" 12026 "add r23, r0 \n\t" 12027 "adc r24, r1 \n\t" 12028 "adc r22, r25 \n\t" 12029 "ld r0, z \n\t" 12030 "add r23, r0 \n\t" 12031 "adc r24, r25 \n\t" 12032 "adc r22, r25 \n\t" 12033 "st z+, r23 \n\t" 12034 12035 "ld r9, x+ \n\t" 12036 "ldi r23, 0 \n\t" 12037 "mul r10, r21 \n\t" 12038 "add r24, r0 \n\t" 12039 "adc r22, r1 \n\t" 12040 "adc r23, r25 \n\t" 12041 "mul r11, r20 \n\t" 12042 "add r24, r0 \n\t" 12043 "adc r22, r1 \n\t" 12044 "adc r23, r25 \n\t" 12045 "mul r2, r19 \n\t" 12046 "add r24, r0 \n\t" 12047 "adc r22, r1 \n\t" 12048 "adc r23, r25 \n\t" 12049 "mul r3, r18 \n\t" 12050 "add r24, r0 \n\t" 12051 "adc r22, r1 \n\t" 12052 "adc r23, r25 \n\t" 12053 "mul r4, r17 \n\t" 12054 "add r24, r0 \n\t" 12055 "adc r22, r1 \n\t" 12056 "adc r23, r25 \n\t" 12057 "mul r5, r16 \n\t" 12058 "add r24, r0 \n\t" 12059 "adc r22, r1 \n\t" 12060 "adc r23, r25 \n\t" 12061 "mul r6, r15 \n\t" 12062 "add r24, r0 \n\t" 12063 "adc r22, r1 \n\t" 12064 "adc r23, r25 \n\t" 12065 "mul r7, r14 \n\t" 12066 "add r24, r0 \n\t" 12067 "adc r22, r1 \n\t" 12068 "adc r23, r25 \n\t" 12069 "mul r8, r13 \n\t" 12070 "add r24, r0 \n\t" 12071 "adc r22, r1 \n\t" 12072 "adc r23, r25 \n\t" 12073 "mul r9, r12 \n\t" 12074 "add r24, r0 \n\t" 12075 "adc r22, r1 \n\t" 12076 "adc r23, r25 \n\t" 12077 "ld r0, z \n\t" 12078 "add r24, r0 \n\t" 12079 "adc r22, r25 \n\t" 12080 "adc r23, r25 \n\t" 12081 "st z+, r24 \n\t" 12082 12083 "ld r10, x+ \n\t" 12084 "ldi r24, 0 \n\t" 12085 "mul r11, r21 \n\t" 12086 "add r22, r0 \n\t" 12087 "adc r23, r1 \n\t" 12088 "adc r24, r25 \n\t" 12089 "mul r2, r20 \n\t" 12090 "add r22, r0 \n\t" 12091 "adc r23, r1 \n\t" 12092 "adc r24, r25 \n\t" 12093 "mul r3, r19 \n\t" 12094 "add r22, r0 \n\t" 12095 "adc r23, r1 \n\t" 12096 "adc r24, r25 \n\t" 12097 "mul r4, r18 \n\t" 12098 "add r22, r0 \n\t" 12099 "adc r23, r1 \n\t" 12100 "adc r24, r25 \n\t" 12101 "mul r5, r17 \n\t" 12102 "add r22, r0 \n\t" 12103 "adc r23, r1 \n\t" 12104 "adc r24, r25 \n\t" 12105 "mul r6, r16 \n\t" 12106 "add r22, r0 \n\t" 12107 "adc r23, r1 \n\t" 12108 "adc r24, r25 \n\t" 12109 "mul r7, r15 \n\t" 12110 "add r22, r0 \n\t" 12111 "adc r23, r1 \n\t" 12112 "adc r24, r25 \n\t" 12113 "mul r8, r14 \n\t" 12114 "add r22, r0 \n\t" 12115 "adc r23, r1 \n\t" 12116 "adc r24, r25 \n\t" 12117 "mul r9, r13 \n\t" 12118 "add r22, r0 \n\t" 12119 "adc r23, r1 \n\t" 12120 "adc r24, r25 \n\t" 12121 "mul r10, r12 \n\t" 12122 "add r22, r0 \n\t" 12123 "adc r23, r1 \n\t" 12124 "adc r24, r25 \n\t" 12125 "ld r0, z \n\t" 12126 "add r22, r0 \n\t" 12127 "adc r23, r25 \n\t" 12128 "adc r24, r25 \n\t" 12129 "st z+, r22 \n\t" 12130 12131 "ld r11, x+ \n\t" 12132 "ldi r22, 0 \n\t" 12133 "mul r2, r21 \n\t" 12134 "add r23, r0 \n\t" 12135 "adc r24, r1 \n\t" 12136 "adc r22, r25 \n\t" 12137 "mul r3, r20 \n\t" 12138 "add r23, r0 \n\t" 12139 "adc r24, r1 \n\t" 12140 "adc r22, r25 \n\t" 12141 "mul r4, r19 \n\t" 12142 "add r23, r0 \n\t" 12143 "adc r24, r1 \n\t" 12144 "adc r22, r25 \n\t" 12145 "mul r5, r18 \n\t" 12146 "add r23, r0 \n\t" 12147 "adc r24, r1 \n\t" 12148 "adc r22, r25 \n\t" 12149 "mul r6, r17 \n\t" 12150 "add r23, r0 \n\t" 12151 "adc r24, r1 \n\t" 12152 "adc r22, r25 \n\t" 12153 "mul r7, r16 \n\t" 12154 "add r23, r0 \n\t" 12155 "adc r24, r1 \n\t" 12156 "adc r22, r25 \n\t" 12157 "mul r8, r15 \n\t" 12158 "add r23, r0 \n\t" 12159 "adc r24, r1 \n\t" 12160 "adc r22, r25 \n\t" 12161 "mul r9, r14 \n\t" 12162 "add r23, r0 \n\t" 12163 "adc r24, r1 \n\t" 12164 "adc r22, r25 \n\t" 12165 "mul r10, r13 \n\t" 12166 "add r23, r0 \n\t" 12167 "adc r24, r1 \n\t" 12168 "adc r22, r25 \n\t" 12169 "mul r11, r12 \n\t" 12170 "add r23, r0 \n\t" 12171 "adc r24, r1 \n\t" 12172 "adc r22, r25 \n\t" 12173 "ld r0, z \n\t" 12174 "add r23, r0 \n\t" 12175 "adc r24, r25 \n\t" 12176 "adc r22, r25 \n\t" 12177 "st z+, r23 \n\t" 12178 12179 "ld r2, x+ \n\t" 12180 "ldi r23, 0 \n\t" 12181 "mul r3, r21 \n\t" 12182 "add r24, r0 \n\t" 12183 "adc r22, r1 \n\t" 12184 "adc r23, r25 \n\t" 12185 "mul r4, r20 \n\t" 12186 "add r24, r0 \n\t" 12187 "adc r22, r1 \n\t" 12188 "adc r23, r25 \n\t" 12189 "mul r5, r19 \n\t" 12190 "add r24, r0 \n\t" 12191 "adc r22, r1 \n\t" 12192 "adc r23, r25 \n\t" 12193 "mul r6, r18 \n\t" 12194 "add r24, r0 \n\t" 12195 "adc r22, r1 \n\t" 12196 "adc r23, r25 \n\t" 12197 "mul r7, r17 \n\t" 12198 "add r24, r0 \n\t" 12199 "adc r22, r1 \n\t" 12200 "adc r23, r25 \n\t" 12201 "mul r8, r16 \n\t" 12202 "add r24, r0 \n\t" 12203 "adc r22, r1 \n\t" 12204 "adc r23, r25 \n\t" 12205 "mul r9, r15 \n\t" 12206 "add r24, r0 \n\t" 12207 "adc r22, r1 \n\t" 12208 "adc r23, r25 \n\t" 12209 "mul r10, r14 \n\t" 12210 "add r24, r0 \n\t" 12211 "adc r22, r1 \n\t" 12212 "adc r23, r25 \n\t" 12213 "mul r11, r13 \n\t" 12214 "add r24, r0 \n\t" 12215 "adc r22, r1 \n\t" 12216 "adc r23, r25 \n\t" 12217 "mul r2, r12 \n\t" 12218 "add r24, r0 \n\t" 12219 "adc r22, r1 \n\t" 12220 "adc r23, r25 \n\t" 12221 "ld r0, z \n\t" 12222 "add r24, r0 \n\t" 12223 "adc r22, r25 \n\t" 12224 "adc r23, r25 \n\t" 12225 "st z+, r24 \n\t" 12226 12227 "ld r3, x+ \n\t" 12228 "ldi r24, 0 \n\t" 12229 "mul r4, r21 \n\t" 12230 "add r22, r0 \n\t" 12231 "adc r23, r1 \n\t" 12232 "adc r24, r25 \n\t" 12233 "mul r5, r20 \n\t" 12234 "add r22, r0 \n\t" 12235 "adc r23, r1 \n\t" 12236 "adc r24, r25 \n\t" 12237 "mul r6, r19 \n\t" 12238 "add r22, r0 \n\t" 12239 "adc r23, r1 \n\t" 12240 "adc r24, r25 \n\t" 12241 "mul r7, r18 \n\t" 12242 "add r22, r0 \n\t" 12243 "adc r23, r1 \n\t" 12244 "adc r24, r25 \n\t" 12245 "mul r8, r17 \n\t" 12246 "add r22, r0 \n\t" 12247 "adc r23, r1 \n\t" 12248 "adc r24, r25 \n\t" 12249 "mul r9, r16 \n\t" 12250 "add r22, r0 \n\t" 12251 "adc r23, r1 \n\t" 12252 "adc r24, r25 \n\t" 12253 "mul r10, r15 \n\t" 12254 "add r22, r0 \n\t" 12255 "adc r23, r1 \n\t" 12256 "adc r24, r25 \n\t" 12257 "mul r11, r14 \n\t" 12258 "add r22, r0 \n\t" 12259 "adc r23, r1 \n\t" 12260 "adc r24, r25 \n\t" 12261 "mul r2, r13 \n\t" 12262 "add r22, r0 \n\t" 12263 "adc r23, r1 \n\t" 12264 "adc r24, r25 \n\t" 12265 "mul r3, r12 \n\t" 12266 "add r22, r0 \n\t" 12267 "adc r23, r1 \n\t" 12268 "adc r24, r25 \n\t" 12269 "ld r0, z \n\t" 12270 "add r22, r0 \n\t" 12271 "adc r23, r25 \n\t" 12272 "adc r24, r25 \n\t" 12273 "st z+, r22 \n\t" 12274 12275 "ld r12, y+ \n\t" 12276 "ldi r22, 0 \n\t" 12277 "mul r4, r12 \n\t" 12278 "add r23, r0 \n\t" 12279 "adc r24, r1 \n\t" 12280 "adc r22, r25 \n\t" 12281 "mul r5, r21 \n\t" 12282 "add r23, r0 \n\t" 12283 "adc r24, r1 \n\t" 12284 "adc r22, r25 \n\t" 12285 "mul r6, r20 \n\t" 12286 "add r23, r0 \n\t" 12287 "adc r24, r1 \n\t" 12288 "adc r22, r25 \n\t" 12289 "mul r7, r19 \n\t" 12290 "add r23, r0 \n\t" 12291 "adc r24, r1 \n\t" 12292 "adc r22, r25 \n\t" 12293 "mul r8, r18 \n\t" 12294 "add r23, r0 \n\t" 12295 "adc r24, r1 \n\t" 12296 "adc r22, r25 \n\t" 12297 "mul r9, r17 \n\t" 12298 "add r23, r0 \n\t" 12299 "adc r24, r1 \n\t" 12300 "adc r22, r25 \n\t" 12301 "mul r10, r16 \n\t" 12302 "add r23, r0 \n\t" 12303 "adc r24, r1 \n\t" 12304 "adc r22, r25 \n\t" 12305 "mul r11, r15 \n\t" 12306 "add r23, r0 \n\t" 12307 "adc r24, r1 \n\t" 12308 "adc r22, r25 \n\t" 12309 "mul r2, r14 \n\t" 12310 "add r23, r0 \n\t" 12311 "adc r24, r1 \n\t" 12312 "adc r22, r25 \n\t" 12313 "mul r3, r13 \n\t" 12314 "add r23, r0 \n\t" 12315 "adc r24, r1 \n\t" 12316 "adc r22, r25 \n\t" 12317 "ld r0, z \n\t" 12318 "add r23, r0 \n\t" 12319 "adc r24, r25 \n\t" 12320 "adc r22, r25 \n\t" 12321 "st z+, r23 \n\t" 12322 12323 "ld r13, y+ \n\t" 12324 "ldi r23, 0 \n\t" 12325 "mul r4, r13 \n\t" 12326 "add r24, r0 \n\t" 12327 "adc r22, r1 \n\t" 12328 "adc r23, r25 \n\t" 12329 "mul r5, r12 \n\t" 12330 "add r24, r0 \n\t" 12331 "adc r22, r1 \n\t" 12332 "adc r23, r25 \n\t" 12333 "mul r6, r21 \n\t" 12334 "add r24, r0 \n\t" 12335 "adc r22, r1 \n\t" 12336 "adc r23, r25 \n\t" 12337 "mul r7, r20 \n\t" 12338 "add r24, r0 \n\t" 12339 "adc r22, r1 \n\t" 12340 "adc r23, r25 \n\t" 12341 "mul r8, r19 \n\t" 12342 "add r24, r0 \n\t" 12343 "adc r22, r1 \n\t" 12344 "adc r23, r25 \n\t" 12345 "mul r9, r18 \n\t" 12346 "add r24, r0 \n\t" 12347 "adc r22, r1 \n\t" 12348 "adc r23, r25 \n\t" 12349 "mul r10, r17 \n\t" 12350 "add r24, r0 \n\t" 12351 "adc r22, r1 \n\t" 12352 "adc r23, r25 \n\t" 12353 "mul r11, r16 \n\t" 12354 "add r24, r0 \n\t" 12355 "adc r22, r1 \n\t" 12356 "adc r23, r25 \n\t" 12357 "mul r2, r15 \n\t" 12358 "add r24, r0 \n\t" 12359 "adc r22, r1 \n\t" 12360 "adc r23, r25 \n\t" 12361 "mul r3, r14 \n\t" 12362 "add r24, r0 \n\t" 12363 "adc r22, r1 \n\t" 12364 "adc r23, r25 \n\t" 12365 "ld r0, z \n\t" 12366 "add r24, r0 \n\t" 12367 "adc r22, r25 \n\t" 12368 "adc r23, r25 \n\t" 12369 "st z+, r24 \n\t" 12370 12371 "ld r14, y+ \n\t" 12372 "ldi r24, 0 \n\t" 12373 "mul r4, r14 \n\t" 12374 "add r22, r0 \n\t" 12375 "adc r23, r1 \n\t" 12376 "adc r24, r25 \n\t" 12377 "mul r5, r13 \n\t" 12378 "add r22, r0 \n\t" 12379 "adc r23, r1 \n\t" 12380 "adc r24, r25 \n\t" 12381 "mul r6, r12 \n\t" 12382 "add r22, r0 \n\t" 12383 "adc r23, r1 \n\t" 12384 "adc r24, r25 \n\t" 12385 "mul r7, r21 \n\t" 12386 "add r22, r0 \n\t" 12387 "adc r23, r1 \n\t" 12388 "adc r24, r25 \n\t" 12389 "mul r8, r20 \n\t" 12390 "add r22, r0 \n\t" 12391 "adc r23, r1 \n\t" 12392 "adc r24, r25 \n\t" 12393 "mul r9, r19 \n\t" 12394 "add r22, r0 \n\t" 12395 "adc r23, r1 \n\t" 12396 "adc r24, r25 \n\t" 12397 "mul r10, r18 \n\t" 12398 "add r22, r0 \n\t" 12399 "adc r23, r1 \n\t" 12400 "adc r24, r25 \n\t" 12401 "mul r11, r17 \n\t" 12402 "add r22, r0 \n\t" 12403 "adc r23, r1 \n\t" 12404 "adc r24, r25 \n\t" 12405 "mul r2, r16 \n\t" 12406 "add r22, r0 \n\t" 12407 "adc r23, r1 \n\t" 12408 "adc r24, r25 \n\t" 12409 "mul r3, r15 \n\t" 12410 "add r22, r0 \n\t" 12411 "adc r23, r1 \n\t" 12412 "adc r24, r25 \n\t" 12413 "ld r0, z \n\t" 12414 "add r22, r0 \n\t" 12415 "adc r23, r25 \n\t" 12416 "adc r24, r25 \n\t" 12417 "st z+, r22 \n\t" 12418 12419 "ld r15, y+ \n\t" 12420 "ldi r22, 0 \n\t" 12421 "mul r4, r15 \n\t" 12422 "add r23, r0 \n\t" 12423 "adc r24, r1 \n\t" 12424 "adc r22, r25 \n\t" 12425 "mul r5, r14 \n\t" 12426 "add r23, r0 \n\t" 12427 "adc r24, r1 \n\t" 12428 "adc r22, r25 \n\t" 12429 "mul r6, r13 \n\t" 12430 "add r23, r0 \n\t" 12431 "adc r24, r1 \n\t" 12432 "adc r22, r25 \n\t" 12433 "mul r7, r12 \n\t" 12434 "add r23, r0 \n\t" 12435 "adc r24, r1 \n\t" 12436 "adc r22, r25 \n\t" 12437 "mul r8, r21 \n\t" 12438 "add r23, r0 \n\t" 12439 "adc r24, r1 \n\t" 12440 "adc r22, r25 \n\t" 12441 "mul r9, r20 \n\t" 12442 "add r23, r0 \n\t" 12443 "adc r24, r1 \n\t" 12444 "adc r22, r25 \n\t" 12445 "mul r10, r19 \n\t" 12446 "add r23, r0 \n\t" 12447 "adc r24, r1 \n\t" 12448 "adc r22, r25 \n\t" 12449 "mul r11, r18 \n\t" 12450 "add r23, r0 \n\t" 12451 "adc r24, r1 \n\t" 12452 "adc r22, r25 \n\t" 12453 "mul r2, r17 \n\t" 12454 "add r23, r0 \n\t" 12455 "adc r24, r1 \n\t" 12456 "adc r22, r25 \n\t" 12457 "mul r3, r16 \n\t" 12458 "add r23, r0 \n\t" 12459 "adc r24, r1 \n\t" 12460 "adc r22, r25 \n\t" 12461 "ld r0, z \n\t" 12462 "add r23, r0 \n\t" 12463 "adc r24, r25 \n\t" 12464 "adc r22, r25 \n\t" 12465 "st z+, r23 \n\t" 12466 12467 "ld r16, y+ \n\t" 12468 "ldi r23, 0 \n\t" 12469 "mul r4, r16 \n\t" 12470 "add r24, r0 \n\t" 12471 "adc r22, r1 \n\t" 12472 "adc r23, r25 \n\t" 12473 "mul r5, r15 \n\t" 12474 "add r24, r0 \n\t" 12475 "adc r22, r1 \n\t" 12476 "adc r23, r25 \n\t" 12477 "mul r6, r14 \n\t" 12478 "add r24, r0 \n\t" 12479 "adc r22, r1 \n\t" 12480 "adc r23, r25 \n\t" 12481 "mul r7, r13 \n\t" 12482 "add r24, r0 \n\t" 12483 "adc r22, r1 \n\t" 12484 "adc r23, r25 \n\t" 12485 "mul r8, r12 \n\t" 12486 "add r24, r0 \n\t" 12487 "adc r22, r1 \n\t" 12488 "adc r23, r25 \n\t" 12489 "mul r9, r21 \n\t" 12490 "add r24, r0 \n\t" 12491 "adc r22, r1 \n\t" 12492 "adc r23, r25 \n\t" 12493 "mul r10, r20 \n\t" 12494 "add r24, r0 \n\t" 12495 "adc r22, r1 \n\t" 12496 "adc r23, r25 \n\t" 12497 "mul r11, r19 \n\t" 12498 "add r24, r0 \n\t" 12499 "adc r22, r1 \n\t" 12500 "adc r23, r25 \n\t" 12501 "mul r2, r18 \n\t" 12502 "add r24, r0 \n\t" 12503 "adc r22, r1 \n\t" 12504 "adc r23, r25 \n\t" 12505 "mul r3, r17 \n\t" 12506 "add r24, r0 \n\t" 12507 "adc r22, r1 \n\t" 12508 "adc r23, r25 \n\t" 12509 "ld r0, z \n\t" 12510 "add r24, r0 \n\t" 12511 "adc r22, r25 \n\t" 12512 "adc r23, r25 \n\t" 12513 "st z+, r24 \n\t" 12514 12515 "ld r17, y+ \n\t" 12516 "ldi r24, 0 \n\t" 12517 "mul r4, r17 \n\t" 12518 "add r22, r0 \n\t" 12519 "adc r23, r1 \n\t" 12520 "adc r24, r25 \n\t" 12521 "mul r5, r16 \n\t" 12522 "add r22, r0 \n\t" 12523 "adc r23, r1 \n\t" 12524 "adc r24, r25 \n\t" 12525 "mul r6, r15 \n\t" 12526 "add r22, r0 \n\t" 12527 "adc r23, r1 \n\t" 12528 "adc r24, r25 \n\t" 12529 "mul r7, r14 \n\t" 12530 "add r22, r0 \n\t" 12531 "adc r23, r1 \n\t" 12532 "adc r24, r25 \n\t" 12533 "mul r8, r13 \n\t" 12534 "add r22, r0 \n\t" 12535 "adc r23, r1 \n\t" 12536 "adc r24, r25 \n\t" 12537 "mul r9, r12 \n\t" 12538 "add r22, r0 \n\t" 12539 "adc r23, r1 \n\t" 12540 "adc r24, r25 \n\t" 12541 "mul r10, r21 \n\t" 12542 "add r22, r0 \n\t" 12543 "adc r23, r1 \n\t" 12544 "adc r24, r25 \n\t" 12545 "mul r11, r20 \n\t" 12546 "add r22, r0 \n\t" 12547 "adc r23, r1 \n\t" 12548 "adc r24, r25 \n\t" 12549 "mul r2, r19 \n\t" 12550 "add r22, r0 \n\t" 12551 "adc r23, r1 \n\t" 12552 "adc r24, r25 \n\t" 12553 "mul r3, r18 \n\t" 12554 "add r22, r0 \n\t" 12555 "adc r23, r1 \n\t" 12556 "adc r24, r25 \n\t" 12557 "ld r0, z \n\t" 12558 "add r22, r0 \n\t" 12559 "adc r23, r25 \n\t" 12560 "adc r24, r25 \n\t" 12561 "st z+, r22 \n\t" 12562 12563 "ld r18, y+ \n\t" 12564 "ldi r22, 0 \n\t" 12565 "mul r4, r18 \n\t" 12566 "add r23, r0 \n\t" 12567 "adc r24, r1 \n\t" 12568 "adc r22, r25 \n\t" 12569 "mul r5, r17 \n\t" 12570 "add r23, r0 \n\t" 12571 "adc r24, r1 \n\t" 12572 "adc r22, r25 \n\t" 12573 "mul r6, r16 \n\t" 12574 "add r23, r0 \n\t" 12575 "adc r24, r1 \n\t" 12576 "adc r22, r25 \n\t" 12577 "mul r7, r15 \n\t" 12578 "add r23, r0 \n\t" 12579 "adc r24, r1 \n\t" 12580 "adc r22, r25 \n\t" 12581 "mul r8, r14 \n\t" 12582 "add r23, r0 \n\t" 12583 "adc r24, r1 \n\t" 12584 "adc r22, r25 \n\t" 12585 "mul r9, r13 \n\t" 12586 "add r23, r0 \n\t" 12587 "adc r24, r1 \n\t" 12588 "adc r22, r25 \n\t" 12589 "mul r10, r12 \n\t" 12590 "add r23, r0 \n\t" 12591 "adc r24, r1 \n\t" 12592 "adc r22, r25 \n\t" 12593 "mul r11, r21 \n\t" 12594 "add r23, r0 \n\t" 12595 "adc r24, r1 \n\t" 12596 "adc r22, r25 \n\t" 12597 "mul r2, r20 \n\t" 12598 "add r23, r0 \n\t" 12599 "adc r24, r1 \n\t" 12600 "adc r22, r25 \n\t" 12601 "mul r3, r19 \n\t" 12602 "add r23, r0 \n\t" 12603 "adc r24, r1 \n\t" 12604 "adc r22, r25 \n\t" 12605 "ld r0, z \n\t" 12606 "add r23, r0 \n\t" 12607 "adc r24, r25 \n\t" 12608 "adc r22, r25 \n\t" 12609 "st z+, r23 \n\t" 12610 12611 "ld r19, y+ \n\t" 12612 "ldi r23, 0 \n\t" 12613 "mul r4, r19 \n\t" 12614 "add r24, r0 \n\t" 12615 "adc r22, r1 \n\t" 12616 "adc r23, r25 \n\t" 12617 "mul r5, r18 \n\t" 12618 "add r24, r0 \n\t" 12619 "adc r22, r1 \n\t" 12620 "adc r23, r25 \n\t" 12621 "mul r6, r17 \n\t" 12622 "add r24, r0 \n\t" 12623 "adc r22, r1 \n\t" 12624 "adc r23, r25 \n\t" 12625 "mul r7, r16 \n\t" 12626 "add r24, r0 \n\t" 12627 "adc r22, r1 \n\t" 12628 "adc r23, r25 \n\t" 12629 "mul r8, r15 \n\t" 12630 "add r24, r0 \n\t" 12631 "adc r22, r1 \n\t" 12632 "adc r23, r25 \n\t" 12633 "mul r9, r14 \n\t" 12634 "add r24, r0 \n\t" 12635 "adc r22, r1 \n\t" 12636 "adc r23, r25 \n\t" 12637 "mul r10, r13 \n\t" 12638 "add r24, r0 \n\t" 12639 "adc r22, r1 \n\t" 12640 "adc r23, r25 \n\t" 12641 "mul r11, r12 \n\t" 12642 "add r24, r0 \n\t" 12643 "adc r22, r1 \n\t" 12644 "adc r23, r25 \n\t" 12645 "mul r2, r21 \n\t" 12646 "add r24, r0 \n\t" 12647 "adc r22, r1 \n\t" 12648 "adc r23, r25 \n\t" 12649 "mul r3, r20 \n\t" 12650 "add r24, r0 \n\t" 12651 "adc r22, r1 \n\t" 12652 "adc r23, r25 \n\t" 12653 "ld r0, z \n\t" 12654 "add r24, r0 \n\t" 12655 "adc r22, r25 \n\t" 12656 "adc r23, r25 \n\t" 12657 "st z+, r24 \n\t" 12658 12659 "ld r20, y+ \n\t" 12660 "ldi r24, 0 \n\t" 12661 "mul r4, r20 \n\t" 12662 "add r22, r0 \n\t" 12663 "adc r23, r1 \n\t" 12664 "adc r24, r25 \n\t" 12665 "mul r5, r19 \n\t" 12666 "add r22, r0 \n\t" 12667 "adc r23, r1 \n\t" 12668 "adc r24, r25 \n\t" 12669 "mul r6, r18 \n\t" 12670 "add r22, r0 \n\t" 12671 "adc r23, r1 \n\t" 12672 "adc r24, r25 \n\t" 12673 "mul r7, r17 \n\t" 12674 "add r22, r0 \n\t" 12675 "adc r23, r1 \n\t" 12676 "adc r24, r25 \n\t" 12677 "mul r8, r16 \n\t" 12678 "add r22, r0 \n\t" 12679 "adc r23, r1 \n\t" 12680 "adc r24, r25 \n\t" 12681 "mul r9, r15 \n\t" 12682 "add r22, r0 \n\t" 12683 "adc r23, r1 \n\t" 12684 "adc r24, r25 \n\t" 12685 "mul r10, r14 \n\t" 12686 "add r22, r0 \n\t" 12687 "adc r23, r1 \n\t" 12688 "adc r24, r25 \n\t" 12689 "mul r11, r13 \n\t" 12690 "add r22, r0 \n\t" 12691 "adc r23, r1 \n\t" 12692 "adc r24, r25 \n\t" 12693 "mul r2, r12 \n\t" 12694 "add r22, r0 \n\t" 12695 "adc r23, r1 \n\t" 12696 "adc r24, r25 \n\t" 12697 "mul r3, r21 \n\t" 12698 "add r22, r0 \n\t" 12699 "adc r23, r1 \n\t" 12700 "adc r24, r25 \n\t" 12701 "ld r0, z \n\t" 12702 "add r22, r0 \n\t" 12703 "adc r23, r25 \n\t" 12704 "adc r24, r25 \n\t" 12705 "st z+, r22 \n\t" 12706 12707 "ld r21, y+ \n\t" 12708 "ldi r22, 0 \n\t" 12709 "mul r4, r21 \n\t" 12710 "add r23, r0 \n\t" 12711 "adc r24, r1 \n\t" 12712 "adc r22, r25 \n\t" 12713 "mul r5, r20 \n\t" 12714 "add r23, r0 \n\t" 12715 "adc r24, r1 \n\t" 12716 "adc r22, r25 \n\t" 12717 "mul r6, r19 \n\t" 12718 "add r23, r0 \n\t" 12719 "adc r24, r1 \n\t" 12720 "adc r22, r25 \n\t" 12721 "mul r7, r18 \n\t" 12722 "add r23, r0 \n\t" 12723 "adc r24, r1 \n\t" 12724 "adc r22, r25 \n\t" 12725 "mul r8, r17 \n\t" 12726 "add r23, r0 \n\t" 12727 "adc r24, r1 \n\t" 12728 "adc r22, r25 \n\t" 12729 "mul r9, r16 \n\t" 12730 "add r23, r0 \n\t" 12731 "adc r24, r1 \n\t" 12732 "adc r22, r25 \n\t" 12733 "mul r10, r15 \n\t" 12734 "add r23, r0 \n\t" 12735 "adc r24, r1 \n\t" 12736 "adc r22, r25 \n\t" 12737 "mul r11, r14 \n\t" 12738 "add r23, r0 \n\t" 12739 "adc r24, r1 \n\t" 12740 "adc r22, r25 \n\t" 12741 "mul r2, r13 \n\t" 12742 "add r23, r0 \n\t" 12743 "adc r24, r1 \n\t" 12744 "adc r22, r25 \n\t" 12745 "mul r3, r12 \n\t" 12746 "add r23, r0 \n\t" 12747 "adc r24, r1 \n\t" 12748 "adc r22, r25 \n\t" 12749 "ld r0, z \n\t" 12750 "add r23, r0 \n\t" 12751 "adc r24, r25 \n\t" 12752 "adc r22, r25 \n\t" 12753 "st z+, r23 \n\t" 12754 12755 "ld r12, y+ \n\t" 12756 "ldi r23, 0 \n\t" 12757 "mul r4, r12 \n\t" 12758 "add r24, r0 \n\t" 12759 "adc r22, r1 \n\t" 12760 "adc r23, r25 \n\t" 12761 "mul r5, r21 \n\t" 12762 "add r24, r0 \n\t" 12763 "adc r22, r1 \n\t" 12764 "adc r23, r25 \n\t" 12765 "mul r6, r20 \n\t" 12766 "add r24, r0 \n\t" 12767 "adc r22, r1 \n\t" 12768 "adc r23, r25 \n\t" 12769 "mul r7, r19 \n\t" 12770 "add r24, r0 \n\t" 12771 "adc r22, r1 \n\t" 12772 "adc r23, r25 \n\t" 12773 "mul r8, r18 \n\t" 12774 "add r24, r0 \n\t" 12775 "adc r22, r1 \n\t" 12776 "adc r23, r25 \n\t" 12777 "mul r9, r17 \n\t" 12778 "add r24, r0 \n\t" 12779 "adc r22, r1 \n\t" 12780 "adc r23, r25 \n\t" 12781 "mul r10, r16 \n\t" 12782 "add r24, r0 \n\t" 12783 "adc r22, r1 \n\t" 12784 "adc r23, r25 \n\t" 12785 "mul r11, r15 \n\t" 12786 "add r24, r0 \n\t" 12787 "adc r22, r1 \n\t" 12788 "adc r23, r25 \n\t" 12789 "mul r2, r14 \n\t" 12790 "add r24, r0 \n\t" 12791 "adc r22, r1 \n\t" 12792 "adc r23, r25 \n\t" 12793 "mul r3, r13 \n\t" 12794 "add r24, r0 \n\t" 12795 "adc r22, r1 \n\t" 12796 "adc r23, r25 \n\t" 12797 "ld r0, z \n\t" 12798 "add r24, r0 \n\t" 12799 "adc r22, r25 \n\t" 12800 "adc r23, r25 \n\t" 12801 "st z+, r24 \n\t" 12802 12803 "ld r13, y+ \n\t" 12804 "ldi r24, 0 \n\t" 12805 "mul r4, r13 \n\t" 12806 "add r22, r0 \n\t" 12807 "adc r23, r1 \n\t" 12808 "adc r24, r25 \n\t" 12809 "mul r5, r12 \n\t" 12810 "add r22, r0 \n\t" 12811 "adc r23, r1 \n\t" 12812 "adc r24, r25 \n\t" 12813 "mul r6, r21 \n\t" 12814 "add r22, r0 \n\t" 12815 "adc r23, r1 \n\t" 12816 "adc r24, r25 \n\t" 12817 "mul r7, r20 \n\t" 12818 "add r22, r0 \n\t" 12819 "adc r23, r1 \n\t" 12820 "adc r24, r25 \n\t" 12821 "mul r8, r19 \n\t" 12822 "add r22, r0 \n\t" 12823 "adc r23, r1 \n\t" 12824 "adc r24, r25 \n\t" 12825 "mul r9, r18 \n\t" 12826 "add r22, r0 \n\t" 12827 "adc r23, r1 \n\t" 12828 "adc r24, r25 \n\t" 12829 "mul r10, r17 \n\t" 12830 "add r22, r0 \n\t" 12831 "adc r23, r1 \n\t" 12832 "adc r24, r25 \n\t" 12833 "mul r11, r16 \n\t" 12834 "add r22, r0 \n\t" 12835 "adc r23, r1 \n\t" 12836 "adc r24, r25 \n\t" 12837 "mul r2, r15 \n\t" 12838 "add r22, r0 \n\t" 12839 "adc r23, r1 \n\t" 12840 "adc r24, r25 \n\t" 12841 "mul r3, r14 \n\t" 12842 "add r22, r0 \n\t" 12843 "adc r23, r1 \n\t" 12844 "adc r24, r25 \n\t" 12845 "ld r0, z \n\t" 12846 "add r22, r0 \n\t" 12847 "adc r23, r25 \n\t" 12848 "adc r24, r25 \n\t" 12849 "st z+, r22 \n\t" 12850 12851 "ld r14, y+ \n\t" 12852 "ldi r22, 0 \n\t" 12853 "mul r4, r14 \n\t" 12854 "add r23, r0 \n\t" 12855 "adc r24, r1 \n\t" 12856 "adc r22, r25 \n\t" 12857 "mul r5, r13 \n\t" 12858 "add r23, r0 \n\t" 12859 "adc r24, r1 \n\t" 12860 "adc r22, r25 \n\t" 12861 "mul r6, r12 \n\t" 12862 "add r23, r0 \n\t" 12863 "adc r24, r1 \n\t" 12864 "adc r22, r25 \n\t" 12865 "mul r7, r21 \n\t" 12866 "add r23, r0 \n\t" 12867 "adc r24, r1 \n\t" 12868 "adc r22, r25 \n\t" 12869 "mul r8, r20 \n\t" 12870 "add r23, r0 \n\t" 12871 "adc r24, r1 \n\t" 12872 "adc r22, r25 \n\t" 12873 "mul r9, r19 \n\t" 12874 "add r23, r0 \n\t" 12875 "adc r24, r1 \n\t" 12876 "adc r22, r25 \n\t" 12877 "mul r10, r18 \n\t" 12878 "add r23, r0 \n\t" 12879 "adc r24, r1 \n\t" 12880 "adc r22, r25 \n\t" 12881 "mul r11, r17 \n\t" 12882 "add r23, r0 \n\t" 12883 "adc r24, r1 \n\t" 12884 "adc r22, r25 \n\t" 12885 "mul r2, r16 \n\t" 12886 "add r23, r0 \n\t" 12887 "adc r24, r1 \n\t" 12888 "adc r22, r25 \n\t" 12889 "mul r3, r15 \n\t" 12890 "add r23, r0 \n\t" 12891 "adc r24, r1 \n\t" 12892 "adc r22, r25 \n\t" 12893 "ld r0, z \n\t" 12894 "add r23, r0 \n\t" 12895 "adc r24, r25 \n\t" 12896 "adc r22, r25 \n\t" 12897 "st z+, r23 \n\t" 12898 12899 "ld r15, y+ \n\t" 12900 "ldi r23, 0 \n\t" 12901 "mul r4, r15 \n\t" 12902 "add r24, r0 \n\t" 12903 "adc r22, r1 \n\t" 12904 "adc r23, r25 \n\t" 12905 "mul r5, r14 \n\t" 12906 "add r24, r0 \n\t" 12907 "adc r22, r1 \n\t" 12908 "adc r23, r25 \n\t" 12909 "mul r6, r13 \n\t" 12910 "add r24, r0 \n\t" 12911 "adc r22, r1 \n\t" 12912 "adc r23, r25 \n\t" 12913 "mul r7, r12 \n\t" 12914 "add r24, r0 \n\t" 12915 "adc r22, r1 \n\t" 12916 "adc r23, r25 \n\t" 12917 "mul r8, r21 \n\t" 12918 "add r24, r0 \n\t" 12919 "adc r22, r1 \n\t" 12920 "adc r23, r25 \n\t" 12921 "mul r9, r20 \n\t" 12922 "add r24, r0 \n\t" 12923 "adc r22, r1 \n\t" 12924 "adc r23, r25 \n\t" 12925 "mul r10, r19 \n\t" 12926 "add r24, r0 \n\t" 12927 "adc r22, r1 \n\t" 12928 "adc r23, r25 \n\t" 12929 "mul r11, r18 \n\t" 12930 "add r24, r0 \n\t" 12931 "adc r22, r1 \n\t" 12932 "adc r23, r25 \n\t" 12933 "mul r2, r17 \n\t" 12934 "add r24, r0 \n\t" 12935 "adc r22, r1 \n\t" 12936 "adc r23, r25 \n\t" 12937 "mul r3, r16 \n\t" 12938 "add r24, r0 \n\t" 12939 "adc r22, r1 \n\t" 12940 "adc r23, r25 \n\t" 12941 "ld r0, z \n\t" 12942 "add r24, r0 \n\t" 12943 "adc r22, r25 \n\t" 12944 "adc r23, r25 \n\t" 12945 "st z+, r24 \n\t" 12946 12947 "ld r16, y+ \n\t" 12948 "ldi r24, 0 \n\t" 12949 "mul r4, r16 \n\t" 12950 "add r22, r0 \n\t" 12951 "adc r23, r1 \n\t" 12952 "adc r24, r25 \n\t" 12953 "mul r5, r15 \n\t" 12954 "add r22, r0 \n\t" 12955 "adc r23, r1 \n\t" 12956 "adc r24, r25 \n\t" 12957 "mul r6, r14 \n\t" 12958 "add r22, r0 \n\t" 12959 "adc r23, r1 \n\t" 12960 "adc r24, r25 \n\t" 12961 "mul r7, r13 \n\t" 12962 "add r22, r0 \n\t" 12963 "adc r23, r1 \n\t" 12964 "adc r24, r25 \n\t" 12965 "mul r8, r12 \n\t" 12966 "add r22, r0 \n\t" 12967 "adc r23, r1 \n\t" 12968 "adc r24, r25 \n\t" 12969 "mul r9, r21 \n\t" 12970 "add r22, r0 \n\t" 12971 "adc r23, r1 \n\t" 12972 "adc r24, r25 \n\t" 12973 "mul r10, r20 \n\t" 12974 "add r22, r0 \n\t" 12975 "adc r23, r1 \n\t" 12976 "adc r24, r25 \n\t" 12977 "mul r11, r19 \n\t" 12978 "add r22, r0 \n\t" 12979 "adc r23, r1 \n\t" 12980 "adc r24, r25 \n\t" 12981 "mul r2, r18 \n\t" 12982 "add r22, r0 \n\t" 12983 "adc r23, r1 \n\t" 12984 "adc r24, r25 \n\t" 12985 "mul r3, r17 \n\t" 12986 "add r22, r0 \n\t" 12987 "adc r23, r1 \n\t" 12988 "adc r24, r25 \n\t" 12989 "ld r0, z \n\t" 12990 "add r22, r0 \n\t" 12991 "adc r23, r25 \n\t" 12992 "adc r24, r25 \n\t" 12993 "st z+, r22 \n\t" 12994 12995 "ld r17, y+ \n\t" 12996 "ldi r22, 0 \n\t" 12997 "mul r4, r17 \n\t" 12998 "add r23, r0 \n\t" 12999 "adc r24, r1 \n\t" 13000 "adc r22, r25 \n\t" 13001 "mul r5, r16 \n\t" 13002 "add r23, r0 \n\t" 13003 "adc r24, r1 \n\t" 13004 "adc r22, r25 \n\t" 13005 "mul r6, r15 \n\t" 13006 "add r23, r0 \n\t" 13007 "adc r24, r1 \n\t" 13008 "adc r22, r25 \n\t" 13009 "mul r7, r14 \n\t" 13010 "add r23, r0 \n\t" 13011 "adc r24, r1 \n\t" 13012 "adc r22, r25 \n\t" 13013 "mul r8, r13 \n\t" 13014 "add r23, r0 \n\t" 13015 "adc r24, r1 \n\t" 13016 "adc r22, r25 \n\t" 13017 "mul r9, r12 \n\t" 13018 "add r23, r0 \n\t" 13019 "adc r24, r1 \n\t" 13020 "adc r22, r25 \n\t" 13021 "mul r10, r21 \n\t" 13022 "add r23, r0 \n\t" 13023 "adc r24, r1 \n\t" 13024 "adc r22, r25 \n\t" 13025 "mul r11, r20 \n\t" 13026 "add r23, r0 \n\t" 13027 "adc r24, r1 \n\t" 13028 "adc r22, r25 \n\t" 13029 "mul r2, r19 \n\t" 13030 "add r23, r0 \n\t" 13031 "adc r24, r1 \n\t" 13032 "adc r22, r25 \n\t" 13033 "mul r3, r18 \n\t" 13034 "add r23, r0 \n\t" 13035 "adc r24, r1 \n\t" 13036 "adc r22, r25 \n\t" 13037 "ld r0, z \n\t" 13038 "add r23, r0 \n\t" 13039 "adc r24, r25 \n\t" 13040 "adc r22, r25 \n\t" 13041 "st z+, r23 \n\t" 13042 13043 "ld r18, y+ \n\t" 13044 "ldi r23, 0 \n\t" 13045 "mul r4, r18 \n\t" 13046 "add r24, r0 \n\t" 13047 "adc r22, r1 \n\t" 13048 "adc r23, r25 \n\t" 13049 "mul r5, r17 \n\t" 13050 "add r24, r0 \n\t" 13051 "adc r22, r1 \n\t" 13052 "adc r23, r25 \n\t" 13053 "mul r6, r16 \n\t" 13054 "add r24, r0 \n\t" 13055 "adc r22, r1 \n\t" 13056 "adc r23, r25 \n\t" 13057 "mul r7, r15 \n\t" 13058 "add r24, r0 \n\t" 13059 "adc r22, r1 \n\t" 13060 "adc r23, r25 \n\t" 13061 "mul r8, r14 \n\t" 13062 "add r24, r0 \n\t" 13063 "adc r22, r1 \n\t" 13064 "adc r23, r25 \n\t" 13065 "mul r9, r13 \n\t" 13066 "add r24, r0 \n\t" 13067 "adc r22, r1 \n\t" 13068 "adc r23, r25 \n\t" 13069 "mul r10, r12 \n\t" 13070 "add r24, r0 \n\t" 13071 "adc r22, r1 \n\t" 13072 "adc r23, r25 \n\t" 13073 "mul r11, r21 \n\t" 13074 "add r24, r0 \n\t" 13075 "adc r22, r1 \n\t" 13076 "adc r23, r25 \n\t" 13077 "mul r2, r20 \n\t" 13078 "add r24, r0 \n\t" 13079 "adc r22, r1 \n\t" 13080 "adc r23, r25 \n\t" 13081 "mul r3, r19 \n\t" 13082 "add r24, r0 \n\t" 13083 "adc r22, r1 \n\t" 13084 "adc r23, r25 \n\t" 13085 "ld r0, z \n\t" 13086 "add r24, r0 \n\t" 13087 "adc r22, r25 \n\t" 13088 "adc r23, r25 \n\t" 13089 "st z+, r24 \n\t" 13090 13091 "ld r19, y+ \n\t" 13092 "ldi r24, 0 \n\t" 13093 "mul r4, r19 \n\t" 13094 "add r22, r0 \n\t" 13095 "adc r23, r1 \n\t" 13096 "adc r24, r25 \n\t" 13097 "mul r5, r18 \n\t" 13098 "add r22, r0 \n\t" 13099 "adc r23, r1 \n\t" 13100 "adc r24, r25 \n\t" 13101 "mul r6, r17 \n\t" 13102 "add r22, r0 \n\t" 13103 "adc r23, r1 \n\t" 13104 "adc r24, r25 \n\t" 13105 "mul r7, r16 \n\t" 13106 "add r22, r0 \n\t" 13107 "adc r23, r1 \n\t" 13108 "adc r24, r25 \n\t" 13109 "mul r8, r15 \n\t" 13110 "add r22, r0 \n\t" 13111 "adc r23, r1 \n\t" 13112 "adc r24, r25 \n\t" 13113 "mul r9, r14 \n\t" 13114 "add r22, r0 \n\t" 13115 "adc r23, r1 \n\t" 13116 "adc r24, r25 \n\t" 13117 "mul r10, r13 \n\t" 13118 "add r22, r0 \n\t" 13119 "adc r23, r1 \n\t" 13120 "adc r24, r25 \n\t" 13121 "mul r11, r12 \n\t" 13122 "add r22, r0 \n\t" 13123 "adc r23, r1 \n\t" 13124 "adc r24, r25 \n\t" 13125 "mul r2, r21 \n\t" 13126 "add r22, r0 \n\t" 13127 "adc r23, r1 \n\t" 13128 "adc r24, r25 \n\t" 13129 "mul r3, r20 \n\t" 13130 "add r22, r0 \n\t" 13131 "adc r23, r1 \n\t" 13132 "adc r24, r25 \n\t" 13133 "ld r0, z \n\t" 13134 "add r22, r0 \n\t" 13135 "adc r23, r25 \n\t" 13136 "adc r24, r25 \n\t" 13137 "st z+, r22 \n\t" 13138 13139 "ld r20, y+ \n\t" 13140 "ldi r22, 0 \n\t" 13141 "mul r4, r20 \n\t" 13142 "add r23, r0 \n\t" 13143 "adc r24, r1 \n\t" 13144 "adc r22, r25 \n\t" 13145 "mul r5, r19 \n\t" 13146 "add r23, r0 \n\t" 13147 "adc r24, r1 \n\t" 13148 "adc r22, r25 \n\t" 13149 "mul r6, r18 \n\t" 13150 "add r23, r0 \n\t" 13151 "adc r24, r1 \n\t" 13152 "adc r22, r25 \n\t" 13153 "mul r7, r17 \n\t" 13154 "add r23, r0 \n\t" 13155 "adc r24, r1 \n\t" 13156 "adc r22, r25 \n\t" 13157 "mul r8, r16 \n\t" 13158 "add r23, r0 \n\t" 13159 "adc r24, r1 \n\t" 13160 "adc r22, r25 \n\t" 13161 "mul r9, r15 \n\t" 13162 "add r23, r0 \n\t" 13163 "adc r24, r1 \n\t" 13164 "adc r22, r25 \n\t" 13165 "mul r10, r14 \n\t" 13166 "add r23, r0 \n\t" 13167 "adc r24, r1 \n\t" 13168 "adc r22, r25 \n\t" 13169 "mul r11, r13 \n\t" 13170 "add r23, r0 \n\t" 13171 "adc r24, r1 \n\t" 13172 "adc r22, r25 \n\t" 13173 "mul r2, r12 \n\t" 13174 "add r23, r0 \n\t" 13175 "adc r24, r1 \n\t" 13176 "adc r22, r25 \n\t" 13177 "mul r3, r21 \n\t" 13178 "add r23, r0 \n\t" 13179 "adc r24, r1 \n\t" 13180 "adc r22, r25 \n\t" 13181 "ld r0, z \n\t" 13182 "add r23, r0 \n\t" 13183 "adc r24, r25 \n\t" 13184 "adc r22, r25 \n\t" 13185 "st z+, r23 \n\t" 13186 13187 "ld r21, y+ \n\t" 13188 "ldi r23, 0 \n\t" 13189 "mul r4, r21 \n\t" 13190 "add r24, r0 \n\t" 13191 "adc r22, r1 \n\t" 13192 "adc r23, r25 \n\t" 13193 "mul r5, r20 \n\t" 13194 "add r24, r0 \n\t" 13195 "adc r22, r1 \n\t" 13196 "adc r23, r25 \n\t" 13197 "mul r6, r19 \n\t" 13198 "add r24, r0 \n\t" 13199 "adc r22, r1 \n\t" 13200 "adc r23, r25 \n\t" 13201 "mul r7, r18 \n\t" 13202 "add r24, r0 \n\t" 13203 "adc r22, r1 \n\t" 13204 "adc r23, r25 \n\t" 13205 "mul r8, r17 \n\t" 13206 "add r24, r0 \n\t" 13207 "adc r22, r1 \n\t" 13208 "adc r23, r25 \n\t" 13209 "mul r9, r16 \n\t" 13210 "add r24, r0 \n\t" 13211 "adc r22, r1 \n\t" 13212 "adc r23, r25 \n\t" 13213 "mul r10, r15 \n\t" 13214 "add r24, r0 \n\t" 13215 "adc r22, r1 \n\t" 13216 "adc r23, r25 \n\t" 13217 "mul r11, r14 \n\t" 13218 "add r24, r0 \n\t" 13219 "adc r22, r1 \n\t" 13220 "adc r23, r25 \n\t" 13221 "mul r2, r13 \n\t" 13222 "add r24, r0 \n\t" 13223 "adc r22, r1 \n\t" 13224 "adc r23, r25 \n\t" 13225 "mul r3, r12 \n\t" 13226 "add r24, r0 \n\t" 13227 "adc r22, r1 \n\t" 13228 "adc r23, r25 \n\t" 13229 "ld r0, z \n\t" 13230 "add r24, r0 \n\t" 13231 "adc r22, r25 \n\t" 13232 "adc r23, r25 \n\t" 13233 "st z+, r24 \n\t" 13234 13235 "ld r12, y+ \n\t" 13236 "ldi r24, 0 \n\t" 13237 "mul r4, r12 \n\t" 13238 "add r22, r0 \n\t" 13239 "adc r23, r1 \n\t" 13240 "adc r24, r25 \n\t" 13241 "mul r5, r21 \n\t" 13242 "add r22, r0 \n\t" 13243 "adc r23, r1 \n\t" 13244 "adc r24, r25 \n\t" 13245 "mul r6, r20 \n\t" 13246 "add r22, r0 \n\t" 13247 "adc r23, r1 \n\t" 13248 "adc r24, r25 \n\t" 13249 "mul r7, r19 \n\t" 13250 "add r22, r0 \n\t" 13251 "adc r23, r1 \n\t" 13252 "adc r24, r25 \n\t" 13253 "mul r8, r18 \n\t" 13254 "add r22, r0 \n\t" 13255 "adc r23, r1 \n\t" 13256 "adc r24, r25 \n\t" 13257 "mul r9, r17 \n\t" 13258 "add r22, r0 \n\t" 13259 "adc r23, r1 \n\t" 13260 "adc r24, r25 \n\t" 13261 "mul r10, r16 \n\t" 13262 "add r22, r0 \n\t" 13263 "adc r23, r1 \n\t" 13264 "adc r24, r25 \n\t" 13265 "mul r11, r15 \n\t" 13266 "add r22, r0 \n\t" 13267 "adc r23, r1 \n\t" 13268 "adc r24, r25 \n\t" 13269 "mul r2, r14 \n\t" 13270 "add r22, r0 \n\t" 13271 "adc r23, r1 \n\t" 13272 "adc r24, r25 \n\t" 13273 "mul r3, r13 \n\t" 13274 "add r22, r0 \n\t" 13275 "adc r23, r1 \n\t" 13276 "adc r24, r25 \n\t" 13277 "ld r0, z \n\t" 13278 "add r22, r0 \n\t" 13279 "adc r23, r25 \n\t" 13280 "adc r24, r25 \n\t" 13281 "st z+, r22 \n\t" 13282 13283 "ld r13, y+ \n\t" 13284 "ldi r22, 0 \n\t" 13285 "mul r4, r13 \n\t" 13286 "add r23, r0 \n\t" 13287 "adc r24, r1 \n\t" 13288 "adc r22, r25 \n\t" 13289 "mul r5, r12 \n\t" 13290 "add r23, r0 \n\t" 13291 "adc r24, r1 \n\t" 13292 "adc r22, r25 \n\t" 13293 "mul r6, r21 \n\t" 13294 "add r23, r0 \n\t" 13295 "adc r24, r1 \n\t" 13296 "adc r22, r25 \n\t" 13297 "mul r7, r20 \n\t" 13298 "add r23, r0 \n\t" 13299 "adc r24, r1 \n\t" 13300 "adc r22, r25 \n\t" 13301 "mul r8, r19 \n\t" 13302 "add r23, r0 \n\t" 13303 "adc r24, r1 \n\t" 13304 "adc r22, r25 \n\t" 13305 "mul r9, r18 \n\t" 13306 "add r23, r0 \n\t" 13307 "adc r24, r1 \n\t" 13308 "adc r22, r25 \n\t" 13309 "mul r10, r17 \n\t" 13310 "add r23, r0 \n\t" 13311 "adc r24, r1 \n\t" 13312 "adc r22, r25 \n\t" 13313 "mul r11, r16 \n\t" 13314 "add r23, r0 \n\t" 13315 "adc r24, r1 \n\t" 13316 "adc r22, r25 \n\t" 13317 "mul r2, r15 \n\t" 13318 "add r23, r0 \n\t" 13319 "adc r24, r1 \n\t" 13320 "adc r22, r25 \n\t" 13321 "mul r3, r14 \n\t" 13322 "add r23, r0 \n\t" 13323 "adc r24, r1 \n\t" 13324 "adc r22, r25 \n\t" 13325 "ld r0, z \n\t" 13326 "add r23, r0 \n\t" 13327 "adc r24, r25 \n\t" 13328 "adc r22, r25 \n\t" 13329 "st z+, r23 \n\t" 13330 13331 "ldi r23, 0 \n\t" 13332 "mul r5, r13 \n\t" 13333 "add r24, r0 \n\t" 13334 "adc r22, r1 \n\t" 13335 "adc r23, r25 \n\t" 13336 "mul r6, r12 \n\t" 13337 "add r24, r0 \n\t" 13338 "adc r22, r1 \n\t" 13339 "adc r23, r25 \n\t" 13340 "mul r7, r21 \n\t" 13341 "add r24, r0 \n\t" 13342 "adc r22, r1 \n\t" 13343 "adc r23, r25 \n\t" 13344 "mul r8, r20 \n\t" 13345 "add r24, r0 \n\t" 13346 "adc r22, r1 \n\t" 13347 "adc r23, r25 \n\t" 13348 "mul r9, r19 \n\t" 13349 "add r24, r0 \n\t" 13350 "adc r22, r1 \n\t" 13351 "adc r23, r25 \n\t" 13352 "mul r10, r18 \n\t" 13353 "add r24, r0 \n\t" 13354 "adc r22, r1 \n\t" 13355 "adc r23, r25 \n\t" 13356 "mul r11, r17 \n\t" 13357 "add r24, r0 \n\t" 13358 "adc r22, r1 \n\t" 13359 "adc r23, r25 \n\t" 13360 "mul r2, r16 \n\t" 13361 "add r24, r0 \n\t" 13362 "adc r22, r1 \n\t" 13363 "adc r23, r25 \n\t" 13364 "mul r3, r15 \n\t" 13365 "add r24, r0 \n\t" 13366 "adc r22, r1 \n\t" 13367 "adc r23, r25 \n\t" 13368 "st z+, r24 \n\t" 13369 13370 "ldi r24, 0 \n\t" 13371 "mul r6, r13 \n\t" 13372 "add r22, r0 \n\t" 13373 "adc r23, r1 \n\t" 13374 "adc r24, r25 \n\t" 13375 "mul r7, r12 \n\t" 13376 "add r22, r0 \n\t" 13377 "adc r23, r1 \n\t" 13378 "adc r24, r25 \n\t" 13379 "mul r8, r21 \n\t" 13380 "add r22, r0 \n\t" 13381 "adc r23, r1 \n\t" 13382 "adc r24, r25 \n\t" 13383 "mul r9, r20 \n\t" 13384 "add r22, r0 \n\t" 13385 "adc r23, r1 \n\t" 13386 "adc r24, r25 \n\t" 13387 "mul r10, r19 \n\t" 13388 "add r22, r0 \n\t" 13389 "adc r23, r1 \n\t" 13390 "adc r24, r25 \n\t" 13391 "mul r11, r18 \n\t" 13392 "add r22, r0 \n\t" 13393 "adc r23, r1 \n\t" 13394 "adc r24, r25 \n\t" 13395 "mul r2, r17 \n\t" 13396 "add r22, r0 \n\t" 13397 "adc r23, r1 \n\t" 13398 "adc r24, r25 \n\t" 13399 "mul r3, r16 \n\t" 13400 "add r22, r0 \n\t" 13401 "adc r23, r1 \n\t" 13402 "adc r24, r25 \n\t" 13403 "st z+, r22 \n\t" 13404 13405 "ldi r22, 0 \n\t" 13406 "mul r7, r13 \n\t" 13407 "add r23, r0 \n\t" 13408 "adc r24, r1 \n\t" 13409 "adc r22, r25 \n\t" 13410 "mul r8, r12 \n\t" 13411 "add r23, r0 \n\t" 13412 "adc r24, r1 \n\t" 13413 "adc r22, r25 \n\t" 13414 "mul r9, r21 \n\t" 13415 "add r23, r0 \n\t" 13416 "adc r24, r1 \n\t" 13417 "adc r22, r25 \n\t" 13418 "mul r10, r20 \n\t" 13419 "add r23, r0 \n\t" 13420 "adc r24, r1 \n\t" 13421 "adc r22, r25 \n\t" 13422 "mul r11, r19 \n\t" 13423 "add r23, r0 \n\t" 13424 "adc r24, r1 \n\t" 13425 "adc r22, r25 \n\t" 13426 "mul r2, r18 \n\t" 13427 "add r23, r0 \n\t" 13428 "adc r24, r1 \n\t" 13429 "adc r22, r25 \n\t" 13430 "mul r3, r17 \n\t" 13431 "add r23, r0 \n\t" 13432 "adc r24, r1 \n\t" 13433 "adc r22, r25 \n\t" 13434 "st z+, r23 \n\t" 13435 13436 "ldi r23, 0 \n\t" 13437 "mul r8, r13 \n\t" 13438 "add r24, r0 \n\t" 13439 "adc r22, r1 \n\t" 13440 "adc r23, r25 \n\t" 13441 "mul r9, r12 \n\t" 13442 "add r24, r0 \n\t" 13443 "adc r22, r1 \n\t" 13444 "adc r23, r25 \n\t" 13445 "mul r10, r21 \n\t" 13446 "add r24, r0 \n\t" 13447 "adc r22, r1 \n\t" 13448 "adc r23, r25 \n\t" 13449 "mul r11, r20 \n\t" 13450 "add r24, r0 \n\t" 13451 "adc r22, r1 \n\t" 13452 "adc r23, r25 \n\t" 13453 "mul r2, r19 \n\t" 13454 "add r24, r0 \n\t" 13455 "adc r22, r1 \n\t" 13456 "adc r23, r25 \n\t" 13457 "mul r3, r18 \n\t" 13458 "add r24, r0 \n\t" 13459 "adc r22, r1 \n\t" 13460 "adc r23, r25 \n\t" 13461 "st z+, r24 \n\t" 13462 13463 "ldi r24, 0 \n\t" 13464 "mul r9, r13 \n\t" 13465 "add r22, r0 \n\t" 13466 "adc r23, r1 \n\t" 13467 "adc r24, r25 \n\t" 13468 "mul r10, r12 \n\t" 13469 "add r22, r0 \n\t" 13470 "adc r23, r1 \n\t" 13471 "adc r24, r25 \n\t" 13472 "mul r11, r21 \n\t" 13473 "add r22, r0 \n\t" 13474 "adc r23, r1 \n\t" 13475 "adc r24, r25 \n\t" 13476 "mul r2, r20 \n\t" 13477 "add r22, r0 \n\t" 13478 "adc r23, r1 \n\t" 13479 "adc r24, r25 \n\t" 13480 "mul r3, r19 \n\t" 13481 "add r22, r0 \n\t" 13482 "adc r23, r1 \n\t" 13483 "adc r24, r25 \n\t" 13484 "st z+, r22 \n\t" 13485 13486 "ldi r22, 0 \n\t" 13487 "mul r10, r13 \n\t" 13488 "add r23, r0 \n\t" 13489 "adc r24, r1 \n\t" 13490 "adc r22, r25 \n\t" 13491 "mul r11, r12 \n\t" 13492 "add r23, r0 \n\t" 13493 "adc r24, r1 \n\t" 13494 "adc r22, r25 \n\t" 13495 "mul r2, r21 \n\t" 13496 "add r23, r0 \n\t" 13497 "adc r24, r1 \n\t" 13498 "adc r22, r25 \n\t" 13499 "mul r3, r20 \n\t" 13500 "add r23, r0 \n\t" 13501 "adc r24, r1 \n\t" 13502 "adc r22, r25 \n\t" 13503 "st z+, r23 \n\t" 13504 13505 "ldi r23, 0 \n\t" 13506 "mul r11, r13 \n\t" 13507 "add r24, r0 \n\t" 13508 "adc r22, r1 \n\t" 13509 "adc r23, r25 \n\t" 13510 "mul r2, r12 \n\t" 13511 "add r24, r0 \n\t" 13512 "adc r22, r1 \n\t" 13513 "adc r23, r25 \n\t" 13514 "mul r3, r21 \n\t" 13515 "add r24, r0 \n\t" 13516 "adc r22, r1 \n\t" 13517 "adc r23, r25 \n\t" 13518 "st z+, r24 \n\t" 13519 13520 "ldi r24, 0 \n\t" 13521 "mul r2, r13 \n\t" 13522 "add r22, r0 \n\t" 13523 "adc r23, r1 \n\t" 13524 "adc r24, r25 \n\t" 13525 "mul r3, r12 \n\t" 13526 "add r22, r0 \n\t" 13527 "adc r23, r1 \n\t" 13528 "adc r24, r25 \n\t" 13529 "st z+, r22 \n\t" 13530 13531 "mul r3, r13 \n\t" 13532 "add r23, r0 \n\t" 13533 "adc r24, r1 \n\t" 13534 "st z+, r23 \n\t" 13535 "st z+, r24 \n\t" 13536 13537 "eor r1, r1 \n\t" 13538 : "+x" (left), "+y" (right), "+z" (result) 13539 : 13540 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 13541 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 13542 "r21", "r22", "r23", "r24", "r25", "cc", "memory" 13543 ); 13544} 13545#define asm_mult 1 13546#endif /* uECC_BYTES == 32 */ 13547 13548#if uECC_SQUARE_FUNC 13549 13550#if (uECC_BYTES == 20) 13551// Inlining is allowed because y (r28, r29) is not used. 13552static void vli_square(uint8_t *result, const uint8_t *left) { 13553 __asm__ volatile ( 13554 "ld r2, x+ \n\t" 13555 "ld r3, x+ \n\t" 13556 "ld r4, x+ \n\t" 13557 "ld r5, x+ \n\t" 13558 "ld r6, x+ \n\t" 13559 "ld r7, x+ \n\t" 13560 "ld r8, x+ \n\t" 13561 "ld r9, x+ \n\t" 13562 "ld r10, x+ \n\t" 13563 "ld r11, x+ \n\t" 13564 "ld r12, x+ \n\t" 13565 "ld r13, x+ \n\t" 13566 "ld r14, x+ \n\t" 13567 "ld r15, x+ \n\t" 13568 "ld r16, x+ \n\t" 13569 "ld r17, x+ \n\t" 13570 "ld r18, x+ \n\t" 13571 "ld r19, x+ \n\t" 13572 "ld r20, x+ \n\t" 13573 "ld r21, x+ \n\t" 13574 "ldi r27, 0 \n\t" 13575 13576 "ldi r23, 0 \n\t" 13577 "mul r2, r2 \n\t" 13578 "st z+, r0 \n\t" 13579 "mov r22, r1 \n\t" 13580 13581 "ldi r24, 0 \n\t" 13582 "mul r2, r3 \n\t" 13583 "lsl r0 \n\t" 13584 "rol r1 \n\t" 13585 "adc r24, r27 \n\t" 13586 "add r22, r0 \n\t" 13587 "adc r23, r1 \n\t" 13588 "adc r24, r27 \n\t" 13589 "st z+, r22 \n\t" 13590 13591 "ldi r22, 0 \n\t" 13592 "mul r2, r4 \n\t" 13593 "lsl r0 \n\t" 13594 "rol r1 \n\t" 13595 "adc r22, r27 \n\t" 13596 "add r23, r0 \n\t" 13597 "adc r24, r1 \n\t" 13598 "adc r22, r27 \n\t" 13599 "mul r3, r3 \n\t" 13600 "add r23, r0 \n\t" 13601 "adc r24, r1 \n\t" 13602 "adc r22, r27 \n\t" 13603 "st z+, r23 \n\t" 13604 13605 "ldi r26, 0 \n\t" 13606 "mul r2, r5 \n\t" 13607 "mov r23, r0 \n\t" 13608 "mov r25, r1 \n\t" 13609 "mul r3, r4 \n\t" 13610 "add r23, r0 \n\t" 13611 "adc r25, r1 \n\t" 13612 "adc r26, r27 \n\t" 13613 "lsl r23 \n\t" 13614 "rol r25 \n\t" 13615 "rol r26 \n\t" 13616 "add r23, r24 \n\t" 13617 "adc r25, r22 \n\t" 13618 "adc r26, r27 \n\t" 13619 "st z+, r23 \n\t" 13620 13621 "ldi r22, 0 \n\t" 13622 "mul r2, r6 \n\t" 13623 "mov r23, r0 \n\t" 13624 "mov r24, r1 \n\t" 13625 "mul r3, r5 \n\t" 13626 "add r23, r0 \n\t" 13627 "adc r24, r1 \n\t" 13628 "adc r22, r27 \n\t" 13629 "lsl r23 \n\t" 13630 "rol r24 \n\t" 13631 "rol r22 \n\t" 13632 "mul r4, r4 \n\t" 13633 "add r23, r0 \n\t" 13634 "adc r24, r1 \n\t" 13635 "adc r22, r27 \n\t" 13636 "add r23, r25 \n\t" 13637 "adc r24, r26 \n\t" 13638 "adc r22, r27 \n\t" 13639 "st z+, r23 \n\t" 13640 13641 "ldi r26, 0 \n\t" 13642 "mul r2, r7 \n\t" 13643 "mov r23, r0 \n\t" 13644 "mov r25, r1 \n\t" 13645 "mul r3, r6 \n\t" 13646 "add r23, r0 \n\t" 13647 "adc r25, r1 \n\t" 13648 "adc r26, r27 \n\t" 13649 "mul r4, r5 \n\t" 13650 "add r23, r0 \n\t" 13651 "adc r25, r1 \n\t" 13652 "adc r26, r27 \n\t" 13653 "lsl r23 \n\t" 13654 "rol r25 \n\t" 13655 "rol r26 \n\t" 13656 "add r23, r24 \n\t" 13657 "adc r25, r22 \n\t" 13658 "adc r26, r27 \n\t" 13659 "st z+, r23 \n\t" 13660 13661 "ldi r22, 0 \n\t" 13662 "mul r2, r8 \n\t" 13663 "mov r23, r0 \n\t" 13664 "mov r24, r1 \n\t" 13665 "mul r3, r7 \n\t" 13666 "add r23, r0 \n\t" 13667 "adc r24, r1 \n\t" 13668 "adc r22, r27 \n\t" 13669 "mul r4, r6 \n\t" 13670 "add r23, r0 \n\t" 13671 "adc r24, r1 \n\t" 13672 "adc r22, r27 \n\t" 13673 "lsl r23 \n\t" 13674 "rol r24 \n\t" 13675 "rol r22 \n\t" 13676 "mul r5, r5 \n\t" 13677 "add r23, r0 \n\t" 13678 "adc r24, r1 \n\t" 13679 "adc r22, r27 \n\t" 13680 "add r23, r25 \n\t" 13681 "adc r24, r26 \n\t" 13682 "adc r22, r27 \n\t" 13683 "st z+, r23 \n\t" 13684 13685 "ldi r26, 0 \n\t" 13686 "mul r2, r9 \n\t" 13687 "mov r23, r0 \n\t" 13688 "mov r25, r1 \n\t" 13689 "mul r3, r8 \n\t" 13690 "add r23, r0 \n\t" 13691 "adc r25, r1 \n\t" 13692 "adc r26, r27 \n\t" 13693 "mul r4, r7 \n\t" 13694 "add r23, r0 \n\t" 13695 "adc r25, r1 \n\t" 13696 "adc r26, r27 \n\t" 13697 "mul r5, r6 \n\t" 13698 "add r23, r0 \n\t" 13699 "adc r25, r1 \n\t" 13700 "adc r26, r27 \n\t" 13701 "lsl r23 \n\t" 13702 "rol r25 \n\t" 13703 "rol r26 \n\t" 13704 "add r23, r24 \n\t" 13705 "adc r25, r22 \n\t" 13706 "adc r26, r27 \n\t" 13707 "st z+, r23 \n\t" 13708 13709 "ldi r22, 0 \n\t" 13710 "mul r2, r10 \n\t" 13711 "mov r23, r0 \n\t" 13712 "mov r24, r1 \n\t" 13713 "mul r3, r9 \n\t" 13714 "add r23, r0 \n\t" 13715 "adc r24, r1 \n\t" 13716 "adc r22, r27 \n\t" 13717 "mul r4, r8 \n\t" 13718 "add r23, r0 \n\t" 13719 "adc r24, r1 \n\t" 13720 "adc r22, r27 \n\t" 13721 "mul r5, r7 \n\t" 13722 "add r23, r0 \n\t" 13723 "adc r24, r1 \n\t" 13724 "adc r22, r27 \n\t" 13725 "lsl r23 \n\t" 13726 "rol r24 \n\t" 13727 "rol r22 \n\t" 13728 "mul r6, r6 \n\t" 13729 "add r23, r0 \n\t" 13730 "adc r24, r1 \n\t" 13731 "adc r22, r27 \n\t" 13732 "add r23, r25 \n\t" 13733 "adc r24, r26 \n\t" 13734 "adc r22, r27 \n\t" 13735 "st z+, r23 \n\t" 13736 13737 "ldi r26, 0 \n\t" 13738 "mul r2, r11 \n\t" 13739 "mov r23, r0 \n\t" 13740 "mov r25, r1 \n\t" 13741 "mul r3, r10 \n\t" 13742 "add r23, r0 \n\t" 13743 "adc r25, r1 \n\t" 13744 "adc r26, r27 \n\t" 13745 "mul r4, r9 \n\t" 13746 "add r23, r0 \n\t" 13747 "adc r25, r1 \n\t" 13748 "adc r26, r27 \n\t" 13749 "mul r5, r8 \n\t" 13750 "add r23, r0 \n\t" 13751 "adc r25, r1 \n\t" 13752 "adc r26, r27 \n\t" 13753 "mul r6, r7 \n\t" 13754 "add r23, r0 \n\t" 13755 "adc r25, r1 \n\t" 13756 "adc r26, r27 \n\t" 13757 "lsl r23 \n\t" 13758 "rol r25 \n\t" 13759 "rol r26 \n\t" 13760 "add r23, r24 \n\t" 13761 "adc r25, r22 \n\t" 13762 "adc r26, r27 \n\t" 13763 "st z+, r23 \n\t" 13764 13765 "ldi r22, 0 \n\t" 13766 "mul r2, r12 \n\t" 13767 "mov r23, r0 \n\t" 13768 "mov r24, r1 \n\t" 13769 "mul r3, r11 \n\t" 13770 "add r23, r0 \n\t" 13771 "adc r24, r1 \n\t" 13772 "adc r22, r27 \n\t" 13773 "mul r4, r10 \n\t" 13774 "add r23, r0 \n\t" 13775 "adc r24, r1 \n\t" 13776 "adc r22, r27 \n\t" 13777 "mul r5, r9 \n\t" 13778 "add r23, r0 \n\t" 13779 "adc r24, r1 \n\t" 13780 "adc r22, r27 \n\t" 13781 "mul r6, r8 \n\t" 13782 "add r23, r0 \n\t" 13783 "adc r24, r1 \n\t" 13784 "adc r22, r27 \n\t" 13785 "lsl r23 \n\t" 13786 "rol r24 \n\t" 13787 "rol r22 \n\t" 13788 "mul r7, r7 \n\t" 13789 "add r23, r0 \n\t" 13790 "adc r24, r1 \n\t" 13791 "adc r22, r27 \n\t" 13792 "add r23, r25 \n\t" 13793 "adc r24, r26 \n\t" 13794 "adc r22, r27 \n\t" 13795 "st z+, r23 \n\t" 13796 13797 "ldi r26, 0 \n\t" 13798 "mul r2, r13 \n\t" 13799 "mov r23, r0 \n\t" 13800 "mov r25, r1 \n\t" 13801 "mul r3, r12 \n\t" 13802 "add r23, r0 \n\t" 13803 "adc r25, r1 \n\t" 13804 "adc r26, r27 \n\t" 13805 "mul r4, r11 \n\t" 13806 "add r23, r0 \n\t" 13807 "adc r25, r1 \n\t" 13808 "adc r26, r27 \n\t" 13809 "mul r5, r10 \n\t" 13810 "add r23, r0 \n\t" 13811 "adc r25, r1 \n\t" 13812 "adc r26, r27 \n\t" 13813 "mul r6, r9 \n\t" 13814 "add r23, r0 \n\t" 13815 "adc r25, r1 \n\t" 13816 "adc r26, r27 \n\t" 13817 "mul r7, r8 \n\t" 13818 "add r23, r0 \n\t" 13819 "adc r25, r1 \n\t" 13820 "adc r26, r27 \n\t" 13821 "lsl r23 \n\t" 13822 "rol r25 \n\t" 13823 "rol r26 \n\t" 13824 "add r23, r24 \n\t" 13825 "adc r25, r22 \n\t" 13826 "adc r26, r27 \n\t" 13827 "st z+, r23 \n\t" 13828 13829 "ldi r22, 0 \n\t" 13830 "mul r2, r14 \n\t" 13831 "mov r23, r0 \n\t" 13832 "mov r24, r1 \n\t" 13833 "mul r3, r13 \n\t" 13834 "add r23, r0 \n\t" 13835 "adc r24, r1 \n\t" 13836 "adc r22, r27 \n\t" 13837 "mul r4, r12 \n\t" 13838 "add r23, r0 \n\t" 13839 "adc r24, r1 \n\t" 13840 "adc r22, r27 \n\t" 13841 "mul r5, r11 \n\t" 13842 "add r23, r0 \n\t" 13843 "adc r24, r1 \n\t" 13844 "adc r22, r27 \n\t" 13845 "mul r6, r10 \n\t" 13846 "add r23, r0 \n\t" 13847 "adc r24, r1 \n\t" 13848 "adc r22, r27 \n\t" 13849 "mul r7, r9 \n\t" 13850 "add r23, r0 \n\t" 13851 "adc r24, r1 \n\t" 13852 "adc r22, r27 \n\t" 13853 "lsl r23 \n\t" 13854 "rol r24 \n\t" 13855 "rol r22 \n\t" 13856 "mul r8, r8 \n\t" 13857 "add r23, r0 \n\t" 13858 "adc r24, r1 \n\t" 13859 "adc r22, r27 \n\t" 13860 "add r23, r25 \n\t" 13861 "adc r24, r26 \n\t" 13862 "adc r22, r27 \n\t" 13863 "st z+, r23 \n\t" 13864 13865 "ldi r26, 0 \n\t" 13866 "mul r2, r15 \n\t" 13867 "mov r23, r0 \n\t" 13868 "mov r25, r1 \n\t" 13869 "mul r3, r14 \n\t" 13870 "add r23, r0 \n\t" 13871 "adc r25, r1 \n\t" 13872 "adc r26, r27 \n\t" 13873 "mul r4, r13 \n\t" 13874 "add r23, r0 \n\t" 13875 "adc r25, r1 \n\t" 13876 "adc r26, r27 \n\t" 13877 "mul r5, r12 \n\t" 13878 "add r23, r0 \n\t" 13879 "adc r25, r1 \n\t" 13880 "adc r26, r27 \n\t" 13881 "mul r6, r11 \n\t" 13882 "add r23, r0 \n\t" 13883 "adc r25, r1 \n\t" 13884 "adc r26, r27 \n\t" 13885 "mul r7, r10 \n\t" 13886 "add r23, r0 \n\t" 13887 "adc r25, r1 \n\t" 13888 "adc r26, r27 \n\t" 13889 "mul r8, r9 \n\t" 13890 "add r23, r0 \n\t" 13891 "adc r25, r1 \n\t" 13892 "adc r26, r27 \n\t" 13893 "lsl r23 \n\t" 13894 "rol r25 \n\t" 13895 "rol r26 \n\t" 13896 "add r23, r24 \n\t" 13897 "adc r25, r22 \n\t" 13898 "adc r26, r27 \n\t" 13899 "st z+, r23 \n\t" 13900 13901 "ldi r22, 0 \n\t" 13902 "mul r2, r16 \n\t" 13903 "mov r23, r0 \n\t" 13904 "mov r24, r1 \n\t" 13905 "mul r3, r15 \n\t" 13906 "add r23, r0 \n\t" 13907 "adc r24, r1 \n\t" 13908 "adc r22, r27 \n\t" 13909 "mul r4, r14 \n\t" 13910 "add r23, r0 \n\t" 13911 "adc r24, r1 \n\t" 13912 "adc r22, r27 \n\t" 13913 "mul r5, r13 \n\t" 13914 "add r23, r0 \n\t" 13915 "adc r24, r1 \n\t" 13916 "adc r22, r27 \n\t" 13917 "mul r6, r12 \n\t" 13918 "add r23, r0 \n\t" 13919 "adc r24, r1 \n\t" 13920 "adc r22, r27 \n\t" 13921 "mul r7, r11 \n\t" 13922 "add r23, r0 \n\t" 13923 "adc r24, r1 \n\t" 13924 "adc r22, r27 \n\t" 13925 "mul r8, r10 \n\t" 13926 "add r23, r0 \n\t" 13927 "adc r24, r1 \n\t" 13928 "adc r22, r27 \n\t" 13929 "lsl r23 \n\t" 13930 "rol r24 \n\t" 13931 "rol r22 \n\t" 13932 "mul r9, r9 \n\t" 13933 "add r23, r0 \n\t" 13934 "adc r24, r1 \n\t" 13935 "adc r22, r27 \n\t" 13936 "add r23, r25 \n\t" 13937 "adc r24, r26 \n\t" 13938 "adc r22, r27 \n\t" 13939 "st z+, r23 \n\t" 13940 13941 "ldi r26, 0 \n\t" 13942 "mul r2, r17 \n\t" 13943 "mov r23, r0 \n\t" 13944 "mov r25, r1 \n\t" 13945 "mul r3, r16 \n\t" 13946 "add r23, r0 \n\t" 13947 "adc r25, r1 \n\t" 13948 "adc r26, r27 \n\t" 13949 "mul r4, r15 \n\t" 13950 "add r23, r0 \n\t" 13951 "adc r25, r1 \n\t" 13952 "adc r26, r27 \n\t" 13953 "mul r5, r14 \n\t" 13954 "add r23, r0 \n\t" 13955 "adc r25, r1 \n\t" 13956 "adc r26, r27 \n\t" 13957 "mul r6, r13 \n\t" 13958 "add r23, r0 \n\t" 13959 "adc r25, r1 \n\t" 13960 "adc r26, r27 \n\t" 13961 "mul r7, r12 \n\t" 13962 "add r23, r0 \n\t" 13963 "adc r25, r1 \n\t" 13964 "adc r26, r27 \n\t" 13965 "mul r8, r11 \n\t" 13966 "add r23, r0 \n\t" 13967 "adc r25, r1 \n\t" 13968 "adc r26, r27 \n\t" 13969 "mul r9, r10 \n\t" 13970 "add r23, r0 \n\t" 13971 "adc r25, r1 \n\t" 13972 "adc r26, r27 \n\t" 13973 "lsl r23 \n\t" 13974 "rol r25 \n\t" 13975 "rol r26 \n\t" 13976 "add r23, r24 \n\t" 13977 "adc r25, r22 \n\t" 13978 "adc r26, r27 \n\t" 13979 "st z+, r23 \n\t" 13980 13981 "ldi r22, 0 \n\t" 13982 "mul r2, r18 \n\t" 13983 "mov r23, r0 \n\t" 13984 "mov r24, r1 \n\t" 13985 "mul r3, r17 \n\t" 13986 "add r23, r0 \n\t" 13987 "adc r24, r1 \n\t" 13988 "adc r22, r27 \n\t" 13989 "mul r4, r16 \n\t" 13990 "add r23, r0 \n\t" 13991 "adc r24, r1 \n\t" 13992 "adc r22, r27 \n\t" 13993 "mul r5, r15 \n\t" 13994 "add r23, r0 \n\t" 13995 "adc r24, r1 \n\t" 13996 "adc r22, r27 \n\t" 13997 "mul r6, r14 \n\t" 13998 "add r23, r0 \n\t" 13999 "adc r24, r1 \n\t" 14000 "adc r22, r27 \n\t" 14001 "mul r7, r13 \n\t" 14002 "add r23, r0 \n\t" 14003 "adc r24, r1 \n\t" 14004 "adc r22, r27 \n\t" 14005 "mul r8, r12 \n\t" 14006 "add r23, r0 \n\t" 14007 "adc r24, r1 \n\t" 14008 "adc r22, r27 \n\t" 14009 "mul r9, r11 \n\t" 14010 "add r23, r0 \n\t" 14011 "adc r24, r1 \n\t" 14012 "adc r22, r27 \n\t" 14013 "lsl r23 \n\t" 14014 "rol r24 \n\t" 14015 "rol r22 \n\t" 14016 "mul r10, r10 \n\t" 14017 "add r23, r0 \n\t" 14018 "adc r24, r1 \n\t" 14019 "adc r22, r27 \n\t" 14020 "add r23, r25 \n\t" 14021 "adc r24, r26 \n\t" 14022 "adc r22, r27 \n\t" 14023 "st z+, r23 \n\t" 14024 14025 "ldi r26, 0 \n\t" 14026 "mul r2, r19 \n\t" 14027 "mov r23, r0 \n\t" 14028 "mov r25, r1 \n\t" 14029 "mul r3, r18 \n\t" 14030 "add r23, r0 \n\t" 14031 "adc r25, r1 \n\t" 14032 "adc r26, r27 \n\t" 14033 "mul r4, r17 \n\t" 14034 "add r23, r0 \n\t" 14035 "adc r25, r1 \n\t" 14036 "adc r26, r27 \n\t" 14037 "mul r5, r16 \n\t" 14038 "add r23, r0 \n\t" 14039 "adc r25, r1 \n\t" 14040 "adc r26, r27 \n\t" 14041 "mul r6, r15 \n\t" 14042 "add r23, r0 \n\t" 14043 "adc r25, r1 \n\t" 14044 "adc r26, r27 \n\t" 14045 "mul r7, r14 \n\t" 14046 "add r23, r0 \n\t" 14047 "adc r25, r1 \n\t" 14048 "adc r26, r27 \n\t" 14049 "mul r8, r13 \n\t" 14050 "add r23, r0 \n\t" 14051 "adc r25, r1 \n\t" 14052 "adc r26, r27 \n\t" 14053 "mul r9, r12 \n\t" 14054 "add r23, r0 \n\t" 14055 "adc r25, r1 \n\t" 14056 "adc r26, r27 \n\t" 14057 "mul r10, r11 \n\t" 14058 "add r23, r0 \n\t" 14059 "adc r25, r1 \n\t" 14060 "adc r26, r27 \n\t" 14061 "lsl r23 \n\t" 14062 "rol r25 \n\t" 14063 "rol r26 \n\t" 14064 "add r23, r24 \n\t" 14065 "adc r25, r22 \n\t" 14066 "adc r26, r27 \n\t" 14067 "st z+, r23 \n\t" 14068 14069 "ldi r22, 0 \n\t" 14070 "mul r2, r20 \n\t" 14071 "mov r23, r0 \n\t" 14072 "mov r24, r1 \n\t" 14073 "mul r3, r19 \n\t" 14074 "add r23, r0 \n\t" 14075 "adc r24, r1 \n\t" 14076 "adc r22, r27 \n\t" 14077 "mul r4, r18 \n\t" 14078 "add r23, r0 \n\t" 14079 "adc r24, r1 \n\t" 14080 "adc r22, r27 \n\t" 14081 "mul r5, r17 \n\t" 14082 "add r23, r0 \n\t" 14083 "adc r24, r1 \n\t" 14084 "adc r22, r27 \n\t" 14085 "mul r6, r16 \n\t" 14086 "add r23, r0 \n\t" 14087 "adc r24, r1 \n\t" 14088 "adc r22, r27 \n\t" 14089 "mul r7, r15 \n\t" 14090 "add r23, r0 \n\t" 14091 "adc r24, r1 \n\t" 14092 "adc r22, r27 \n\t" 14093 "mul r8, r14 \n\t" 14094 "add r23, r0 \n\t" 14095 "adc r24, r1 \n\t" 14096 "adc r22, r27 \n\t" 14097 "mul r9, r13 \n\t" 14098 "add r23, r0 \n\t" 14099 "adc r24, r1 \n\t" 14100 "adc r22, r27 \n\t" 14101 "mul r10, r12 \n\t" 14102 "add r23, r0 \n\t" 14103 "adc r24, r1 \n\t" 14104 "adc r22, r27 \n\t" 14105 "lsl r23 \n\t" 14106 "rol r24 \n\t" 14107 "rol r22 \n\t" 14108 "mul r11, r11 \n\t" 14109 "add r23, r0 \n\t" 14110 "adc r24, r1 \n\t" 14111 "adc r22, r27 \n\t" 14112 "add r23, r25 \n\t" 14113 "adc r24, r26 \n\t" 14114 "adc r22, r27 \n\t" 14115 "st z+, r23 \n\t" 14116 14117 "ldi r26, 0 \n\t" 14118 "mul r2, r21 \n\t" 14119 "mov r23, r0 \n\t" 14120 "mov r25, r1 \n\t" 14121 "mul r3, r20 \n\t" 14122 "add r23, r0 \n\t" 14123 "adc r25, r1 \n\t" 14124 "adc r26, r27 \n\t" 14125 "mul r4, r19 \n\t" 14126 "add r23, r0 \n\t" 14127 "adc r25, r1 \n\t" 14128 "adc r26, r27 \n\t" 14129 "mul r5, r18 \n\t" 14130 "add r23, r0 \n\t" 14131 "adc r25, r1 \n\t" 14132 "adc r26, r27 \n\t" 14133 "mul r6, r17 \n\t" 14134 "add r23, r0 \n\t" 14135 "adc r25, r1 \n\t" 14136 "adc r26, r27 \n\t" 14137 "mul r7, r16 \n\t" 14138 "add r23, r0 \n\t" 14139 "adc r25, r1 \n\t" 14140 "adc r26, r27 \n\t" 14141 "mul r8, r15 \n\t" 14142 "add r23, r0 \n\t" 14143 "adc r25, r1 \n\t" 14144 "adc r26, r27 \n\t" 14145 "mul r9, r14 \n\t" 14146 "add r23, r0 \n\t" 14147 "adc r25, r1 \n\t" 14148 "adc r26, r27 \n\t" 14149 "mul r10, r13 \n\t" 14150 "add r23, r0 \n\t" 14151 "adc r25, r1 \n\t" 14152 "adc r26, r27 \n\t" 14153 "mul r11, r12 \n\t" 14154 "add r23, r0 \n\t" 14155 "adc r25, r1 \n\t" 14156 "adc r26, r27 \n\t" 14157 "lsl r23 \n\t" 14158 "rol r25 \n\t" 14159 "rol r26 \n\t" 14160 "add r23, r24 \n\t" 14161 "adc r25, r22 \n\t" 14162 "adc r26, r27 \n\t" 14163 "st z+, r23 \n\t" 14164 14165 "ldi r22, 0 \n\t" 14166 "mul r3, r21 \n\t" 14167 "mov r23, r0 \n\t" 14168 "mov r24, r1 \n\t" 14169 "mul r4, r20 \n\t" 14170 "add r23, r0 \n\t" 14171 "adc r24, r1 \n\t" 14172 "adc r22, r27 \n\t" 14173 "mul r5, r19 \n\t" 14174 "add r23, r0 \n\t" 14175 "adc r24, r1 \n\t" 14176 "adc r22, r27 \n\t" 14177 "mul r6, r18 \n\t" 14178 "add r23, r0 \n\t" 14179 "adc r24, r1 \n\t" 14180 "adc r22, r27 \n\t" 14181 "mul r7, r17 \n\t" 14182 "add r23, r0 \n\t" 14183 "adc r24, r1 \n\t" 14184 "adc r22, r27 \n\t" 14185 "mul r8, r16 \n\t" 14186 "add r23, r0 \n\t" 14187 "adc r24, r1 \n\t" 14188 "adc r22, r27 \n\t" 14189 "mul r9, r15 \n\t" 14190 "add r23, r0 \n\t" 14191 "adc r24, r1 \n\t" 14192 "adc r22, r27 \n\t" 14193 "mul r10, r14 \n\t" 14194 "add r23, r0 \n\t" 14195 "adc r24, r1 \n\t" 14196 "adc r22, r27 \n\t" 14197 "mul r11, r13 \n\t" 14198 "add r23, r0 \n\t" 14199 "adc r24, r1 \n\t" 14200 "adc r22, r27 \n\t" 14201 "lsl r23 \n\t" 14202 "rol r24 \n\t" 14203 "rol r22 \n\t" 14204 "mul r12, r12 \n\t" 14205 "add r23, r0 \n\t" 14206 "adc r24, r1 \n\t" 14207 "adc r22, r27 \n\t" 14208 "add r23, r25 \n\t" 14209 "adc r24, r26 \n\t" 14210 "adc r22, r27 \n\t" 14211 "st z+, r23 \n\t" 14212 14213 "ldi r26, 0 \n\t" 14214 "mul r4, r21 \n\t" 14215 "mov r23, r0 \n\t" 14216 "mov r25, r1 \n\t" 14217 "mul r5, r20 \n\t" 14218 "add r23, r0 \n\t" 14219 "adc r25, r1 \n\t" 14220 "adc r26, r27 \n\t" 14221 "mul r6, r19 \n\t" 14222 "add r23, r0 \n\t" 14223 "adc r25, r1 \n\t" 14224 "adc r26, r27 \n\t" 14225 "mul r7, r18 \n\t" 14226 "add r23, r0 \n\t" 14227 "adc r25, r1 \n\t" 14228 "adc r26, r27 \n\t" 14229 "mul r8, r17 \n\t" 14230 "add r23, r0 \n\t" 14231 "adc r25, r1 \n\t" 14232 "adc r26, r27 \n\t" 14233 "mul r9, r16 \n\t" 14234 "add r23, r0 \n\t" 14235 "adc r25, r1 \n\t" 14236 "adc r26, r27 \n\t" 14237 "mul r10, r15 \n\t" 14238 "add r23, r0 \n\t" 14239 "adc r25, r1 \n\t" 14240 "adc r26, r27 \n\t" 14241 "mul r11, r14 \n\t" 14242 "add r23, r0 \n\t" 14243 "adc r25, r1 \n\t" 14244 "adc r26, r27 \n\t" 14245 "mul r12, r13 \n\t" 14246 "add r23, r0 \n\t" 14247 "adc r25, r1 \n\t" 14248 "adc r26, r27 \n\t" 14249 "lsl r23 \n\t" 14250 "rol r25 \n\t" 14251 "rol r26 \n\t" 14252 "add r23, r24 \n\t" 14253 "adc r25, r22 \n\t" 14254 "adc r26, r27 \n\t" 14255 "st z+, r23 \n\t" 14256 14257 "ldi r22, 0 \n\t" 14258 "mul r5, r21 \n\t" 14259 "mov r23, r0 \n\t" 14260 "mov r24, r1 \n\t" 14261 "mul r6, r20 \n\t" 14262 "add r23, r0 \n\t" 14263 "adc r24, r1 \n\t" 14264 "adc r22, r27 \n\t" 14265 "mul r7, r19 \n\t" 14266 "add r23, r0 \n\t" 14267 "adc r24, r1 \n\t" 14268 "adc r22, r27 \n\t" 14269 "mul r8, r18 \n\t" 14270 "add r23, r0 \n\t" 14271 "adc r24, r1 \n\t" 14272 "adc r22, r27 \n\t" 14273 "mul r9, r17 \n\t" 14274 "add r23, r0 \n\t" 14275 "adc r24, r1 \n\t" 14276 "adc r22, r27 \n\t" 14277 "mul r10, r16 \n\t" 14278 "add r23, r0 \n\t" 14279 "adc r24, r1 \n\t" 14280 "adc r22, r27 \n\t" 14281 "mul r11, r15 \n\t" 14282 "add r23, r0 \n\t" 14283 "adc r24, r1 \n\t" 14284 "adc r22, r27 \n\t" 14285 "mul r12, r14 \n\t" 14286 "add r23, r0 \n\t" 14287 "adc r24, r1 \n\t" 14288 "adc r22, r27 \n\t" 14289 "lsl r23 \n\t" 14290 "rol r24 \n\t" 14291 "rol r22 \n\t" 14292 "mul r13, r13 \n\t" 14293 "add r23, r0 \n\t" 14294 "adc r24, r1 \n\t" 14295 "adc r22, r27 \n\t" 14296 "add r23, r25 \n\t" 14297 "adc r24, r26 \n\t" 14298 "adc r22, r27 \n\t" 14299 "st z+, r23 \n\t" 14300 14301 "ldi r26, 0 \n\t" 14302 "mul r6, r21 \n\t" 14303 "mov r23, r0 \n\t" 14304 "mov r25, r1 \n\t" 14305 "mul r7, r20 \n\t" 14306 "add r23, r0 \n\t" 14307 "adc r25, r1 \n\t" 14308 "adc r26, r27 \n\t" 14309 "mul r8, r19 \n\t" 14310 "add r23, r0 \n\t" 14311 "adc r25, r1 \n\t" 14312 "adc r26, r27 \n\t" 14313 "mul r9, r18 \n\t" 14314 "add r23, r0 \n\t" 14315 "adc r25, r1 \n\t" 14316 "adc r26, r27 \n\t" 14317 "mul r10, r17 \n\t" 14318 "add r23, r0 \n\t" 14319 "adc r25, r1 \n\t" 14320 "adc r26, r27 \n\t" 14321 "mul r11, r16 \n\t" 14322 "add r23, r0 \n\t" 14323 "adc r25, r1 \n\t" 14324 "adc r26, r27 \n\t" 14325 "mul r12, r15 \n\t" 14326 "add r23, r0 \n\t" 14327 "adc r25, r1 \n\t" 14328 "adc r26, r27 \n\t" 14329 "mul r13, r14 \n\t" 14330 "add r23, r0 \n\t" 14331 "adc r25, r1 \n\t" 14332 "adc r26, r27 \n\t" 14333 "lsl r23 \n\t" 14334 "rol r25 \n\t" 14335 "rol r26 \n\t" 14336 "add r23, r24 \n\t" 14337 "adc r25, r22 \n\t" 14338 "adc r26, r27 \n\t" 14339 "st z+, r23 \n\t" 14340 14341 "ldi r22, 0 \n\t" 14342 "mul r7, r21 \n\t" 14343 "mov r23, r0 \n\t" 14344 "mov r24, r1 \n\t" 14345 "mul r8, r20 \n\t" 14346 "add r23, r0 \n\t" 14347 "adc r24, r1 \n\t" 14348 "adc r22, r27 \n\t" 14349 "mul r9, r19 \n\t" 14350 "add r23, r0 \n\t" 14351 "adc r24, r1 \n\t" 14352 "adc r22, r27 \n\t" 14353 "mul r10, r18 \n\t" 14354 "add r23, r0 \n\t" 14355 "adc r24, r1 \n\t" 14356 "adc r22, r27 \n\t" 14357 "mul r11, r17 \n\t" 14358 "add r23, r0 \n\t" 14359 "adc r24, r1 \n\t" 14360 "adc r22, r27 \n\t" 14361 "mul r12, r16 \n\t" 14362 "add r23, r0 \n\t" 14363 "adc r24, r1 \n\t" 14364 "adc r22, r27 \n\t" 14365 "mul r13, r15 \n\t" 14366 "add r23, r0 \n\t" 14367 "adc r24, r1 \n\t" 14368 "adc r22, r27 \n\t" 14369 "lsl r23 \n\t" 14370 "rol r24 \n\t" 14371 "rol r22 \n\t" 14372 "mul r14, r14 \n\t" 14373 "add r23, r0 \n\t" 14374 "adc r24, r1 \n\t" 14375 "adc r22, r27 \n\t" 14376 "add r23, r25 \n\t" 14377 "adc r24, r26 \n\t" 14378 "adc r22, r27 \n\t" 14379 "st z+, r23 \n\t" 14380 14381 "ldi r26, 0 \n\t" 14382 "mul r8, r21 \n\t" 14383 "mov r23, r0 \n\t" 14384 "mov r25, r1 \n\t" 14385 "mul r9, r20 \n\t" 14386 "add r23, r0 \n\t" 14387 "adc r25, r1 \n\t" 14388 "adc r26, r27 \n\t" 14389 "mul r10, r19 \n\t" 14390 "add r23, r0 \n\t" 14391 "adc r25, r1 \n\t" 14392 "adc r26, r27 \n\t" 14393 "mul r11, r18 \n\t" 14394 "add r23, r0 \n\t" 14395 "adc r25, r1 \n\t" 14396 "adc r26, r27 \n\t" 14397 "mul r12, r17 \n\t" 14398 "add r23, r0 \n\t" 14399 "adc r25, r1 \n\t" 14400 "adc r26, r27 \n\t" 14401 "mul r13, r16 \n\t" 14402 "add r23, r0 \n\t" 14403 "adc r25, r1 \n\t" 14404 "adc r26, r27 \n\t" 14405 "mul r14, r15 \n\t" 14406 "add r23, r0 \n\t" 14407 "adc r25, r1 \n\t" 14408 "adc r26, r27 \n\t" 14409 "lsl r23 \n\t" 14410 "rol r25 \n\t" 14411 "rol r26 \n\t" 14412 "add r23, r24 \n\t" 14413 "adc r25, r22 \n\t" 14414 "adc r26, r27 \n\t" 14415 "st z+, r23 \n\t" 14416 14417 "ldi r22, 0 \n\t" 14418 "mul r9, r21 \n\t" 14419 "mov r23, r0 \n\t" 14420 "mov r24, r1 \n\t" 14421 "mul r10, r20 \n\t" 14422 "add r23, r0 \n\t" 14423 "adc r24, r1 \n\t" 14424 "adc r22, r27 \n\t" 14425 "mul r11, r19 \n\t" 14426 "add r23, r0 \n\t" 14427 "adc r24, r1 \n\t" 14428 "adc r22, r27 \n\t" 14429 "mul r12, r18 \n\t" 14430 "add r23, r0 \n\t" 14431 "adc r24, r1 \n\t" 14432 "adc r22, r27 \n\t" 14433 "mul r13, r17 \n\t" 14434 "add r23, r0 \n\t" 14435 "adc r24, r1 \n\t" 14436 "adc r22, r27 \n\t" 14437 "mul r14, r16 \n\t" 14438 "add r23, r0 \n\t" 14439 "adc r24, r1 \n\t" 14440 "adc r22, r27 \n\t" 14441 "lsl r23 \n\t" 14442 "rol r24 \n\t" 14443 "rol r22 \n\t" 14444 "mul r15, r15 \n\t" 14445 "add r23, r0 \n\t" 14446 "adc r24, r1 \n\t" 14447 "adc r22, r27 \n\t" 14448 "add r23, r25 \n\t" 14449 "adc r24, r26 \n\t" 14450 "adc r22, r27 \n\t" 14451 "st z+, r23 \n\t" 14452 14453 "ldi r26, 0 \n\t" 14454 "mul r10, r21 \n\t" 14455 "mov r23, r0 \n\t" 14456 "mov r25, r1 \n\t" 14457 "mul r11, r20 \n\t" 14458 "add r23, r0 \n\t" 14459 "adc r25, r1 \n\t" 14460 "adc r26, r27 \n\t" 14461 "mul r12, r19 \n\t" 14462 "add r23, r0 \n\t" 14463 "adc r25, r1 \n\t" 14464 "adc r26, r27 \n\t" 14465 "mul r13, r18 \n\t" 14466 "add r23, r0 \n\t" 14467 "adc r25, r1 \n\t" 14468 "adc r26, r27 \n\t" 14469 "mul r14, r17 \n\t" 14470 "add r23, r0 \n\t" 14471 "adc r25, r1 \n\t" 14472 "adc r26, r27 \n\t" 14473 "mul r15, r16 \n\t" 14474 "add r23, r0 \n\t" 14475 "adc r25, r1 \n\t" 14476 "adc r26, r27 \n\t" 14477 "lsl r23 \n\t" 14478 "rol r25 \n\t" 14479 "rol r26 \n\t" 14480 "add r23, r24 \n\t" 14481 "adc r25, r22 \n\t" 14482 "adc r26, r27 \n\t" 14483 "st z+, r23 \n\t" 14484 14485 "ldi r22, 0 \n\t" 14486 "mul r11, r21 \n\t" 14487 "mov r23, r0 \n\t" 14488 "mov r24, r1 \n\t" 14489 "mul r12, r20 \n\t" 14490 "add r23, r0 \n\t" 14491 "adc r24, r1 \n\t" 14492 "adc r22, r27 \n\t" 14493 "mul r13, r19 \n\t" 14494 "add r23, r0 \n\t" 14495 "adc r24, r1 \n\t" 14496 "adc r22, r27 \n\t" 14497 "mul r14, r18 \n\t" 14498 "add r23, r0 \n\t" 14499 "adc r24, r1 \n\t" 14500 "adc r22, r27 \n\t" 14501 "mul r15, r17 \n\t" 14502 "add r23, r0 \n\t" 14503 "adc r24, r1 \n\t" 14504 "adc r22, r27 \n\t" 14505 "lsl r23 \n\t" 14506 "rol r24 \n\t" 14507 "rol r22 \n\t" 14508 "mul r16, r16 \n\t" 14509 "add r23, r0 \n\t" 14510 "adc r24, r1 \n\t" 14511 "adc r22, r27 \n\t" 14512 "add r23, r25 \n\t" 14513 "adc r24, r26 \n\t" 14514 "adc r22, r27 \n\t" 14515 "st z+, r23 \n\t" 14516 14517 "ldi r26, 0 \n\t" 14518 "mul r12, r21 \n\t" 14519 "mov r23, r0 \n\t" 14520 "mov r25, r1 \n\t" 14521 "mul r13, r20 \n\t" 14522 "add r23, r0 \n\t" 14523 "adc r25, r1 \n\t" 14524 "adc r26, r27 \n\t" 14525 "mul r14, r19 \n\t" 14526 "add r23, r0 \n\t" 14527 "adc r25, r1 \n\t" 14528 "adc r26, r27 \n\t" 14529 "mul r15, r18 \n\t" 14530 "add r23, r0 \n\t" 14531 "adc r25, r1 \n\t" 14532 "adc r26, r27 \n\t" 14533 "mul r16, r17 \n\t" 14534 "add r23, r0 \n\t" 14535 "adc r25, r1 \n\t" 14536 "adc r26, r27 \n\t" 14537 "lsl r23 \n\t" 14538 "rol r25 \n\t" 14539 "rol r26 \n\t" 14540 "add r23, r24 \n\t" 14541 "adc r25, r22 \n\t" 14542 "adc r26, r27 \n\t" 14543 "st z+, r23 \n\t" 14544 14545 "ldi r22, 0 \n\t" 14546 "mul r13, r21 \n\t" 14547 "mov r23, r0 \n\t" 14548 "mov r24, r1 \n\t" 14549 "mul r14, r20 \n\t" 14550 "add r23, r0 \n\t" 14551 "adc r24, r1 \n\t" 14552 "adc r22, r27 \n\t" 14553 "mul r15, r19 \n\t" 14554 "add r23, r0 \n\t" 14555 "adc r24, r1 \n\t" 14556 "adc r22, r27 \n\t" 14557 "mul r16, r18 \n\t" 14558 "add r23, r0 \n\t" 14559 "adc r24, r1 \n\t" 14560 "adc r22, r27 \n\t" 14561 "lsl r23 \n\t" 14562 "rol r24 \n\t" 14563 "rol r22 \n\t" 14564 "mul r17, r17 \n\t" 14565 "add r23, r0 \n\t" 14566 "adc r24, r1 \n\t" 14567 "adc r22, r27 \n\t" 14568 "add r23, r25 \n\t" 14569 "adc r24, r26 \n\t" 14570 "adc r22, r27 \n\t" 14571 "st z+, r23 \n\t" 14572 14573 "ldi r26, 0 \n\t" 14574 "mul r14, r21 \n\t" 14575 "mov r23, r0 \n\t" 14576 "mov r25, r1 \n\t" 14577 "mul r15, r20 \n\t" 14578 "add r23, r0 \n\t" 14579 "adc r25, r1 \n\t" 14580 "adc r26, r27 \n\t" 14581 "mul r16, r19 \n\t" 14582 "add r23, r0 \n\t" 14583 "adc r25, r1 \n\t" 14584 "adc r26, r27 \n\t" 14585 "mul r17, r18 \n\t" 14586 "add r23, r0 \n\t" 14587 "adc r25, r1 \n\t" 14588 "adc r26, r27 \n\t" 14589 "lsl r23 \n\t" 14590 "rol r25 \n\t" 14591 "rol r26 \n\t" 14592 "add r23, r24 \n\t" 14593 "adc r25, r22 \n\t" 14594 "adc r26, r27 \n\t" 14595 "st z+, r23 \n\t" 14596 14597 "ldi r22, 0 \n\t" 14598 "mul r15, r21 \n\t" 14599 "mov r23, r0 \n\t" 14600 "mov r24, r1 \n\t" 14601 "mul r16, r20 \n\t" 14602 "add r23, r0 \n\t" 14603 "adc r24, r1 \n\t" 14604 "adc r22, r27 \n\t" 14605 "mul r17, r19 \n\t" 14606 "add r23, r0 \n\t" 14607 "adc r24, r1 \n\t" 14608 "adc r22, r27 \n\t" 14609 "lsl r23 \n\t" 14610 "rol r24 \n\t" 14611 "rol r22 \n\t" 14612 "mul r18, r18 \n\t" 14613 "add r23, r0 \n\t" 14614 "adc r24, r1 \n\t" 14615 "adc r22, r27 \n\t" 14616 "add r23, r25 \n\t" 14617 "adc r24, r26 \n\t" 14618 "adc r22, r27 \n\t" 14619 "st z+, r23 \n\t" 14620 14621 "ldi r26, 0 \n\t" 14622 "mul r16, r21 \n\t" 14623 "mov r23, r0 \n\t" 14624 "mov r25, r1 \n\t" 14625 "mul r17, r20 \n\t" 14626 "add r23, r0 \n\t" 14627 "adc r25, r1 \n\t" 14628 "adc r26, r27 \n\t" 14629 "mul r18, r19 \n\t" 14630 "add r23, r0 \n\t" 14631 "adc r25, r1 \n\t" 14632 "adc r26, r27 \n\t" 14633 "lsl r23 \n\t" 14634 "rol r25 \n\t" 14635 "rol r26 \n\t" 14636 "add r23, r24 \n\t" 14637 "adc r25, r22 \n\t" 14638 "adc r26, r27 \n\t" 14639 "st z+, r23 \n\t" 14640 14641 "ldi r22, 0 \n\t" 14642 "mul r17, r21 \n\t" 14643 "mov r23, r0 \n\t" 14644 "mov r24, r1 \n\t" 14645 "mul r18, r20 \n\t" 14646 "add r23, r0 \n\t" 14647 "adc r24, r1 \n\t" 14648 "adc r22, r27 \n\t" 14649 "lsl r23 \n\t" 14650 "rol r24 \n\t" 14651 "rol r22 \n\t" 14652 "mul r19, r19 \n\t" 14653 "add r23, r0 \n\t" 14654 "adc r24, r1 \n\t" 14655 "adc r22, r27 \n\t" 14656 "add r23, r25 \n\t" 14657 "adc r24, r26 \n\t" 14658 "adc r22, r27 \n\t" 14659 "st z+, r23 \n\t" 14660 14661 "ldi r26, 0 \n\t" 14662 "mul r18, r21 \n\t" 14663 "mov r23, r0 \n\t" 14664 "mov r25, r1 \n\t" 14665 "mul r19, r20 \n\t" 14666 "add r23, r0 \n\t" 14667 "adc r25, r1 \n\t" 14668 "adc r26, r27 \n\t" 14669 "lsl r23 \n\t" 14670 "rol r25 \n\t" 14671 "rol r26 \n\t" 14672 "add r23, r24 \n\t" 14673 "adc r25, r22 \n\t" 14674 "adc r26, r27 \n\t" 14675 "st z+, r23 \n\t" 14676 14677 "ldi r23, 0 \n\t" 14678 "mul r19, r21 \n\t" 14679 "lsl r0 \n\t" 14680 "rol r1 \n\t" 14681 "adc r23, r27 \n\t" 14682 "add r25, r0 \n\t" 14683 "adc r26, r1 \n\t" 14684 "adc r23, r27 \n\t" 14685 "mul r20, r20 \n\t" 14686 "add r25, r0 \n\t" 14687 "adc r26, r1 \n\t" 14688 "adc r23, r27 \n\t" 14689 "st z+, r25 \n\t" 14690 14691 "ldi r25, 0 \n\t" 14692 "mul r20, r21 \n\t" 14693 "lsl r0 \n\t" 14694 "rol r1 \n\t" 14695 "adc r25, r27 \n\t" 14696 "add r26, r0 \n\t" 14697 "adc r23, r1 \n\t" 14698 "adc r25, r27 \n\t" 14699 "st z+, r26 \n\t" 14700 14701 "mul r21, r21 \n\t" 14702 "add r23, r0 \n\t" 14703 "adc r25, r1 \n\t" 14704 "st z+, r23 \n\t" 14705 "st z+, r25 \n\t" 14706 "eor r1, r1 \n\t" 14707 : "+x" (left), "+z" (result) 14708 : 14709 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 14710 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 14711 "r21", "r22", "r23", "r24", "r25", "cc", "memory" 14712 ); 14713} 14714#define asm_square 1 14715 14716#elif (uECC_BYTES == 24) 14717 14718__attribute((noinline)) 14719static void vli_square(uint8_t *result, const uint8_t *left) { 14720 __asm__ volatile ( 14721 "ldi r25, 0 \n\t" 14722 "movw r28, r26 \n\t" 14723 "ld r2, x+ \n\t" 14724 "ld r3, x+ \n\t" 14725 "adiw r28, 20 \n\t" 14726 "ld r12, y+ \n\t" 14727 "ld r13, y+ \n\t" 14728 "adiw r30, 20 \n\t" 14729 14730 "ldi r23, 0 \n\t" 14731 "mul 2, 12 \n\t" 14732 "st z+, r0 \n\t" 14733 "mov r22, r1 \n\t" 14734 14735 "ldi r24, 0 \n\t" 14736 "mul r2, r13 \n\t" 14737 "add r22, r0 \n\t" 14738 "adc r23, r1 \n\t" 14739 "adc r24, r25 \n\t" 14740 "st z+, r22 \n\t" 14741 14742 "ld r12, y+ \n\t" 14743 "ldi r22, 0 \n\t" 14744 "mul r2, r12 \n\t" 14745 "add r23, r0 \n\t" 14746 "adc r24, r1 \n\t" 14747 "adc r22, r25 \n\t" 14748 "mul r3, r13 \n\t" 14749 "add r23, r0 \n\t" 14750 "adc r24, r1 \n\t" 14751 "adc r22, r25 \n\t" 14752 "st z+, r23 \n\t" 14753 14754 "ld r13, y+ \n\t" 14755 "ldi r23, 0 \n\t" 14756 "mul r2, r13 \n\t" 14757 "add r24, r0 \n\t" 14758 "adc r22, r1 \n\t" 14759 "adc r23, r25 \n\t" 14760 "mul r3, r12 \n\t" 14761 "add r24, r0 \n\t" 14762 "adc r22, r1 \n\t" 14763 "adc r23, r25 \n\t" 14764 "st z+, r24 \n\t" 14765 14766 "ld r2, x+ \n\t" 14767 "ldi r24, 0 \n\t" 14768 "mul r3, r13 \n\t" 14769 "add r22, r0 \n\t" 14770 "adc r23, r1 \n\t" 14771 "adc r24, r25 \n\t" 14772 "mul r2, r12 \n\t" 14773 "add r22, r0 \n\t" 14774 "adc r23, r1 \n\t" 14775 "adc r24, r25 \n\t" 14776 "st z+, r22 \n\t" 14777 14778 "ld r3, x+ \n\t" 14779 "ldi r22, 0 \n\t" 14780 "mul r2, r13 \n\t" 14781 "add r23, r0 \n\t" 14782 "adc r24, r1 \n\t" 14783 "adc r22, r25 \n\t" 14784 "st z+, r23 \n\t" 14785 14786 "mul r3, r13 \n\t" 14787 "add r24, r0 \n\t" 14788 "adc r22, r1 \n\t" 14789 "st z+, r24 \n\t" 14790 "st z+, r22 \n\t" 14791 14792 "sbiw r26, 4 \n\t" 14793 "sbiw r30, 28 \n\t" 14794 "ld r2, x+ \n\t" 14795 "ld r3, x+ \n\t" 14796 "ld r4, x+ \n\t" 14797 "ld r5, x+ \n\t" 14798 "ld r6, x+ \n\t" 14799 "ld r7, x+ \n\t" 14800 "ld r8, x+ \n\t" 14801 "ld r9, x+ \n\t" 14802 "ld r10, x+ \n\t" 14803 "ld r11, x+ \n\t" 14804 "ld r12, x+ \n\t" 14805 "ld r13, x+ \n\t" 14806 "ld r14, x+ \n\t" 14807 "ld r15, x+ \n\t" 14808 "ld r16, x+ \n\t" 14809 "ld r17, x+ \n\t" 14810 "ld r18, x+ \n\t" 14811 "ld r19, x+ \n\t" 14812 "ld r20, x+ \n\t" 14813 "ld r21, x+ \n\t" 14814 14815 "ldi r23, 0 \n\t" 14816 "mul r2, r2 \n\t" 14817 "st z+, r0 \n\t" 14818 "mov r22, r1 \n\t" 14819 14820 "ldi r24, 0 \n\t" 14821 "mul r2, r3 \n\t" 14822 "add r22, r0 \n\t" 14823 "adc r23, r1 \n\t" 14824 "adc r24, r25 \n\t" 14825 "add r22, r0 \n\t" 14826 "adc r23, r1 \n\t" 14827 "adc r24, r25 \n\t" 14828 "st z+, r22 \n\t" 14829 14830 "ldi r22, 0 \n\t" 14831 "mul r2, r4 \n\t" 14832 "add r23, r0 \n\t" 14833 "adc r24, r1 \n\t" 14834 "adc r22, r25 \n\t" 14835 "add r23, r0 \n\t" 14836 "adc r24, r1 \n\t" 14837 "adc r22, r25 \n\t" 14838 "mul r3, r3 \n\t" 14839 "add r23, r0 \n\t" 14840 "adc r24, r1 \n\t" 14841 "adc r22, r25 \n\t" 14842 "st z+, r23 \n\t" 14843 14844 "ldi r29, 0 \n\t" 14845 "mul r2, r5 \n\t" 14846 "mov r23, r0 \n\t" 14847 "mov r28, r1 \n\t" 14848 "mul r3, r4 \n\t" 14849 "add r23, r0 \n\t" 14850 "adc r28, r1 \n\t" 14851 "adc r29, r25 \n\t" 14852 "lsl r23 \n\t" 14853 "rol r28 \n\t" 14854 "rol r29 \n\t" 14855 "add r23, r24 \n\t" 14856 "adc r28, r22 \n\t" 14857 "adc r29, r25 \n\t" 14858 "st z+, r23 \n\t" 14859 14860 "ldi r22, 0 \n\t" 14861 "mul r2, r6 \n\t" 14862 "mov r23, r0 \n\t" 14863 "mov r24, r1 \n\t" 14864 "mul r3, r5 \n\t" 14865 "add r23, r0 \n\t" 14866 "adc r24, r1 \n\t" 14867 "adc r22, r25 \n\t" 14868 "lsl r23 \n\t" 14869 "rol r24 \n\t" 14870 "rol r22 \n\t" 14871 "mul r4, r4 \n\t" 14872 "add r23, r0 \n\t" 14873 "adc r24, r1 \n\t" 14874 "adc r22, r25 \n\t" 14875 "add r23, r28 \n\t" 14876 "adc r24, r29 \n\t" 14877 "adc r22, r25 \n\t" 14878 "st z+, r23 \n\t" 14879 14880 "ldi r29, 0 \n\t" 14881 "mul r2, r7 \n\t" 14882 "mov r23, r0 \n\t" 14883 "mov r28, r1 \n\t" 14884 "mul r3, r6 \n\t" 14885 "add r23, r0 \n\t" 14886 "adc r28, r1 \n\t" 14887 "adc r29, r25 \n\t" 14888 "mul r4, r5 \n\t" 14889 "add r23, r0 \n\t" 14890 "adc r28, r1 \n\t" 14891 "adc r29, r25 \n\t" 14892 "lsl r23 \n\t" 14893 "rol r28 \n\t" 14894 "rol r29 \n\t" 14895 "add r23, r24 \n\t" 14896 "adc r28, r22 \n\t" 14897 "adc r29, r25 \n\t" 14898 "st z+, r23 \n\t" 14899 14900 "ldi r22, 0 \n\t" 14901 "mul r2, r8 \n\t" 14902 "mov r23, r0 \n\t" 14903 "mov r24, r1 \n\t" 14904 "mul r3, r7 \n\t" 14905 "add r23, r0 \n\t" 14906 "adc r24, r1 \n\t" 14907 "adc r22, r25 \n\t" 14908 "mul r4, r6 \n\t" 14909 "add r23, r0 \n\t" 14910 "adc r24, r1 \n\t" 14911 "adc r22, r25 \n\t" 14912 "lsl r23 \n\t" 14913 "rol r24 \n\t" 14914 "rol r22 \n\t" 14915 "mul r5, r5 \n\t" 14916 "add r23, r0 \n\t" 14917 "adc r24, r1 \n\t" 14918 "adc r22, r25 \n\t" 14919 "add r23, r28 \n\t" 14920 "adc r24, r29 \n\t" 14921 "adc r22, r25 \n\t" 14922 "st z+, r23 \n\t" 14923 14924 "ldi r29, 0 \n\t" 14925 "mul r2, r9 \n\t" 14926 "mov r23, r0 \n\t" 14927 "mov r28, r1 \n\t" 14928 "mul r3, r8 \n\t" 14929 "add r23, r0 \n\t" 14930 "adc r28, r1 \n\t" 14931 "adc r29, r25 \n\t" 14932 "mul r4, r7 \n\t" 14933 "add r23, r0 \n\t" 14934 "adc r28, r1 \n\t" 14935 "adc r29, r25 \n\t" 14936 "mul r5, r6 \n\t" 14937 "add r23, r0 \n\t" 14938 "adc r28, r1 \n\t" 14939 "adc r29, r25 \n\t" 14940 "lsl r23 \n\t" 14941 "rol r28 \n\t" 14942 "rol r29 \n\t" 14943 "add r23, r24 \n\t" 14944 "adc r28, r22 \n\t" 14945 "adc r29, r25 \n\t" 14946 "st z+, r23 \n\t" 14947 14948 "ldi r22, 0 \n\t" 14949 "mul r2, r10 \n\t" 14950 "mov r23, r0 \n\t" 14951 "mov r24, r1 \n\t" 14952 "mul r3, r9 \n\t" 14953 "add r23, r0 \n\t" 14954 "adc r24, r1 \n\t" 14955 "adc r22, r25 \n\t" 14956 "mul r4, r8 \n\t" 14957 "add r23, r0 \n\t" 14958 "adc r24, r1 \n\t" 14959 "adc r22, r25 \n\t" 14960 "mul r5, r7 \n\t" 14961 "add r23, r0 \n\t" 14962 "adc r24, r1 \n\t" 14963 "adc r22, r25 \n\t" 14964 "lsl r23 \n\t" 14965 "rol r24 \n\t" 14966 "rol r22 \n\t" 14967 "mul r6, r6 \n\t" 14968 "add r23, r0 \n\t" 14969 "adc r24, r1 \n\t" 14970 "adc r22, r25 \n\t" 14971 "add r23, r28 \n\t" 14972 "adc r24, r29 \n\t" 14973 "adc r22, r25 \n\t" 14974 "st z+, r23 \n\t" 14975 14976 "ldi r29, 0 \n\t" 14977 "mul r2, r11 \n\t" 14978 "mov r23, r0 \n\t" 14979 "mov r28, r1 \n\t" 14980 "mul r3, r10 \n\t" 14981 "add r23, r0 \n\t" 14982 "adc r28, r1 \n\t" 14983 "adc r29, r25 \n\t" 14984 "mul r4, r9 \n\t" 14985 "add r23, r0 \n\t" 14986 "adc r28, r1 \n\t" 14987 "adc r29, r25 \n\t" 14988 "mul r5, r8 \n\t" 14989 "add r23, r0 \n\t" 14990 "adc r28, r1 \n\t" 14991 "adc r29, r25 \n\t" 14992 "mul r6, r7 \n\t" 14993 "add r23, r0 \n\t" 14994 "adc r28, r1 \n\t" 14995 "adc r29, r25 \n\t" 14996 "lsl r23 \n\t" 14997 "rol r28 \n\t" 14998 "rol r29 \n\t" 14999 "add r23, r24 \n\t" 15000 "adc r28, r22 \n\t" 15001 "adc r29, r25 \n\t" 15002 "st z+, r23 \n\t" 15003 15004 "ldi r22, 0 \n\t" 15005 "mul r2, r12 \n\t" 15006 "mov r23, r0 \n\t" 15007 "mov r24, r1 \n\t" 15008 "mul r3, r11 \n\t" 15009 "add r23, r0 \n\t" 15010 "adc r24, r1 \n\t" 15011 "adc r22, r25 \n\t" 15012 "mul r4, r10 \n\t" 15013 "add r23, r0 \n\t" 15014 "adc r24, r1 \n\t" 15015 "adc r22, r25 \n\t" 15016 "mul r5, r9 \n\t" 15017 "add r23, r0 \n\t" 15018 "adc r24, r1 \n\t" 15019 "adc r22, r25 \n\t" 15020 "mul r6, r8 \n\t" 15021 "add r23, r0 \n\t" 15022 "adc r24, r1 \n\t" 15023 "adc r22, r25 \n\t" 15024 "lsl r23 \n\t" 15025 "rol r24 \n\t" 15026 "rol r22 \n\t" 15027 "mul r7, r7 \n\t" 15028 "add r23, r0 \n\t" 15029 "adc r24, r1 \n\t" 15030 "adc r22, r25 \n\t" 15031 "add r23, r28 \n\t" 15032 "adc r24, r29 \n\t" 15033 "adc r22, r25 \n\t" 15034 "st z+, r23 \n\t" 15035 15036 "ldi r29, 0 \n\t" 15037 "mul r2, r13 \n\t" 15038 "mov r23, r0 \n\t" 15039 "mov r28, r1 \n\t" 15040 "mul r3, r12 \n\t" 15041 "add r23, r0 \n\t" 15042 "adc r28, r1 \n\t" 15043 "adc r29, r25 \n\t" 15044 "mul r4, r11 \n\t" 15045 "add r23, r0 \n\t" 15046 "adc r28, r1 \n\t" 15047 "adc r29, r25 \n\t" 15048 "mul r5, r10 \n\t" 15049 "add r23, r0 \n\t" 15050 "adc r28, r1 \n\t" 15051 "adc r29, r25 \n\t" 15052 "mul r6, r9 \n\t" 15053 "add r23, r0 \n\t" 15054 "adc r28, r1 \n\t" 15055 "adc r29, r25 \n\t" 15056 "mul r7, r8 \n\t" 15057 "add r23, r0 \n\t" 15058 "adc r28, r1 \n\t" 15059 "adc r29, r25 \n\t" 15060 "lsl r23 \n\t" 15061 "rol r28 \n\t" 15062 "rol r29 \n\t" 15063 "add r23, r24 \n\t" 15064 "adc r28, r22 \n\t" 15065 "adc r29, r25 \n\t" 15066 "st z+, r23 \n\t" 15067 15068 "ldi r22, 0 \n\t" 15069 "mul r2, r14 \n\t" 15070 "mov r23, r0 \n\t" 15071 "mov r24, r1 \n\t" 15072 "mul r3, r13 \n\t" 15073 "add r23, r0 \n\t" 15074 "adc r24, r1 \n\t" 15075 "adc r22, r25 \n\t" 15076 "mul r4, r12 \n\t" 15077 "add r23, r0 \n\t" 15078 "adc r24, r1 \n\t" 15079 "adc r22, r25 \n\t" 15080 "mul r5, r11 \n\t" 15081 "add r23, r0 \n\t" 15082 "adc r24, r1 \n\t" 15083 "adc r22, r25 \n\t" 15084 "mul r6, r10 \n\t" 15085 "add r23, r0 \n\t" 15086 "adc r24, r1 \n\t" 15087 "adc r22, r25 \n\t" 15088 "mul r7, r9 \n\t" 15089 "add r23, r0 \n\t" 15090 "adc r24, r1 \n\t" 15091 "adc r22, r25 \n\t" 15092 "lsl r23 \n\t" 15093 "rol r24 \n\t" 15094 "rol r22 \n\t" 15095 "mul r8, r8 \n\t" 15096 "add r23, r0 \n\t" 15097 "adc r24, r1 \n\t" 15098 "adc r22, r25 \n\t" 15099 "add r23, r28 \n\t" 15100 "adc r24, r29 \n\t" 15101 "adc r22, r25 \n\t" 15102 "st z+, r23 \n\t" 15103 15104 "ldi r29, 0 \n\t" 15105 "mul r2, r15 \n\t" 15106 "mov r23, r0 \n\t" 15107 "mov r28, r1 \n\t" 15108 "mul r3, r14 \n\t" 15109 "add r23, r0 \n\t" 15110 "adc r28, r1 \n\t" 15111 "adc r29, r25 \n\t" 15112 "mul r4, r13 \n\t" 15113 "add r23, r0 \n\t" 15114 "adc r28, r1 \n\t" 15115 "adc r29, r25 \n\t" 15116 "mul r5, r12 \n\t" 15117 "add r23, r0 \n\t" 15118 "adc r28, r1 \n\t" 15119 "adc r29, r25 \n\t" 15120 "mul r6, r11 \n\t" 15121 "add r23, r0 \n\t" 15122 "adc r28, r1 \n\t" 15123 "adc r29, r25 \n\t" 15124 "mul r7, r10 \n\t" 15125 "add r23, r0 \n\t" 15126 "adc r28, r1 \n\t" 15127 "adc r29, r25 \n\t" 15128 "mul r8, r9 \n\t" 15129 "add r23, r0 \n\t" 15130 "adc r28, r1 \n\t" 15131 "adc r29, r25 \n\t" 15132 "lsl r23 \n\t" 15133 "rol r28 \n\t" 15134 "rol r29 \n\t" 15135 "add r23, r24 \n\t" 15136 "adc r28, r22 \n\t" 15137 "adc r29, r25 \n\t" 15138 "st z+, r23 \n\t" 15139 15140 "ldi r22, 0 \n\t" 15141 "mul r2, r16 \n\t" 15142 "mov r23, r0 \n\t" 15143 "mov r24, r1 \n\t" 15144 "mul r3, r15 \n\t" 15145 "add r23, r0 \n\t" 15146 "adc r24, r1 \n\t" 15147 "adc r22, r25 \n\t" 15148 "mul r4, r14 \n\t" 15149 "add r23, r0 \n\t" 15150 "adc r24, r1 \n\t" 15151 "adc r22, r25 \n\t" 15152 "mul r5, r13 \n\t" 15153 "add r23, r0 \n\t" 15154 "adc r24, r1 \n\t" 15155 "adc r22, r25 \n\t" 15156 "mul r6, r12 \n\t" 15157 "add r23, r0 \n\t" 15158 "adc r24, r1 \n\t" 15159 "adc r22, r25 \n\t" 15160 "mul r7, r11 \n\t" 15161 "add r23, r0 \n\t" 15162 "adc r24, r1 \n\t" 15163 "adc r22, r25 \n\t" 15164 "mul r8, r10 \n\t" 15165 "add r23, r0 \n\t" 15166 "adc r24, r1 \n\t" 15167 "adc r22, r25 \n\t" 15168 "lsl r23 \n\t" 15169 "rol r24 \n\t" 15170 "rol r22 \n\t" 15171 "mul r9, r9 \n\t" 15172 "add r23, r0 \n\t" 15173 "adc r24, r1 \n\t" 15174 "adc r22, r25 \n\t" 15175 "add r23, r28 \n\t" 15176 "adc r24, r29 \n\t" 15177 "adc r22, r25 \n\t" 15178 "st z+, r23 \n\t" 15179 15180 "ldi r29, 0 \n\t" 15181 "mul r2, r17 \n\t" 15182 "mov r23, r0 \n\t" 15183 "mov r28, r1 \n\t" 15184 "mul r3, r16 \n\t" 15185 "add r23, r0 \n\t" 15186 "adc r28, r1 \n\t" 15187 "adc r29, r25 \n\t" 15188 "mul r4, r15 \n\t" 15189 "add r23, r0 \n\t" 15190 "adc r28, r1 \n\t" 15191 "adc r29, r25 \n\t" 15192 "mul r5, r14 \n\t" 15193 "add r23, r0 \n\t" 15194 "adc r28, r1 \n\t" 15195 "adc r29, r25 \n\t" 15196 "mul r6, r13 \n\t" 15197 "add r23, r0 \n\t" 15198 "adc r28, r1 \n\t" 15199 "adc r29, r25 \n\t" 15200 "mul r7, r12 \n\t" 15201 "add r23, r0 \n\t" 15202 "adc r28, r1 \n\t" 15203 "adc r29, r25 \n\t" 15204 "mul r8, r11 \n\t" 15205 "add r23, r0 \n\t" 15206 "adc r28, r1 \n\t" 15207 "adc r29, r25 \n\t" 15208 "mul r9, r10 \n\t" 15209 "add r23, r0 \n\t" 15210 "adc r28, r1 \n\t" 15211 "adc r29, r25 \n\t" 15212 "lsl r23 \n\t" 15213 "rol r28 \n\t" 15214 "rol r29 \n\t" 15215 "add r23, r24 \n\t" 15216 "adc r28, r22 \n\t" 15217 "adc r29, r25 \n\t" 15218 "st z+, r23 \n\t" 15219 15220 "ldi r22, 0 \n\t" 15221 "mul r2, r18 \n\t" 15222 "mov r23, r0 \n\t" 15223 "mov r24, r1 \n\t" 15224 "mul r3, r17 \n\t" 15225 "add r23, r0 \n\t" 15226 "adc r24, r1 \n\t" 15227 "adc r22, r25 \n\t" 15228 "mul r4, r16 \n\t" 15229 "add r23, r0 \n\t" 15230 "adc r24, r1 \n\t" 15231 "adc r22, r25 \n\t" 15232 "mul r5, r15 \n\t" 15233 "add r23, r0 \n\t" 15234 "adc r24, r1 \n\t" 15235 "adc r22, r25 \n\t" 15236 "mul r6, r14 \n\t" 15237 "add r23, r0 \n\t" 15238 "adc r24, r1 \n\t" 15239 "adc r22, r25 \n\t" 15240 "mul r7, r13 \n\t" 15241 "add r23, r0 \n\t" 15242 "adc r24, r1 \n\t" 15243 "adc r22, r25 \n\t" 15244 "mul r8, r12 \n\t" 15245 "add r23, r0 \n\t" 15246 "adc r24, r1 \n\t" 15247 "adc r22, r25 \n\t" 15248 "mul r9, r11 \n\t" 15249 "add r23, r0 \n\t" 15250 "adc r24, r1 \n\t" 15251 "adc r22, r25 \n\t" 15252 "lsl r23 \n\t" 15253 "rol r24 \n\t" 15254 "rol r22 \n\t" 15255 "mul r10, r10 \n\t" 15256 "add r23, r0 \n\t" 15257 "adc r24, r1 \n\t" 15258 "adc r22, r25 \n\t" 15259 "add r23, r28 \n\t" 15260 "adc r24, r29 \n\t" 15261 "adc r22, r25 \n\t" 15262 "st z+, r23 \n\t" 15263 15264 "ldi r29, 0 \n\t" 15265 "mul r2, r19 \n\t" 15266 "mov r23, r0 \n\t" 15267 "mov r28, r1 \n\t" 15268 "mul r3, r18 \n\t" 15269 "add r23, r0 \n\t" 15270 "adc r28, r1 \n\t" 15271 "adc r29, r25 \n\t" 15272 "mul r4, r17 \n\t" 15273 "add r23, r0 \n\t" 15274 "adc r28, r1 \n\t" 15275 "adc r29, r25 \n\t" 15276 "mul r5, r16 \n\t" 15277 "add r23, r0 \n\t" 15278 "adc r28, r1 \n\t" 15279 "adc r29, r25 \n\t" 15280 "mul r6, r15 \n\t" 15281 "add r23, r0 \n\t" 15282 "adc r28, r1 \n\t" 15283 "adc r29, r25 \n\t" 15284 "mul r7, r14 \n\t" 15285 "add r23, r0 \n\t" 15286 "adc r28, r1 \n\t" 15287 "adc r29, r25 \n\t" 15288 "mul r8, r13 \n\t" 15289 "add r23, r0 \n\t" 15290 "adc r28, r1 \n\t" 15291 "adc r29, r25 \n\t" 15292 "mul r9, r12 \n\t" 15293 "add r23, r0 \n\t" 15294 "adc r28, r1 \n\t" 15295 "adc r29, r25 \n\t" 15296 "mul r10, r11 \n\t" 15297 "add r23, r0 \n\t" 15298 "adc r28, r1 \n\t" 15299 "adc r29, r25 \n\t" 15300 "lsl r23 \n\t" 15301 "rol r28 \n\t" 15302 "rol r29 \n\t" 15303 "add r23, r24 \n\t" 15304 "adc r28, r22 \n\t" 15305 "adc r29, r25 \n\t" 15306 "st z+, r23 \n\t" 15307 15308 "ldi r22, 0 \n\t" 15309 "mul r2, r20 \n\t" 15310 "mov r23, r0 \n\t" 15311 "mov r24, r1 \n\t" 15312 "mul r3, r19 \n\t" 15313 "add r23, r0 \n\t" 15314 "adc r24, r1 \n\t" 15315 "adc r22, r25 \n\t" 15316 "mul r4, r18 \n\t" 15317 "add r23, r0 \n\t" 15318 "adc r24, r1 \n\t" 15319 "adc r22, r25 \n\t" 15320 "mul r5, r17 \n\t" 15321 "add r23, r0 \n\t" 15322 "adc r24, r1 \n\t" 15323 "adc r22, r25 \n\t" 15324 "mul r6, r16 \n\t" 15325 "add r23, r0 \n\t" 15326 "adc r24, r1 \n\t" 15327 "adc r22, r25 \n\t" 15328 "mul r7, r15 \n\t" 15329 "add r23, r0 \n\t" 15330 "adc r24, r1 \n\t" 15331 "adc r22, r25 \n\t" 15332 "mul r8, r14 \n\t" 15333 "add r23, r0 \n\t" 15334 "adc r24, r1 \n\t" 15335 "adc r22, r25 \n\t" 15336 "mul r9, r13 \n\t" 15337 "add r23, r0 \n\t" 15338 "adc r24, r1 \n\t" 15339 "adc r22, r25 \n\t" 15340 "mul r10, r12 \n\t" 15341 "add r23, r0 \n\t" 15342 "adc r24, r1 \n\t" 15343 "adc r22, r25 \n\t" 15344 "lsl r23 \n\t" 15345 "rol r24 \n\t" 15346 "rol r22 \n\t" 15347 "mul r11, r11 \n\t" 15348 "add r23, r0 \n\t" 15349 "adc r24, r1 \n\t" 15350 "adc r22, r25 \n\t" 15351 "add r23, r28 \n\t" 15352 "adc r24, r29 \n\t" 15353 "adc r22, r25 \n\t" 15354 "st z+, r23 \n\t" 15355 15356 "ldi r29, 0 \n\t" 15357 "mul r2, r21 \n\t" 15358 "mov r23, r0 \n\t" 15359 "mov r28, r1 \n\t" 15360 "mul r3, r20 \n\t" 15361 "add r23, r0 \n\t" 15362 "adc r28, r1 \n\t" 15363 "adc r29, r25 \n\t" 15364 "mul r4, r19 \n\t" 15365 "add r23, r0 \n\t" 15366 "adc r28, r1 \n\t" 15367 "adc r29, r25 \n\t" 15368 "mul r5, r18 \n\t" 15369 "add r23, r0 \n\t" 15370 "adc r28, r1 \n\t" 15371 "adc r29, r25 \n\t" 15372 "mul r6, r17 \n\t" 15373 "add r23, r0 \n\t" 15374 "adc r28, r1 \n\t" 15375 "adc r29, r25 \n\t" 15376 "mul r7, r16 \n\t" 15377 "add r23, r0 \n\t" 15378 "adc r28, r1 \n\t" 15379 "adc r29, r25 \n\t" 15380 "mul r8, r15 \n\t" 15381 "add r23, r0 \n\t" 15382 "adc r28, r1 \n\t" 15383 "adc r29, r25 \n\t" 15384 "mul r9, r14 \n\t" 15385 "add r23, r0 \n\t" 15386 "adc r28, r1 \n\t" 15387 "adc r29, r25 \n\t" 15388 "mul r10, r13 \n\t" 15389 "add r23, r0 \n\t" 15390 "adc r28, r1 \n\t" 15391 "adc r29, r25 \n\t" 15392 "mul r11, r12 \n\t" 15393 "add r23, r0 \n\t" 15394 "adc r28, r1 \n\t" 15395 "adc r29, r25 \n\t" 15396 "lsl r23 \n\t" 15397 "rol r28 \n\t" 15398 "rol r29 \n\t" 15399 "add r23, r24 \n\t" 15400 "adc r28, r22 \n\t" 15401 "adc r29, r25 \n\t" 15402 "st z+, r23 \n\t" 15403 15404 "ld r2, x+ \n\t" 15405 "ldi r22, 0 \n\t" 15406 "mul r3, r21 \n\t" 15407 "mov r23, r0 \n\t" 15408 "mov r24, r1 \n\t" 15409 "mul r4, r20 \n\t" 15410 "add r23, r0 \n\t" 15411 "adc r24, r1 \n\t" 15412 "adc r22, r25 \n\t" 15413 "mul r5, r19 \n\t" 15414 "add r23, r0 \n\t" 15415 "adc r24, r1 \n\t" 15416 "adc r22, r25 \n\t" 15417 "mul r6, r18 \n\t" 15418 "add r23, r0 \n\t" 15419 "adc r24, r1 \n\t" 15420 "adc r22, r25 \n\t" 15421 "mul r7, r17 \n\t" 15422 "add r23, r0 \n\t" 15423 "adc r24, r1 \n\t" 15424 "adc r22, r25 \n\t" 15425 "mul r8, r16 \n\t" 15426 "add r23, r0 \n\t" 15427 "adc r24, r1 \n\t" 15428 "adc r22, r25 \n\t" 15429 "mul r9, r15 \n\t" 15430 "add r23, r0 \n\t" 15431 "adc r24, r1 \n\t" 15432 "adc r22, r25 \n\t" 15433 "mul r10, r14 \n\t" 15434 "add r23, r0 \n\t" 15435 "adc r24, r1 \n\t" 15436 "adc r22, r25 \n\t" 15437 "mul r11, r13 \n\t" 15438 "add r23, r0 \n\t" 15439 "adc r24, r1 \n\t" 15440 "adc r22, r25 \n\t" 15441 "ld r0, z \n\t" 15442 "add r23, r0 \n\t" 15443 "adc r24, r25 \n\t" 15444 "adc r22, r25 \n\t" 15445 "lsl r23 \n\t" 15446 "rol r24 \n\t" 15447 "rol r22 \n\t" 15448 "mul r12, r12 \n\t" 15449 "add r23, r0 \n\t" 15450 "adc r24, r1 \n\t" 15451 "adc r22, r25 \n\t" 15452 "add r23, r28 \n\t" 15453 "adc r24, r29 \n\t" 15454 "adc r22, r25 \n\t" 15455 "st z+, r23 \n\t" 15456 15457 "ldi r29, 0 \n\t" 15458 "mul r3, r2 \n\t" 15459 "mov r23, r0 \n\t" 15460 "mov r28, r1 \n\t" 15461 "mul r4, r21 \n\t" 15462 "add r23, r0 \n\t" 15463 "adc r28, r1 \n\t" 15464 "adc r29, r25 \n\t" 15465 "mul r5, r20 \n\t" 15466 "add r23, r0 \n\t" 15467 "adc r28, r1 \n\t" 15468 "adc r29, r25 \n\t" 15469 "mul r6, r19 \n\t" 15470 "add r23, r0 \n\t" 15471 "adc r28, r1 \n\t" 15472 "adc r29, r25 \n\t" 15473 "mul r7, r18 \n\t" 15474 "add r23, r0 \n\t" 15475 "adc r28, r1 \n\t" 15476 "adc r29, r25 \n\t" 15477 "mul r8, r17 \n\t" 15478 "add r23, r0 \n\t" 15479 "adc r28, r1 \n\t" 15480 "adc r29, r25 \n\t" 15481 "mul r9, r16 \n\t" 15482 "add r23, r0 \n\t" 15483 "adc r28, r1 \n\t" 15484 "adc r29, r25 \n\t" 15485 "mul r10, r15 \n\t" 15486 "add r23, r0 \n\t" 15487 "adc r28, r1 \n\t" 15488 "adc r29, r25 \n\t" 15489 "mul r11, r14 \n\t" 15490 "add r23, r0 \n\t" 15491 "adc r28, r1 \n\t" 15492 "adc r29, r25 \n\t" 15493 "mul r12, r13 \n\t" 15494 "add r23, r0 \n\t" 15495 "adc r28, r1 \n\t" 15496 "adc r29, r25 \n\t" 15497 "ld r0, z \n\t" 15498 "add r23, r0 \n\t" 15499 "adc r28, r25 \n\t" 15500 "adc r29, r25 \n\t" 15501 "lsl r23 \n\t" 15502 "rol r28 \n\t" 15503 "rol r29 \n\t" 15504 "add r23, r24 \n\t" 15505 "adc r28, r22 \n\t" 15506 "adc r29, r25 \n\t" 15507 "st z+, r23 \n\t" 15508 15509 "ld r3, x+ \n\t" 15510 "ldi r22, 0 \n\t" 15511 "mul r4, r2 \n\t" 15512 "mov r23, r0 \n\t" 15513 "mov r24, r1 \n\t" 15514 "mul r5, r21 \n\t" 15515 "add r23, r0 \n\t" 15516 "adc r24, r1 \n\t" 15517 "adc r22, r25 \n\t" 15518 "mul r6, r20 \n\t" 15519 "add r23, r0 \n\t" 15520 "adc r24, r1 \n\t" 15521 "adc r22, r25 \n\t" 15522 "mul r7, r19 \n\t" 15523 "add r23, r0 \n\t" 15524 "adc r24, r1 \n\t" 15525 "adc r22, r25 \n\t" 15526 "mul r8, r18 \n\t" 15527 "add r23, r0 \n\t" 15528 "adc r24, r1 \n\t" 15529 "adc r22, r25 \n\t" 15530 "mul r9, r17 \n\t" 15531 "add r23, r0 \n\t" 15532 "adc r24, r1 \n\t" 15533 "adc r22, r25 \n\t" 15534 "mul r10, r16 \n\t" 15535 "add r23, r0 \n\t" 15536 "adc r24, r1 \n\t" 15537 "adc r22, r25 \n\t" 15538 "mul r11, r15 \n\t" 15539 "add r23, r0 \n\t" 15540 "adc r24, r1 \n\t" 15541 "adc r22, r25 \n\t" 15542 "mul r12, r14 \n\t" 15543 "add r23, r0 \n\t" 15544 "adc r24, r1 \n\t" 15545 "adc r22, r25 \n\t" 15546 "ld r0, z \n\t" 15547 "add r23, r0 \n\t" 15548 "adc r24, r25 \n\t" 15549 "adc r22, r25 \n\t" 15550 "lsl r23 \n\t" 15551 "rol r24 \n\t" 15552 "rol r22 \n\t" 15553 "mul r13, r13 \n\t" 15554 "add r23, r0 \n\t" 15555 "adc r24, r1 \n\t" 15556 "adc r22, r25 \n\t" 15557 "add r23, r28 \n\t" 15558 "adc r24, r29 \n\t" 15559 "adc r22, r25 \n\t" 15560 "st z+, r23 \n\t" 15561 15562 "ldi r29, 0 \n\t" 15563 "mul r4, r3 \n\t" 15564 "mov r23, r0 \n\t" 15565 "mov r28, r1 \n\t" 15566 "mul r5, r2 \n\t" 15567 "add r23, r0 \n\t" 15568 "adc r28, r1 \n\t" 15569 "adc r29, r25 \n\t" 15570 "mul r6, r21 \n\t" 15571 "add r23, r0 \n\t" 15572 "adc r28, r1 \n\t" 15573 "adc r29, r25 \n\t" 15574 "mul r7, r20 \n\t" 15575 "add r23, r0 \n\t" 15576 "adc r28, r1 \n\t" 15577 "adc r29, r25 \n\t" 15578 "mul r8, r19 \n\t" 15579 "add r23, r0 \n\t" 15580 "adc r28, r1 \n\t" 15581 "adc r29, r25 \n\t" 15582 "mul r9, r18 \n\t" 15583 "add r23, r0 \n\t" 15584 "adc r28, r1 \n\t" 15585 "adc r29, r25 \n\t" 15586 "mul r10, r17 \n\t" 15587 "add r23, r0 \n\t" 15588 "adc r28, r1 \n\t" 15589 "adc r29, r25 \n\t" 15590 "mul r11, r16 \n\t" 15591 "add r23, r0 \n\t" 15592 "adc r28, r1 \n\t" 15593 "adc r29, r25 \n\t" 15594 "mul r12, r15 \n\t" 15595 "add r23, r0 \n\t" 15596 "adc r28, r1 \n\t" 15597 "adc r29, r25 \n\t" 15598 "mul r13, r14 \n\t" 15599 "add r23, r0 \n\t" 15600 "adc r28, r1 \n\t" 15601 "adc r29, r25 \n\t" 15602 "ld r0, z \n\t" 15603 "add r23, r0 \n\t" 15604 "adc r28, r25 \n\t" 15605 "adc r29, r25 \n\t" 15606 "lsl r23 \n\t" 15607 "rol r28 \n\t" 15608 "rol r29 \n\t" 15609 "add r23, r24 \n\t" 15610 "adc r28, r22 \n\t" 15611 "adc r29, r25 \n\t" 15612 "st z+, r23 \n\t" 15613 15614 "ld r4, x+ \n\t" 15615 "ldi r22, 0 \n\t" 15616 "mul r5, r3 \n\t" 15617 "mov r23, r0 \n\t" 15618 "mov r24, r1 \n\t" 15619 "mul r6, r2 \n\t" 15620 "add r23, r0 \n\t" 15621 "adc r24, r1 \n\t" 15622 "adc r22, r25 \n\t" 15623 "mul r7, r21 \n\t" 15624 "add r23, r0 \n\t" 15625 "adc r24, r1 \n\t" 15626 "adc r22, r25 \n\t" 15627 "mul r8, r20 \n\t" 15628 "add r23, r0 \n\t" 15629 "adc r24, r1 \n\t" 15630 "adc r22, r25 \n\t" 15631 "mul r9, r19 \n\t" 15632 "add r23, r0 \n\t" 15633 "adc r24, r1 \n\t" 15634 "adc r22, r25 \n\t" 15635 "mul r10, r18 \n\t" 15636 "add r23, r0 \n\t" 15637 "adc r24, r1 \n\t" 15638 "adc r22, r25 \n\t" 15639 "mul r11, r17 \n\t" 15640 "add r23, r0 \n\t" 15641 "adc r24, r1 \n\t" 15642 "adc r22, r25 \n\t" 15643 "mul r12, r16 \n\t" 15644 "add r23, r0 \n\t" 15645 "adc r24, r1 \n\t" 15646 "adc r22, r25 \n\t" 15647 "mul r13, r15 \n\t" 15648 "add r23, r0 \n\t" 15649 "adc r24, r1 \n\t" 15650 "adc r22, r25 \n\t" 15651 "ld r0, z \n\t" 15652 "add r23, r0 \n\t" 15653 "adc r24, r25 \n\t" 15654 "adc r22, r25 \n\t" 15655 "lsl r23 \n\t" 15656 "rol r24 \n\t" 15657 "rol r22 \n\t" 15658 "mul r14, r14 \n\t" 15659 "add r23, r0 \n\t" 15660 "adc r24, r1 \n\t" 15661 "adc r22, r25 \n\t" 15662 "add r23, r28 \n\t" 15663 "adc r24, r29 \n\t" 15664 "adc r22, r25 \n\t" 15665 "st z+, r23 \n\t" 15666 15667 "ldi r29, 0 \n\t" 15668 "mul r5, r4 \n\t" 15669 "mov r23, r0 \n\t" 15670 "mov r28, r1 \n\t" 15671 "mul r6, r3 \n\t" 15672 "add r23, r0 \n\t" 15673 "adc r28, r1 \n\t" 15674 "adc r29, r25 \n\t" 15675 "mul r7, r2 \n\t" 15676 "add r23, r0 \n\t" 15677 "adc r28, r1 \n\t" 15678 "adc r29, r25 \n\t" 15679 "mul r8, r21 \n\t" 15680 "add r23, r0 \n\t" 15681 "adc r28, r1 \n\t" 15682 "adc r29, r25 \n\t" 15683 "mul r9, r20 \n\t" 15684 "add r23, r0 \n\t" 15685 "adc r28, r1 \n\t" 15686 "adc r29, r25 \n\t" 15687 "mul r10, r19 \n\t" 15688 "add r23, r0 \n\t" 15689 "adc r28, r1 \n\t" 15690 "adc r29, r25 \n\t" 15691 "mul r11, r18 \n\t" 15692 "add r23, r0 \n\t" 15693 "adc r28, r1 \n\t" 15694 "adc r29, r25 \n\t" 15695 "mul r12, r17 \n\t" 15696 "add r23, r0 \n\t" 15697 "adc r28, r1 \n\t" 15698 "adc r29, r25 \n\t" 15699 "mul r13, r16 \n\t" 15700 "add r23, r0 \n\t" 15701 "adc r28, r1 \n\t" 15702 "adc r29, r25 \n\t" 15703 "mul r14, r15 \n\t" 15704 "add r23, r0 \n\t" 15705 "adc r28, r1 \n\t" 15706 "adc r29, r25 \n\t" 15707 "ld r0, z \n\t" 15708 "add r23, r0 \n\t" 15709 "adc r28, r25 \n\t" 15710 "adc r29, r25 \n\t" 15711 "lsl r23 \n\t" 15712 "rol r28 \n\t" 15713 "rol r29 \n\t" 15714 "add r23, r24 \n\t" 15715 "adc r28, r22 \n\t" 15716 "adc r29, r25 \n\t" 15717 "st z+, r23 \n\t" 15718 15719 "ld r5, x+ \n\t" 15720 "ldi r22, 0 \n\t" 15721 "mul r6, r4 \n\t" 15722 "mov r23, r0 \n\t" 15723 "mov r24, r1 \n\t" 15724 "mul r7, r3 \n\t" 15725 "add r23, r0 \n\t" 15726 "adc r24, r1 \n\t" 15727 "adc r22, r25 \n\t" 15728 "mul r8, r2 \n\t" 15729 "add r23, r0 \n\t" 15730 "adc r24, r1 \n\t" 15731 "adc r22, r25 \n\t" 15732 "mul r9, r21 \n\t" 15733 "add r23, r0 \n\t" 15734 "adc r24, r1 \n\t" 15735 "adc r22, r25 \n\t" 15736 "mul r10, r20 \n\t" 15737 "add r23, r0 \n\t" 15738 "adc r24, r1 \n\t" 15739 "adc r22, r25 \n\t" 15740 "mul r11, r19 \n\t" 15741 "add r23, r0 \n\t" 15742 "adc r24, r1 \n\t" 15743 "adc r22, r25 \n\t" 15744 "mul r12, r18 \n\t" 15745 "add r23, r0 \n\t" 15746 "adc r24, r1 \n\t" 15747 "adc r22, r25 \n\t" 15748 "mul r13, r17 \n\t" 15749 "add r23, r0 \n\t" 15750 "adc r24, r1 \n\t" 15751 "adc r22, r25 \n\t" 15752 "mul r14, r16 \n\t" 15753 "add r23, r0 \n\t" 15754 "adc r24, r1 \n\t" 15755 "adc r22, r25 \n\t" 15756 "ld r0, z \n\t" 15757 "add r23, r0 \n\t" 15758 "adc r24, r25 \n\t" 15759 "adc r22, r25 \n\t" 15760 "lsl r23 \n\t" 15761 "rol r24 \n\t" 15762 "rol r22 \n\t" 15763 "mul r15, r15 \n\t" 15764 "add r23, r0 \n\t" 15765 "adc r24, r1 \n\t" 15766 "adc r22, r25 \n\t" 15767 "add r23, r28 \n\t" 15768 "adc r24, r29 \n\t" 15769 "adc r22, r25 \n\t" 15770 "st z+, r23 \n\t" 15771 15772 "ldi r29, 0 \n\t" 15773 "mul r6, r5 \n\t" 15774 "mov r23, r0 \n\t" 15775 "mov r28, r1 \n\t" 15776 "mul r7, r4 \n\t" 15777 "add r23, r0 \n\t" 15778 "adc r28, r1 \n\t" 15779 "adc r29, r25 \n\t" 15780 "mul r8, r3 \n\t" 15781 "add r23, r0 \n\t" 15782 "adc r28, r1 \n\t" 15783 "adc r29, r25 \n\t" 15784 "mul r9, r2 \n\t" 15785 "add r23, r0 \n\t" 15786 "adc r28, r1 \n\t" 15787 "adc r29, r25 \n\t" 15788 "mul r10, r21 \n\t" 15789 "add r23, r0 \n\t" 15790 "adc r28, r1 \n\t" 15791 "adc r29, r25 \n\t" 15792 "mul r11, r20 \n\t" 15793 "add r23, r0 \n\t" 15794 "adc r28, r1 \n\t" 15795 "adc r29, r25 \n\t" 15796 "mul r12, r19 \n\t" 15797 "add r23, r0 \n\t" 15798 "adc r28, r1 \n\t" 15799 "adc r29, r25 \n\t" 15800 "mul r13, r18 \n\t" 15801 "add r23, r0 \n\t" 15802 "adc r28, r1 \n\t" 15803 "adc r29, r25 \n\t" 15804 "mul r14, r17 \n\t" 15805 "add r23, r0 \n\t" 15806 "adc r28, r1 \n\t" 15807 "adc r29, r25 \n\t" 15808 "mul r15, r16 \n\t" 15809 "add r23, r0 \n\t" 15810 "adc r28, r1 \n\t" 15811 "adc r29, r25 \n\t" 15812 "ld r0, z \n\t" 15813 "add r23, r0 \n\t" 15814 "adc r28, r25 \n\t" 15815 "adc r29, r25 \n\t" 15816 "lsl r23 \n\t" 15817 "rol r28 \n\t" 15818 "rol r29 \n\t" 15819 "add r23, r24 \n\t" 15820 "adc r28, r22 \n\t" 15821 "adc r29, r25 \n\t" 15822 "st z+, r23 \n\t" 15823 15824 "ldi r22, 0 \n\t" 15825 "mul r7, r5 \n\t" 15826 "mov r23, r0 \n\t" 15827 "mov r24, r1 \n\t" 15828 "mul r8, r4 \n\t" 15829 "add r23, r0 \n\t" 15830 "adc r24, r1 \n\t" 15831 "adc r22, r25 \n\t" 15832 "mul r9, r3 \n\t" 15833 "add r23, r0 \n\t" 15834 "adc r24, r1 \n\t" 15835 "adc r22, r25 \n\t" 15836 "mul r10, r2 \n\t" 15837 "add r23, r0 \n\t" 15838 "adc r24, r1 \n\t" 15839 "adc r22, r25 \n\t" 15840 "mul r11, r21 \n\t" 15841 "add r23, r0 \n\t" 15842 "adc r24, r1 \n\t" 15843 "adc r22, r25 \n\t" 15844 "mul r12, r20 \n\t" 15845 "add r23, r0 \n\t" 15846 "adc r24, r1 \n\t" 15847 "adc r22, r25 \n\t" 15848 "mul r13, r19 \n\t" 15849 "add r23, r0 \n\t" 15850 "adc r24, r1 \n\t" 15851 "adc r22, r25 \n\t" 15852 "mul r14, r18 \n\t" 15853 "add r23, r0 \n\t" 15854 "adc r24, r1 \n\t" 15855 "adc r22, r25 \n\t" 15856 "mul r15, r17 \n\t" 15857 "add r23, r0 \n\t" 15858 "adc r24, r1 \n\t" 15859 "adc r22, r25 \n\t" 15860 "lsl r23 \n\t" 15861 "rol r24 \n\t" 15862 "rol r22 \n\t" 15863 "mul r16, r16 \n\t" 15864 "add r23, r0 \n\t" 15865 "adc r24, r1 \n\t" 15866 "adc r22, r25 \n\t" 15867 "add r23, r28 \n\t" 15868 "adc r24, r29 \n\t" 15869 "adc r22, r25 \n\t" 15870 "st z+, r23 \n\t" 15871 15872 "ldi r29, 0 \n\t" 15873 "mul r8, r5 \n\t" 15874 "mov r23, r0 \n\t" 15875 "mov r28, r1 \n\t" 15876 "mul r9, r4 \n\t" 15877 "add r23, r0 \n\t" 15878 "adc r28, r1 \n\t" 15879 "adc r29, r25 \n\t" 15880 "mul r10, r3 \n\t" 15881 "add r23, r0 \n\t" 15882 "adc r28, r1 \n\t" 15883 "adc r29, r25 \n\t" 15884 "mul r11, r2 \n\t" 15885 "add r23, r0 \n\t" 15886 "adc r28, r1 \n\t" 15887 "adc r29, r25 \n\t" 15888 "mul r12, r21 \n\t" 15889 "add r23, r0 \n\t" 15890 "adc r28, r1 \n\t" 15891 "adc r29, r25 \n\t" 15892 "mul r13, r20 \n\t" 15893 "add r23, r0 \n\t" 15894 "adc r28, r1 \n\t" 15895 "adc r29, r25 \n\t" 15896 "mul r14, r19 \n\t" 15897 "add r23, r0 \n\t" 15898 "adc r28, r1 \n\t" 15899 "adc r29, r25 \n\t" 15900 "mul r15, r18 \n\t" 15901 "add r23, r0 \n\t" 15902 "adc r28, r1 \n\t" 15903 "adc r29, r25 \n\t" 15904 "mul r16, r17 \n\t" 15905 "add r23, r0 \n\t" 15906 "adc r28, r1 \n\t" 15907 "adc r29, r25 \n\t" 15908 "lsl r23 \n\t" 15909 "rol r28 \n\t" 15910 "rol r29 \n\t" 15911 "add r23, r24 \n\t" 15912 "adc r28, r22 \n\t" 15913 "adc r29, r25 \n\t" 15914 "st z+, r23 \n\t" 15915 15916 "ldi r22, 0 \n\t" 15917 "mul r9, r5 \n\t" 15918 "mov r23, r0 \n\t" 15919 "mov r24, r1 \n\t" 15920 "mul r10, r4 \n\t" 15921 "add r23, r0 \n\t" 15922 "adc r24, r1 \n\t" 15923 "adc r22, r25 \n\t" 15924 "mul r11, r3 \n\t" 15925 "add r23, r0 \n\t" 15926 "adc r24, r1 \n\t" 15927 "adc r22, r25 \n\t" 15928 "mul r12, r2 \n\t" 15929 "add r23, r0 \n\t" 15930 "adc r24, r1 \n\t" 15931 "adc r22, r25 \n\t" 15932 "mul r13, r21 \n\t" 15933 "add r23, r0 \n\t" 15934 "adc r24, r1 \n\t" 15935 "adc r22, r25 \n\t" 15936 "mul r14, r20 \n\t" 15937 "add r23, r0 \n\t" 15938 "adc r24, r1 \n\t" 15939 "adc r22, r25 \n\t" 15940 "mul r15, r19 \n\t" 15941 "add r23, r0 \n\t" 15942 "adc r24, r1 \n\t" 15943 "adc r22, r25 \n\t" 15944 "mul r16, r18 \n\t" 15945 "add r23, r0 \n\t" 15946 "adc r24, r1 \n\t" 15947 "adc r22, r25 \n\t" 15948 "lsl r23 \n\t" 15949 "rol r24 \n\t" 15950 "rol r22 \n\t" 15951 "mul r17, r17 \n\t" 15952 "add r23, r0 \n\t" 15953 "adc r24, r1 \n\t" 15954 "adc r22, r25 \n\t" 15955 "add r23, r28 \n\t" 15956 "adc r24, r29 \n\t" 15957 "adc r22, r25 \n\t" 15958 "st z+, r23 \n\t" 15959 15960 "ldi r29, 0 \n\t" 15961 "mul r10, r5 \n\t" 15962 "mov r23, r0 \n\t" 15963 "mov r28, r1 \n\t" 15964 "mul r11, r4 \n\t" 15965 "add r23, r0 \n\t" 15966 "adc r28, r1 \n\t" 15967 "adc r29, r25 \n\t" 15968 "mul r12, r3 \n\t" 15969 "add r23, r0 \n\t" 15970 "adc r28, r1 \n\t" 15971 "adc r29, r25 \n\t" 15972 "mul r13, r2 \n\t" 15973 "add r23, r0 \n\t" 15974 "adc r28, r1 \n\t" 15975 "adc r29, r25 \n\t" 15976 "mul r14, r21 \n\t" 15977 "add r23, r0 \n\t" 15978 "adc r28, r1 \n\t" 15979 "adc r29, r25 \n\t" 15980 "mul r15, r20 \n\t" 15981 "add r23, r0 \n\t" 15982 "adc r28, r1 \n\t" 15983 "adc r29, r25 \n\t" 15984 "mul r16, r19 \n\t" 15985 "add r23, r0 \n\t" 15986 "adc r28, r1 \n\t" 15987 "adc r29, r25 \n\t" 15988 "mul r17, r18 \n\t" 15989 "add r23, r0 \n\t" 15990 "adc r28, r1 \n\t" 15991 "adc r29, r25 \n\t" 15992 "lsl r23 \n\t" 15993 "rol r28 \n\t" 15994 "rol r29 \n\t" 15995 "add r23, r24 \n\t" 15996 "adc r28, r22 \n\t" 15997 "adc r29, r25 \n\t" 15998 "st z+, r23 \n\t" 15999 16000 "ldi r22, 0 \n\t" 16001 "mul r11, r5 \n\t" 16002 "mov r23, r0 \n\t" 16003 "mov r24, r1 \n\t" 16004 "mul r12, r4 \n\t" 16005 "add r23, r0 \n\t" 16006 "adc r24, r1 \n\t" 16007 "adc r22, r25 \n\t" 16008 "mul r13, r3 \n\t" 16009 "add r23, r0 \n\t" 16010 "adc r24, r1 \n\t" 16011 "adc r22, r25 \n\t" 16012 "mul r14, r2 \n\t" 16013 "add r23, r0 \n\t" 16014 "adc r24, r1 \n\t" 16015 "adc r22, r25 \n\t" 16016 "mul r15, r21 \n\t" 16017 "add r23, r0 \n\t" 16018 "adc r24, r1 \n\t" 16019 "adc r22, r25 \n\t" 16020 "mul r16, r20 \n\t" 16021 "add r23, r0 \n\t" 16022 "adc r24, r1 \n\t" 16023 "adc r22, r25 \n\t" 16024 "mul r17, r19 \n\t" 16025 "add r23, r0 \n\t" 16026 "adc r24, r1 \n\t" 16027 "adc r22, r25 \n\t" 16028 "lsl r23 \n\t" 16029 "rol r24 \n\t" 16030 "rol r22 \n\t" 16031 "mul r18, r18 \n\t" 16032 "add r23, r0 \n\t" 16033 "adc r24, r1 \n\t" 16034 "adc r22, r25 \n\t" 16035 "add r23, r28 \n\t" 16036 "adc r24, r29 \n\t" 16037 "adc r22, r25 \n\t" 16038 "st z+, r23 \n\t" 16039 16040 "ldi r29, 0 \n\t" 16041 "mul r12, r5 \n\t" 16042 "mov r23, r0 \n\t" 16043 "mov r28, r1 \n\t" 16044 "mul r13, r4 \n\t" 16045 "add r23, r0 \n\t" 16046 "adc r28, r1 \n\t" 16047 "adc r29, r25 \n\t" 16048 "mul r14, r3 \n\t" 16049 "add r23, r0 \n\t" 16050 "adc r28, r1 \n\t" 16051 "adc r29, r25 \n\t" 16052 "mul r15, r2 \n\t" 16053 "add r23, r0 \n\t" 16054 "adc r28, r1 \n\t" 16055 "adc r29, r25 \n\t" 16056 "mul r16, r21 \n\t" 16057 "add r23, r0 \n\t" 16058 "adc r28, r1 \n\t" 16059 "adc r29, r25 \n\t" 16060 "mul r17, r20 \n\t" 16061 "add r23, r0 \n\t" 16062 "adc r28, r1 \n\t" 16063 "adc r29, r25 \n\t" 16064 "mul r18, r19 \n\t" 16065 "add r23, r0 \n\t" 16066 "adc r28, r1 \n\t" 16067 "adc r29, r25 \n\t" 16068 "lsl r23 \n\t" 16069 "rol r28 \n\t" 16070 "rol r29 \n\t" 16071 "add r23, r24 \n\t" 16072 "adc r28, r22 \n\t" 16073 "adc r29, r25 \n\t" 16074 "st z+, r23 \n\t" 16075 16076 "ldi r22, 0 \n\t" 16077 "mul r13, r5 \n\t" 16078 "mov r23, r0 \n\t" 16079 "mov r24, r1 \n\t" 16080 "mul r14, r4 \n\t" 16081 "add r23, r0 \n\t" 16082 "adc r24, r1 \n\t" 16083 "adc r22, r25 \n\t" 16084 "mul r15, r3 \n\t" 16085 "add r23, r0 \n\t" 16086 "adc r24, r1 \n\t" 16087 "adc r22, r25 \n\t" 16088 "mul r16, r2 \n\t" 16089 "add r23, r0 \n\t" 16090 "adc r24, r1 \n\t" 16091 "adc r22, r25 \n\t" 16092 "mul r17, r21 \n\t" 16093 "add r23, r0 \n\t" 16094 "adc r24, r1 \n\t" 16095 "adc r22, r25 \n\t" 16096 "mul r18, r20 \n\t" 16097 "add r23, r0 \n\t" 16098 "adc r24, r1 \n\t" 16099 "adc r22, r25 \n\t" 16100 "lsl r23 \n\t" 16101 "rol r24 \n\t" 16102 "rol r22 \n\t" 16103 "mul r19, r19 \n\t" 16104 "add r23, r0 \n\t" 16105 "adc r24, r1 \n\t" 16106 "adc r22, r25 \n\t" 16107 "add r23, r28 \n\t" 16108 "adc r24, r29 \n\t" 16109 "adc r22, r25 \n\t" 16110 "st z+, r23 \n\t" 16111 16112 "ldi r29, 0 \n\t" 16113 "mul r14, r5 \n\t" 16114 "mov r23, r0 \n\t" 16115 "mov r28, r1 \n\t" 16116 "mul r15, r4 \n\t" 16117 "add r23, r0 \n\t" 16118 "adc r28, r1 \n\t" 16119 "adc r29, r25 \n\t" 16120 "mul r16, r3 \n\t" 16121 "add r23, r0 \n\t" 16122 "adc r28, r1 \n\t" 16123 "adc r29, r25 \n\t" 16124 "mul r17, r2 \n\t" 16125 "add r23, r0 \n\t" 16126 "adc r28, r1 \n\t" 16127 "adc r29, r25 \n\t" 16128 "mul r18, r21 \n\t" 16129 "add r23, r0 \n\t" 16130 "adc r28, r1 \n\t" 16131 "adc r29, r25 \n\t" 16132 "mul r19, r20 \n\t" 16133 "add r23, r0 \n\t" 16134 "adc r28, r1 \n\t" 16135 "adc r29, r25 \n\t" 16136 "lsl r23 \n\t" 16137 "rol r28 \n\t" 16138 "rol r29 \n\t" 16139 "add r23, r24 \n\t" 16140 "adc r28, r22 \n\t" 16141 "adc r29, r25 \n\t" 16142 "st z+, r23 \n\t" 16143 16144 "ldi r22, 0 \n\t" 16145 "mul r15, r5 \n\t" 16146 "mov r23, r0 \n\t" 16147 "mov r24, r1 \n\t" 16148 "mul r16, r4 \n\t" 16149 "add r23, r0 \n\t" 16150 "adc r24, r1 \n\t" 16151 "adc r22, r25 \n\t" 16152 "mul r17, r3 \n\t" 16153 "add r23, r0 \n\t" 16154 "adc r24, r1 \n\t" 16155 "adc r22, r25 \n\t" 16156 "mul r18, r2 \n\t" 16157 "add r23, r0 \n\t" 16158 "adc r24, r1 \n\t" 16159 "adc r22, r25 \n\t" 16160 "mul r19, r21 \n\t" 16161 "add r23, r0 \n\t" 16162 "adc r24, r1 \n\t" 16163 "adc r22, r25 \n\t" 16164 "lsl r23 \n\t" 16165 "rol r24 \n\t" 16166 "rol r22 \n\t" 16167 "mul r20, r20 \n\t" 16168 "add r23, r0 \n\t" 16169 "adc r24, r1 \n\t" 16170 "adc r22, r25 \n\t" 16171 "add r23, r28 \n\t" 16172 "adc r24, r29 \n\t" 16173 "adc r22, r25 \n\t" 16174 "st z+, r23 \n\t" 16175 16176 "ldi r29, 0 \n\t" 16177 "mul r16, r5 \n\t" 16178 "mov r23, r0 \n\t" 16179 "mov r28, r1 \n\t" 16180 "mul r17, r4 \n\t" 16181 "add r23, r0 \n\t" 16182 "adc r28, r1 \n\t" 16183 "adc r29, r25 \n\t" 16184 "mul r18, r3 \n\t" 16185 "add r23, r0 \n\t" 16186 "adc r28, r1 \n\t" 16187 "adc r29, r25 \n\t" 16188 "mul r19, r2 \n\t" 16189 "add r23, r0 \n\t" 16190 "adc r28, r1 \n\t" 16191 "adc r29, r25 \n\t" 16192 "mul r20, r21 \n\t" 16193 "add r23, r0 \n\t" 16194 "adc r28, r1 \n\t" 16195 "adc r29, r25 \n\t" 16196 "lsl r23 \n\t" 16197 "rol r28 \n\t" 16198 "rol r29 \n\t" 16199 "add r23, r24 \n\t" 16200 "adc r28, r22 \n\t" 16201 "adc r29, r25 \n\t" 16202 "st z+, r23 \n\t" 16203 16204 "ldi r22, 0 \n\t" 16205 "mul r17, r5 \n\t" 16206 "mov r23, r0 \n\t" 16207 "mov r24, r1 \n\t" 16208 "mul r18, r4 \n\t" 16209 "add r23, r0 \n\t" 16210 "adc r24, r1 \n\t" 16211 "adc r22, r25 \n\t" 16212 "mul r19, r3 \n\t" 16213 "add r23, r0 \n\t" 16214 "adc r24, r1 \n\t" 16215 "adc r22, r25 \n\t" 16216 "mul r20, r2 \n\t" 16217 "add r23, r0 \n\t" 16218 "adc r24, r1 \n\t" 16219 "adc r22, r25 \n\t" 16220 "lsl r23 \n\t" 16221 "rol r24 \n\t" 16222 "rol r22 \n\t" 16223 "mul r21, r21 \n\t" 16224 "add r23, r0 \n\t" 16225 "adc r24, r1 \n\t" 16226 "adc r22, r25 \n\t" 16227 "add r23, r28 \n\t" 16228 "adc r24, r29 \n\t" 16229 "adc r22, r25 \n\t" 16230 "st z+, r23 \n\t" 16231 16232 "ldi r29, 0 \n\t" 16233 "mul r18, r5 \n\t" 16234 "mov r23, r0 \n\t" 16235 "mov r28, r1 \n\t" 16236 "mul r19, r4 \n\t" 16237 "add r23, r0 \n\t" 16238 "adc r28, r1 \n\t" 16239 "adc r29, r25 \n\t" 16240 "mul r20, r3 \n\t" 16241 "add r23, r0 \n\t" 16242 "adc r28, r1 \n\t" 16243 "adc r29, r25 \n\t" 16244 "mul r21, r2 \n\t" 16245 "add r23, r0 \n\t" 16246 "adc r28, r1 \n\t" 16247 "adc r29, r25 \n\t" 16248 "lsl r23 \n\t" 16249 "rol r28 \n\t" 16250 "rol r29 \n\t" 16251 "add r23, r24 \n\t" 16252 "adc r28, r22 \n\t" 16253 "adc r29, r25 \n\t" 16254 "st z+, r23 \n\t" 16255 16256 "ldi r22, 0 \n\t" 16257 "mul r19, r5 \n\t" 16258 "mov r23, r0 \n\t" 16259 "mov r24, r1 \n\t" 16260 "mul r20, r4 \n\t" 16261 "add r23, r0 \n\t" 16262 "adc r24, r1 \n\t" 16263 "adc r22, r25 \n\t" 16264 "mul r21, r3 \n\t" 16265 "add r23, r0 \n\t" 16266 "adc r24, r1 \n\t" 16267 "adc r22, r25 \n\t" 16268 "lsl r23 \n\t" 16269 "rol r24 \n\t" 16270 "rol r22 \n\t" 16271 "mul r2, r2 \n\t" 16272 "add r23, r0 \n\t" 16273 "adc r24, r1 \n\t" 16274 "adc r22, r25 \n\t" 16275 "add r23, r28 \n\t" 16276 "adc r24, r29 \n\t" 16277 "adc r22, r25 \n\t" 16278 "st z+, r23 \n\t" 16279 16280 "ldi r29, 0 \n\t" 16281 "mul r20, r5 \n\t" 16282 "mov r23, r0 \n\t" 16283 "mov r28, r1 \n\t" 16284 "mul r21, r4 \n\t" 16285 "add r23, r0 \n\t" 16286 "adc r28, r1 \n\t" 16287 "adc r29, r25 \n\t" 16288 "mul r2, r3 \n\t" 16289 "add r23, r0 \n\t" 16290 "adc r28, r1 \n\t" 16291 "adc r29, r25 \n\t" 16292 "lsl r23 \n\t" 16293 "rol r28 \n\t" 16294 "rol r29 \n\t" 16295 "add r23, r24 \n\t" 16296 "adc r28, r22 \n\t" 16297 "adc r29, r25 \n\t" 16298 "st z+, r23 \n\t" 16299 16300 "ldi r22, 0 \n\t" 16301 "mul r21, r5 \n\t" 16302 "mov r23, r0 \n\t" 16303 "mov r24, r1 \n\t" 16304 "mul r2, r4 \n\t" 16305 "add r23, r0 \n\t" 16306 "adc r24, r1 \n\t" 16307 "adc r22, r25 \n\t" 16308 "lsl r23 \n\t" 16309 "rol r24 \n\t" 16310 "rol r22 \n\t" 16311 "mul r3, r3 \n\t" 16312 "add r23, r0 \n\t" 16313 "adc r24, r1 \n\t" 16314 "adc r22, r25 \n\t" 16315 "add r23, r28 \n\t" 16316 "adc r24, r29 \n\t" 16317 "adc r22, r25 \n\t" 16318 "st z+, r23 \n\t" 16319 16320 "ldi r29, 0 \n\t" 16321 "mul r2, r5 \n\t" 16322 "mov r23, r0 \n\t" 16323 "mov r28, r1 \n\t" 16324 "mul r3, r4 \n\t" 16325 "add r23, r0 \n\t" 16326 "adc r28, r1 \n\t" 16327 "adc r29, r25 \n\t" 16328 "lsl r23 \n\t" 16329 "rol r28 \n\t" 16330 "rol r29 \n\t" 16331 "add r23, r24 \n\t" 16332 "adc r28, r22 \n\t" 16333 "adc r29, r25 \n\t" 16334 "st z+, r23 \n\t" 16335 16336 "ldi r23, 0 \n\t" 16337 "mul r3, r5 \n\t" 16338 "add r28, r0 \n\t" 16339 "adc r29, r1 \n\t" 16340 "adc r23, r25 \n\t" 16341 "add r28, r0 \n\t" 16342 "adc r29, r1 \n\t" 16343 "adc r23, r25 \n\t" 16344 "mul r4, r4 \n\t" 16345 "add r28, r0 \n\t" 16346 "adc r29, r1 \n\t" 16347 "adc r23, r25 \n\t" 16348 "st z+, r28 \n\t" 16349 16350 "ldi r28, 0 \n\t" 16351 "mul r4, r5 \n\t" 16352 "add r29, r0 \n\t" 16353 "adc r23, r1 \n\t" 16354 "adc r28, r25 \n\t" 16355 "add r29, r0 \n\t" 16356 "adc r23, r1 \n\t" 16357 "adc r28, r25 \n\t" 16358 "st z+, r29 \n\t" 16359 16360 "mul r5, r5 \n\t" 16361 "add r23, r0 \n\t" 16362 "adc r28, r1 \n\t" 16363 "st z+, r23 \n\t" 16364 "st z+, r28 \n\t" 16365 "eor r1, r1 \n\t" 16366 : "+x" (left), "+z" (result) 16367 : 16368 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 16369 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 16370 "r21", "r22", "r23", "r24", "r25", "r28", "r29", "cc", "memory" 16371 ); 16372} 16373#define asm_square 1 16374 16375#elif (uECC_BYTES == 28) 16376 16377__attribute((noinline)) 16378static void vli_square(uint8_t *result, const uint8_t *left) { 16379 __asm__ volatile ( 16380 "ldi r25, 0 \n\t" 16381 "movw r28, r26 \n\t" 16382 "ld r2, x+ \n\t" 16383 "ld r3, x+ \n\t" 16384 "ld r4, x+ \n\t" 16385 "ld r5, x+ \n\t" 16386 "adiw r28, 20 \n\t" 16387 "ld r12, y+ \n\t" 16388 "ld r13, y+ \n\t" 16389 "ld r14, y+ \n\t" 16390 "ld r15, y+ \n\t" 16391 "adiw r30, 20 \n\t" 16392 16393 "ldi r23, 0 \n\t" 16394 "mul 2, 12 \n\t" 16395 "st z+, r0 \n\t" 16396 "mov r22, r1 \n\t" 16397 16398 "ldi r24, 0 \n\t" 16399 "mul r2, r13 \n\t" 16400 "add r22, r0 \n\t" 16401 "adc r23, r1 \n\t" 16402 "adc r24, r25 \n\t" 16403 "st z+, r22 \n\t" 16404 16405 "ldi r22, 0 \n\t" 16406 "mul r2, r14 \n\t" 16407 "add r23, r0 \n\t" 16408 "adc r24, r1 \n\t" 16409 "adc r22, r25 \n\t" 16410 "mul r3, r13 \n\t" 16411 "add r23, r0 \n\t" 16412 "adc r24, r1 \n\t" 16413 "adc r22, r25 \n\t" 16414 "st z+, r23 \n\t" 16415 16416 "ldi r23, 0 \n\t" 16417 "mul r2, r15 \n\t" 16418 "add r24, r0 \n\t" 16419 "adc r22, r1 \n\t" 16420 "adc r23, r25 \n\t" 16421 "mul r3, r14 \n\t" 16422 "add r24, r0 \n\t" 16423 "adc r22, r1 \n\t" 16424 "adc r23, r25 \n\t" 16425 "st z+, r24 \n\t" 16426 16427 "ld r12, y+ \n\t" 16428 "ldi r24, 0 \n\t" 16429 "mul r2, r12 \n\t" 16430 "add r22, r0 \n\t" 16431 "adc r23, r1 \n\t" 16432 "adc r24, r25 \n\t" 16433 "mul r3, r15 \n\t" 16434 "add r22, r0 \n\t" 16435 "adc r23, r1 \n\t" 16436 "adc r24, r25 \n\t" 16437 "mul r4, r14 \n\t" 16438 "add r22, r0 \n\t" 16439 "adc r23, r1 \n\t" 16440 "adc r24, r25 \n\t" 16441 "st z+, r22 \n\t" 16442 16443 "ld r13, y+ \n\t" 16444 "ldi r22, 0 \n\t" 16445 "mul r2, r13 \n\t" 16446 "add r23, r0 \n\t" 16447 "adc r24, r1 \n\t" 16448 "adc r22, r25 \n\t" 16449 "mul r3, r12 \n\t" 16450 "add r23, r0 \n\t" 16451 "adc r24, r1 \n\t" 16452 "adc r22, r25 \n\t" 16453 "mul r4, r15 \n\t" 16454 "add r23, r0 \n\t" 16455 "adc r24, r1 \n\t" 16456 "adc r22, r25 \n\t" 16457 "st z+, r23 \n\t" 16458 16459 "ld r14, y+ \n\t" 16460 "ldi r23, 0 \n\t" 16461 "mul r2, r14 \n\t" 16462 "add r24, r0 \n\t" 16463 "adc r22, r1 \n\t" 16464 "adc r23, r25 \n\t" 16465 "mul r3, r13 \n\t" 16466 "add r24, r0 \n\t" 16467 "adc r22, r1 \n\t" 16468 "adc r23, r25 \n\t" 16469 "mul r4, r12 \n\t" 16470 "add r24, r0 \n\t" 16471 "adc r22, r1 \n\t" 16472 "adc r23, r25 \n\t" 16473 "mul r5, r15 \n\t" 16474 "add r24, r0 \n\t" 16475 "adc r22, r1 \n\t" 16476 "adc r23, r25 \n\t" 16477 "st z+, r24 \n\t" 16478 16479 "ld r15, y+ \n\t" 16480 "ldi r24, 0 \n\t" 16481 "mul r2, r15 \n\t" 16482 "add r22, r0 \n\t" 16483 "adc r23, r1 \n\t" 16484 "adc r24, r25 \n\t" 16485 "mul r3, r14 \n\t" 16486 "add r22, r0 \n\t" 16487 "adc r23, r1 \n\t" 16488 "adc r24, r25 \n\t" 16489 "mul r4, r13 \n\t" 16490 "add r22, r0 \n\t" 16491 "adc r23, r1 \n\t" 16492 "adc r24, r25 \n\t" 16493 "mul r5, r12 \n\t" 16494 "add r22, r0 \n\t" 16495 "adc r23, r1 \n\t" 16496 "adc r24, r25 \n\t" 16497 "st z+, r22 \n\t" 16498 16499 "ld r2, x+ \n\t" 16500 "ldi r22, 0 \n\t" 16501 "mul r3, r15 \n\t" 16502 "add r23, r0 \n\t" 16503 "adc r24, r1 \n\t" 16504 "adc r22, r25 \n\t" 16505 "mul r4, r14 \n\t" 16506 "add r23, r0 \n\t" 16507 "adc r24, r1 \n\t" 16508 "adc r22, r25 \n\t" 16509 "mul r5, r13 \n\t" 16510 "add r23, r0 \n\t" 16511 "adc r24, r1 \n\t" 16512 "adc r22, r25 \n\t" 16513 "mul r2, r12 \n\t" 16514 "add r23, r0 \n\t" 16515 "adc r24, r1 \n\t" 16516 "adc r22, r25 \n\t" 16517 "st z+, r23 \n\t" 16518 16519 "ld r3, x+ \n\t" 16520 "ldi r23, 0 \n\t" 16521 "mul r4, r15 \n\t" 16522 "add r24, r0 \n\t" 16523 "adc r22, r1 \n\t" 16524 "adc r23, r25 \n\t" 16525 "mul r5, r14 \n\t" 16526 "add r24, r0 \n\t" 16527 "adc r22, r1 \n\t" 16528 "adc r23, r25 \n\t" 16529 "mul r2, r13 \n\t" 16530 "add r24, r0 \n\t" 16531 "adc r22, r1 \n\t" 16532 "adc r23, r25 \n\t" 16533 "st z+, r24 \n\t" 16534 16535 "ld r4, x+ \n\t" 16536 "ldi r24, 0 \n\t" 16537 "mul r5, r15 \n\t" 16538 "add r22, r0 \n\t" 16539 "adc r23, r1 \n\t" 16540 "adc r24, r25 \n\t" 16541 "mul r2, r14 \n\t" 16542 "add r22, r0 \n\t" 16543 "adc r23, r1 \n\t" 16544 "adc r24, r25 \n\t" 16545 "mul r3, r13 \n\t" 16546 "add r22, r0 \n\t" 16547 "adc r23, r1 \n\t" 16548 "adc r24, r25 \n\t" 16549 "st z+, r22 \n\t" 16550 16551 "ld r5, x+ \n\t" 16552 "ldi r22, 0 \n\t" 16553 "mul r2, r15 \n\t" 16554 "add r23, r0 \n\t" 16555 "adc r24, r1 \n\t" 16556 "adc r22, r25 \n\t" 16557 "mul r3, r14 \n\t" 16558 "add r23, r0 \n\t" 16559 "adc r24, r1 \n\t" 16560 "adc r22, r25 \n\t" 16561 "st z+, r23 \n\t" 16562 16563 "ldi r23, 0 \n\t" 16564 "mul r3, r15 \n\t" 16565 "add r24, r0 \n\t" 16566 "adc r22, r1 \n\t" 16567 "adc r23, r25 \n\t" 16568 "mul r4, r14 \n\t" 16569 "add r24, r0 \n\t" 16570 "adc r22, r1 \n\t" 16571 "adc r23, r25 \n\t" 16572 "st z+, r24 \n\t" 16573 16574 "ldi r24, 0 \n\t" 16575 "mul r4, r15 \n\t" 16576 "add r22, r0 \n\t" 16577 "adc r23, r1 \n\t" 16578 "adc r24, r25 \n\t" 16579 "st z+, r22 \n\t" 16580 16581 "mul r5, r15 \n\t" 16582 "add r23, r0 \n\t" 16583 "adc r24, r1 \n\t" 16584 "st z+, r23 \n\t" 16585 "st z+, r24 \n\t" 16586 16587 "sbiw r26, 8 \n\t" 16588 "sbiw r30, 36 \n\t" 16589 "ld r2, x+ \n\t" 16590 "ld r3, x+ \n\t" 16591 "ld r4, x+ \n\t" 16592 "ld r5, x+ \n\t" 16593 "ld r6, x+ \n\t" 16594 "ld r7, x+ \n\t" 16595 "ld r8, x+ \n\t" 16596 "ld r9, x+ \n\t" 16597 "ld r10, x+ \n\t" 16598 "ld r11, x+ \n\t" 16599 "ld r12, x+ \n\t" 16600 "ld r13, x+ \n\t" 16601 "ld r14, x+ \n\t" 16602 "ld r15, x+ \n\t" 16603 "ld r16, x+ \n\t" 16604 "ld r17, x+ \n\t" 16605 "ld r18, x+ \n\t" 16606 "ld r19, x+ \n\t" 16607 "ld r20, x+ \n\t" 16608 "ld r21, x+ \n\t" 16609 16610 "ldi r23, 0 \n\t" 16611 "mul r2, r2 \n\t" 16612 "st z+, r0 \n\t" 16613 "mov r22, r1 \n\t" 16614 16615 "ldi r24, 0 \n\t" 16616 "mul r2, r3 \n\t" 16617 "add r22, r0 \n\t" 16618 "adc r23, r1 \n\t" 16619 "adc r24, r25 \n\t" 16620 "add r22, r0 \n\t" 16621 "adc r23, r1 \n\t" 16622 "adc r24, r25 \n\t" 16623 "st z+, r22 \n\t" 16624 16625 "ldi r22, 0 \n\t" 16626 "mul r2, r4 \n\t" 16627 "add r23, r0 \n\t" 16628 "adc r24, r1 \n\t" 16629 "adc r22, r25 \n\t" 16630 "add r23, r0 \n\t" 16631 "adc r24, r1 \n\t" 16632 "adc r22, r25 \n\t" 16633 "mul r3, r3 \n\t" 16634 "add r23, r0 \n\t" 16635 "adc r24, r1 \n\t" 16636 "adc r22, r25 \n\t" 16637 "st z+, r23 \n\t" 16638 16639 "ldi r29, 0 \n\t" 16640 "mul r2, r5 \n\t" 16641 "mov r23, r0 \n\t" 16642 "mov r28, r1 \n\t" 16643 "mul r3, r4 \n\t" 16644 "add r23, r0 \n\t" 16645 "adc r28, r1 \n\t" 16646 "adc r29, r25 \n\t" 16647 "lsl r23 \n\t" 16648 "rol r28 \n\t" 16649 "rol r29 \n\t" 16650 "add r23, r24 \n\t" 16651 "adc r28, r22 \n\t" 16652 "adc r29, r25 \n\t" 16653 "st z+, r23 \n\t" 16654 16655 "ldi r22, 0 \n\t" 16656 "mul r2, r6 \n\t" 16657 "mov r23, r0 \n\t" 16658 "mov r24, r1 \n\t" 16659 "mul r3, r5 \n\t" 16660 "add r23, r0 \n\t" 16661 "adc r24, r1 \n\t" 16662 "adc r22, r25 \n\t" 16663 "lsl r23 \n\t" 16664 "rol r24 \n\t" 16665 "rol r22 \n\t" 16666 "mul r4, r4 \n\t" 16667 "add r23, r0 \n\t" 16668 "adc r24, r1 \n\t" 16669 "adc r22, r25 \n\t" 16670 "add r23, r28 \n\t" 16671 "adc r24, r29 \n\t" 16672 "adc r22, r25 \n\t" 16673 "st z+, r23 \n\t" 16674 16675 "ldi r29, 0 \n\t" 16676 "mul r2, r7 \n\t" 16677 "mov r23, r0 \n\t" 16678 "mov r28, r1 \n\t" 16679 "mul r3, r6 \n\t" 16680 "add r23, r0 \n\t" 16681 "adc r28, r1 \n\t" 16682 "adc r29, r25 \n\t" 16683 "mul r4, r5 \n\t" 16684 "add r23, r0 \n\t" 16685 "adc r28, r1 \n\t" 16686 "adc r29, r25 \n\t" 16687 "lsl r23 \n\t" 16688 "rol r28 \n\t" 16689 "rol r29 \n\t" 16690 "add r23, r24 \n\t" 16691 "adc r28, r22 \n\t" 16692 "adc r29, r25 \n\t" 16693 "st z+, r23 \n\t" 16694 16695 "ldi r22, 0 \n\t" 16696 "mul r2, r8 \n\t" 16697 "mov r23, r0 \n\t" 16698 "mov r24, r1 \n\t" 16699 "mul r3, r7 \n\t" 16700 "add r23, r0 \n\t" 16701 "adc r24, r1 \n\t" 16702 "adc r22, r25 \n\t" 16703 "mul r4, r6 \n\t" 16704 "add r23, r0 \n\t" 16705 "adc r24, r1 \n\t" 16706 "adc r22, r25 \n\t" 16707 "lsl r23 \n\t" 16708 "rol r24 \n\t" 16709 "rol r22 \n\t" 16710 "mul r5, r5 \n\t" 16711 "add r23, r0 \n\t" 16712 "adc r24, r1 \n\t" 16713 "adc r22, r25 \n\t" 16714 "add r23, r28 \n\t" 16715 "adc r24, r29 \n\t" 16716 "adc r22, r25 \n\t" 16717 "st z+, r23 \n\t" 16718 16719 "ldi r29, 0 \n\t" 16720 "mul r2, r9 \n\t" 16721 "mov r23, r0 \n\t" 16722 "mov r28, r1 \n\t" 16723 "mul r3, r8 \n\t" 16724 "add r23, r0 \n\t" 16725 "adc r28, r1 \n\t" 16726 "adc r29, r25 \n\t" 16727 "mul r4, r7 \n\t" 16728 "add r23, r0 \n\t" 16729 "adc r28, r1 \n\t" 16730 "adc r29, r25 \n\t" 16731 "mul r5, r6 \n\t" 16732 "add r23, r0 \n\t" 16733 "adc r28, r1 \n\t" 16734 "adc r29, r25 \n\t" 16735 "lsl r23 \n\t" 16736 "rol r28 \n\t" 16737 "rol r29 \n\t" 16738 "add r23, r24 \n\t" 16739 "adc r28, r22 \n\t" 16740 "adc r29, r25 \n\t" 16741 "st z+, r23 \n\t" 16742 16743 "ldi r22, 0 \n\t" 16744 "mul r2, r10 \n\t" 16745 "mov r23, r0 \n\t" 16746 "mov r24, r1 \n\t" 16747 "mul r3, r9 \n\t" 16748 "add r23, r0 \n\t" 16749 "adc r24, r1 \n\t" 16750 "adc r22, r25 \n\t" 16751 "mul r4, r8 \n\t" 16752 "add r23, r0 \n\t" 16753 "adc r24, r1 \n\t" 16754 "adc r22, r25 \n\t" 16755 "mul r5, r7 \n\t" 16756 "add r23, r0 \n\t" 16757 "adc r24, r1 \n\t" 16758 "adc r22, r25 \n\t" 16759 "lsl r23 \n\t" 16760 "rol r24 \n\t" 16761 "rol r22 \n\t" 16762 "mul r6, r6 \n\t" 16763 "add r23, r0 \n\t" 16764 "adc r24, r1 \n\t" 16765 "adc r22, r25 \n\t" 16766 "add r23, r28 \n\t" 16767 "adc r24, r29 \n\t" 16768 "adc r22, r25 \n\t" 16769 "st z+, r23 \n\t" 16770 16771 "ldi r29, 0 \n\t" 16772 "mul r2, r11 \n\t" 16773 "mov r23, r0 \n\t" 16774 "mov r28, r1 \n\t" 16775 "mul r3, r10 \n\t" 16776 "add r23, r0 \n\t" 16777 "adc r28, r1 \n\t" 16778 "adc r29, r25 \n\t" 16779 "mul r4, r9 \n\t" 16780 "add r23, r0 \n\t" 16781 "adc r28, r1 \n\t" 16782 "adc r29, r25 \n\t" 16783 "mul r5, r8 \n\t" 16784 "add r23, r0 \n\t" 16785 "adc r28, r1 \n\t" 16786 "adc r29, r25 \n\t" 16787 "mul r6, r7 \n\t" 16788 "add r23, r0 \n\t" 16789 "adc r28, r1 \n\t" 16790 "adc r29, r25 \n\t" 16791 "lsl r23 \n\t" 16792 "rol r28 \n\t" 16793 "rol r29 \n\t" 16794 "add r23, r24 \n\t" 16795 "adc r28, r22 \n\t" 16796 "adc r29, r25 \n\t" 16797 "st z+, r23 \n\t" 16798 16799 "ldi r22, 0 \n\t" 16800 "mul r2, r12 \n\t" 16801 "mov r23, r0 \n\t" 16802 "mov r24, r1 \n\t" 16803 "mul r3, r11 \n\t" 16804 "add r23, r0 \n\t" 16805 "adc r24, r1 \n\t" 16806 "adc r22, r25 \n\t" 16807 "mul r4, r10 \n\t" 16808 "add r23, r0 \n\t" 16809 "adc r24, r1 \n\t" 16810 "adc r22, r25 \n\t" 16811 "mul r5, r9 \n\t" 16812 "add r23, r0 \n\t" 16813 "adc r24, r1 \n\t" 16814 "adc r22, r25 \n\t" 16815 "mul r6, r8 \n\t" 16816 "add r23, r0 \n\t" 16817 "adc r24, r1 \n\t" 16818 "adc r22, r25 \n\t" 16819 "lsl r23 \n\t" 16820 "rol r24 \n\t" 16821 "rol r22 \n\t" 16822 "mul r7, r7 \n\t" 16823 "add r23, r0 \n\t" 16824 "adc r24, r1 \n\t" 16825 "adc r22, r25 \n\t" 16826 "add r23, r28 \n\t" 16827 "adc r24, r29 \n\t" 16828 "adc r22, r25 \n\t" 16829 "st z+, r23 \n\t" 16830 16831 "ldi r29, 0 \n\t" 16832 "mul r2, r13 \n\t" 16833 "mov r23, r0 \n\t" 16834 "mov r28, r1 \n\t" 16835 "mul r3, r12 \n\t" 16836 "add r23, r0 \n\t" 16837 "adc r28, r1 \n\t" 16838 "adc r29, r25 \n\t" 16839 "mul r4, r11 \n\t" 16840 "add r23, r0 \n\t" 16841 "adc r28, r1 \n\t" 16842 "adc r29, r25 \n\t" 16843 "mul r5, r10 \n\t" 16844 "add r23, r0 \n\t" 16845 "adc r28, r1 \n\t" 16846 "adc r29, r25 \n\t" 16847 "mul r6, r9 \n\t" 16848 "add r23, r0 \n\t" 16849 "adc r28, r1 \n\t" 16850 "adc r29, r25 \n\t" 16851 "mul r7, r8 \n\t" 16852 "add r23, r0 \n\t" 16853 "adc r28, r1 \n\t" 16854 "adc r29, r25 \n\t" 16855 "lsl r23 \n\t" 16856 "rol r28 \n\t" 16857 "rol r29 \n\t" 16858 "add r23, r24 \n\t" 16859 "adc r28, r22 \n\t" 16860 "adc r29, r25 \n\t" 16861 "st z+, r23 \n\t" 16862 16863 "ldi r22, 0 \n\t" 16864 "mul r2, r14 \n\t" 16865 "mov r23, r0 \n\t" 16866 "mov r24, r1 \n\t" 16867 "mul r3, r13 \n\t" 16868 "add r23, r0 \n\t" 16869 "adc r24, r1 \n\t" 16870 "adc r22, r25 \n\t" 16871 "mul r4, r12 \n\t" 16872 "add r23, r0 \n\t" 16873 "adc r24, r1 \n\t" 16874 "adc r22, r25 \n\t" 16875 "mul r5, r11 \n\t" 16876 "add r23, r0 \n\t" 16877 "adc r24, r1 \n\t" 16878 "adc r22, r25 \n\t" 16879 "mul r6, r10 \n\t" 16880 "add r23, r0 \n\t" 16881 "adc r24, r1 \n\t" 16882 "adc r22, r25 \n\t" 16883 "mul r7, r9 \n\t" 16884 "add r23, r0 \n\t" 16885 "adc r24, r1 \n\t" 16886 "adc r22, r25 \n\t" 16887 "lsl r23 \n\t" 16888 "rol r24 \n\t" 16889 "rol r22 \n\t" 16890 "mul r8, r8 \n\t" 16891 "add r23, r0 \n\t" 16892 "adc r24, r1 \n\t" 16893 "adc r22, r25 \n\t" 16894 "add r23, r28 \n\t" 16895 "adc r24, r29 \n\t" 16896 "adc r22, r25 \n\t" 16897 "st z+, r23 \n\t" 16898 16899 "ldi r29, 0 \n\t" 16900 "mul r2, r15 \n\t" 16901 "mov r23, r0 \n\t" 16902 "mov r28, r1 \n\t" 16903 "mul r3, r14 \n\t" 16904 "add r23, r0 \n\t" 16905 "adc r28, r1 \n\t" 16906 "adc r29, r25 \n\t" 16907 "mul r4, r13 \n\t" 16908 "add r23, r0 \n\t" 16909 "adc r28, r1 \n\t" 16910 "adc r29, r25 \n\t" 16911 "mul r5, r12 \n\t" 16912 "add r23, r0 \n\t" 16913 "adc r28, r1 \n\t" 16914 "adc r29, r25 \n\t" 16915 "mul r6, r11 \n\t" 16916 "add r23, r0 \n\t" 16917 "adc r28, r1 \n\t" 16918 "adc r29, r25 \n\t" 16919 "mul r7, r10 \n\t" 16920 "add r23, r0 \n\t" 16921 "adc r28, r1 \n\t" 16922 "adc r29, r25 \n\t" 16923 "mul r8, r9 \n\t" 16924 "add r23, r0 \n\t" 16925 "adc r28, r1 \n\t" 16926 "adc r29, r25 \n\t" 16927 "lsl r23 \n\t" 16928 "rol r28 \n\t" 16929 "rol r29 \n\t" 16930 "add r23, r24 \n\t" 16931 "adc r28, r22 \n\t" 16932 "adc r29, r25 \n\t" 16933 "st z+, r23 \n\t" 16934 16935 "ldi r22, 0 \n\t" 16936 "mul r2, r16 \n\t" 16937 "mov r23, r0 \n\t" 16938 "mov r24, r1 \n\t" 16939 "mul r3, r15 \n\t" 16940 "add r23, r0 \n\t" 16941 "adc r24, r1 \n\t" 16942 "adc r22, r25 \n\t" 16943 "mul r4, r14 \n\t" 16944 "add r23, r0 \n\t" 16945 "adc r24, r1 \n\t" 16946 "adc r22, r25 \n\t" 16947 "mul r5, r13 \n\t" 16948 "add r23, r0 \n\t" 16949 "adc r24, r1 \n\t" 16950 "adc r22, r25 \n\t" 16951 "mul r6, r12 \n\t" 16952 "add r23, r0 \n\t" 16953 "adc r24, r1 \n\t" 16954 "adc r22, r25 \n\t" 16955 "mul r7, r11 \n\t" 16956 "add r23, r0 \n\t" 16957 "adc r24, r1 \n\t" 16958 "adc r22, r25 \n\t" 16959 "mul r8, r10 \n\t" 16960 "add r23, r0 \n\t" 16961 "adc r24, r1 \n\t" 16962 "adc r22, r25 \n\t" 16963 "lsl r23 \n\t" 16964 "rol r24 \n\t" 16965 "rol r22 \n\t" 16966 "mul r9, r9 \n\t" 16967 "add r23, r0 \n\t" 16968 "adc r24, r1 \n\t" 16969 "adc r22, r25 \n\t" 16970 "add r23, r28 \n\t" 16971 "adc r24, r29 \n\t" 16972 "adc r22, r25 \n\t" 16973 "st z+, r23 \n\t" 16974 16975 "ldi r29, 0 \n\t" 16976 "mul r2, r17 \n\t" 16977 "mov r23, r0 \n\t" 16978 "mov r28, r1 \n\t" 16979 "mul r3, r16 \n\t" 16980 "add r23, r0 \n\t" 16981 "adc r28, r1 \n\t" 16982 "adc r29, r25 \n\t" 16983 "mul r4, r15 \n\t" 16984 "add r23, r0 \n\t" 16985 "adc r28, r1 \n\t" 16986 "adc r29, r25 \n\t" 16987 "mul r5, r14 \n\t" 16988 "add r23, r0 \n\t" 16989 "adc r28, r1 \n\t" 16990 "adc r29, r25 \n\t" 16991 "mul r6, r13 \n\t" 16992 "add r23, r0 \n\t" 16993 "adc r28, r1 \n\t" 16994 "adc r29, r25 \n\t" 16995 "mul r7, r12 \n\t" 16996 "add r23, r0 \n\t" 16997 "adc r28, r1 \n\t" 16998 "adc r29, r25 \n\t" 16999 "mul r8, r11 \n\t" 17000 "add r23, r0 \n\t" 17001 "adc r28, r1 \n\t" 17002 "adc r29, r25 \n\t" 17003 "mul r9, r10 \n\t" 17004 "add r23, r0 \n\t" 17005 "adc r28, r1 \n\t" 17006 "adc r29, r25 \n\t" 17007 "lsl r23 \n\t" 17008 "rol r28 \n\t" 17009 "rol r29 \n\t" 17010 "add r23, r24 \n\t" 17011 "adc r28, r22 \n\t" 17012 "adc r29, r25 \n\t" 17013 "st z+, r23 \n\t" 17014 17015 "ldi r22, 0 \n\t" 17016 "mul r2, r18 \n\t" 17017 "mov r23, r0 \n\t" 17018 "mov r24, r1 \n\t" 17019 "mul r3, r17 \n\t" 17020 "add r23, r0 \n\t" 17021 "adc r24, r1 \n\t" 17022 "adc r22, r25 \n\t" 17023 "mul r4, r16 \n\t" 17024 "add r23, r0 \n\t" 17025 "adc r24, r1 \n\t" 17026 "adc r22, r25 \n\t" 17027 "mul r5, r15 \n\t" 17028 "add r23, r0 \n\t" 17029 "adc r24, r1 \n\t" 17030 "adc r22, r25 \n\t" 17031 "mul r6, r14 \n\t" 17032 "add r23, r0 \n\t" 17033 "adc r24, r1 \n\t" 17034 "adc r22, r25 \n\t" 17035 "mul r7, r13 \n\t" 17036 "add r23, r0 \n\t" 17037 "adc r24, r1 \n\t" 17038 "adc r22, r25 \n\t" 17039 "mul r8, r12 \n\t" 17040 "add r23, r0 \n\t" 17041 "adc r24, r1 \n\t" 17042 "adc r22, r25 \n\t" 17043 "mul r9, r11 \n\t" 17044 "add r23, r0 \n\t" 17045 "adc r24, r1 \n\t" 17046 "adc r22, r25 \n\t" 17047 "lsl r23 \n\t" 17048 "rol r24 \n\t" 17049 "rol r22 \n\t" 17050 "mul r10, r10 \n\t" 17051 "add r23, r0 \n\t" 17052 "adc r24, r1 \n\t" 17053 "adc r22, r25 \n\t" 17054 "add r23, r28 \n\t" 17055 "adc r24, r29 \n\t" 17056 "adc r22, r25 \n\t" 17057 "st z+, r23 \n\t" 17058 17059 "ldi r29, 0 \n\t" 17060 "mul r2, r19 \n\t" 17061 "mov r23, r0 \n\t" 17062 "mov r28, r1 \n\t" 17063 "mul r3, r18 \n\t" 17064 "add r23, r0 \n\t" 17065 "adc r28, r1 \n\t" 17066 "adc r29, r25 \n\t" 17067 "mul r4, r17 \n\t" 17068 "add r23, r0 \n\t" 17069 "adc r28, r1 \n\t" 17070 "adc r29, r25 \n\t" 17071 "mul r5, r16 \n\t" 17072 "add r23, r0 \n\t" 17073 "adc r28, r1 \n\t" 17074 "adc r29, r25 \n\t" 17075 "mul r6, r15 \n\t" 17076 "add r23, r0 \n\t" 17077 "adc r28, r1 \n\t" 17078 "adc r29, r25 \n\t" 17079 "mul r7, r14 \n\t" 17080 "add r23, r0 \n\t" 17081 "adc r28, r1 \n\t" 17082 "adc r29, r25 \n\t" 17083 "mul r8, r13 \n\t" 17084 "add r23, r0 \n\t" 17085 "adc r28, r1 \n\t" 17086 "adc r29, r25 \n\t" 17087 "mul r9, r12 \n\t" 17088 "add r23, r0 \n\t" 17089 "adc r28, r1 \n\t" 17090 "adc r29, r25 \n\t" 17091 "mul r10, r11 \n\t" 17092 "add r23, r0 \n\t" 17093 "adc r28, r1 \n\t" 17094 "adc r29, r25 \n\t" 17095 "lsl r23 \n\t" 17096 "rol r28 \n\t" 17097 "rol r29 \n\t" 17098 "add r23, r24 \n\t" 17099 "adc r28, r22 \n\t" 17100 "adc r29, r25 \n\t" 17101 "st z+, r23 \n\t" 17102 17103 "ldi r22, 0 \n\t" 17104 "mul r2, r20 \n\t" 17105 "mov r23, r0 \n\t" 17106 "mov r24, r1 \n\t" 17107 "mul r3, r19 \n\t" 17108 "add r23, r0 \n\t" 17109 "adc r24, r1 \n\t" 17110 "adc r22, r25 \n\t" 17111 "mul r4, r18 \n\t" 17112 "add r23, r0 \n\t" 17113 "adc r24, r1 \n\t" 17114 "adc r22, r25 \n\t" 17115 "mul r5, r17 \n\t" 17116 "add r23, r0 \n\t" 17117 "adc r24, r1 \n\t" 17118 "adc r22, r25 \n\t" 17119 "mul r6, r16 \n\t" 17120 "add r23, r0 \n\t" 17121 "adc r24, r1 \n\t" 17122 "adc r22, r25 \n\t" 17123 "mul r7, r15 \n\t" 17124 "add r23, r0 \n\t" 17125 "adc r24, r1 \n\t" 17126 "adc r22, r25 \n\t" 17127 "mul r8, r14 \n\t" 17128 "add r23, r0 \n\t" 17129 "adc r24, r1 \n\t" 17130 "adc r22, r25 \n\t" 17131 "mul r9, r13 \n\t" 17132 "add r23, r0 \n\t" 17133 "adc r24, r1 \n\t" 17134 "adc r22, r25 \n\t" 17135 "mul r10, r12 \n\t" 17136 "add r23, r0 \n\t" 17137 "adc r24, r1 \n\t" 17138 "adc r22, r25 \n\t" 17139 "lsl r23 \n\t" 17140 "rol r24 \n\t" 17141 "rol r22 \n\t" 17142 "mul r11, r11 \n\t" 17143 "add r23, r0 \n\t" 17144 "adc r24, r1 \n\t" 17145 "adc r22, r25 \n\t" 17146 "add r23, r28 \n\t" 17147 "adc r24, r29 \n\t" 17148 "adc r22, r25 \n\t" 17149 "st z+, r23 \n\t" 17150 17151 "ldi r29, 0 \n\t" 17152 "mul r2, r21 \n\t" 17153 "mov r23, r0 \n\t" 17154 "mov r28, r1 \n\t" 17155 "mul r3, r20 \n\t" 17156 "add r23, r0 \n\t" 17157 "adc r28, r1 \n\t" 17158 "adc r29, r25 \n\t" 17159 "mul r4, r19 \n\t" 17160 "add r23, r0 \n\t" 17161 "adc r28, r1 \n\t" 17162 "adc r29, r25 \n\t" 17163 "mul r5, r18 \n\t" 17164 "add r23, r0 \n\t" 17165 "adc r28, r1 \n\t" 17166 "adc r29, r25 \n\t" 17167 "mul r6, r17 \n\t" 17168 "add r23, r0 \n\t" 17169 "adc r28, r1 \n\t" 17170 "adc r29, r25 \n\t" 17171 "mul r7, r16 \n\t" 17172 "add r23, r0 \n\t" 17173 "adc r28, r1 \n\t" 17174 "adc r29, r25 \n\t" 17175 "mul r8, r15 \n\t" 17176 "add r23, r0 \n\t" 17177 "adc r28, r1 \n\t" 17178 "adc r29, r25 \n\t" 17179 "mul r9, r14 \n\t" 17180 "add r23, r0 \n\t" 17181 "adc r28, r1 \n\t" 17182 "adc r29, r25 \n\t" 17183 "mul r10, r13 \n\t" 17184 "add r23, r0 \n\t" 17185 "adc r28, r1 \n\t" 17186 "adc r29, r25 \n\t" 17187 "mul r11, r12 \n\t" 17188 "add r23, r0 \n\t" 17189 "adc r28, r1 \n\t" 17190 "adc r29, r25 \n\t" 17191 "lsl r23 \n\t" 17192 "rol r28 \n\t" 17193 "rol r29 \n\t" 17194 "add r23, r24 \n\t" 17195 "adc r28, r22 \n\t" 17196 "adc r29, r25 \n\t" 17197 "st z+, r23 \n\t" 17198 17199 "ld r2, x+ \n\t" 17200 "ldi r22, 0 \n\t" 17201 "mul r3, r21 \n\t" 17202 "mov r23, r0 \n\t" 17203 "mov r24, r1 \n\t" 17204 "mul r4, r20 \n\t" 17205 "add r23, r0 \n\t" 17206 "adc r24, r1 \n\t" 17207 "adc r22, r25 \n\t" 17208 "mul r5, r19 \n\t" 17209 "add r23, r0 \n\t" 17210 "adc r24, r1 \n\t" 17211 "adc r22, r25 \n\t" 17212 "mul r6, r18 \n\t" 17213 "add r23, r0 \n\t" 17214 "adc r24, r1 \n\t" 17215 "adc r22, r25 \n\t" 17216 "mul r7, r17 \n\t" 17217 "add r23, r0 \n\t" 17218 "adc r24, r1 \n\t" 17219 "adc r22, r25 \n\t" 17220 "mul r8, r16 \n\t" 17221 "add r23, r0 \n\t" 17222 "adc r24, r1 \n\t" 17223 "adc r22, r25 \n\t" 17224 "mul r9, r15 \n\t" 17225 "add r23, r0 \n\t" 17226 "adc r24, r1 \n\t" 17227 "adc r22, r25 \n\t" 17228 "mul r10, r14 \n\t" 17229 "add r23, r0 \n\t" 17230 "adc r24, r1 \n\t" 17231 "adc r22, r25 \n\t" 17232 "mul r11, r13 \n\t" 17233 "add r23, r0 \n\t" 17234 "adc r24, r1 \n\t" 17235 "adc r22, r25 \n\t" 17236 "ld r0, z \n\t" 17237 "add r23, r0 \n\t" 17238 "adc r24, r25 \n\t" 17239 "adc r22, r25 \n\t" 17240 "lsl r23 \n\t" 17241 "rol r24 \n\t" 17242 "rol r22 \n\t" 17243 "mul r12, r12 \n\t" 17244 "add r23, r0 \n\t" 17245 "adc r24, r1 \n\t" 17246 "adc r22, r25 \n\t" 17247 "add r23, r28 \n\t" 17248 "adc r24, r29 \n\t" 17249 "adc r22, r25 \n\t" 17250 "st z+, r23 \n\t" 17251 17252 "ldi r29, 0 \n\t" 17253 "mul r3, r2 \n\t" 17254 "mov r23, r0 \n\t" 17255 "mov r28, r1 \n\t" 17256 "mul r4, r21 \n\t" 17257 "add r23, r0 \n\t" 17258 "adc r28, r1 \n\t" 17259 "adc r29, r25 \n\t" 17260 "mul r5, r20 \n\t" 17261 "add r23, r0 \n\t" 17262 "adc r28, r1 \n\t" 17263 "adc r29, r25 \n\t" 17264 "mul r6, r19 \n\t" 17265 "add r23, r0 \n\t" 17266 "adc r28, r1 \n\t" 17267 "adc r29, r25 \n\t" 17268 "mul r7, r18 \n\t" 17269 "add r23, r0 \n\t" 17270 "adc r28, r1 \n\t" 17271 "adc r29, r25 \n\t" 17272 "mul r8, r17 \n\t" 17273 "add r23, r0 \n\t" 17274 "adc r28, r1 \n\t" 17275 "adc r29, r25 \n\t" 17276 "mul r9, r16 \n\t" 17277 "add r23, r0 \n\t" 17278 "adc r28, r1 \n\t" 17279 "adc r29, r25 \n\t" 17280 "mul r10, r15 \n\t" 17281 "add r23, r0 \n\t" 17282 "adc r28, r1 \n\t" 17283 "adc r29, r25 \n\t" 17284 "mul r11, r14 \n\t" 17285 "add r23, r0 \n\t" 17286 "adc r28, r1 \n\t" 17287 "adc r29, r25 \n\t" 17288 "mul r12, r13 \n\t" 17289 "add r23, r0 \n\t" 17290 "adc r28, r1 \n\t" 17291 "adc r29, r25 \n\t" 17292 "ld r0, z \n\t" 17293 "add r23, r0 \n\t" 17294 "adc r28, r25 \n\t" 17295 "adc r29, r25 \n\t" 17296 "lsl r23 \n\t" 17297 "rol r28 \n\t" 17298 "rol r29 \n\t" 17299 "add r23, r24 \n\t" 17300 "adc r28, r22 \n\t" 17301 "adc r29, r25 \n\t" 17302 "st z+, r23 \n\t" 17303 17304 "ld r3, x+ \n\t" 17305 "ldi r22, 0 \n\t" 17306 "mul r4, r2 \n\t" 17307 "mov r23, r0 \n\t" 17308 "mov r24, r1 \n\t" 17309 "mul r5, r21 \n\t" 17310 "add r23, r0 \n\t" 17311 "adc r24, r1 \n\t" 17312 "adc r22, r25 \n\t" 17313 "mul r6, r20 \n\t" 17314 "add r23, r0 \n\t" 17315 "adc r24, r1 \n\t" 17316 "adc r22, r25 \n\t" 17317 "mul r7, r19 \n\t" 17318 "add r23, r0 \n\t" 17319 "adc r24, r1 \n\t" 17320 "adc r22, r25 \n\t" 17321 "mul r8, r18 \n\t" 17322 "add r23, r0 \n\t" 17323 "adc r24, r1 \n\t" 17324 "adc r22, r25 \n\t" 17325 "mul r9, r17 \n\t" 17326 "add r23, r0 \n\t" 17327 "adc r24, r1 \n\t" 17328 "adc r22, r25 \n\t" 17329 "mul r10, r16 \n\t" 17330 "add r23, r0 \n\t" 17331 "adc r24, r1 \n\t" 17332 "adc r22, r25 \n\t" 17333 "mul r11, r15 \n\t" 17334 "add r23, r0 \n\t" 17335 "adc r24, r1 \n\t" 17336 "adc r22, r25 \n\t" 17337 "mul r12, r14 \n\t" 17338 "add r23, r0 \n\t" 17339 "adc r24, r1 \n\t" 17340 "adc r22, r25 \n\t" 17341 "ld r0, z \n\t" 17342 "add r23, r0 \n\t" 17343 "adc r24, r25 \n\t" 17344 "adc r22, r25 \n\t" 17345 "lsl r23 \n\t" 17346 "rol r24 \n\t" 17347 "rol r22 \n\t" 17348 "mul r13, r13 \n\t" 17349 "add r23, r0 \n\t" 17350 "adc r24, r1 \n\t" 17351 "adc r22, r25 \n\t" 17352 "add r23, r28 \n\t" 17353 "adc r24, r29 \n\t" 17354 "adc r22, r25 \n\t" 17355 "st z+, r23 \n\t" 17356 17357 "ldi r29, 0 \n\t" 17358 "mul r4, r3 \n\t" 17359 "mov r23, r0 \n\t" 17360 "mov r28, r1 \n\t" 17361 "mul r5, r2 \n\t" 17362 "add r23, r0 \n\t" 17363 "adc r28, r1 \n\t" 17364 "adc r29, r25 \n\t" 17365 "mul r6, r21 \n\t" 17366 "add r23, r0 \n\t" 17367 "adc r28, r1 \n\t" 17368 "adc r29, r25 \n\t" 17369 "mul r7, r20 \n\t" 17370 "add r23, r0 \n\t" 17371 "adc r28, r1 \n\t" 17372 "adc r29, r25 \n\t" 17373 "mul r8, r19 \n\t" 17374 "add r23, r0 \n\t" 17375 "adc r28, r1 \n\t" 17376 "adc r29, r25 \n\t" 17377 "mul r9, r18 \n\t" 17378 "add r23, r0 \n\t" 17379 "adc r28, r1 \n\t" 17380 "adc r29, r25 \n\t" 17381 "mul r10, r17 \n\t" 17382 "add r23, r0 \n\t" 17383 "adc r28, r1 \n\t" 17384 "adc r29, r25 \n\t" 17385 "mul r11, r16 \n\t" 17386 "add r23, r0 \n\t" 17387 "adc r28, r1 \n\t" 17388 "adc r29, r25 \n\t" 17389 "mul r12, r15 \n\t" 17390 "add r23, r0 \n\t" 17391 "adc r28, r1 \n\t" 17392 "adc r29, r25 \n\t" 17393 "mul r13, r14 \n\t" 17394 "add r23, r0 \n\t" 17395 "adc r28, r1 \n\t" 17396 "adc r29, r25 \n\t" 17397 "ld r0, z \n\t" 17398 "add r23, r0 \n\t" 17399 "adc r28, r25 \n\t" 17400 "adc r29, r25 \n\t" 17401 "lsl r23 \n\t" 17402 "rol r28 \n\t" 17403 "rol r29 \n\t" 17404 "add r23, r24 \n\t" 17405 "adc r28, r22 \n\t" 17406 "adc r29, r25 \n\t" 17407 "st z+, r23 \n\t" 17408 17409 "ld r4, x+ \n\t" 17410 "ldi r22, 0 \n\t" 17411 "mul r5, r3 \n\t" 17412 "mov r23, r0 \n\t" 17413 "mov r24, r1 \n\t" 17414 "mul r6, r2 \n\t" 17415 "add r23, r0 \n\t" 17416 "adc r24, r1 \n\t" 17417 "adc r22, r25 \n\t" 17418 "mul r7, r21 \n\t" 17419 "add r23, r0 \n\t" 17420 "adc r24, r1 \n\t" 17421 "adc r22, r25 \n\t" 17422 "mul r8, r20 \n\t" 17423 "add r23, r0 \n\t" 17424 "adc r24, r1 \n\t" 17425 "adc r22, r25 \n\t" 17426 "mul r9, r19 \n\t" 17427 "add r23, r0 \n\t" 17428 "adc r24, r1 \n\t" 17429 "adc r22, r25 \n\t" 17430 "mul r10, r18 \n\t" 17431 "add r23, r0 \n\t" 17432 "adc r24, r1 \n\t" 17433 "adc r22, r25 \n\t" 17434 "mul r11, r17 \n\t" 17435 "add r23, r0 \n\t" 17436 "adc r24, r1 \n\t" 17437 "adc r22, r25 \n\t" 17438 "mul r12, r16 \n\t" 17439 "add r23, r0 \n\t" 17440 "adc r24, r1 \n\t" 17441 "adc r22, r25 \n\t" 17442 "mul r13, r15 \n\t" 17443 "add r23, r0 \n\t" 17444 "adc r24, r1 \n\t" 17445 "adc r22, r25 \n\t" 17446 "ld r0, z \n\t" 17447 "add r23, r0 \n\t" 17448 "adc r24, r25 \n\t" 17449 "adc r22, r25 \n\t" 17450 "lsl r23 \n\t" 17451 "rol r24 \n\t" 17452 "rol r22 \n\t" 17453 "mul r14, r14 \n\t" 17454 "add r23, r0 \n\t" 17455 "adc r24, r1 \n\t" 17456 "adc r22, r25 \n\t" 17457 "add r23, r28 \n\t" 17458 "adc r24, r29 \n\t" 17459 "adc r22, r25 \n\t" 17460 "st z+, r23 \n\t" 17461 17462 "ldi r29, 0 \n\t" 17463 "mul r5, r4 \n\t" 17464 "mov r23, r0 \n\t" 17465 "mov r28, r1 \n\t" 17466 "mul r6, r3 \n\t" 17467 "add r23, r0 \n\t" 17468 "adc r28, r1 \n\t" 17469 "adc r29, r25 \n\t" 17470 "mul r7, r2 \n\t" 17471 "add r23, r0 \n\t" 17472 "adc r28, r1 \n\t" 17473 "adc r29, r25 \n\t" 17474 "mul r8, r21 \n\t" 17475 "add r23, r0 \n\t" 17476 "adc r28, r1 \n\t" 17477 "adc r29, r25 \n\t" 17478 "mul r9, r20 \n\t" 17479 "add r23, r0 \n\t" 17480 "adc r28, r1 \n\t" 17481 "adc r29, r25 \n\t" 17482 "mul r10, r19 \n\t" 17483 "add r23, r0 \n\t" 17484 "adc r28, r1 \n\t" 17485 "adc r29, r25 \n\t" 17486 "mul r11, r18 \n\t" 17487 "add r23, r0 \n\t" 17488 "adc r28, r1 \n\t" 17489 "adc r29, r25 \n\t" 17490 "mul r12, r17 \n\t" 17491 "add r23, r0 \n\t" 17492 "adc r28, r1 \n\t" 17493 "adc r29, r25 \n\t" 17494 "mul r13, r16 \n\t" 17495 "add r23, r0 \n\t" 17496 "adc r28, r1 \n\t" 17497 "adc r29, r25 \n\t" 17498 "mul r14, r15 \n\t" 17499 "add r23, r0 \n\t" 17500 "adc r28, r1 \n\t" 17501 "adc r29, r25 \n\t" 17502 "ld r0, z \n\t" 17503 "add r23, r0 \n\t" 17504 "adc r28, r25 \n\t" 17505 "adc r29, r25 \n\t" 17506 "lsl r23 \n\t" 17507 "rol r28 \n\t" 17508 "rol r29 \n\t" 17509 "add r23, r24 \n\t" 17510 "adc r28, r22 \n\t" 17511 "adc r29, r25 \n\t" 17512 "st z+, r23 \n\t" 17513 17514 "ld r5, x+ \n\t" 17515 "ldi r22, 0 \n\t" 17516 "mul r6, r4 \n\t" 17517 "mov r23, r0 \n\t" 17518 "mov r24, r1 \n\t" 17519 "mul r7, r3 \n\t" 17520 "add r23, r0 \n\t" 17521 "adc r24, r1 \n\t" 17522 "adc r22, r25 \n\t" 17523 "mul r8, r2 \n\t" 17524 "add r23, r0 \n\t" 17525 "adc r24, r1 \n\t" 17526 "adc r22, r25 \n\t" 17527 "mul r9, r21 \n\t" 17528 "add r23, r0 \n\t" 17529 "adc r24, r1 \n\t" 17530 "adc r22, r25 \n\t" 17531 "mul r10, r20 \n\t" 17532 "add r23, r0 \n\t" 17533 "adc r24, r1 \n\t" 17534 "adc r22, r25 \n\t" 17535 "mul r11, r19 \n\t" 17536 "add r23, r0 \n\t" 17537 "adc r24, r1 \n\t" 17538 "adc r22, r25 \n\t" 17539 "mul r12, r18 \n\t" 17540 "add r23, r0 \n\t" 17541 "adc r24, r1 \n\t" 17542 "adc r22, r25 \n\t" 17543 "mul r13, r17 \n\t" 17544 "add r23, r0 \n\t" 17545 "adc r24, r1 \n\t" 17546 "adc r22, r25 \n\t" 17547 "mul r14, r16 \n\t" 17548 "add r23, r0 \n\t" 17549 "adc r24, r1 \n\t" 17550 "adc r22, r25 \n\t" 17551 "ld r0, z \n\t" 17552 "add r23, r0 \n\t" 17553 "adc r24, r25 \n\t" 17554 "adc r22, r25 \n\t" 17555 "lsl r23 \n\t" 17556 "rol r24 \n\t" 17557 "rol r22 \n\t" 17558 "mul r15, r15 \n\t" 17559 "add r23, r0 \n\t" 17560 "adc r24, r1 \n\t" 17561 "adc r22, r25 \n\t" 17562 "add r23, r28 \n\t" 17563 "adc r24, r29 \n\t" 17564 "adc r22, r25 \n\t" 17565 "st z+, r23 \n\t" 17566 17567 "ldi r29, 0 \n\t" 17568 "mul r6, r5 \n\t" 17569 "mov r23, r0 \n\t" 17570 "mov r28, r1 \n\t" 17571 "mul r7, r4 \n\t" 17572 "add r23, r0 \n\t" 17573 "adc r28, r1 \n\t" 17574 "adc r29, r25 \n\t" 17575 "mul r8, r3 \n\t" 17576 "add r23, r0 \n\t" 17577 "adc r28, r1 \n\t" 17578 "adc r29, r25 \n\t" 17579 "mul r9, r2 \n\t" 17580 "add r23, r0 \n\t" 17581 "adc r28, r1 \n\t" 17582 "adc r29, r25 \n\t" 17583 "mul r10, r21 \n\t" 17584 "add r23, r0 \n\t" 17585 "adc r28, r1 \n\t" 17586 "adc r29, r25 \n\t" 17587 "mul r11, r20 \n\t" 17588 "add r23, r0 \n\t" 17589 "adc r28, r1 \n\t" 17590 "adc r29, r25 \n\t" 17591 "mul r12, r19 \n\t" 17592 "add r23, r0 \n\t" 17593 "adc r28, r1 \n\t" 17594 "adc r29, r25 \n\t" 17595 "mul r13, r18 \n\t" 17596 "add r23, r0 \n\t" 17597 "adc r28, r1 \n\t" 17598 "adc r29, r25 \n\t" 17599 "mul r14, r17 \n\t" 17600 "add r23, r0 \n\t" 17601 "adc r28, r1 \n\t" 17602 "adc r29, r25 \n\t" 17603 "mul r15, r16 \n\t" 17604 "add r23, r0 \n\t" 17605 "adc r28, r1 \n\t" 17606 "adc r29, r25 \n\t" 17607 "ld r0, z \n\t" 17608 "add r23, r0 \n\t" 17609 "adc r28, r25 \n\t" 17610 "adc r29, r25 \n\t" 17611 "lsl r23 \n\t" 17612 "rol r28 \n\t" 17613 "rol r29 \n\t" 17614 "add r23, r24 \n\t" 17615 "adc r28, r22 \n\t" 17616 "adc r29, r25 \n\t" 17617 "st z+, r23 \n\t" 17618 17619 "ld r6, x+ \n\t" 17620 "ldi r22, 0 \n\t" 17621 "mul r7, r5 \n\t" 17622 "mov r23, r0 \n\t" 17623 "mov r24, r1 \n\t" 17624 "mul r8, r4 \n\t" 17625 "add r23, r0 \n\t" 17626 "adc r24, r1 \n\t" 17627 "adc r22, r25 \n\t" 17628 "mul r9, r3 \n\t" 17629 "add r23, r0 \n\t" 17630 "adc r24, r1 \n\t" 17631 "adc r22, r25 \n\t" 17632 "mul r10, r2 \n\t" 17633 "add r23, r0 \n\t" 17634 "adc r24, r1 \n\t" 17635 "adc r22, r25 \n\t" 17636 "mul r11, r21 \n\t" 17637 "add r23, r0 \n\t" 17638 "adc r24, r1 \n\t" 17639 "adc r22, r25 \n\t" 17640 "mul r12, r20 \n\t" 17641 "add r23, r0 \n\t" 17642 "adc r24, r1 \n\t" 17643 "adc r22, r25 \n\t" 17644 "mul r13, r19 \n\t" 17645 "add r23, r0 \n\t" 17646 "adc r24, r1 \n\t" 17647 "adc r22, r25 \n\t" 17648 "mul r14, r18 \n\t" 17649 "add r23, r0 \n\t" 17650 "adc r24, r1 \n\t" 17651 "adc r22, r25 \n\t" 17652 "mul r15, r17 \n\t" 17653 "add r23, r0 \n\t" 17654 "adc r24, r1 \n\t" 17655 "adc r22, r25 \n\t" 17656 "ld r0, z \n\t" 17657 "add r23, r0 \n\t" 17658 "adc r24, r25 \n\t" 17659 "adc r22, r25 \n\t" 17660 "lsl r23 \n\t" 17661 "rol r24 \n\t" 17662 "rol r22 \n\t" 17663 "mul r16, r16 \n\t" 17664 "add r23, r0 \n\t" 17665 "adc r24, r1 \n\t" 17666 "adc r22, r25 \n\t" 17667 "add r23, r28 \n\t" 17668 "adc r24, r29 \n\t" 17669 "adc r22, r25 \n\t" 17670 "st z+, r23 \n\t" 17671 17672 "ldi r29, 0 \n\t" 17673 "mul r7, r6 \n\t" 17674 "mov r23, r0 \n\t" 17675 "mov r28, r1 \n\t" 17676 "mul r8, r5 \n\t" 17677 "add r23, r0 \n\t" 17678 "adc r28, r1 \n\t" 17679 "adc r29, r25 \n\t" 17680 "mul r9, r4 \n\t" 17681 "add r23, r0 \n\t" 17682 "adc r28, r1 \n\t" 17683 "adc r29, r25 \n\t" 17684 "mul r10, r3 \n\t" 17685 "add r23, r0 \n\t" 17686 "adc r28, r1 \n\t" 17687 "adc r29, r25 \n\t" 17688 "mul r11, r2 \n\t" 17689 "add r23, r0 \n\t" 17690 "adc r28, r1 \n\t" 17691 "adc r29, r25 \n\t" 17692 "mul r12, r21 \n\t" 17693 "add r23, r0 \n\t" 17694 "adc r28, r1 \n\t" 17695 "adc r29, r25 \n\t" 17696 "mul r13, r20 \n\t" 17697 "add r23, r0 \n\t" 17698 "adc r28, r1 \n\t" 17699 "adc r29, r25 \n\t" 17700 "mul r14, r19 \n\t" 17701 "add r23, r0 \n\t" 17702 "adc r28, r1 \n\t" 17703 "adc r29, r25 \n\t" 17704 "mul r15, r18 \n\t" 17705 "add r23, r0 \n\t" 17706 "adc r28, r1 \n\t" 17707 "adc r29, r25 \n\t" 17708 "mul r16, r17 \n\t" 17709 "add r23, r0 \n\t" 17710 "adc r28, r1 \n\t" 17711 "adc r29, r25 \n\t" 17712 "ld r0, z \n\t" 17713 "add r23, r0 \n\t" 17714 "adc r28, r25 \n\t" 17715 "adc r29, r25 \n\t" 17716 "lsl r23 \n\t" 17717 "rol r28 \n\t" 17718 "rol r29 \n\t" 17719 "add r23, r24 \n\t" 17720 "adc r28, r22 \n\t" 17721 "adc r29, r25 \n\t" 17722 "st z+, r23 \n\t" 17723 17724 "ld r7, x+ \n\t" 17725 "ldi r22, 0 \n\t" 17726 "mul r8, r6 \n\t" 17727 "mov r23, r0 \n\t" 17728 "mov r24, r1 \n\t" 17729 "mul r9, r5 \n\t" 17730 "add r23, r0 \n\t" 17731 "adc r24, r1 \n\t" 17732 "adc r22, r25 \n\t" 17733 "mul r10, r4 \n\t" 17734 "add r23, r0 \n\t" 17735 "adc r24, r1 \n\t" 17736 "adc r22, r25 \n\t" 17737 "mul r11, r3 \n\t" 17738 "add r23, r0 \n\t" 17739 "adc r24, r1 \n\t" 17740 "adc r22, r25 \n\t" 17741 "mul r12, r2 \n\t" 17742 "add r23, r0 \n\t" 17743 "adc r24, r1 \n\t" 17744 "adc r22, r25 \n\t" 17745 "mul r13, r21 \n\t" 17746 "add r23, r0 \n\t" 17747 "adc r24, r1 \n\t" 17748 "adc r22, r25 \n\t" 17749 "mul r14, r20 \n\t" 17750 "add r23, r0 \n\t" 17751 "adc r24, r1 \n\t" 17752 "adc r22, r25 \n\t" 17753 "mul r15, r19 \n\t" 17754 "add r23, r0 \n\t" 17755 "adc r24, r1 \n\t" 17756 "adc r22, r25 \n\t" 17757 "mul r16, r18 \n\t" 17758 "add r23, r0 \n\t" 17759 "adc r24, r1 \n\t" 17760 "adc r22, r25 \n\t" 17761 "ld r0, z \n\t" 17762 "add r23, r0 \n\t" 17763 "adc r24, r25 \n\t" 17764 "adc r22, r25 \n\t" 17765 "lsl r23 \n\t" 17766 "rol r24 \n\t" 17767 "rol r22 \n\t" 17768 "mul r17, r17 \n\t" 17769 "add r23, r0 \n\t" 17770 "adc r24, r1 \n\t" 17771 "adc r22, r25 \n\t" 17772 "add r23, r28 \n\t" 17773 "adc r24, r29 \n\t" 17774 "adc r22, r25 \n\t" 17775 "st z+, r23 \n\t" 17776 17777 "ldi r29, 0 \n\t" 17778 "mul r8, r7 \n\t" 17779 "mov r23, r0 \n\t" 17780 "mov r28, r1 \n\t" 17781 "mul r9, r6 \n\t" 17782 "add r23, r0 \n\t" 17783 "adc r28, r1 \n\t" 17784 "adc r29, r25 \n\t" 17785 "mul r10, r5 \n\t" 17786 "add r23, r0 \n\t" 17787 "adc r28, r1 \n\t" 17788 "adc r29, r25 \n\t" 17789 "mul r11, r4 \n\t" 17790 "add r23, r0 \n\t" 17791 "adc r28, r1 \n\t" 17792 "adc r29, r25 \n\t" 17793 "mul r12, r3 \n\t" 17794 "add r23, r0 \n\t" 17795 "adc r28, r1 \n\t" 17796 "adc r29, r25 \n\t" 17797 "mul r13, r2 \n\t" 17798 "add r23, r0 \n\t" 17799 "adc r28, r1 \n\t" 17800 "adc r29, r25 \n\t" 17801 "mul r14, r21 \n\t" 17802 "add r23, r0 \n\t" 17803 "adc r28, r1 \n\t" 17804 "adc r29, r25 \n\t" 17805 "mul r15, r20 \n\t" 17806 "add r23, r0 \n\t" 17807 "adc r28, r1 \n\t" 17808 "adc r29, r25 \n\t" 17809 "mul r16, r19 \n\t" 17810 "add r23, r0 \n\t" 17811 "adc r28, r1 \n\t" 17812 "adc r29, r25 \n\t" 17813 "mul r17, r18 \n\t" 17814 "add r23, r0 \n\t" 17815 "adc r28, r1 \n\t" 17816 "adc r29, r25 \n\t" 17817 "ld r0, z \n\t" 17818 "add r23, r0 \n\t" 17819 "adc r28, r25 \n\t" 17820 "adc r29, r25 \n\t" 17821 "lsl r23 \n\t" 17822 "rol r28 \n\t" 17823 "rol r29 \n\t" 17824 "add r23, r24 \n\t" 17825 "adc r28, r22 \n\t" 17826 "adc r29, r25 \n\t" 17827 "st z+, r23 \n\t" 17828 17829 "ld r8, x+ \n\t" 17830 "ldi r22, 0 \n\t" 17831 "mul r9, r7 \n\t" 17832 "mov r23, r0 \n\t" 17833 "mov r24, r1 \n\t" 17834 "mul r10, r6 \n\t" 17835 "add r23, r0 \n\t" 17836 "adc r24, r1 \n\t" 17837 "adc r22, r25 \n\t" 17838 "mul r11, r5 \n\t" 17839 "add r23, r0 \n\t" 17840 "adc r24, r1 \n\t" 17841 "adc r22, r25 \n\t" 17842 "mul r12, r4 \n\t" 17843 "add r23, r0 \n\t" 17844 "adc r24, r1 \n\t" 17845 "adc r22, r25 \n\t" 17846 "mul r13, r3 \n\t" 17847 "add r23, r0 \n\t" 17848 "adc r24, r1 \n\t" 17849 "adc r22, r25 \n\t" 17850 "mul r14, r2 \n\t" 17851 "add r23, r0 \n\t" 17852 "adc r24, r1 \n\t" 17853 "adc r22, r25 \n\t" 17854 "mul r15, r21 \n\t" 17855 "add r23, r0 \n\t" 17856 "adc r24, r1 \n\t" 17857 "adc r22, r25 \n\t" 17858 "mul r16, r20 \n\t" 17859 "add r23, r0 \n\t" 17860 "adc r24, r1 \n\t" 17861 "adc r22, r25 \n\t" 17862 "mul r17, r19 \n\t" 17863 "add r23, r0 \n\t" 17864 "adc r24, r1 \n\t" 17865 "adc r22, r25 \n\t" 17866 "ld r0, z \n\t" 17867 "add r23, r0 \n\t" 17868 "adc r24, r25 \n\t" 17869 "adc r22, r25 \n\t" 17870 "lsl r23 \n\t" 17871 "rol r24 \n\t" 17872 "rol r22 \n\t" 17873 "mul r18, r18 \n\t" 17874 "add r23, r0 \n\t" 17875 "adc r24, r1 \n\t" 17876 "adc r22, r25 \n\t" 17877 "add r23, r28 \n\t" 17878 "adc r24, r29 \n\t" 17879 "adc r22, r25 \n\t" 17880 "st z+, r23 \n\t" 17881 17882 "ldi r29, 0 \n\t" 17883 "mul r9, r8 \n\t" 17884 "mov r23, r0 \n\t" 17885 "mov r28, r1 \n\t" 17886 "mul r10, r7 \n\t" 17887 "add r23, r0 \n\t" 17888 "adc r28, r1 \n\t" 17889 "adc r29, r25 \n\t" 17890 "mul r11, r6 \n\t" 17891 "add r23, r0 \n\t" 17892 "adc r28, r1 \n\t" 17893 "adc r29, r25 \n\t" 17894 "mul r12, r5 \n\t" 17895 "add r23, r0 \n\t" 17896 "adc r28, r1 \n\t" 17897 "adc r29, r25 \n\t" 17898 "mul r13, r4 \n\t" 17899 "add r23, r0 \n\t" 17900 "adc r28, r1 \n\t" 17901 "adc r29, r25 \n\t" 17902 "mul r14, r3 \n\t" 17903 "add r23, r0 \n\t" 17904 "adc r28, r1 \n\t" 17905 "adc r29, r25 \n\t" 17906 "mul r15, r2 \n\t" 17907 "add r23, r0 \n\t" 17908 "adc r28, r1 \n\t" 17909 "adc r29, r25 \n\t" 17910 "mul r16, r21 \n\t" 17911 "add r23, r0 \n\t" 17912 "adc r28, r1 \n\t" 17913 "adc r29, r25 \n\t" 17914 "mul r17, r20 \n\t" 17915 "add r23, r0 \n\t" 17916 "adc r28, r1 \n\t" 17917 "adc r29, r25 \n\t" 17918 "mul r18, r19 \n\t" 17919 "add r23, r0 \n\t" 17920 "adc r28, r1 \n\t" 17921 "adc r29, r25 \n\t" 17922 "ld r0, z \n\t" 17923 "add r23, r0 \n\t" 17924 "adc r28, r25 \n\t" 17925 "adc r29, r25 \n\t" 17926 "lsl r23 \n\t" 17927 "rol r28 \n\t" 17928 "rol r29 \n\t" 17929 "add r23, r24 \n\t" 17930 "adc r28, r22 \n\t" 17931 "adc r29, r25 \n\t" 17932 "st z+, r23 \n\t" 17933 17934 "ld r9, x+ \n\t" 17935 "ldi r22, 0 \n\t" 17936 "mul r10, r8 \n\t" 17937 "mov r23, r0 \n\t" 17938 "mov r24, r1 \n\t" 17939 "mul r11, r7 \n\t" 17940 "add r23, r0 \n\t" 17941 "adc r24, r1 \n\t" 17942 "adc r22, r25 \n\t" 17943 "mul r12, r6 \n\t" 17944 "add r23, r0 \n\t" 17945 "adc r24, r1 \n\t" 17946 "adc r22, r25 \n\t" 17947 "mul r13, r5 \n\t" 17948 "add r23, r0 \n\t" 17949 "adc r24, r1 \n\t" 17950 "adc r22, r25 \n\t" 17951 "mul r14, r4 \n\t" 17952 "add r23, r0 \n\t" 17953 "adc r24, r1 \n\t" 17954 "adc r22, r25 \n\t" 17955 "mul r15, r3 \n\t" 17956 "add r23, r0 \n\t" 17957 "adc r24, r1 \n\t" 17958 "adc r22, r25 \n\t" 17959 "mul r16, r2 \n\t" 17960 "add r23, r0 \n\t" 17961 "adc r24, r1 \n\t" 17962 "adc r22, r25 \n\t" 17963 "mul r17, r21 \n\t" 17964 "add r23, r0 \n\t" 17965 "adc r24, r1 \n\t" 17966 "adc r22, r25 \n\t" 17967 "mul r18, r20 \n\t" 17968 "add r23, r0 \n\t" 17969 "adc r24, r1 \n\t" 17970 "adc r22, r25 \n\t" 17971 "ld r0, z \n\t" 17972 "add r23, r0 \n\t" 17973 "adc r24, r25 \n\t" 17974 "adc r22, r25 \n\t" 17975 "lsl r23 \n\t" 17976 "rol r24 \n\t" 17977 "rol r22 \n\t" 17978 "mul r19, r19 \n\t" 17979 "add r23, r0 \n\t" 17980 "adc r24, r1 \n\t" 17981 "adc r22, r25 \n\t" 17982 "add r23, r28 \n\t" 17983 "adc r24, r29 \n\t" 17984 "adc r22, r25 \n\t" 17985 "st z+, r23 \n\t" 17986 17987 "ldi r29, 0 \n\t" 17988 "mul r10, r9 \n\t" 17989 "mov r23, r0 \n\t" 17990 "mov r28, r1 \n\t" 17991 "mul r11, r8 \n\t" 17992 "add r23, r0 \n\t" 17993 "adc r28, r1 \n\t" 17994 "adc r29, r25 \n\t" 17995 "mul r12, r7 \n\t" 17996 "add r23, r0 \n\t" 17997 "adc r28, r1 \n\t" 17998 "adc r29, r25 \n\t" 17999 "mul r13, r6 \n\t" 18000 "add r23, r0 \n\t" 18001 "adc r28, r1 \n\t" 18002 "adc r29, r25 \n\t" 18003 "mul r14, r5 \n\t" 18004 "add r23, r0 \n\t" 18005 "adc r28, r1 \n\t" 18006 "adc r29, r25 \n\t" 18007 "mul r15, r4 \n\t" 18008 "add r23, r0 \n\t" 18009 "adc r28, r1 \n\t" 18010 "adc r29, r25 \n\t" 18011 "mul r16, r3 \n\t" 18012 "add r23, r0 \n\t" 18013 "adc r28, r1 \n\t" 18014 "adc r29, r25 \n\t" 18015 "mul r17, r2 \n\t" 18016 "add r23, r0 \n\t" 18017 "adc r28, r1 \n\t" 18018 "adc r29, r25 \n\t" 18019 "mul r18, r21 \n\t" 18020 "add r23, r0 \n\t" 18021 "adc r28, r1 \n\t" 18022 "adc r29, r25 \n\t" 18023 "mul r19, r20 \n\t" 18024 "add r23, r0 \n\t" 18025 "adc r28, r1 \n\t" 18026 "adc r29, r25 \n\t" 18027 "ld r0, z \n\t" 18028 "add r23, r0 \n\t" 18029 "adc r28, r25 \n\t" 18030 "adc r29, r25 \n\t" 18031 "lsl r23 \n\t" 18032 "rol r28 \n\t" 18033 "rol r29 \n\t" 18034 "add r23, r24 \n\t" 18035 "adc r28, r22 \n\t" 18036 "adc r29, r25 \n\t" 18037 "st z+, r23 \n\t" 18038 18039 "ldi r22, 0 \n\t" 18040 "mul r11, r9 \n\t" 18041 "mov r23, r0 \n\t" 18042 "mov r24, r1 \n\t" 18043 "mul r12, r8 \n\t" 18044 "add r23, r0 \n\t" 18045 "adc r24, r1 \n\t" 18046 "adc r22, r25 \n\t" 18047 "mul r13, r7 \n\t" 18048 "add r23, r0 \n\t" 18049 "adc r24, r1 \n\t" 18050 "adc r22, r25 \n\t" 18051 "mul r14, r6 \n\t" 18052 "add r23, r0 \n\t" 18053 "adc r24, r1 \n\t" 18054 "adc r22, r25 \n\t" 18055 "mul r15, r5 \n\t" 18056 "add r23, r0 \n\t" 18057 "adc r24, r1 \n\t" 18058 "adc r22, r25 \n\t" 18059 "mul r16, r4 \n\t" 18060 "add r23, r0 \n\t" 18061 "adc r24, r1 \n\t" 18062 "adc r22, r25 \n\t" 18063 "mul r17, r3 \n\t" 18064 "add r23, r0 \n\t" 18065 "adc r24, r1 \n\t" 18066 "adc r22, r25 \n\t" 18067 "mul r18, r2 \n\t" 18068 "add r23, r0 \n\t" 18069 "adc r24, r1 \n\t" 18070 "adc r22, r25 \n\t" 18071 "mul r19, r21 \n\t" 18072 "add r23, r0 \n\t" 18073 "adc r24, r1 \n\t" 18074 "adc r22, r25 \n\t" 18075 "lsl r23 \n\t" 18076 "rol r24 \n\t" 18077 "rol r22 \n\t" 18078 "mul r20, r20 \n\t" 18079 "add r23, r0 \n\t" 18080 "adc r24, r1 \n\t" 18081 "adc r22, r25 \n\t" 18082 "add r23, r28 \n\t" 18083 "adc r24, r29 \n\t" 18084 "adc r22, r25 \n\t" 18085 "st z+, r23 \n\t" 18086 18087 "ldi r29, 0 \n\t" 18088 "mul r12, r9 \n\t" 18089 "mov r23, r0 \n\t" 18090 "mov r28, r1 \n\t" 18091 "mul r13, r8 \n\t" 18092 "add r23, r0 \n\t" 18093 "adc r28, r1 \n\t" 18094 "adc r29, r25 \n\t" 18095 "mul r14, r7 \n\t" 18096 "add r23, r0 \n\t" 18097 "adc r28, r1 \n\t" 18098 "adc r29, r25 \n\t" 18099 "mul r15, r6 \n\t" 18100 "add r23, r0 \n\t" 18101 "adc r28, r1 \n\t" 18102 "adc r29, r25 \n\t" 18103 "mul r16, r5 \n\t" 18104 "add r23, r0 \n\t" 18105 "adc r28, r1 \n\t" 18106 "adc r29, r25 \n\t" 18107 "mul r17, r4 \n\t" 18108 "add r23, r0 \n\t" 18109 "adc r28, r1 \n\t" 18110 "adc r29, r25 \n\t" 18111 "mul r18, r3 \n\t" 18112 "add r23, r0 \n\t" 18113 "adc r28, r1 \n\t" 18114 "adc r29, r25 \n\t" 18115 "mul r19, r2 \n\t" 18116 "add r23, r0 \n\t" 18117 "adc r28, r1 \n\t" 18118 "adc r29, r25 \n\t" 18119 "mul r20, r21 \n\t" 18120 "add r23, r0 \n\t" 18121 "adc r28, r1 \n\t" 18122 "adc r29, r25 \n\t" 18123 "lsl r23 \n\t" 18124 "rol r28 \n\t" 18125 "rol r29 \n\t" 18126 "add r23, r24 \n\t" 18127 "adc r28, r22 \n\t" 18128 "adc r29, r25 \n\t" 18129 "st z+, r23 \n\t" 18130 18131 "ldi r22, 0 \n\t" 18132 "mul r13, r9 \n\t" 18133 "mov r23, r0 \n\t" 18134 "mov r24, r1 \n\t" 18135 "mul r14, r8 \n\t" 18136 "add r23, r0 \n\t" 18137 "adc r24, r1 \n\t" 18138 "adc r22, r25 \n\t" 18139 "mul r15, r7 \n\t" 18140 "add r23, r0 \n\t" 18141 "adc r24, r1 \n\t" 18142 "adc r22, r25 \n\t" 18143 "mul r16, r6 \n\t" 18144 "add r23, r0 \n\t" 18145 "adc r24, r1 \n\t" 18146 "adc r22, r25 \n\t" 18147 "mul r17, r5 \n\t" 18148 "add r23, r0 \n\t" 18149 "adc r24, r1 \n\t" 18150 "adc r22, r25 \n\t" 18151 "mul r18, r4 \n\t" 18152 "add r23, r0 \n\t" 18153 "adc r24, r1 \n\t" 18154 "adc r22, r25 \n\t" 18155 "mul r19, r3 \n\t" 18156 "add r23, r0 \n\t" 18157 "adc r24, r1 \n\t" 18158 "adc r22, r25 \n\t" 18159 "mul r20, r2 \n\t" 18160 "add r23, r0 \n\t" 18161 "adc r24, r1 \n\t" 18162 "adc r22, r25 \n\t" 18163 "lsl r23 \n\t" 18164 "rol r24 \n\t" 18165 "rol r22 \n\t" 18166 "mul r21, r21 \n\t" 18167 "add r23, r0 \n\t" 18168 "adc r24, r1 \n\t" 18169 "adc r22, r25 \n\t" 18170 "add r23, r28 \n\t" 18171 "adc r24, r29 \n\t" 18172 "adc r22, r25 \n\t" 18173 "st z+, r23 \n\t" 18174 18175 "ldi r29, 0 \n\t" 18176 "mul r14, r9 \n\t" 18177 "mov r23, r0 \n\t" 18178 "mov r28, r1 \n\t" 18179 "mul r15, r8 \n\t" 18180 "add r23, r0 \n\t" 18181 "adc r28, r1 \n\t" 18182 "adc r29, r25 \n\t" 18183 "mul r16, r7 \n\t" 18184 "add r23, r0 \n\t" 18185 "adc r28, r1 \n\t" 18186 "adc r29, r25 \n\t" 18187 "mul r17, r6 \n\t" 18188 "add r23, r0 \n\t" 18189 "adc r28, r1 \n\t" 18190 "adc r29, r25 \n\t" 18191 "mul r18, r5 \n\t" 18192 "add r23, r0 \n\t" 18193 "adc r28, r1 \n\t" 18194 "adc r29, r25 \n\t" 18195 "mul r19, r4 \n\t" 18196 "add r23, r0 \n\t" 18197 "adc r28, r1 \n\t" 18198 "adc r29, r25 \n\t" 18199 "mul r20, r3 \n\t" 18200 "add r23, r0 \n\t" 18201 "adc r28, r1 \n\t" 18202 "adc r29, r25 \n\t" 18203 "mul r21, r2 \n\t" 18204 "add r23, r0 \n\t" 18205 "adc r28, r1 \n\t" 18206 "adc r29, r25 \n\t" 18207 "lsl r23 \n\t" 18208 "rol r28 \n\t" 18209 "rol r29 \n\t" 18210 "add r23, r24 \n\t" 18211 "adc r28, r22 \n\t" 18212 "adc r29, r25 \n\t" 18213 "st z+, r23 \n\t" 18214 18215 "ldi r22, 0 \n\t" 18216 "mul r15, r9 \n\t" 18217 "mov r23, r0 \n\t" 18218 "mov r24, r1 \n\t" 18219 "mul r16, r8 \n\t" 18220 "add r23, r0 \n\t" 18221 "adc r24, r1 \n\t" 18222 "adc r22, r25 \n\t" 18223 "mul r17, r7 \n\t" 18224 "add r23, r0 \n\t" 18225 "adc r24, r1 \n\t" 18226 "adc r22, r25 \n\t" 18227 "mul r18, r6 \n\t" 18228 "add r23, r0 \n\t" 18229 "adc r24, r1 \n\t" 18230 "adc r22, r25 \n\t" 18231 "mul r19, r5 \n\t" 18232 "add r23, r0 \n\t" 18233 "adc r24, r1 \n\t" 18234 "adc r22, r25 \n\t" 18235 "mul r20, r4 \n\t" 18236 "add r23, r0 \n\t" 18237 "adc r24, r1 \n\t" 18238 "adc r22, r25 \n\t" 18239 "mul r21, r3 \n\t" 18240 "add r23, r0 \n\t" 18241 "adc r24, r1 \n\t" 18242 "adc r22, r25 \n\t" 18243 "lsl r23 \n\t" 18244 "rol r24 \n\t" 18245 "rol r22 \n\t" 18246 "mul r2, r2 \n\t" 18247 "add r23, r0 \n\t" 18248 "adc r24, r1 \n\t" 18249 "adc r22, r25 \n\t" 18250 "add r23, r28 \n\t" 18251 "adc r24, r29 \n\t" 18252 "adc r22, r25 \n\t" 18253 "st z+, r23 \n\t" 18254 18255 "ldi r29, 0 \n\t" 18256 "mul r16, r9 \n\t" 18257 "mov r23, r0 \n\t" 18258 "mov r28, r1 \n\t" 18259 "mul r17, r8 \n\t" 18260 "add r23, r0 \n\t" 18261 "adc r28, r1 \n\t" 18262 "adc r29, r25 \n\t" 18263 "mul r18, r7 \n\t" 18264 "add r23, r0 \n\t" 18265 "adc r28, r1 \n\t" 18266 "adc r29, r25 \n\t" 18267 "mul r19, r6 \n\t" 18268 "add r23, r0 \n\t" 18269 "adc r28, r1 \n\t" 18270 "adc r29, r25 \n\t" 18271 "mul r20, r5 \n\t" 18272 "add r23, r0 \n\t" 18273 "adc r28, r1 \n\t" 18274 "adc r29, r25 \n\t" 18275 "mul r21, r4 \n\t" 18276 "add r23, r0 \n\t" 18277 "adc r28, r1 \n\t" 18278 "adc r29, r25 \n\t" 18279 "mul r2, r3 \n\t" 18280 "add r23, r0 \n\t" 18281 "adc r28, r1 \n\t" 18282 "adc r29, r25 \n\t" 18283 "lsl r23 \n\t" 18284 "rol r28 \n\t" 18285 "rol r29 \n\t" 18286 "add r23, r24 \n\t" 18287 "adc r28, r22 \n\t" 18288 "adc r29, r25 \n\t" 18289 "st z+, r23 \n\t" 18290 18291 "ldi r22, 0 \n\t" 18292 "mul r17, r9 \n\t" 18293 "mov r23, r0 \n\t" 18294 "mov r24, r1 \n\t" 18295 "mul r18, r8 \n\t" 18296 "add r23, r0 \n\t" 18297 "adc r24, r1 \n\t" 18298 "adc r22, r25 \n\t" 18299 "mul r19, r7 \n\t" 18300 "add r23, r0 \n\t" 18301 "adc r24, r1 \n\t" 18302 "adc r22, r25 \n\t" 18303 "mul r20, r6 \n\t" 18304 "add r23, r0 \n\t" 18305 "adc r24, r1 \n\t" 18306 "adc r22, r25 \n\t" 18307 "mul r21, r5 \n\t" 18308 "add r23, r0 \n\t" 18309 "adc r24, r1 \n\t" 18310 "adc r22, r25 \n\t" 18311 "mul r2, r4 \n\t" 18312 "add r23, r0 \n\t" 18313 "adc r24, r1 \n\t" 18314 "adc r22, r25 \n\t" 18315 "lsl r23 \n\t" 18316 "rol r24 \n\t" 18317 "rol r22 \n\t" 18318 "mul r3, r3 \n\t" 18319 "add r23, r0 \n\t" 18320 "adc r24, r1 \n\t" 18321 "adc r22, r25 \n\t" 18322 "add r23, r28 \n\t" 18323 "adc r24, r29 \n\t" 18324 "adc r22, r25 \n\t" 18325 "st z+, r23 \n\t" 18326 18327 "ldi r29, 0 \n\t" 18328 "mul r18, r9 \n\t" 18329 "mov r23, r0 \n\t" 18330 "mov r28, r1 \n\t" 18331 "mul r19, r8 \n\t" 18332 "add r23, r0 \n\t" 18333 "adc r28, r1 \n\t" 18334 "adc r29, r25 \n\t" 18335 "mul r20, r7 \n\t" 18336 "add r23, r0 \n\t" 18337 "adc r28, r1 \n\t" 18338 "adc r29, r25 \n\t" 18339 "mul r21, r6 \n\t" 18340 "add r23, r0 \n\t" 18341 "adc r28, r1 \n\t" 18342 "adc r29, r25 \n\t" 18343 "mul r2, r5 \n\t" 18344 "add r23, r0 \n\t" 18345 "adc r28, r1 \n\t" 18346 "adc r29, r25 \n\t" 18347 "mul r3, r4 \n\t" 18348 "add r23, r0 \n\t" 18349 "adc r28, r1 \n\t" 18350 "adc r29, r25 \n\t" 18351 "lsl r23 \n\t" 18352 "rol r28 \n\t" 18353 "rol r29 \n\t" 18354 "add r23, r24 \n\t" 18355 "adc r28, r22 \n\t" 18356 "adc r29, r25 \n\t" 18357 "st z+, r23 \n\t" 18358 18359 "ldi r22, 0 \n\t" 18360 "mul r19, r9 \n\t" 18361 "mov r23, r0 \n\t" 18362 "mov r24, r1 \n\t" 18363 "mul r20, r8 \n\t" 18364 "add r23, r0 \n\t" 18365 "adc r24, r1 \n\t" 18366 "adc r22, r25 \n\t" 18367 "mul r21, r7 \n\t" 18368 "add r23, r0 \n\t" 18369 "adc r24, r1 \n\t" 18370 "adc r22, r25 \n\t" 18371 "mul r2, r6 \n\t" 18372 "add r23, r0 \n\t" 18373 "adc r24, r1 \n\t" 18374 "adc r22, r25 \n\t" 18375 "mul r3, r5 \n\t" 18376 "add r23, r0 \n\t" 18377 "adc r24, r1 \n\t" 18378 "adc r22, r25 \n\t" 18379 "lsl r23 \n\t" 18380 "rol r24 \n\t" 18381 "rol r22 \n\t" 18382 "mul r4, r4 \n\t" 18383 "add r23, r0 \n\t" 18384 "adc r24, r1 \n\t" 18385 "adc r22, r25 \n\t" 18386 "add r23, r28 \n\t" 18387 "adc r24, r29 \n\t" 18388 "adc r22, r25 \n\t" 18389 "st z+, r23 \n\t" 18390 18391 "ldi r29, 0 \n\t" 18392 "mul r20, r9 \n\t" 18393 "mov r23, r0 \n\t" 18394 "mov r28, r1 \n\t" 18395 "mul r21, r8 \n\t" 18396 "add r23, r0 \n\t" 18397 "adc r28, r1 \n\t" 18398 "adc r29, r25 \n\t" 18399 "mul r2, r7 \n\t" 18400 "add r23, r0 \n\t" 18401 "adc r28, r1 \n\t" 18402 "adc r29, r25 \n\t" 18403 "mul r3, r6 \n\t" 18404 "add r23, r0 \n\t" 18405 "adc r28, r1 \n\t" 18406 "adc r29, r25 \n\t" 18407 "mul r4, r5 \n\t" 18408 "add r23, r0 \n\t" 18409 "adc r28, r1 \n\t" 18410 "adc r29, r25 \n\t" 18411 "lsl r23 \n\t" 18412 "rol r28 \n\t" 18413 "rol r29 \n\t" 18414 "add r23, r24 \n\t" 18415 "adc r28, r22 \n\t" 18416 "adc r29, r25 \n\t" 18417 "st z+, r23 \n\t" 18418 18419 "ldi r22, 0 \n\t" 18420 "mul r21, r9 \n\t" 18421 "mov r23, r0 \n\t" 18422 "mov r24, r1 \n\t" 18423 "mul r2, r8 \n\t" 18424 "add r23, r0 \n\t" 18425 "adc r24, r1 \n\t" 18426 "adc r22, r25 \n\t" 18427 "mul r3, r7 \n\t" 18428 "add r23, r0 \n\t" 18429 "adc r24, r1 \n\t" 18430 "adc r22, r25 \n\t" 18431 "mul r4, r6 \n\t" 18432 "add r23, r0 \n\t" 18433 "adc r24, r1 \n\t" 18434 "adc r22, r25 \n\t" 18435 "lsl r23 \n\t" 18436 "rol r24 \n\t" 18437 "rol r22 \n\t" 18438 "mul r5, r5 \n\t" 18439 "add r23, r0 \n\t" 18440 "adc r24, r1 \n\t" 18441 "adc r22, r25 \n\t" 18442 "add r23, r28 \n\t" 18443 "adc r24, r29 \n\t" 18444 "adc r22, r25 \n\t" 18445 "st z+, r23 \n\t" 18446 18447 "ldi r29, 0 \n\t" 18448 "mul r2, r9 \n\t" 18449 "mov r23, r0 \n\t" 18450 "mov r28, r1 \n\t" 18451 "mul r3, r8 \n\t" 18452 "add r23, r0 \n\t" 18453 "adc r28, r1 \n\t" 18454 "adc r29, r25 \n\t" 18455 "mul r4, r7 \n\t" 18456 "add r23, r0 \n\t" 18457 "adc r28, r1 \n\t" 18458 "adc r29, r25 \n\t" 18459 "mul r5, r6 \n\t" 18460 "add r23, r0 \n\t" 18461 "adc r28, r1 \n\t" 18462 "adc r29, r25 \n\t" 18463 "lsl r23 \n\t" 18464 "rol r28 \n\t" 18465 "rol r29 \n\t" 18466 "add r23, r24 \n\t" 18467 "adc r28, r22 \n\t" 18468 "adc r29, r25 \n\t" 18469 "st z+, r23 \n\t" 18470 18471 "ldi r22, 0 \n\t" 18472 "mul r3, r9 \n\t" 18473 "mov r23, r0 \n\t" 18474 "mov r24, r1 \n\t" 18475 "mul r4, r8 \n\t" 18476 "add r23, r0 \n\t" 18477 "adc r24, r1 \n\t" 18478 "adc r22, r25 \n\t" 18479 "mul r5, r7 \n\t" 18480 "add r23, r0 \n\t" 18481 "adc r24, r1 \n\t" 18482 "adc r22, r25 \n\t" 18483 "lsl r23 \n\t" 18484 "rol r24 \n\t" 18485 "rol r22 \n\t" 18486 "mul r6, r6 \n\t" 18487 "add r23, r0 \n\t" 18488 "adc r24, r1 \n\t" 18489 "adc r22, r25 \n\t" 18490 "add r23, r28 \n\t" 18491 "adc r24, r29 \n\t" 18492 "adc r22, r25 \n\t" 18493 "st z+, r23 \n\t" 18494 18495 "ldi r29, 0 \n\t" 18496 "mul r4, r9 \n\t" 18497 "mov r23, r0 \n\t" 18498 "mov r28, r1 \n\t" 18499 "mul r5, r8 \n\t" 18500 "add r23, r0 \n\t" 18501 "adc r28, r1 \n\t" 18502 "adc r29, r25 \n\t" 18503 "mul r6, r7 \n\t" 18504 "add r23, r0 \n\t" 18505 "adc r28, r1 \n\t" 18506 "adc r29, r25 \n\t" 18507 "lsl r23 \n\t" 18508 "rol r28 \n\t" 18509 "rol r29 \n\t" 18510 "add r23, r24 \n\t" 18511 "adc r28, r22 \n\t" 18512 "adc r29, r25 \n\t" 18513 "st z+, r23 \n\t" 18514 18515 "ldi r22, 0 \n\t" 18516 "mul r5, r9 \n\t" 18517 "mov r23, r0 \n\t" 18518 "mov r24, r1 \n\t" 18519 "mul r6, r8 \n\t" 18520 "add r23, r0 \n\t" 18521 "adc r24, r1 \n\t" 18522 "adc r22, r25 \n\t" 18523 "lsl r23 \n\t" 18524 "rol r24 \n\t" 18525 "rol r22 \n\t" 18526 "mul r7, r7 \n\t" 18527 "add r23, r0 \n\t" 18528 "adc r24, r1 \n\t" 18529 "adc r22, r25 \n\t" 18530 "add r23, r28 \n\t" 18531 "adc r24, r29 \n\t" 18532 "adc r22, r25 \n\t" 18533 "st z+, r23 \n\t" 18534 18535 "ldi r29, 0 \n\t" 18536 "mul r6, r9 \n\t" 18537 "mov r23, r0 \n\t" 18538 "mov r28, r1 \n\t" 18539 "mul r7, r8 \n\t" 18540 "add r23, r0 \n\t" 18541 "adc r28, r1 \n\t" 18542 "adc r29, r25 \n\t" 18543 "lsl r23 \n\t" 18544 "rol r28 \n\t" 18545 "rol r29 \n\t" 18546 "add r23, r24 \n\t" 18547 "adc r28, r22 \n\t" 18548 "adc r29, r25 \n\t" 18549 "st z+, r23 \n\t" 18550 18551 "ldi r23, 0 \n\t" 18552 "mul r7, r9 \n\t" 18553 "add r28, r0 \n\t" 18554 "adc r29, r1 \n\t" 18555 "adc r23, r25 \n\t" 18556 "add r28, r0 \n\t" 18557 "adc r29, r1 \n\t" 18558 "adc r23, r25 \n\t" 18559 "mul r8, r8 \n\t" 18560 "add r28, r0 \n\t" 18561 "adc r29, r1 \n\t" 18562 "adc r23, r25 \n\t" 18563 "st z+, r28 \n\t" 18564 18565 "ldi r28, 0 \n\t" 18566 "mul r8, r9 \n\t" 18567 "add r29, r0 \n\t" 18568 "adc r23, r1 \n\t" 18569 "adc r28, r25 \n\t" 18570 "add r29, r0 \n\t" 18571 "adc r23, r1 \n\t" 18572 "adc r28, r25 \n\t" 18573 "st z+, r29 \n\t" 18574 18575 "mul r9, r9 \n\t" 18576 "add r23, r0 \n\t" 18577 "adc r28, r1 \n\t" 18578 "st z+, r23 \n\t" 18579 "st z+, r28 \n\t" 18580 "eor r1, r1 \n\t" 18581 : "+x" (left), "+z" (result) 18582 : 18583 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 18584 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 18585 "r21", "r22", "r23", "r24", "r25", "r28", "r29", "cc", "memory" 18586 ); 18587} 18588#define asm_square 1 18589 18590#elif (uECC_BYTES == 32) 18591 18592__attribute((noinline)) 18593static void vli_square(uint8_t *result, const uint8_t *left) { 18594 __asm__ volatile ( 18595 "ldi r25, 0 \n\t" 18596 "movw r28, r26 \n\t" 18597 "ld r2, x+ \n\t" 18598 "ld r3, x+ \n\t" 18599 "ld r4, x+ \n\t" 18600 "ld r5, x+ \n\t" 18601 "ld r6, x+ \n\t" 18602 "ld r7, x+ \n\t" 18603 "adiw r28, 20 \n\t" 18604 "ld r12, y+ \n\t" 18605 "ld r13, y+ \n\t" 18606 "ld r14, y+ \n\t" 18607 "ld r15, y+ \n\t" 18608 "ld r16, y+ \n\t" 18609 "ld r17, y+ \n\t" 18610 "adiw r30, 20 \n\t" 18611 18612 "ldi r23, 0 \n\t" 18613 "mul 2, 12 \n\t" 18614 "st z+, r0 \n\t" 18615 "mov r22, r1 \n\t" 18616 18617 "ldi r24, 0 \n\t" 18618 "mul r2, r13 \n\t" 18619 "add r22, r0 \n\t" 18620 "adc r23, r1 \n\t" 18621 "adc r24, r25 \n\t" 18622 "st z+, r22 \n\t" 18623 18624 "ldi r22, 0 \n\t" 18625 "mul r2, r14 \n\t" 18626 "add r23, r0 \n\t" 18627 "adc r24, r1 \n\t" 18628 "adc r22, r25 \n\t" 18629 "mul r3, r13 \n\t" 18630 "add r23, r0 \n\t" 18631 "adc r24, r1 \n\t" 18632 "adc r22, r25 \n\t" 18633 "st z+, r23 \n\t" 18634 18635 "ldi r23, 0 \n\t" 18636 "mul r2, r15 \n\t" 18637 "add r24, r0 \n\t" 18638 "adc r22, r1 \n\t" 18639 "adc r23, r25 \n\t" 18640 "mul r3, r14 \n\t" 18641 "add r24, r0 \n\t" 18642 "adc r22, r1 \n\t" 18643 "adc r23, r25 \n\t" 18644 "st z+, r24 \n\t" 18645 18646 "ldi r24, 0 \n\t" 18647 "mul r2, r16 \n\t" 18648 "add r22, r0 \n\t" 18649 "adc r23, r1 \n\t" 18650 "adc r24, r25 \n\t" 18651 "mul r3, r15 \n\t" 18652 "add r22, r0 \n\t" 18653 "adc r23, r1 \n\t" 18654 "adc r24, r25 \n\t" 18655 "mul r4, r14 \n\t" 18656 "add r22, r0 \n\t" 18657 "adc r23, r1 \n\t" 18658 "adc r24, r25 \n\t" 18659 "st z+, r22 \n\t" 18660 18661 "ldi r22, 0 \n\t" 18662 "mul r2, r17 \n\t" 18663 "add r23, r0 \n\t" 18664 "adc r24, r1 \n\t" 18665 "adc r22, r25 \n\t" 18666 "mul r3, r16 \n\t" 18667 "add r23, r0 \n\t" 18668 "adc r24, r1 \n\t" 18669 "adc r22, r25 \n\t" 18670 "mul r4, r15 \n\t" 18671 "add r23, r0 \n\t" 18672 "adc r24, r1 \n\t" 18673 "adc r22, r25 \n\t" 18674 "st z+, r23 \n\t" 18675 18676 "ld r12, y+ \n\t" 18677 "ldi r23, 0 \n\t" 18678 "mul r2, r12 \n\t" 18679 "add r24, r0 \n\t" 18680 "adc r22, r1 \n\t" 18681 "adc r23, r25 \n\t" 18682 "mul r3, r17 \n\t" 18683 "add r24, r0 \n\t" 18684 "adc r22, r1 \n\t" 18685 "adc r23, r25 \n\t" 18686 "mul r4, r16 \n\t" 18687 "add r24, r0 \n\t" 18688 "adc r22, r1 \n\t" 18689 "adc r23, r25 \n\t" 18690 "mul r5, r15 \n\t" 18691 "add r24, r0 \n\t" 18692 "adc r22, r1 \n\t" 18693 "adc r23, r25 \n\t" 18694 "st z+, r24 \n\t" 18695 18696 "ld r13, y+ \n\t" 18697 "ldi r24, 0 \n\t" 18698 "mul r2, r13 \n\t" 18699 "add r22, r0 \n\t" 18700 "adc r23, r1 \n\t" 18701 "adc r24, r25 \n\t" 18702 "mul r3, r12 \n\t" 18703 "add r22, r0 \n\t" 18704 "adc r23, r1 \n\t" 18705 "adc r24, r25 \n\t" 18706 "mul r4, r17 \n\t" 18707 "add r22, r0 \n\t" 18708 "adc r23, r1 \n\t" 18709 "adc r24, r25 \n\t" 18710 "mul r5, r16 \n\t" 18711 "add r22, r0 \n\t" 18712 "adc r23, r1 \n\t" 18713 "adc r24, r25 \n\t" 18714 "st z+, r22 \n\t" 18715 18716 "ld r14, y+ \n\t" 18717 "ldi r22, 0 \n\t" 18718 "mul r2, r14 \n\t" 18719 "add r23, r0 \n\t" 18720 "adc r24, r1 \n\t" 18721 "adc r22, r25 \n\t" 18722 "mul r3, r13 \n\t" 18723 "add r23, r0 \n\t" 18724 "adc r24, r1 \n\t" 18725 "adc r22, r25 \n\t" 18726 "mul r4, r12 \n\t" 18727 "add r23, r0 \n\t" 18728 "adc r24, r1 \n\t" 18729 "adc r22, r25 \n\t" 18730 "mul r5, r17 \n\t" 18731 "add r23, r0 \n\t" 18732 "adc r24, r1 \n\t" 18733 "adc r22, r25 \n\t" 18734 "mul r6, r16 \n\t" 18735 "add r23, r0 \n\t" 18736 "adc r24, r1 \n\t" 18737 "adc r22, r25 \n\t" 18738 "st z+, r23 \n\t" 18739 18740 "ld r15, y+ \n\t" 18741 "ldi r23, 0 \n\t" 18742 "mul r2, r15 \n\t" 18743 "add r24, r0 \n\t" 18744 "adc r22, r1 \n\t" 18745 "adc r23, r25 \n\t" 18746 "mul r3, r14 \n\t" 18747 "add r24, r0 \n\t" 18748 "adc r22, r1 \n\t" 18749 "adc r23, r25 \n\t" 18750 "mul r4, r13 \n\t" 18751 "add r24, r0 \n\t" 18752 "adc r22, r1 \n\t" 18753 "adc r23, r25 \n\t" 18754 "mul r5, r12 \n\t" 18755 "add r24, r0 \n\t" 18756 "adc r22, r1 \n\t" 18757 "adc r23, r25 \n\t" 18758 "mul r6, r17 \n\t" 18759 "add r24, r0 \n\t" 18760 "adc r22, r1 \n\t" 18761 "adc r23, r25 \n\t" 18762 "st z+, r24 \n\t" 18763 18764 "ld r16, y+ \n\t" 18765 "ldi r24, 0 \n\t" 18766 "mul r2, r16 \n\t" 18767 "add r22, r0 \n\t" 18768 "adc r23, r1 \n\t" 18769 "adc r24, r25 \n\t" 18770 "mul r3, r15 \n\t" 18771 "add r22, r0 \n\t" 18772 "adc r23, r1 \n\t" 18773 "adc r24, r25 \n\t" 18774 "mul r4, r14 \n\t" 18775 "add r22, r0 \n\t" 18776 "adc r23, r1 \n\t" 18777 "adc r24, r25 \n\t" 18778 "mul r5, r13 \n\t" 18779 "add r22, r0 \n\t" 18780 "adc r23, r1 \n\t" 18781 "adc r24, r25 \n\t" 18782 "mul r6, r12 \n\t" 18783 "add r22, r0 \n\t" 18784 "adc r23, r1 \n\t" 18785 "adc r24, r25 \n\t" 18786 "mul r7, r17 \n\t" 18787 "add r22, r0 \n\t" 18788 "adc r23, r1 \n\t" 18789 "adc r24, r25 \n\t" 18790 "st z+, r22 \n\t" 18791 18792 "ld r17, y+ \n\t" 18793 "ldi r22, 0 \n\t" 18794 "mul r2, r17 \n\t" 18795 "add r23, r0 \n\t" 18796 "adc r24, r1 \n\t" 18797 "adc r22, r25 \n\t" 18798 "mul r3, r16 \n\t" 18799 "add r23, r0 \n\t" 18800 "adc r24, r1 \n\t" 18801 "adc r22, r25 \n\t" 18802 "mul r4, r15 \n\t" 18803 "add r23, r0 \n\t" 18804 "adc r24, r1 \n\t" 18805 "adc r22, r25 \n\t" 18806 "mul r5, r14 \n\t" 18807 "add r23, r0 \n\t" 18808 "adc r24, r1 \n\t" 18809 "adc r22, r25 \n\t" 18810 "mul r6, r13 \n\t" 18811 "add r23, r0 \n\t" 18812 "adc r24, r1 \n\t" 18813 "adc r22, r25 \n\t" 18814 "mul r7, r12 \n\t" 18815 "add r23, r0 \n\t" 18816 "adc r24, r1 \n\t" 18817 "adc r22, r25 \n\t" 18818 "st z+, r23 \n\t" 18819 18820 "ld r2, x+ \n\t" 18821 "ldi r23, 0 \n\t" 18822 "mul r3, r17 \n\t" 18823 "add r24, r0 \n\t" 18824 "adc r22, r1 \n\t" 18825 "adc r23, r25 \n\t" 18826 "mul r4, r16 \n\t" 18827 "add r24, r0 \n\t" 18828 "adc r22, r1 \n\t" 18829 "adc r23, r25 \n\t" 18830 "mul r5, r15 \n\t" 18831 "add r24, r0 \n\t" 18832 "adc r22, r1 \n\t" 18833 "adc r23, r25 \n\t" 18834 "mul r6, r14 \n\t" 18835 "add r24, r0 \n\t" 18836 "adc r22, r1 \n\t" 18837 "adc r23, r25 \n\t" 18838 "mul r7, r13 \n\t" 18839 "add r24, r0 \n\t" 18840 "adc r22, r1 \n\t" 18841 "adc r23, r25 \n\t" 18842 "mul r2, r12 \n\t" 18843 "add r24, r0 \n\t" 18844 "adc r22, r1 \n\t" 18845 "adc r23, r25 \n\t" 18846 "st z+, r24 \n\t" 18847 18848 "ld r3, x+ \n\t" 18849 "ldi r24, 0 \n\t" 18850 "mul r4, r17 \n\t" 18851 "add r22, r0 \n\t" 18852 "adc r23, r1 \n\t" 18853 "adc r24, r25 \n\t" 18854 "mul r5, r16 \n\t" 18855 "add r22, r0 \n\t" 18856 "adc r23, r1 \n\t" 18857 "adc r24, r25 \n\t" 18858 "mul r6, r15 \n\t" 18859 "add r22, r0 \n\t" 18860 "adc r23, r1 \n\t" 18861 "adc r24, r25 \n\t" 18862 "mul r7, r14 \n\t" 18863 "add r22, r0 \n\t" 18864 "adc r23, r1 \n\t" 18865 "adc r24, r25 \n\t" 18866 "mul r2, r13 \n\t" 18867 "add r22, r0 \n\t" 18868 "adc r23, r1 \n\t" 18869 "adc r24, r25 \n\t" 18870 "st z+, r22 \n\t" 18871 18872 "ld r4, x+ \n\t" 18873 "ldi r22, 0 \n\t" 18874 "mul r5, r17 \n\t" 18875 "add r23, r0 \n\t" 18876 "adc r24, r1 \n\t" 18877 "adc r22, r25 \n\t" 18878 "mul r6, r16 \n\t" 18879 "add r23, r0 \n\t" 18880 "adc r24, r1 \n\t" 18881 "adc r22, r25 \n\t" 18882 "mul r7, r15 \n\t" 18883 "add r23, r0 \n\t" 18884 "adc r24, r1 \n\t" 18885 "adc r22, r25 \n\t" 18886 "mul r2, r14 \n\t" 18887 "add r23, r0 \n\t" 18888 "adc r24, r1 \n\t" 18889 "adc r22, r25 \n\t" 18890 "mul r3, r13 \n\t" 18891 "add r23, r0 \n\t" 18892 "adc r24, r1 \n\t" 18893 "adc r22, r25 \n\t" 18894 "st z+, r23 \n\t" 18895 18896 "ld r5, x+ \n\t" 18897 "ldi r23, 0 \n\t" 18898 "mul r6, r17 \n\t" 18899 "add r24, r0 \n\t" 18900 "adc r22, r1 \n\t" 18901 "adc r23, r25 \n\t" 18902 "mul r7, r16 \n\t" 18903 "add r24, r0 \n\t" 18904 "adc r22, r1 \n\t" 18905 "adc r23, r25 \n\t" 18906 "mul r2, r15 \n\t" 18907 "add r24, r0 \n\t" 18908 "adc r22, r1 \n\t" 18909 "adc r23, r25 \n\t" 18910 "mul r3, r14 \n\t" 18911 "add r24, r0 \n\t" 18912 "adc r22, r1 \n\t" 18913 "adc r23, r25 \n\t" 18914 "st z+, r24 \n\t" 18915 18916 "ld r6, x+ \n\t" 18917 "ldi r24, 0 \n\t" 18918 "mul r7, r17 \n\t" 18919 "add r22, r0 \n\t" 18920 "adc r23, r1 \n\t" 18921 "adc r24, r25 \n\t" 18922 "mul r2, r16 \n\t" 18923 "add r22, r0 \n\t" 18924 "adc r23, r1 \n\t" 18925 "adc r24, r25 \n\t" 18926 "mul r3, r15 \n\t" 18927 "add r22, r0 \n\t" 18928 "adc r23, r1 \n\t" 18929 "adc r24, r25 \n\t" 18930 "mul r4, r14 \n\t" 18931 "add r22, r0 \n\t" 18932 "adc r23, r1 \n\t" 18933 "adc r24, r25 \n\t" 18934 "st z+, r22 \n\t" 18935 18936 "ld r7, x+ \n\t" 18937 "ldi r22, 0 \n\t" 18938 "mul r2, r17 \n\t" 18939 "add r23, r0 \n\t" 18940 "adc r24, r1 \n\t" 18941 "adc r22, r25 \n\t" 18942 "mul r3, r16 \n\t" 18943 "add r23, r0 \n\t" 18944 "adc r24, r1 \n\t" 18945 "adc r22, r25 \n\t" 18946 "mul r4, r15 \n\t" 18947 "add r23, r0 \n\t" 18948 "adc r24, r1 \n\t" 18949 "adc r22, r25 \n\t" 18950 "st z+, r23 \n\t" 18951 18952 "ldi r23, 0 \n\t" 18953 "mul r3, r17 \n\t" 18954 "add r24, r0 \n\t" 18955 "adc r22, r1 \n\t" 18956 "adc r23, r25 \n\t" 18957 "mul r4, r16 \n\t" 18958 "add r24, r0 \n\t" 18959 "adc r22, r1 \n\t" 18960 "adc r23, r25 \n\t" 18961 "mul r5, r15 \n\t" 18962 "add r24, r0 \n\t" 18963 "adc r22, r1 \n\t" 18964 "adc r23, r25 \n\t" 18965 "st z+, r24 \n\t" 18966 18967 "ldi r24, 0 \n\t" 18968 "mul r4, r17 \n\t" 18969 "add r22, r0 \n\t" 18970 "adc r23, r1 \n\t" 18971 "adc r24, r25 \n\t" 18972 "mul r5, r16 \n\t" 18973 "add r22, r0 \n\t" 18974 "adc r23, r1 \n\t" 18975 "adc r24, r25 \n\t" 18976 "st z+, r22 \n\t" 18977 18978 "ldi r22, 0 \n\t" 18979 "mul r5, r17 \n\t" 18980 "add r23, r0 \n\t" 18981 "adc r24, r1 \n\t" 18982 "adc r22, r25 \n\t" 18983 "mul r6, r16 \n\t" 18984 "add r23, r0 \n\t" 18985 "adc r24, r1 \n\t" 18986 "adc r22, r25 \n\t" 18987 "st z+, r23 \n\t" 18988 18989 "ldi r23, 0 \n\t" 18990 "mul r6, r17 \n\t" 18991 "add r24, r0 \n\t" 18992 "adc r22, r1 \n\t" 18993 "adc r23, r25 \n\t" 18994 "st z+, r24 \n\t" 18995 18996 "mul r7, r17 \n\t" 18997 "add r22, r0 \n\t" 18998 "adc r23, r1 \n\t" 18999 "st z+, r22 \n\t" 19000 "st z+, r23 \n\t" 19001 19002 "sbiw r26, 12 \n\t" 19003 "sbiw r30, 44 \n\t" 19004 "ld r2, x+ \n\t" 19005 "ld r3, x+ \n\t" 19006 "ld r4, x+ \n\t" 19007 "ld r5, x+ \n\t" 19008 "ld r6, x+ \n\t" 19009 "ld r7, x+ \n\t" 19010 "ld r8, x+ \n\t" 19011 "ld r9, x+ \n\t" 19012 "ld r10, x+ \n\t" 19013 "ld r11, x+ \n\t" 19014 "ld r12, x+ \n\t" 19015 "ld r13, x+ \n\t" 19016 "ld r14, x+ \n\t" 19017 "ld r15, x+ \n\t" 19018 "ld r16, x+ \n\t" 19019 "ld r17, x+ \n\t" 19020 "ld r18, x+ \n\t" 19021 "ld r19, x+ \n\t" 19022 "ld r20, x+ \n\t" 19023 "ld r21, x+ \n\t" 19024 19025 "ldi r23, 0 \n\t" 19026 "mul r2, r2 \n\t" 19027 "st z+, r0 \n\t" 19028 "mov r22, r1 \n\t" 19029 19030 "ldi r24, 0 \n\t" 19031 "mul r2, r3 \n\t" 19032 "add r22, r0 \n\t" 19033 "adc r23, r1 \n\t" 19034 "adc r24, r25 \n\t" 19035 "add r22, r0 \n\t" 19036 "adc r23, r1 \n\t" 19037 "adc r24, r25 \n\t" 19038 "st z+, r22 \n\t" 19039 19040 "ldi r22, 0 \n\t" 19041 "mul r2, r4 \n\t" 19042 "add r23, r0 \n\t" 19043 "adc r24, r1 \n\t" 19044 "adc r22, r25 \n\t" 19045 "add r23, r0 \n\t" 19046 "adc r24, r1 \n\t" 19047 "adc r22, r25 \n\t" 19048 "mul r3, r3 \n\t" 19049 "add r23, r0 \n\t" 19050 "adc r24, r1 \n\t" 19051 "adc r22, r25 \n\t" 19052 "st z+, r23 \n\t" 19053 19054 "ldi r29, 0 \n\t" 19055 "mul r2, r5 \n\t" 19056 "mov r23, r0 \n\t" 19057 "mov r28, r1 \n\t" 19058 "mul r3, r4 \n\t" 19059 "add r23, r0 \n\t" 19060 "adc r28, r1 \n\t" 19061 "adc r29, r25 \n\t" 19062 "lsl r23 \n\t" 19063 "rol r28 \n\t" 19064 "rol r29 \n\t" 19065 "add r23, r24 \n\t" 19066 "adc r28, r22 \n\t" 19067 "adc r29, r25 \n\t" 19068 "st z+, r23 \n\t" 19069 19070 "ldi r22, 0 \n\t" 19071 "mul r2, r6 \n\t" 19072 "mov r23, r0 \n\t" 19073 "mov r24, r1 \n\t" 19074 "mul r3, r5 \n\t" 19075 "add r23, r0 \n\t" 19076 "adc r24, r1 \n\t" 19077 "adc r22, r25 \n\t" 19078 "lsl r23 \n\t" 19079 "rol r24 \n\t" 19080 "rol r22 \n\t" 19081 "mul r4, r4 \n\t" 19082 "add r23, r0 \n\t" 19083 "adc r24, r1 \n\t" 19084 "adc r22, r25 \n\t" 19085 "add r23, r28 \n\t" 19086 "adc r24, r29 \n\t" 19087 "adc r22, r25 \n\t" 19088 "st z+, r23 \n\t" 19089 19090 "ldi r29, 0 \n\t" 19091 "mul r2, r7 \n\t" 19092 "mov r23, r0 \n\t" 19093 "mov r28, r1 \n\t" 19094 "mul r3, r6 \n\t" 19095 "add r23, r0 \n\t" 19096 "adc r28, r1 \n\t" 19097 "adc r29, r25 \n\t" 19098 "mul r4, r5 \n\t" 19099 "add r23, r0 \n\t" 19100 "adc r28, r1 \n\t" 19101 "adc r29, r25 \n\t" 19102 "lsl r23 \n\t" 19103 "rol r28 \n\t" 19104 "rol r29 \n\t" 19105 "add r23, r24 \n\t" 19106 "adc r28, r22 \n\t" 19107 "adc r29, r25 \n\t" 19108 "st z+, r23 \n\t" 19109 19110 "ldi r22, 0 \n\t" 19111 "mul r2, r8 \n\t" 19112 "mov r23, r0 \n\t" 19113 "mov r24, r1 \n\t" 19114 "mul r3, r7 \n\t" 19115 "add r23, r0 \n\t" 19116 "adc r24, r1 \n\t" 19117 "adc r22, r25 \n\t" 19118 "mul r4, r6 \n\t" 19119 "add r23, r0 \n\t" 19120 "adc r24, r1 \n\t" 19121 "adc r22, r25 \n\t" 19122 "lsl r23 \n\t" 19123 "rol r24 \n\t" 19124 "rol r22 \n\t" 19125 "mul r5, r5 \n\t" 19126 "add r23, r0 \n\t" 19127 "adc r24, r1 \n\t" 19128 "adc r22, r25 \n\t" 19129 "add r23, r28 \n\t" 19130 "adc r24, r29 \n\t" 19131 "adc r22, r25 \n\t" 19132 "st z+, r23 \n\t" 19133 19134 "ldi r29, 0 \n\t" 19135 "mul r2, r9 \n\t" 19136 "mov r23, r0 \n\t" 19137 "mov r28, r1 \n\t" 19138 "mul r3, r8 \n\t" 19139 "add r23, r0 \n\t" 19140 "adc r28, r1 \n\t" 19141 "adc r29, r25 \n\t" 19142 "mul r4, r7 \n\t" 19143 "add r23, r0 \n\t" 19144 "adc r28, r1 \n\t" 19145 "adc r29, r25 \n\t" 19146 "mul r5, r6 \n\t" 19147 "add r23, r0 \n\t" 19148 "adc r28, r1 \n\t" 19149 "adc r29, r25 \n\t" 19150 "lsl r23 \n\t" 19151 "rol r28 \n\t" 19152 "rol r29 \n\t" 19153 "add r23, r24 \n\t" 19154 "adc r28, r22 \n\t" 19155 "adc r29, r25 \n\t" 19156 "st z+, r23 \n\t" 19157 19158 "ldi r22, 0 \n\t" 19159 "mul r2, r10 \n\t" 19160 "mov r23, r0 \n\t" 19161 "mov r24, r1 \n\t" 19162 "mul r3, r9 \n\t" 19163 "add r23, r0 \n\t" 19164 "adc r24, r1 \n\t" 19165 "adc r22, r25 \n\t" 19166 "mul r4, r8 \n\t" 19167 "add r23, r0 \n\t" 19168 "adc r24, r1 \n\t" 19169 "adc r22, r25 \n\t" 19170 "mul r5, r7 \n\t" 19171 "add r23, r0 \n\t" 19172 "adc r24, r1 \n\t" 19173 "adc r22, r25 \n\t" 19174 "lsl r23 \n\t" 19175 "rol r24 \n\t" 19176 "rol r22 \n\t" 19177 "mul r6, r6 \n\t" 19178 "add r23, r0 \n\t" 19179 "adc r24, r1 \n\t" 19180 "adc r22, r25 \n\t" 19181 "add r23, r28 \n\t" 19182 "adc r24, r29 \n\t" 19183 "adc r22, r25 \n\t" 19184 "st z+, r23 \n\t" 19185 19186 "ldi r29, 0 \n\t" 19187 "mul r2, r11 \n\t" 19188 "mov r23, r0 \n\t" 19189 "mov r28, r1 \n\t" 19190 "mul r3, r10 \n\t" 19191 "add r23, r0 \n\t" 19192 "adc r28, r1 \n\t" 19193 "adc r29, r25 \n\t" 19194 "mul r4, r9 \n\t" 19195 "add r23, r0 \n\t" 19196 "adc r28, r1 \n\t" 19197 "adc r29, r25 \n\t" 19198 "mul r5, r8 \n\t" 19199 "add r23, r0 \n\t" 19200 "adc r28, r1 \n\t" 19201 "adc r29, r25 \n\t" 19202 "mul r6, r7 \n\t" 19203 "add r23, r0 \n\t" 19204 "adc r28, r1 \n\t" 19205 "adc r29, r25 \n\t" 19206 "lsl r23 \n\t" 19207 "rol r28 \n\t" 19208 "rol r29 \n\t" 19209 "add r23, r24 \n\t" 19210 "adc r28, r22 \n\t" 19211 "adc r29, r25 \n\t" 19212 "st z+, r23 \n\t" 19213 19214 "ldi r22, 0 \n\t" 19215 "mul r2, r12 \n\t" 19216 "mov r23, r0 \n\t" 19217 "mov r24, r1 \n\t" 19218 "mul r3, r11 \n\t" 19219 "add r23, r0 \n\t" 19220 "adc r24, r1 \n\t" 19221 "adc r22, r25 \n\t" 19222 "mul r4, r10 \n\t" 19223 "add r23, r0 \n\t" 19224 "adc r24, r1 \n\t" 19225 "adc r22, r25 \n\t" 19226 "mul r5, r9 \n\t" 19227 "add r23, r0 \n\t" 19228 "adc r24, r1 \n\t" 19229 "adc r22, r25 \n\t" 19230 "mul r6, r8 \n\t" 19231 "add r23, r0 \n\t" 19232 "adc r24, r1 \n\t" 19233 "adc r22, r25 \n\t" 19234 "lsl r23 \n\t" 19235 "rol r24 \n\t" 19236 "rol r22 \n\t" 19237 "mul r7, r7 \n\t" 19238 "add r23, r0 \n\t" 19239 "adc r24, r1 \n\t" 19240 "adc r22, r25 \n\t" 19241 "add r23, r28 \n\t" 19242 "adc r24, r29 \n\t" 19243 "adc r22, r25 \n\t" 19244 "st z+, r23 \n\t" 19245 19246 "ldi r29, 0 \n\t" 19247 "mul r2, r13 \n\t" 19248 "mov r23, r0 \n\t" 19249 "mov r28, r1 \n\t" 19250 "mul r3, r12 \n\t" 19251 "add r23, r0 \n\t" 19252 "adc r28, r1 \n\t" 19253 "adc r29, r25 \n\t" 19254 "mul r4, r11 \n\t" 19255 "add r23, r0 \n\t" 19256 "adc r28, r1 \n\t" 19257 "adc r29, r25 \n\t" 19258 "mul r5, r10 \n\t" 19259 "add r23, r0 \n\t" 19260 "adc r28, r1 \n\t" 19261 "adc r29, r25 \n\t" 19262 "mul r6, r9 \n\t" 19263 "add r23, r0 \n\t" 19264 "adc r28, r1 \n\t" 19265 "adc r29, r25 \n\t" 19266 "mul r7, r8 \n\t" 19267 "add r23, r0 \n\t" 19268 "adc r28, r1 \n\t" 19269 "adc r29, r25 \n\t" 19270 "lsl r23 \n\t" 19271 "rol r28 \n\t" 19272 "rol r29 \n\t" 19273 "add r23, r24 \n\t" 19274 "adc r28, r22 \n\t" 19275 "adc r29, r25 \n\t" 19276 "st z+, r23 \n\t" 19277 19278 "ldi r22, 0 \n\t" 19279 "mul r2, r14 \n\t" 19280 "mov r23, r0 \n\t" 19281 "mov r24, r1 \n\t" 19282 "mul r3, r13 \n\t" 19283 "add r23, r0 \n\t" 19284 "adc r24, r1 \n\t" 19285 "adc r22, r25 \n\t" 19286 "mul r4, r12 \n\t" 19287 "add r23, r0 \n\t" 19288 "adc r24, r1 \n\t" 19289 "adc r22, r25 \n\t" 19290 "mul r5, r11 \n\t" 19291 "add r23, r0 \n\t" 19292 "adc r24, r1 \n\t" 19293 "adc r22, r25 \n\t" 19294 "mul r6, r10 \n\t" 19295 "add r23, r0 \n\t" 19296 "adc r24, r1 \n\t" 19297 "adc r22, r25 \n\t" 19298 "mul r7, r9 \n\t" 19299 "add r23, r0 \n\t" 19300 "adc r24, r1 \n\t" 19301 "adc r22, r25 \n\t" 19302 "lsl r23 \n\t" 19303 "rol r24 \n\t" 19304 "rol r22 \n\t" 19305 "mul r8, r8 \n\t" 19306 "add r23, r0 \n\t" 19307 "adc r24, r1 \n\t" 19308 "adc r22, r25 \n\t" 19309 "add r23, r28 \n\t" 19310 "adc r24, r29 \n\t" 19311 "adc r22, r25 \n\t" 19312 "st z+, r23 \n\t" 19313 19314 "ldi r29, 0 \n\t" 19315 "mul r2, r15 \n\t" 19316 "mov r23, r0 \n\t" 19317 "mov r28, r1 \n\t" 19318 "mul r3, r14 \n\t" 19319 "add r23, r0 \n\t" 19320 "adc r28, r1 \n\t" 19321 "adc r29, r25 \n\t" 19322 "mul r4, r13 \n\t" 19323 "add r23, r0 \n\t" 19324 "adc r28, r1 \n\t" 19325 "adc r29, r25 \n\t" 19326 "mul r5, r12 \n\t" 19327 "add r23, r0 \n\t" 19328 "adc r28, r1 \n\t" 19329 "adc r29, r25 \n\t" 19330 "mul r6, r11 \n\t" 19331 "add r23, r0 \n\t" 19332 "adc r28, r1 \n\t" 19333 "adc r29, r25 \n\t" 19334 "mul r7, r10 \n\t" 19335 "add r23, r0 \n\t" 19336 "adc r28, r1 \n\t" 19337 "adc r29, r25 \n\t" 19338 "mul r8, r9 \n\t" 19339 "add r23, r0 \n\t" 19340 "adc r28, r1 \n\t" 19341 "adc r29, r25 \n\t" 19342 "lsl r23 \n\t" 19343 "rol r28 \n\t" 19344 "rol r29 \n\t" 19345 "add r23, r24 \n\t" 19346 "adc r28, r22 \n\t" 19347 "adc r29, r25 \n\t" 19348 "st z+, r23 \n\t" 19349 19350 "ldi r22, 0 \n\t" 19351 "mul r2, r16 \n\t" 19352 "mov r23, r0 \n\t" 19353 "mov r24, r1 \n\t" 19354 "mul r3, r15 \n\t" 19355 "add r23, r0 \n\t" 19356 "adc r24, r1 \n\t" 19357 "adc r22, r25 \n\t" 19358 "mul r4, r14 \n\t" 19359 "add r23, r0 \n\t" 19360 "adc r24, r1 \n\t" 19361 "adc r22, r25 \n\t" 19362 "mul r5, r13 \n\t" 19363 "add r23, r0 \n\t" 19364 "adc r24, r1 \n\t" 19365 "adc r22, r25 \n\t" 19366 "mul r6, r12 \n\t" 19367 "add r23, r0 \n\t" 19368 "adc r24, r1 \n\t" 19369 "adc r22, r25 \n\t" 19370 "mul r7, r11 \n\t" 19371 "add r23, r0 \n\t" 19372 "adc r24, r1 \n\t" 19373 "adc r22, r25 \n\t" 19374 "mul r8, r10 \n\t" 19375 "add r23, r0 \n\t" 19376 "adc r24, r1 \n\t" 19377 "adc r22, r25 \n\t" 19378 "lsl r23 \n\t" 19379 "rol r24 \n\t" 19380 "rol r22 \n\t" 19381 "mul r9, r9 \n\t" 19382 "add r23, r0 \n\t" 19383 "adc r24, r1 \n\t" 19384 "adc r22, r25 \n\t" 19385 "add r23, r28 \n\t" 19386 "adc r24, r29 \n\t" 19387 "adc r22, r25 \n\t" 19388 "st z+, r23 \n\t" 19389 19390 "ldi r29, 0 \n\t" 19391 "mul r2, r17 \n\t" 19392 "mov r23, r0 \n\t" 19393 "mov r28, r1 \n\t" 19394 "mul r3, r16 \n\t" 19395 "add r23, r0 \n\t" 19396 "adc r28, r1 \n\t" 19397 "adc r29, r25 \n\t" 19398 "mul r4, r15 \n\t" 19399 "add r23, r0 \n\t" 19400 "adc r28, r1 \n\t" 19401 "adc r29, r25 \n\t" 19402 "mul r5, r14 \n\t" 19403 "add r23, r0 \n\t" 19404 "adc r28, r1 \n\t" 19405 "adc r29, r25 \n\t" 19406 "mul r6, r13 \n\t" 19407 "add r23, r0 \n\t" 19408 "adc r28, r1 \n\t" 19409 "adc r29, r25 \n\t" 19410 "mul r7, r12 \n\t" 19411 "add r23, r0 \n\t" 19412 "adc r28, r1 \n\t" 19413 "adc r29, r25 \n\t" 19414 "mul r8, r11 \n\t" 19415 "add r23, r0 \n\t" 19416 "adc r28, r1 \n\t" 19417 "adc r29, r25 \n\t" 19418 "mul r9, r10 \n\t" 19419 "add r23, r0 \n\t" 19420 "adc r28, r1 \n\t" 19421 "adc r29, r25 \n\t" 19422 "lsl r23 \n\t" 19423 "rol r28 \n\t" 19424 "rol r29 \n\t" 19425 "add r23, r24 \n\t" 19426 "adc r28, r22 \n\t" 19427 "adc r29, r25 \n\t" 19428 "st z+, r23 \n\t" 19429 19430 "ldi r22, 0 \n\t" 19431 "mul r2, r18 \n\t" 19432 "mov r23, r0 \n\t" 19433 "mov r24, r1 \n\t" 19434 "mul r3, r17 \n\t" 19435 "add r23, r0 \n\t" 19436 "adc r24, r1 \n\t" 19437 "adc r22, r25 \n\t" 19438 "mul r4, r16 \n\t" 19439 "add r23, r0 \n\t" 19440 "adc r24, r1 \n\t" 19441 "adc r22, r25 \n\t" 19442 "mul r5, r15 \n\t" 19443 "add r23, r0 \n\t" 19444 "adc r24, r1 \n\t" 19445 "adc r22, r25 \n\t" 19446 "mul r6, r14 \n\t" 19447 "add r23, r0 \n\t" 19448 "adc r24, r1 \n\t" 19449 "adc r22, r25 \n\t" 19450 "mul r7, r13 \n\t" 19451 "add r23, r0 \n\t" 19452 "adc r24, r1 \n\t" 19453 "adc r22, r25 \n\t" 19454 "mul r8, r12 \n\t" 19455 "add r23, r0 \n\t" 19456 "adc r24, r1 \n\t" 19457 "adc r22, r25 \n\t" 19458 "mul r9, r11 \n\t" 19459 "add r23, r0 \n\t" 19460 "adc r24, r1 \n\t" 19461 "adc r22, r25 \n\t" 19462 "lsl r23 \n\t" 19463 "rol r24 \n\t" 19464 "rol r22 \n\t" 19465 "mul r10, r10 \n\t" 19466 "add r23, r0 \n\t" 19467 "adc r24, r1 \n\t" 19468 "adc r22, r25 \n\t" 19469 "add r23, r28 \n\t" 19470 "adc r24, r29 \n\t" 19471 "adc r22, r25 \n\t" 19472 "st z+, r23 \n\t" 19473 19474 "ldi r29, 0 \n\t" 19475 "mul r2, r19 \n\t" 19476 "mov r23, r0 \n\t" 19477 "mov r28, r1 \n\t" 19478 "mul r3, r18 \n\t" 19479 "add r23, r0 \n\t" 19480 "adc r28, r1 \n\t" 19481 "adc r29, r25 \n\t" 19482 "mul r4, r17 \n\t" 19483 "add r23, r0 \n\t" 19484 "adc r28, r1 \n\t" 19485 "adc r29, r25 \n\t" 19486 "mul r5, r16 \n\t" 19487 "add r23, r0 \n\t" 19488 "adc r28, r1 \n\t" 19489 "adc r29, r25 \n\t" 19490 "mul r6, r15 \n\t" 19491 "add r23, r0 \n\t" 19492 "adc r28, r1 \n\t" 19493 "adc r29, r25 \n\t" 19494 "mul r7, r14 \n\t" 19495 "add r23, r0 \n\t" 19496 "adc r28, r1 \n\t" 19497 "adc r29, r25 \n\t" 19498 "mul r8, r13 \n\t" 19499 "add r23, r0 \n\t" 19500 "adc r28, r1 \n\t" 19501 "adc r29, r25 \n\t" 19502 "mul r9, r12 \n\t" 19503 "add r23, r0 \n\t" 19504 "adc r28, r1 \n\t" 19505 "adc r29, r25 \n\t" 19506 "mul r10, r11 \n\t" 19507 "add r23, r0 \n\t" 19508 "adc r28, r1 \n\t" 19509 "adc r29, r25 \n\t" 19510 "lsl r23 \n\t" 19511 "rol r28 \n\t" 19512 "rol r29 \n\t" 19513 "add r23, r24 \n\t" 19514 "adc r28, r22 \n\t" 19515 "adc r29, r25 \n\t" 19516 "st z+, r23 \n\t" 19517 19518 "ldi r22, 0 \n\t" 19519 "mul r2, r20 \n\t" 19520 "mov r23, r0 \n\t" 19521 "mov r24, r1 \n\t" 19522 "mul r3, r19 \n\t" 19523 "add r23, r0 \n\t" 19524 "adc r24, r1 \n\t" 19525 "adc r22, r25 \n\t" 19526 "mul r4, r18 \n\t" 19527 "add r23, r0 \n\t" 19528 "adc r24, r1 \n\t" 19529 "adc r22, r25 \n\t" 19530 "mul r5, r17 \n\t" 19531 "add r23, r0 \n\t" 19532 "adc r24, r1 \n\t" 19533 "adc r22, r25 \n\t" 19534 "mul r6, r16 \n\t" 19535 "add r23, r0 \n\t" 19536 "adc r24, r1 \n\t" 19537 "adc r22, r25 \n\t" 19538 "mul r7, r15 \n\t" 19539 "add r23, r0 \n\t" 19540 "adc r24, r1 \n\t" 19541 "adc r22, r25 \n\t" 19542 "mul r8, r14 \n\t" 19543 "add r23, r0 \n\t" 19544 "adc r24, r1 \n\t" 19545 "adc r22, r25 \n\t" 19546 "mul r9, r13 \n\t" 19547 "add r23, r0 \n\t" 19548 "adc r24, r1 \n\t" 19549 "adc r22, r25 \n\t" 19550 "mul r10, r12 \n\t" 19551 "add r23, r0 \n\t" 19552 "adc r24, r1 \n\t" 19553 "adc r22, r25 \n\t" 19554 "lsl r23 \n\t" 19555 "rol r24 \n\t" 19556 "rol r22 \n\t" 19557 "mul r11, r11 \n\t" 19558 "add r23, r0 \n\t" 19559 "adc r24, r1 \n\t" 19560 "adc r22, r25 \n\t" 19561 "add r23, r28 \n\t" 19562 "adc r24, r29 \n\t" 19563 "adc r22, r25 \n\t" 19564 "st z+, r23 \n\t" 19565 19566 "ldi r29, 0 \n\t" 19567 "mul r2, r21 \n\t" 19568 "mov r23, r0 \n\t" 19569 "mov r28, r1 \n\t" 19570 "mul r3, r20 \n\t" 19571 "add r23, r0 \n\t" 19572 "adc r28, r1 \n\t" 19573 "adc r29, r25 \n\t" 19574 "mul r4, r19 \n\t" 19575 "add r23, r0 \n\t" 19576 "adc r28, r1 \n\t" 19577 "adc r29, r25 \n\t" 19578 "mul r5, r18 \n\t" 19579 "add r23, r0 \n\t" 19580 "adc r28, r1 \n\t" 19581 "adc r29, r25 \n\t" 19582 "mul r6, r17 \n\t" 19583 "add r23, r0 \n\t" 19584 "adc r28, r1 \n\t" 19585 "adc r29, r25 \n\t" 19586 "mul r7, r16 \n\t" 19587 "add r23, r0 \n\t" 19588 "adc r28, r1 \n\t" 19589 "adc r29, r25 \n\t" 19590 "mul r8, r15 \n\t" 19591 "add r23, r0 \n\t" 19592 "adc r28, r1 \n\t" 19593 "adc r29, r25 \n\t" 19594 "mul r9, r14 \n\t" 19595 "add r23, r0 \n\t" 19596 "adc r28, r1 \n\t" 19597 "adc r29, r25 \n\t" 19598 "mul r10, r13 \n\t" 19599 "add r23, r0 \n\t" 19600 "adc r28, r1 \n\t" 19601 "adc r29, r25 \n\t" 19602 "mul r11, r12 \n\t" 19603 "add r23, r0 \n\t" 19604 "adc r28, r1 \n\t" 19605 "adc r29, r25 \n\t" 19606 "lsl r23 \n\t" 19607 "rol r28 \n\t" 19608 "rol r29 \n\t" 19609 "add r23, r24 \n\t" 19610 "adc r28, r22 \n\t" 19611 "adc r29, r25 \n\t" 19612 "st z+, r23 \n\t" 19613 19614 "ld r2, x+ \n\t" 19615 "ldi r22, 0 \n\t" 19616 "mul r3, r21 \n\t" 19617 "mov r23, r0 \n\t" 19618 "mov r24, r1 \n\t" 19619 "mul r4, r20 \n\t" 19620 "add r23, r0 \n\t" 19621 "adc r24, r1 \n\t" 19622 "adc r22, r25 \n\t" 19623 "mul r5, r19 \n\t" 19624 "add r23, r0 \n\t" 19625 "adc r24, r1 \n\t" 19626 "adc r22, r25 \n\t" 19627 "mul r6, r18 \n\t" 19628 "add r23, r0 \n\t" 19629 "adc r24, r1 \n\t" 19630 "adc r22, r25 \n\t" 19631 "mul r7, r17 \n\t" 19632 "add r23, r0 \n\t" 19633 "adc r24, r1 \n\t" 19634 "adc r22, r25 \n\t" 19635 "mul r8, r16 \n\t" 19636 "add r23, r0 \n\t" 19637 "adc r24, r1 \n\t" 19638 "adc r22, r25 \n\t" 19639 "mul r9, r15 \n\t" 19640 "add r23, r0 \n\t" 19641 "adc r24, r1 \n\t" 19642 "adc r22, r25 \n\t" 19643 "mul r10, r14 \n\t" 19644 "add r23, r0 \n\t" 19645 "adc r24, r1 \n\t" 19646 "adc r22, r25 \n\t" 19647 "mul r11, r13 \n\t" 19648 "add r23, r0 \n\t" 19649 "adc r24, r1 \n\t" 19650 "adc r22, r25 \n\t" 19651 "ld r0, z \n\t" 19652 "add r23, r0 \n\t" 19653 "adc r24, r25 \n\t" 19654 "adc r22, r25 \n\t" 19655 "lsl r23 \n\t" 19656 "rol r24 \n\t" 19657 "rol r22 \n\t" 19658 "mul r12, r12 \n\t" 19659 "add r23, r0 \n\t" 19660 "adc r24, r1 \n\t" 19661 "adc r22, r25 \n\t" 19662 "add r23, r28 \n\t" 19663 "adc r24, r29 \n\t" 19664 "adc r22, r25 \n\t" 19665 "st z+, r23 \n\t" 19666 19667 "ldi r29, 0 \n\t" 19668 "mul r3, r2 \n\t" 19669 "mov r23, r0 \n\t" 19670 "mov r28, r1 \n\t" 19671 "mul r4, r21 \n\t" 19672 "add r23, r0 \n\t" 19673 "adc r28, r1 \n\t" 19674 "adc r29, r25 \n\t" 19675 "mul r5, r20 \n\t" 19676 "add r23, r0 \n\t" 19677 "adc r28, r1 \n\t" 19678 "adc r29, r25 \n\t" 19679 "mul r6, r19 \n\t" 19680 "add r23, r0 \n\t" 19681 "adc r28, r1 \n\t" 19682 "adc r29, r25 \n\t" 19683 "mul r7, r18 \n\t" 19684 "add r23, r0 \n\t" 19685 "adc r28, r1 \n\t" 19686 "adc r29, r25 \n\t" 19687 "mul r8, r17 \n\t" 19688 "add r23, r0 \n\t" 19689 "adc r28, r1 \n\t" 19690 "adc r29, r25 \n\t" 19691 "mul r9, r16 \n\t" 19692 "add r23, r0 \n\t" 19693 "adc r28, r1 \n\t" 19694 "adc r29, r25 \n\t" 19695 "mul r10, r15 \n\t" 19696 "add r23, r0 \n\t" 19697 "adc r28, r1 \n\t" 19698 "adc r29, r25 \n\t" 19699 "mul r11, r14 \n\t" 19700 "add r23, r0 \n\t" 19701 "adc r28, r1 \n\t" 19702 "adc r29, r25 \n\t" 19703 "mul r12, r13 \n\t" 19704 "add r23, r0 \n\t" 19705 "adc r28, r1 \n\t" 19706 "adc r29, r25 \n\t" 19707 "ld r0, z \n\t" 19708 "add r23, r0 \n\t" 19709 "adc r28, r25 \n\t" 19710 "adc r29, r25 \n\t" 19711 "lsl r23 \n\t" 19712 "rol r28 \n\t" 19713 "rol r29 \n\t" 19714 "add r23, r24 \n\t" 19715 "adc r28, r22 \n\t" 19716 "adc r29, r25 \n\t" 19717 "st z+, r23 \n\t" 19718 19719 "ld r3, x+ \n\t" 19720 "ldi r22, 0 \n\t" 19721 "mul r4, r2 \n\t" 19722 "mov r23, r0 \n\t" 19723 "mov r24, r1 \n\t" 19724 "mul r5, r21 \n\t" 19725 "add r23, r0 \n\t" 19726 "adc r24, r1 \n\t" 19727 "adc r22, r25 \n\t" 19728 "mul r6, r20 \n\t" 19729 "add r23, r0 \n\t" 19730 "adc r24, r1 \n\t" 19731 "adc r22, r25 \n\t" 19732 "mul r7, r19 \n\t" 19733 "add r23, r0 \n\t" 19734 "adc r24, r1 \n\t" 19735 "adc r22, r25 \n\t" 19736 "mul r8, r18 \n\t" 19737 "add r23, r0 \n\t" 19738 "adc r24, r1 \n\t" 19739 "adc r22, r25 \n\t" 19740 "mul r9, r17 \n\t" 19741 "add r23, r0 \n\t" 19742 "adc r24, r1 \n\t" 19743 "adc r22, r25 \n\t" 19744 "mul r10, r16 \n\t" 19745 "add r23, r0 \n\t" 19746 "adc r24, r1 \n\t" 19747 "adc r22, r25 \n\t" 19748 "mul r11, r15 \n\t" 19749 "add r23, r0 \n\t" 19750 "adc r24, r1 \n\t" 19751 "adc r22, r25 \n\t" 19752 "mul r12, r14 \n\t" 19753 "add r23, r0 \n\t" 19754 "adc r24, r1 \n\t" 19755 "adc r22, r25 \n\t" 19756 "ld r0, z \n\t" 19757 "add r23, r0 \n\t" 19758 "adc r24, r25 \n\t" 19759 "adc r22, r25 \n\t" 19760 "lsl r23 \n\t" 19761 "rol r24 \n\t" 19762 "rol r22 \n\t" 19763 "mul r13, r13 \n\t" 19764 "add r23, r0 \n\t" 19765 "adc r24, r1 \n\t" 19766 "adc r22, r25 \n\t" 19767 "add r23, r28 \n\t" 19768 "adc r24, r29 \n\t" 19769 "adc r22, r25 \n\t" 19770 "st z+, r23 \n\t" 19771 19772 "ldi r29, 0 \n\t" 19773 "mul r4, r3 \n\t" 19774 "mov r23, r0 \n\t" 19775 "mov r28, r1 \n\t" 19776 "mul r5, r2 \n\t" 19777 "add r23, r0 \n\t" 19778 "adc r28, r1 \n\t" 19779 "adc r29, r25 \n\t" 19780 "mul r6, r21 \n\t" 19781 "add r23, r0 \n\t" 19782 "adc r28, r1 \n\t" 19783 "adc r29, r25 \n\t" 19784 "mul r7, r20 \n\t" 19785 "add r23, r0 \n\t" 19786 "adc r28, r1 \n\t" 19787 "adc r29, r25 \n\t" 19788 "mul r8, r19 \n\t" 19789 "add r23, r0 \n\t" 19790 "adc r28, r1 \n\t" 19791 "adc r29, r25 \n\t" 19792 "mul r9, r18 \n\t" 19793 "add r23, r0 \n\t" 19794 "adc r28, r1 \n\t" 19795 "adc r29, r25 \n\t" 19796 "mul r10, r17 \n\t" 19797 "add r23, r0 \n\t" 19798 "adc r28, r1 \n\t" 19799 "adc r29, r25 \n\t" 19800 "mul r11, r16 \n\t" 19801 "add r23, r0 \n\t" 19802 "adc r28, r1 \n\t" 19803 "adc r29, r25 \n\t" 19804 "mul r12, r15 \n\t" 19805 "add r23, r0 \n\t" 19806 "adc r28, r1 \n\t" 19807 "adc r29, r25 \n\t" 19808 "mul r13, r14 \n\t" 19809 "add r23, r0 \n\t" 19810 "adc r28, r1 \n\t" 19811 "adc r29, r25 \n\t" 19812 "ld r0, z \n\t" 19813 "add r23, r0 \n\t" 19814 "adc r28, r25 \n\t" 19815 "adc r29, r25 \n\t" 19816 "lsl r23 \n\t" 19817 "rol r28 \n\t" 19818 "rol r29 \n\t" 19819 "add r23, r24 \n\t" 19820 "adc r28, r22 \n\t" 19821 "adc r29, r25 \n\t" 19822 "st z+, r23 \n\t" 19823 19824 "ld r4, x+ \n\t" 19825 "ldi r22, 0 \n\t" 19826 "mul r5, r3 \n\t" 19827 "mov r23, r0 \n\t" 19828 "mov r24, r1 \n\t" 19829 "mul r6, r2 \n\t" 19830 "add r23, r0 \n\t" 19831 "adc r24, r1 \n\t" 19832 "adc r22, r25 \n\t" 19833 "mul r7, r21 \n\t" 19834 "add r23, r0 \n\t" 19835 "adc r24, r1 \n\t" 19836 "adc r22, r25 \n\t" 19837 "mul r8, r20 \n\t" 19838 "add r23, r0 \n\t" 19839 "adc r24, r1 \n\t" 19840 "adc r22, r25 \n\t" 19841 "mul r9, r19 \n\t" 19842 "add r23, r0 \n\t" 19843 "adc r24, r1 \n\t" 19844 "adc r22, r25 \n\t" 19845 "mul r10, r18 \n\t" 19846 "add r23, r0 \n\t" 19847 "adc r24, r1 \n\t" 19848 "adc r22, r25 \n\t" 19849 "mul r11, r17 \n\t" 19850 "add r23, r0 \n\t" 19851 "adc r24, r1 \n\t" 19852 "adc r22, r25 \n\t" 19853 "mul r12, r16 \n\t" 19854 "add r23, r0 \n\t" 19855 "adc r24, r1 \n\t" 19856 "adc r22, r25 \n\t" 19857 "mul r13, r15 \n\t" 19858 "add r23, r0 \n\t" 19859 "adc r24, r1 \n\t" 19860 "adc r22, r25 \n\t" 19861 "ld r0, z \n\t" 19862 "add r23, r0 \n\t" 19863 "adc r24, r25 \n\t" 19864 "adc r22, r25 \n\t" 19865 "lsl r23 \n\t" 19866 "rol r24 \n\t" 19867 "rol r22 \n\t" 19868 "mul r14, r14 \n\t" 19869 "add r23, r0 \n\t" 19870 "adc r24, r1 \n\t" 19871 "adc r22, r25 \n\t" 19872 "add r23, r28 \n\t" 19873 "adc r24, r29 \n\t" 19874 "adc r22, r25 \n\t" 19875 "st z+, r23 \n\t" 19876 19877 "ldi r29, 0 \n\t" 19878 "mul r5, r4 \n\t" 19879 "mov r23, r0 \n\t" 19880 "mov r28, r1 \n\t" 19881 "mul r6, r3 \n\t" 19882 "add r23, r0 \n\t" 19883 "adc r28, r1 \n\t" 19884 "adc r29, r25 \n\t" 19885 "mul r7, r2 \n\t" 19886 "add r23, r0 \n\t" 19887 "adc r28, r1 \n\t" 19888 "adc r29, r25 \n\t" 19889 "mul r8, r21 \n\t" 19890 "add r23, r0 \n\t" 19891 "adc r28, r1 \n\t" 19892 "adc r29, r25 \n\t" 19893 "mul r9, r20 \n\t" 19894 "add r23, r0 \n\t" 19895 "adc r28, r1 \n\t" 19896 "adc r29, r25 \n\t" 19897 "mul r10, r19 \n\t" 19898 "add r23, r0 \n\t" 19899 "adc r28, r1 \n\t" 19900 "adc r29, r25 \n\t" 19901 "mul r11, r18 \n\t" 19902 "add r23, r0 \n\t" 19903 "adc r28, r1 \n\t" 19904 "adc r29, r25 \n\t" 19905 "mul r12, r17 \n\t" 19906 "add r23, r0 \n\t" 19907 "adc r28, r1 \n\t" 19908 "adc r29, r25 \n\t" 19909 "mul r13, r16 \n\t" 19910 "add r23, r0 \n\t" 19911 "adc r28, r1 \n\t" 19912 "adc r29, r25 \n\t" 19913 "mul r14, r15 \n\t" 19914 "add r23, r0 \n\t" 19915 "adc r28, r1 \n\t" 19916 "adc r29, r25 \n\t" 19917 "ld r0, z \n\t" 19918 "add r23, r0 \n\t" 19919 "adc r28, r25 \n\t" 19920 "adc r29, r25 \n\t" 19921 "lsl r23 \n\t" 19922 "rol r28 \n\t" 19923 "rol r29 \n\t" 19924 "add r23, r24 \n\t" 19925 "adc r28, r22 \n\t" 19926 "adc r29, r25 \n\t" 19927 "st z+, r23 \n\t" 19928 19929 "ld r5, x+ \n\t" 19930 "ldi r22, 0 \n\t" 19931 "mul r6, r4 \n\t" 19932 "mov r23, r0 \n\t" 19933 "mov r24, r1 \n\t" 19934 "mul r7, r3 \n\t" 19935 "add r23, r0 \n\t" 19936 "adc r24, r1 \n\t" 19937 "adc r22, r25 \n\t" 19938 "mul r8, r2 \n\t" 19939 "add r23, r0 \n\t" 19940 "adc r24, r1 \n\t" 19941 "adc r22, r25 \n\t" 19942 "mul r9, r21 \n\t" 19943 "add r23, r0 \n\t" 19944 "adc r24, r1 \n\t" 19945 "adc r22, r25 \n\t" 19946 "mul r10, r20 \n\t" 19947 "add r23, r0 \n\t" 19948 "adc r24, r1 \n\t" 19949 "adc r22, r25 \n\t" 19950 "mul r11, r19 \n\t" 19951 "add r23, r0 \n\t" 19952 "adc r24, r1 \n\t" 19953 "adc r22, r25 \n\t" 19954 "mul r12, r18 \n\t" 19955 "add r23, r0 \n\t" 19956 "adc r24, r1 \n\t" 19957 "adc r22, r25 \n\t" 19958 "mul r13, r17 \n\t" 19959 "add r23, r0 \n\t" 19960 "adc r24, r1 \n\t" 19961 "adc r22, r25 \n\t" 19962 "mul r14, r16 \n\t" 19963 "add r23, r0 \n\t" 19964 "adc r24, r1 \n\t" 19965 "adc r22, r25 \n\t" 19966 "ld r0, z \n\t" 19967 "add r23, r0 \n\t" 19968 "adc r24, r25 \n\t" 19969 "adc r22, r25 \n\t" 19970 "lsl r23 \n\t" 19971 "rol r24 \n\t" 19972 "rol r22 \n\t" 19973 "mul r15, r15 \n\t" 19974 "add r23, r0 \n\t" 19975 "adc r24, r1 \n\t" 19976 "adc r22, r25 \n\t" 19977 "add r23, r28 \n\t" 19978 "adc r24, r29 \n\t" 19979 "adc r22, r25 \n\t" 19980 "st z+, r23 \n\t" 19981 19982 "ldi r29, 0 \n\t" 19983 "mul r6, r5 \n\t" 19984 "mov r23, r0 \n\t" 19985 "mov r28, r1 \n\t" 19986 "mul r7, r4 \n\t" 19987 "add r23, r0 \n\t" 19988 "adc r28, r1 \n\t" 19989 "adc r29, r25 \n\t" 19990 "mul r8, r3 \n\t" 19991 "add r23, r0 \n\t" 19992 "adc r28, r1 \n\t" 19993 "adc r29, r25 \n\t" 19994 "mul r9, r2 \n\t" 19995 "add r23, r0 \n\t" 19996 "adc r28, r1 \n\t" 19997 "adc r29, r25 \n\t" 19998 "mul r10, r21 \n\t" 19999 "add r23, r0 \n\t" 20000 "adc r28, r1 \n\t" 20001 "adc r29, r25 \n\t" 20002 "mul r11, r20 \n\t" 20003 "add r23, r0 \n\t" 20004 "adc r28, r1 \n\t" 20005 "adc r29, r25 \n\t" 20006 "mul r12, r19 \n\t" 20007 "add r23, r0 \n\t" 20008 "adc r28, r1 \n\t" 20009 "adc r29, r25 \n\t" 20010 "mul r13, r18 \n\t" 20011 "add r23, r0 \n\t" 20012 "adc r28, r1 \n\t" 20013 "adc r29, r25 \n\t" 20014 "mul r14, r17 \n\t" 20015 "add r23, r0 \n\t" 20016 "adc r28, r1 \n\t" 20017 "adc r29, r25 \n\t" 20018 "mul r15, r16 \n\t" 20019 "add r23, r0 \n\t" 20020 "adc r28, r1 \n\t" 20021 "adc r29, r25 \n\t" 20022 "ld r0, z \n\t" 20023 "add r23, r0 \n\t" 20024 "adc r28, r25 \n\t" 20025 "adc r29, r25 \n\t" 20026 "lsl r23 \n\t" 20027 "rol r28 \n\t" 20028 "rol r29 \n\t" 20029 "add r23, r24 \n\t" 20030 "adc r28, r22 \n\t" 20031 "adc r29, r25 \n\t" 20032 "st z+, r23 \n\t" 20033 20034 "ld r6, x+ \n\t" 20035 "ldi r22, 0 \n\t" 20036 "mul r7, r5 \n\t" 20037 "mov r23, r0 \n\t" 20038 "mov r24, r1 \n\t" 20039 "mul r8, r4 \n\t" 20040 "add r23, r0 \n\t" 20041 "adc r24, r1 \n\t" 20042 "adc r22, r25 \n\t" 20043 "mul r9, r3 \n\t" 20044 "add r23, r0 \n\t" 20045 "adc r24, r1 \n\t" 20046 "adc r22, r25 \n\t" 20047 "mul r10, r2 \n\t" 20048 "add r23, r0 \n\t" 20049 "adc r24, r1 \n\t" 20050 "adc r22, r25 \n\t" 20051 "mul r11, r21 \n\t" 20052 "add r23, r0 \n\t" 20053 "adc r24, r1 \n\t" 20054 "adc r22, r25 \n\t" 20055 "mul r12, r20 \n\t" 20056 "add r23, r0 \n\t" 20057 "adc r24, r1 \n\t" 20058 "adc r22, r25 \n\t" 20059 "mul r13, r19 \n\t" 20060 "add r23, r0 \n\t" 20061 "adc r24, r1 \n\t" 20062 "adc r22, r25 \n\t" 20063 "mul r14, r18 \n\t" 20064 "add r23, r0 \n\t" 20065 "adc r24, r1 \n\t" 20066 "adc r22, r25 \n\t" 20067 "mul r15, r17 \n\t" 20068 "add r23, r0 \n\t" 20069 "adc r24, r1 \n\t" 20070 "adc r22, r25 \n\t" 20071 "ld r0, z \n\t" 20072 "add r23, r0 \n\t" 20073 "adc r24, r25 \n\t" 20074 "adc r22, r25 \n\t" 20075 "lsl r23 \n\t" 20076 "rol r24 \n\t" 20077 "rol r22 \n\t" 20078 "mul r16, r16 \n\t" 20079 "add r23, r0 \n\t" 20080 "adc r24, r1 \n\t" 20081 "adc r22, r25 \n\t" 20082 "add r23, r28 \n\t" 20083 "adc r24, r29 \n\t" 20084 "adc r22, r25 \n\t" 20085 "st z+, r23 \n\t" 20086 20087 "ldi r29, 0 \n\t" 20088 "mul r7, r6 \n\t" 20089 "mov r23, r0 \n\t" 20090 "mov r28, r1 \n\t" 20091 "mul r8, r5 \n\t" 20092 "add r23, r0 \n\t" 20093 "adc r28, r1 \n\t" 20094 "adc r29, r25 \n\t" 20095 "mul r9, r4 \n\t" 20096 "add r23, r0 \n\t" 20097 "adc r28, r1 \n\t" 20098 "adc r29, r25 \n\t" 20099 "mul r10, r3 \n\t" 20100 "add r23, r0 \n\t" 20101 "adc r28, r1 \n\t" 20102 "adc r29, r25 \n\t" 20103 "mul r11, r2 \n\t" 20104 "add r23, r0 \n\t" 20105 "adc r28, r1 \n\t" 20106 "adc r29, r25 \n\t" 20107 "mul r12, r21 \n\t" 20108 "add r23, r0 \n\t" 20109 "adc r28, r1 \n\t" 20110 "adc r29, r25 \n\t" 20111 "mul r13, r20 \n\t" 20112 "add r23, r0 \n\t" 20113 "adc r28, r1 \n\t" 20114 "adc r29, r25 \n\t" 20115 "mul r14, r19 \n\t" 20116 "add r23, r0 \n\t" 20117 "adc r28, r1 \n\t" 20118 "adc r29, r25 \n\t" 20119 "mul r15, r18 \n\t" 20120 "add r23, r0 \n\t" 20121 "adc r28, r1 \n\t" 20122 "adc r29, r25 \n\t" 20123 "mul r16, r17 \n\t" 20124 "add r23, r0 \n\t" 20125 "adc r28, r1 \n\t" 20126 "adc r29, r25 \n\t" 20127 "ld r0, z \n\t" 20128 "add r23, r0 \n\t" 20129 "adc r28, r25 \n\t" 20130 "adc r29, r25 \n\t" 20131 "lsl r23 \n\t" 20132 "rol r28 \n\t" 20133 "rol r29 \n\t" 20134 "add r23, r24 \n\t" 20135 "adc r28, r22 \n\t" 20136 "adc r29, r25 \n\t" 20137 "st z+, r23 \n\t" 20138 20139 "ld r7, x+ \n\t" 20140 "ldi r22, 0 \n\t" 20141 "mul r8, r6 \n\t" 20142 "mov r23, r0 \n\t" 20143 "mov r24, r1 \n\t" 20144 "mul r9, r5 \n\t" 20145 "add r23, r0 \n\t" 20146 "adc r24, r1 \n\t" 20147 "adc r22, r25 \n\t" 20148 "mul r10, r4 \n\t" 20149 "add r23, r0 \n\t" 20150 "adc r24, r1 \n\t" 20151 "adc r22, r25 \n\t" 20152 "mul r11, r3 \n\t" 20153 "add r23, r0 \n\t" 20154 "adc r24, r1 \n\t" 20155 "adc r22, r25 \n\t" 20156 "mul r12, r2 \n\t" 20157 "add r23, r0 \n\t" 20158 "adc r24, r1 \n\t" 20159 "adc r22, r25 \n\t" 20160 "mul r13, r21 \n\t" 20161 "add r23, r0 \n\t" 20162 "adc r24, r1 \n\t" 20163 "adc r22, r25 \n\t" 20164 "mul r14, r20 \n\t" 20165 "add r23, r0 \n\t" 20166 "adc r24, r1 \n\t" 20167 "adc r22, r25 \n\t" 20168 "mul r15, r19 \n\t" 20169 "add r23, r0 \n\t" 20170 "adc r24, r1 \n\t" 20171 "adc r22, r25 \n\t" 20172 "mul r16, r18 \n\t" 20173 "add r23, r0 \n\t" 20174 "adc r24, r1 \n\t" 20175 "adc r22, r25 \n\t" 20176 "ld r0, z \n\t" 20177 "add r23, r0 \n\t" 20178 "adc r24, r25 \n\t" 20179 "adc r22, r25 \n\t" 20180 "lsl r23 \n\t" 20181 "rol r24 \n\t" 20182 "rol r22 \n\t" 20183 "mul r17, r17 \n\t" 20184 "add r23, r0 \n\t" 20185 "adc r24, r1 \n\t" 20186 "adc r22, r25 \n\t" 20187 "add r23, r28 \n\t" 20188 "adc r24, r29 \n\t" 20189 "adc r22, r25 \n\t" 20190 "st z+, r23 \n\t" 20191 20192 "ldi r29, 0 \n\t" 20193 "mul r8, r7 \n\t" 20194 "mov r23, r0 \n\t" 20195 "mov r28, r1 \n\t" 20196 "mul r9, r6 \n\t" 20197 "add r23, r0 \n\t" 20198 "adc r28, r1 \n\t" 20199 "adc r29, r25 \n\t" 20200 "mul r10, r5 \n\t" 20201 "add r23, r0 \n\t" 20202 "adc r28, r1 \n\t" 20203 "adc r29, r25 \n\t" 20204 "mul r11, r4 \n\t" 20205 "add r23, r0 \n\t" 20206 "adc r28, r1 \n\t" 20207 "adc r29, r25 \n\t" 20208 "mul r12, r3 \n\t" 20209 "add r23, r0 \n\t" 20210 "adc r28, r1 \n\t" 20211 "adc r29, r25 \n\t" 20212 "mul r13, r2 \n\t" 20213 "add r23, r0 \n\t" 20214 "adc r28, r1 \n\t" 20215 "adc r29, r25 \n\t" 20216 "mul r14, r21 \n\t" 20217 "add r23, r0 \n\t" 20218 "adc r28, r1 \n\t" 20219 "adc r29, r25 \n\t" 20220 "mul r15, r20 \n\t" 20221 "add r23, r0 \n\t" 20222 "adc r28, r1 \n\t" 20223 "adc r29, r25 \n\t" 20224 "mul r16, r19 \n\t" 20225 "add r23, r0 \n\t" 20226 "adc r28, r1 \n\t" 20227 "adc r29, r25 \n\t" 20228 "mul r17, r18 \n\t" 20229 "add r23, r0 \n\t" 20230 "adc r28, r1 \n\t" 20231 "adc r29, r25 \n\t" 20232 "ld r0, z \n\t" 20233 "add r23, r0 \n\t" 20234 "adc r28, r25 \n\t" 20235 "adc r29, r25 \n\t" 20236 "lsl r23 \n\t" 20237 "rol r28 \n\t" 20238 "rol r29 \n\t" 20239 "add r23, r24 \n\t" 20240 "adc r28, r22 \n\t" 20241 "adc r29, r25 \n\t" 20242 "st z+, r23 \n\t" 20243 20244 "ld r8, x+ \n\t" 20245 "ldi r22, 0 \n\t" 20246 "mul r9, r7 \n\t" 20247 "mov r23, r0 \n\t" 20248 "mov r24, r1 \n\t" 20249 "mul r10, r6 \n\t" 20250 "add r23, r0 \n\t" 20251 "adc r24, r1 \n\t" 20252 "adc r22, r25 \n\t" 20253 "mul r11, r5 \n\t" 20254 "add r23, r0 \n\t" 20255 "adc r24, r1 \n\t" 20256 "adc r22, r25 \n\t" 20257 "mul r12, r4 \n\t" 20258 "add r23, r0 \n\t" 20259 "adc r24, r1 \n\t" 20260 "adc r22, r25 \n\t" 20261 "mul r13, r3 \n\t" 20262 "add r23, r0 \n\t" 20263 "adc r24, r1 \n\t" 20264 "adc r22, r25 \n\t" 20265 "mul r14, r2 \n\t" 20266 "add r23, r0 \n\t" 20267 "adc r24, r1 \n\t" 20268 "adc r22, r25 \n\t" 20269 "mul r15, r21 \n\t" 20270 "add r23, r0 \n\t" 20271 "adc r24, r1 \n\t" 20272 "adc r22, r25 \n\t" 20273 "mul r16, r20 \n\t" 20274 "add r23, r0 \n\t" 20275 "adc r24, r1 \n\t" 20276 "adc r22, r25 \n\t" 20277 "mul r17, r19 \n\t" 20278 "add r23, r0 \n\t" 20279 "adc r24, r1 \n\t" 20280 "adc r22, r25 \n\t" 20281 "ld r0, z \n\t" 20282 "add r23, r0 \n\t" 20283 "adc r24, r25 \n\t" 20284 "adc r22, r25 \n\t" 20285 "lsl r23 \n\t" 20286 "rol r24 \n\t" 20287 "rol r22 \n\t" 20288 "mul r18, r18 \n\t" 20289 "add r23, r0 \n\t" 20290 "adc r24, r1 \n\t" 20291 "adc r22, r25 \n\t" 20292 "add r23, r28 \n\t" 20293 "adc r24, r29 \n\t" 20294 "adc r22, r25 \n\t" 20295 "st z+, r23 \n\t" 20296 20297 "ldi r29, 0 \n\t" 20298 "mul r9, r8 \n\t" 20299 "mov r23, r0 \n\t" 20300 "mov r28, r1 \n\t" 20301 "mul r10, r7 \n\t" 20302 "add r23, r0 \n\t" 20303 "adc r28, r1 \n\t" 20304 "adc r29, r25 \n\t" 20305 "mul r11, r6 \n\t" 20306 "add r23, r0 \n\t" 20307 "adc r28, r1 \n\t" 20308 "adc r29, r25 \n\t" 20309 "mul r12, r5 \n\t" 20310 "add r23, r0 \n\t" 20311 "adc r28, r1 \n\t" 20312 "adc r29, r25 \n\t" 20313 "mul r13, r4 \n\t" 20314 "add r23, r0 \n\t" 20315 "adc r28, r1 \n\t" 20316 "adc r29, r25 \n\t" 20317 "mul r14, r3 \n\t" 20318 "add r23, r0 \n\t" 20319 "adc r28, r1 \n\t" 20320 "adc r29, r25 \n\t" 20321 "mul r15, r2 \n\t" 20322 "add r23, r0 \n\t" 20323 "adc r28, r1 \n\t" 20324 "adc r29, r25 \n\t" 20325 "mul r16, r21 \n\t" 20326 "add r23, r0 \n\t" 20327 "adc r28, r1 \n\t" 20328 "adc r29, r25 \n\t" 20329 "mul r17, r20 \n\t" 20330 "add r23, r0 \n\t" 20331 "adc r28, r1 \n\t" 20332 "adc r29, r25 \n\t" 20333 "mul r18, r19 \n\t" 20334 "add r23, r0 \n\t" 20335 "adc r28, r1 \n\t" 20336 "adc r29, r25 \n\t" 20337 "ld r0, z \n\t" 20338 "add r23, r0 \n\t" 20339 "adc r28, r25 \n\t" 20340 "adc r29, r25 \n\t" 20341 "lsl r23 \n\t" 20342 "rol r28 \n\t" 20343 "rol r29 \n\t" 20344 "add r23, r24 \n\t" 20345 "adc r28, r22 \n\t" 20346 "adc r29, r25 \n\t" 20347 "st z+, r23 \n\t" 20348 20349 "ld r9, x+ \n\t" 20350 "ldi r22, 0 \n\t" 20351 "mul r10, r8 \n\t" 20352 "mov r23, r0 \n\t" 20353 "mov r24, r1 \n\t" 20354 "mul r11, r7 \n\t" 20355 "add r23, r0 \n\t" 20356 "adc r24, r1 \n\t" 20357 "adc r22, r25 \n\t" 20358 "mul r12, r6 \n\t" 20359 "add r23, r0 \n\t" 20360 "adc r24, r1 \n\t" 20361 "adc r22, r25 \n\t" 20362 "mul r13, r5 \n\t" 20363 "add r23, r0 \n\t" 20364 "adc r24, r1 \n\t" 20365 "adc r22, r25 \n\t" 20366 "mul r14, r4 \n\t" 20367 "add r23, r0 \n\t" 20368 "adc r24, r1 \n\t" 20369 "adc r22, r25 \n\t" 20370 "mul r15, r3 \n\t" 20371 "add r23, r0 \n\t" 20372 "adc r24, r1 \n\t" 20373 "adc r22, r25 \n\t" 20374 "mul r16, r2 \n\t" 20375 "add r23, r0 \n\t" 20376 "adc r24, r1 \n\t" 20377 "adc r22, r25 \n\t" 20378 "mul r17, r21 \n\t" 20379 "add r23, r0 \n\t" 20380 "adc r24, r1 \n\t" 20381 "adc r22, r25 \n\t" 20382 "mul r18, r20 \n\t" 20383 "add r23, r0 \n\t" 20384 "adc r24, r1 \n\t" 20385 "adc r22, r25 \n\t" 20386 "ld r0, z \n\t" 20387 "add r23, r0 \n\t" 20388 "adc r24, r25 \n\t" 20389 "adc r22, r25 \n\t" 20390 "lsl r23 \n\t" 20391 "rol r24 \n\t" 20392 "rol r22 \n\t" 20393 "mul r19, r19 \n\t" 20394 "add r23, r0 \n\t" 20395 "adc r24, r1 \n\t" 20396 "adc r22, r25 \n\t" 20397 "add r23, r28 \n\t" 20398 "adc r24, r29 \n\t" 20399 "adc r22, r25 \n\t" 20400 "st z+, r23 \n\t" 20401 20402 "ldi r29, 0 \n\t" 20403 "mul r10, r9 \n\t" 20404 "mov r23, r0 \n\t" 20405 "mov r28, r1 \n\t" 20406 "mul r11, r8 \n\t" 20407 "add r23, r0 \n\t" 20408 "adc r28, r1 \n\t" 20409 "adc r29, r25 \n\t" 20410 "mul r12, r7 \n\t" 20411 "add r23, r0 \n\t" 20412 "adc r28, r1 \n\t" 20413 "adc r29, r25 \n\t" 20414 "mul r13, r6 \n\t" 20415 "add r23, r0 \n\t" 20416 "adc r28, r1 \n\t" 20417 "adc r29, r25 \n\t" 20418 "mul r14, r5 \n\t" 20419 "add r23, r0 \n\t" 20420 "adc r28, r1 \n\t" 20421 "adc r29, r25 \n\t" 20422 "mul r15, r4 \n\t" 20423 "add r23, r0 \n\t" 20424 "adc r28, r1 \n\t" 20425 "adc r29, r25 \n\t" 20426 "mul r16, r3 \n\t" 20427 "add r23, r0 \n\t" 20428 "adc r28, r1 \n\t" 20429 "adc r29, r25 \n\t" 20430 "mul r17, r2 \n\t" 20431 "add r23, r0 \n\t" 20432 "adc r28, r1 \n\t" 20433 "adc r29, r25 \n\t" 20434 "mul r18, r21 \n\t" 20435 "add r23, r0 \n\t" 20436 "adc r28, r1 \n\t" 20437 "adc r29, r25 \n\t" 20438 "mul r19, r20 \n\t" 20439 "add r23, r0 \n\t" 20440 "adc r28, r1 \n\t" 20441 "adc r29, r25 \n\t" 20442 "ld r0, z \n\t" 20443 "add r23, r0 \n\t" 20444 "adc r28, r25 \n\t" 20445 "adc r29, r25 \n\t" 20446 "lsl r23 \n\t" 20447 "rol r28 \n\t" 20448 "rol r29 \n\t" 20449 "add r23, r24 \n\t" 20450 "adc r28, r22 \n\t" 20451 "adc r29, r25 \n\t" 20452 "st z+, r23 \n\t" 20453 20454 "ld r10, x+ \n\t" 20455 "ldi r22, 0 \n\t" 20456 "mul r11, r9 \n\t" 20457 "mov r23, r0 \n\t" 20458 "mov r24, r1 \n\t" 20459 "mul r12, r8 \n\t" 20460 "add r23, r0 \n\t" 20461 "adc r24, r1 \n\t" 20462 "adc r22, r25 \n\t" 20463 "mul r13, r7 \n\t" 20464 "add r23, r0 \n\t" 20465 "adc r24, r1 \n\t" 20466 "adc r22, r25 \n\t" 20467 "mul r14, r6 \n\t" 20468 "add r23, r0 \n\t" 20469 "adc r24, r1 \n\t" 20470 "adc r22, r25 \n\t" 20471 "mul r15, r5 \n\t" 20472 "add r23, r0 \n\t" 20473 "adc r24, r1 \n\t" 20474 "adc r22, r25 \n\t" 20475 "mul r16, r4 \n\t" 20476 "add r23, r0 \n\t" 20477 "adc r24, r1 \n\t" 20478 "adc r22, r25 \n\t" 20479 "mul r17, r3 \n\t" 20480 "add r23, r0 \n\t" 20481 "adc r24, r1 \n\t" 20482 "adc r22, r25 \n\t" 20483 "mul r18, r2 \n\t" 20484 "add r23, r0 \n\t" 20485 "adc r24, r1 \n\t" 20486 "adc r22, r25 \n\t" 20487 "mul r19, r21 \n\t" 20488 "add r23, r0 \n\t" 20489 "adc r24, r1 \n\t" 20490 "adc r22, r25 \n\t" 20491 "ld r0, z \n\t" 20492 "add r23, r0 \n\t" 20493 "adc r24, r25 \n\t" 20494 "adc r22, r25 \n\t" 20495 "lsl r23 \n\t" 20496 "rol r24 \n\t" 20497 "rol r22 \n\t" 20498 "mul r20, r20 \n\t" 20499 "add r23, r0 \n\t" 20500 "adc r24, r1 \n\t" 20501 "adc r22, r25 \n\t" 20502 "add r23, r28 \n\t" 20503 "adc r24, r29 \n\t" 20504 "adc r22, r25 \n\t" 20505 "st z+, r23 \n\t" 20506 20507 "ldi r29, 0 \n\t" 20508 "mul r11, r10 \n\t" 20509 "mov r23, r0 \n\t" 20510 "mov r28, r1 \n\t" 20511 "mul r12, r9 \n\t" 20512 "add r23, r0 \n\t" 20513 "adc r28, r1 \n\t" 20514 "adc r29, r25 \n\t" 20515 "mul r13, r8 \n\t" 20516 "add r23, r0 \n\t" 20517 "adc r28, r1 \n\t" 20518 "adc r29, r25 \n\t" 20519 "mul r14, r7 \n\t" 20520 "add r23, r0 \n\t" 20521 "adc r28, r1 \n\t" 20522 "adc r29, r25 \n\t" 20523 "mul r15, r6 \n\t" 20524 "add r23, r0 \n\t" 20525 "adc r28, r1 \n\t" 20526 "adc r29, r25 \n\t" 20527 "mul r16, r5 \n\t" 20528 "add r23, r0 \n\t" 20529 "adc r28, r1 \n\t" 20530 "adc r29, r25 \n\t" 20531 "mul r17, r4 \n\t" 20532 "add r23, r0 \n\t" 20533 "adc r28, r1 \n\t" 20534 "adc r29, r25 \n\t" 20535 "mul r18, r3 \n\t" 20536 "add r23, r0 \n\t" 20537 "adc r28, r1 \n\t" 20538 "adc r29, r25 \n\t" 20539 "mul r19, r2 \n\t" 20540 "add r23, r0 \n\t" 20541 "adc r28, r1 \n\t" 20542 "adc r29, r25 \n\t" 20543 "mul r20, r21 \n\t" 20544 "add r23, r0 \n\t" 20545 "adc r28, r1 \n\t" 20546 "adc r29, r25 \n\t" 20547 "ld r0, z \n\t" 20548 "add r23, r0 \n\t" 20549 "adc r28, r25 \n\t" 20550 "adc r29, r25 \n\t" 20551 "lsl r23 \n\t" 20552 "rol r28 \n\t" 20553 "rol r29 \n\t" 20554 "add r23, r24 \n\t" 20555 "adc r28, r22 \n\t" 20556 "adc r29, r25 \n\t" 20557 "st z+, r23 \n\t" 20558 20559 "ld r11, x+ \n\t" 20560 "ldi r22, 0 \n\t" 20561 "mul r12, r10 \n\t" 20562 "mov r23, r0 \n\t" 20563 "mov r24, r1 \n\t" 20564 "mul r13, r9 \n\t" 20565 "add r23, r0 \n\t" 20566 "adc r24, r1 \n\t" 20567 "adc r22, r25 \n\t" 20568 "mul r14, r8 \n\t" 20569 "add r23, r0 \n\t" 20570 "adc r24, r1 \n\t" 20571 "adc r22, r25 \n\t" 20572 "mul r15, r7 \n\t" 20573 "add r23, r0 \n\t" 20574 "adc r24, r1 \n\t" 20575 "adc r22, r25 \n\t" 20576 "mul r16, r6 \n\t" 20577 "add r23, r0 \n\t" 20578 "adc r24, r1 \n\t" 20579 "adc r22, r25 \n\t" 20580 "mul r17, r5 \n\t" 20581 "add r23, r0 \n\t" 20582 "adc r24, r1 \n\t" 20583 "adc r22, r25 \n\t" 20584 "mul r18, r4 \n\t" 20585 "add r23, r0 \n\t" 20586 "adc r24, r1 \n\t" 20587 "adc r22, r25 \n\t" 20588 "mul r19, r3 \n\t" 20589 "add r23, r0 \n\t" 20590 "adc r24, r1 \n\t" 20591 "adc r22, r25 \n\t" 20592 "mul r20, r2 \n\t" 20593 "add r23, r0 \n\t" 20594 "adc r24, r1 \n\t" 20595 "adc r22, r25 \n\t" 20596 "ld r0, z \n\t" 20597 "add r23, r0 \n\t" 20598 "adc r24, r25 \n\t" 20599 "adc r22, r25 \n\t" 20600 "lsl r23 \n\t" 20601 "rol r24 \n\t" 20602 "rol r22 \n\t" 20603 "mul r21, r21 \n\t" 20604 "add r23, r0 \n\t" 20605 "adc r24, r1 \n\t" 20606 "adc r22, r25 \n\t" 20607 "add r23, r28 \n\t" 20608 "adc r24, r29 \n\t" 20609 "adc r22, r25 \n\t" 20610 "st z+, r23 \n\t" 20611 20612 "ldi r29, 0 \n\t" 20613 "mul r12, r11 \n\t" 20614 "mov r23, r0 \n\t" 20615 "mov r28, r1 \n\t" 20616 "mul r13, r10 \n\t" 20617 "add r23, r0 \n\t" 20618 "adc r28, r1 \n\t" 20619 "adc r29, r25 \n\t" 20620 "mul r14, r9 \n\t" 20621 "add r23, r0 \n\t" 20622 "adc r28, r1 \n\t" 20623 "adc r29, r25 \n\t" 20624 "mul r15, r8 \n\t" 20625 "add r23, r0 \n\t" 20626 "adc r28, r1 \n\t" 20627 "adc r29, r25 \n\t" 20628 "mul r16, r7 \n\t" 20629 "add r23, r0 \n\t" 20630 "adc r28, r1 \n\t" 20631 "adc r29, r25 \n\t" 20632 "mul r17, r6 \n\t" 20633 "add r23, r0 \n\t" 20634 "adc r28, r1 \n\t" 20635 "adc r29, r25 \n\t" 20636 "mul r18, r5 \n\t" 20637 "add r23, r0 \n\t" 20638 "adc r28, r1 \n\t" 20639 "adc r29, r25 \n\t" 20640 "mul r19, r4 \n\t" 20641 "add r23, r0 \n\t" 20642 "adc r28, r1 \n\t" 20643 "adc r29, r25 \n\t" 20644 "mul r20, r3 \n\t" 20645 "add r23, r0 \n\t" 20646 "adc r28, r1 \n\t" 20647 "adc r29, r25 \n\t" 20648 "mul r21, r2 \n\t" 20649 "add r23, r0 \n\t" 20650 "adc r28, r1 \n\t" 20651 "adc r29, r25 \n\t" 20652 "ld r0, z \n\t" 20653 "add r23, r0 \n\t" 20654 "adc r28, r25 \n\t" 20655 "adc r29, r25 \n\t" 20656 "lsl r23 \n\t" 20657 "rol r28 \n\t" 20658 "rol r29 \n\t" 20659 "add r23, r24 \n\t" 20660 "adc r28, r22 \n\t" 20661 "adc r29, r25 \n\t" 20662 "st z+, r23 \n\t" 20663 20664 "ld r12, x+ \n\t" 20665 "ldi r22, 0 \n\t" 20666 "mul r13, r11 \n\t" 20667 "mov r23, r0 \n\t" 20668 "mov r24, r1 \n\t" 20669 "mul r14, r10 \n\t" 20670 "add r23, r0 \n\t" 20671 "adc r24, r1 \n\t" 20672 "adc r22, r25 \n\t" 20673 "mul r15, r9 \n\t" 20674 "add r23, r0 \n\t" 20675 "adc r24, r1 \n\t" 20676 "adc r22, r25 \n\t" 20677 "mul r16, r8 \n\t" 20678 "add r23, r0 \n\t" 20679 "adc r24, r1 \n\t" 20680 "adc r22, r25 \n\t" 20681 "mul r17, r7 \n\t" 20682 "add r23, r0 \n\t" 20683 "adc r24, r1 \n\t" 20684 "adc r22, r25 \n\t" 20685 "mul r18, r6 \n\t" 20686 "add r23, r0 \n\t" 20687 "adc r24, r1 \n\t" 20688 "adc r22, r25 \n\t" 20689 "mul r19, r5 \n\t" 20690 "add r23, r0 \n\t" 20691 "adc r24, r1 \n\t" 20692 "adc r22, r25 \n\t" 20693 "mul r20, r4 \n\t" 20694 "add r23, r0 \n\t" 20695 "adc r24, r1 \n\t" 20696 "adc r22, r25 \n\t" 20697 "mul r21, r3 \n\t" 20698 "add r23, r0 \n\t" 20699 "adc r24, r1 \n\t" 20700 "adc r22, r25 \n\t" 20701 "ld r0, z \n\t" 20702 "add r23, r0 \n\t" 20703 "adc r24, r25 \n\t" 20704 "adc r22, r25 \n\t" 20705 "lsl r23 \n\t" 20706 "rol r24 \n\t" 20707 "rol r22 \n\t" 20708 "mul r2, r2 \n\t" 20709 "add r23, r0 \n\t" 20710 "adc r24, r1 \n\t" 20711 "adc r22, r25 \n\t" 20712 "add r23, r28 \n\t" 20713 "adc r24, r29 \n\t" 20714 "adc r22, r25 \n\t" 20715 "st z+, r23 \n\t" 20716 20717 "ldi r29, 0 \n\t" 20718 "mul r13, r12 \n\t" 20719 "mov r23, r0 \n\t" 20720 "mov r28, r1 \n\t" 20721 "mul r14, r11 \n\t" 20722 "add r23, r0 \n\t" 20723 "adc r28, r1 \n\t" 20724 "adc r29, r25 \n\t" 20725 "mul r15, r10 \n\t" 20726 "add r23, r0 \n\t" 20727 "adc r28, r1 \n\t" 20728 "adc r29, r25 \n\t" 20729 "mul r16, r9 \n\t" 20730 "add r23, r0 \n\t" 20731 "adc r28, r1 \n\t" 20732 "adc r29, r25 \n\t" 20733 "mul r17, r8 \n\t" 20734 "add r23, r0 \n\t" 20735 "adc r28, r1 \n\t" 20736 "adc r29, r25 \n\t" 20737 "mul r18, r7 \n\t" 20738 "add r23, r0 \n\t" 20739 "adc r28, r1 \n\t" 20740 "adc r29, r25 \n\t" 20741 "mul r19, r6 \n\t" 20742 "add r23, r0 \n\t" 20743 "adc r28, r1 \n\t" 20744 "adc r29, r25 \n\t" 20745 "mul r20, r5 \n\t" 20746 "add r23, r0 \n\t" 20747 "adc r28, r1 \n\t" 20748 "adc r29, r25 \n\t" 20749 "mul r21, r4 \n\t" 20750 "add r23, r0 \n\t" 20751 "adc r28, r1 \n\t" 20752 "adc r29, r25 \n\t" 20753 "mul r2, r3 \n\t" 20754 "add r23, r0 \n\t" 20755 "adc r28, r1 \n\t" 20756 "adc r29, r25 \n\t" 20757 "ld r0, z \n\t" 20758 "add r23, r0 \n\t" 20759 "adc r28, r25 \n\t" 20760 "adc r29, r25 \n\t" 20761 "lsl r23 \n\t" 20762 "rol r28 \n\t" 20763 "rol r29 \n\t" 20764 "add r23, r24 \n\t" 20765 "adc r28, r22 \n\t" 20766 "adc r29, r25 \n\t" 20767 "st z+, r23 \n\t" 20768 20769 "ld r13, x+ \n\t" 20770 "ldi r22, 0 \n\t" 20771 "mul r14, r12 \n\t" 20772 "mov r23, r0 \n\t" 20773 "mov r24, r1 \n\t" 20774 "mul r15, r11 \n\t" 20775 "add r23, r0 \n\t" 20776 "adc r24, r1 \n\t" 20777 "adc r22, r25 \n\t" 20778 "mul r16, r10 \n\t" 20779 "add r23, r0 \n\t" 20780 "adc r24, r1 \n\t" 20781 "adc r22, r25 \n\t" 20782 "mul r17, r9 \n\t" 20783 "add r23, r0 \n\t" 20784 "adc r24, r1 \n\t" 20785 "adc r22, r25 \n\t" 20786 "mul r18, r8 \n\t" 20787 "add r23, r0 \n\t" 20788 "adc r24, r1 \n\t" 20789 "adc r22, r25 \n\t" 20790 "mul r19, r7 \n\t" 20791 "add r23, r0 \n\t" 20792 "adc r24, r1 \n\t" 20793 "adc r22, r25 \n\t" 20794 "mul r20, r6 \n\t" 20795 "add r23, r0 \n\t" 20796 "adc r24, r1 \n\t" 20797 "adc r22, r25 \n\t" 20798 "mul r21, r5 \n\t" 20799 "add r23, r0 \n\t" 20800 "adc r24, r1 \n\t" 20801 "adc r22, r25 \n\t" 20802 "mul r2, r4 \n\t" 20803 "add r23, r0 \n\t" 20804 "adc r24, r1 \n\t" 20805 "adc r22, r25 \n\t" 20806 "ld r0, z \n\t" 20807 "add r23, r0 \n\t" 20808 "adc r24, r25 \n\t" 20809 "adc r22, r25 \n\t" 20810 "lsl r23 \n\t" 20811 "rol r24 \n\t" 20812 "rol r22 \n\t" 20813 "mul r3, r3 \n\t" 20814 "add r23, r0 \n\t" 20815 "adc r24, r1 \n\t" 20816 "adc r22, r25 \n\t" 20817 "add r23, r28 \n\t" 20818 "adc r24, r29 \n\t" 20819 "adc r22, r25 \n\t" 20820 "st z+, r23 \n\t" 20821 20822 "ldi r29, 0 \n\t" 20823 "mul r14, r13 \n\t" 20824 "mov r23, r0 \n\t" 20825 "mov r28, r1 \n\t" 20826 "mul r15, r12 \n\t" 20827 "add r23, r0 \n\t" 20828 "adc r28, r1 \n\t" 20829 "adc r29, r25 \n\t" 20830 "mul r16, r11 \n\t" 20831 "add r23, r0 \n\t" 20832 "adc r28, r1 \n\t" 20833 "adc r29, r25 \n\t" 20834 "mul r17, r10 \n\t" 20835 "add r23, r0 \n\t" 20836 "adc r28, r1 \n\t" 20837 "adc r29, r25 \n\t" 20838 "mul r18, r9 \n\t" 20839 "add r23, r0 \n\t" 20840 "adc r28, r1 \n\t" 20841 "adc r29, r25 \n\t" 20842 "mul r19, r8 \n\t" 20843 "add r23, r0 \n\t" 20844 "adc r28, r1 \n\t" 20845 "adc r29, r25 \n\t" 20846 "mul r20, r7 \n\t" 20847 "add r23, r0 \n\t" 20848 "adc r28, r1 \n\t" 20849 "adc r29, r25 \n\t" 20850 "mul r21, r6 \n\t" 20851 "add r23, r0 \n\t" 20852 "adc r28, r1 \n\t" 20853 "adc r29, r25 \n\t" 20854 "mul r2, r5 \n\t" 20855 "add r23, r0 \n\t" 20856 "adc r28, r1 \n\t" 20857 "adc r29, r25 \n\t" 20858 "mul r3, r4 \n\t" 20859 "add r23, r0 \n\t" 20860 "adc r28, r1 \n\t" 20861 "adc r29, r25 \n\t" 20862 "ld r0, z \n\t" 20863 "add r23, r0 \n\t" 20864 "adc r28, r25 \n\t" 20865 "adc r29, r25 \n\t" 20866 "lsl r23 \n\t" 20867 "rol r28 \n\t" 20868 "rol r29 \n\t" 20869 "add r23, r24 \n\t" 20870 "adc r28, r22 \n\t" 20871 "adc r29, r25 \n\t" 20872 "st z+, r23 \n\t" 20873 20874 "ldi r22, 0 \n\t" 20875 "mul r15, r13 \n\t" 20876 "mov r23, r0 \n\t" 20877 "mov r24, r1 \n\t" 20878 "mul r16, r12 \n\t" 20879 "add r23, r0 \n\t" 20880 "adc r24, r1 \n\t" 20881 "adc r22, r25 \n\t" 20882 "mul r17, r11 \n\t" 20883 "add r23, r0 \n\t" 20884 "adc r24, r1 \n\t" 20885 "adc r22, r25 \n\t" 20886 "mul r18, r10 \n\t" 20887 "add r23, r0 \n\t" 20888 "adc r24, r1 \n\t" 20889 "adc r22, r25 \n\t" 20890 "mul r19, r9 \n\t" 20891 "add r23, r0 \n\t" 20892 "adc r24, r1 \n\t" 20893 "adc r22, r25 \n\t" 20894 "mul r20, r8 \n\t" 20895 "add r23, r0 \n\t" 20896 "adc r24, r1 \n\t" 20897 "adc r22, r25 \n\t" 20898 "mul r21, r7 \n\t" 20899 "add r23, r0 \n\t" 20900 "adc r24, r1 \n\t" 20901 "adc r22, r25 \n\t" 20902 "mul r2, r6 \n\t" 20903 "add r23, r0 \n\t" 20904 "adc r24, r1 \n\t" 20905 "adc r22, r25 \n\t" 20906 "mul r3, r5 \n\t" 20907 "add r23, r0 \n\t" 20908 "adc r24, r1 \n\t" 20909 "adc r22, r25 \n\t" 20910 "lsl r23 \n\t" 20911 "rol r24 \n\t" 20912 "rol r22 \n\t" 20913 "mul r4, r4 \n\t" 20914 "add r23, r0 \n\t" 20915 "adc r24, r1 \n\t" 20916 "adc r22, r25 \n\t" 20917 "add r23, r28 \n\t" 20918 "adc r24, r29 \n\t" 20919 "adc r22, r25 \n\t" 20920 "st z+, r23 \n\t" 20921 20922 "ldi r29, 0 \n\t" 20923 "mul r16, r13 \n\t" 20924 "mov r23, r0 \n\t" 20925 "mov r28, r1 \n\t" 20926 "mul r17, r12 \n\t" 20927 "add r23, r0 \n\t" 20928 "adc r28, r1 \n\t" 20929 "adc r29, r25 \n\t" 20930 "mul r18, r11 \n\t" 20931 "add r23, r0 \n\t" 20932 "adc r28, r1 \n\t" 20933 "adc r29, r25 \n\t" 20934 "mul r19, r10 \n\t" 20935 "add r23, r0 \n\t" 20936 "adc r28, r1 \n\t" 20937 "adc r29, r25 \n\t" 20938 "mul r20, r9 \n\t" 20939 "add r23, r0 \n\t" 20940 "adc r28, r1 \n\t" 20941 "adc r29, r25 \n\t" 20942 "mul r21, r8 \n\t" 20943 "add r23, r0 \n\t" 20944 "adc r28, r1 \n\t" 20945 "adc r29, r25 \n\t" 20946 "mul r2, r7 \n\t" 20947 "add r23, r0 \n\t" 20948 "adc r28, r1 \n\t" 20949 "adc r29, r25 \n\t" 20950 "mul r3, r6 \n\t" 20951 "add r23, r0 \n\t" 20952 "adc r28, r1 \n\t" 20953 "adc r29, r25 \n\t" 20954 "mul r4, r5 \n\t" 20955 "add r23, r0 \n\t" 20956 "adc r28, r1 \n\t" 20957 "adc r29, r25 \n\t" 20958 "lsl r23 \n\t" 20959 "rol r28 \n\t" 20960 "rol r29 \n\t" 20961 "add r23, r24 \n\t" 20962 "adc r28, r22 \n\t" 20963 "adc r29, r25 \n\t" 20964 "st z+, r23 \n\t" 20965 20966 "ldi r22, 0 \n\t" 20967 "mul r17, r13 \n\t" 20968 "mov r23, r0 \n\t" 20969 "mov r24, r1 \n\t" 20970 "mul r18, r12 \n\t" 20971 "add r23, r0 \n\t" 20972 "adc r24, r1 \n\t" 20973 "adc r22, r25 \n\t" 20974 "mul r19, r11 \n\t" 20975 "add r23, r0 \n\t" 20976 "adc r24, r1 \n\t" 20977 "adc r22, r25 \n\t" 20978 "mul r20, r10 \n\t" 20979 "add r23, r0 \n\t" 20980 "adc r24, r1 \n\t" 20981 "adc r22, r25 \n\t" 20982 "mul r21, r9 \n\t" 20983 "add r23, r0 \n\t" 20984 "adc r24, r1 \n\t" 20985 "adc r22, r25 \n\t" 20986 "mul r2, r8 \n\t" 20987 "add r23, r0 \n\t" 20988 "adc r24, r1 \n\t" 20989 "adc r22, r25 \n\t" 20990 "mul r3, r7 \n\t" 20991 "add r23, r0 \n\t" 20992 "adc r24, r1 \n\t" 20993 "adc r22, r25 \n\t" 20994 "mul r4, r6 \n\t" 20995 "add r23, r0 \n\t" 20996 "adc r24, r1 \n\t" 20997 "adc r22, r25 \n\t" 20998 "lsl r23 \n\t" 20999 "rol r24 \n\t" 21000 "rol r22 \n\t" 21001 "mul r5, r5 \n\t" 21002 "add r23, r0 \n\t" 21003 "adc r24, r1 \n\t" 21004 "adc r22, r25 \n\t" 21005 "add r23, r28 \n\t" 21006 "adc r24, r29 \n\t" 21007 "adc r22, r25 \n\t" 21008 "st z+, r23 \n\t" 21009 21010 "ldi r29, 0 \n\t" 21011 "mul r18, r13 \n\t" 21012 "mov r23, r0 \n\t" 21013 "mov r28, r1 \n\t" 21014 "mul r19, r12 \n\t" 21015 "add r23, r0 \n\t" 21016 "adc r28, r1 \n\t" 21017 "adc r29, r25 \n\t" 21018 "mul r20, r11 \n\t" 21019 "add r23, r0 \n\t" 21020 "adc r28, r1 \n\t" 21021 "adc r29, r25 \n\t" 21022 "mul r21, r10 \n\t" 21023 "add r23, r0 \n\t" 21024 "adc r28, r1 \n\t" 21025 "adc r29, r25 \n\t" 21026 "mul r2, r9 \n\t" 21027 "add r23, r0 \n\t" 21028 "adc r28, r1 \n\t" 21029 "adc r29, r25 \n\t" 21030 "mul r3, r8 \n\t" 21031 "add r23, r0 \n\t" 21032 "adc r28, r1 \n\t" 21033 "adc r29, r25 \n\t" 21034 "mul r4, r7 \n\t" 21035 "add r23, r0 \n\t" 21036 "adc r28, r1 \n\t" 21037 "adc r29, r25 \n\t" 21038 "mul r5, r6 \n\t" 21039 "add r23, r0 \n\t" 21040 "adc r28, r1 \n\t" 21041 "adc r29, r25 \n\t" 21042 "lsl r23 \n\t" 21043 "rol r28 \n\t" 21044 "rol r29 \n\t" 21045 "add r23, r24 \n\t" 21046 "adc r28, r22 \n\t" 21047 "adc r29, r25 \n\t" 21048 "st z+, r23 \n\t" 21049 21050 "ldi r22, 0 \n\t" 21051 "mul r19, r13 \n\t" 21052 "mov r23, r0 \n\t" 21053 "mov r24, r1 \n\t" 21054 "mul r20, r12 \n\t" 21055 "add r23, r0 \n\t" 21056 "adc r24, r1 \n\t" 21057 "adc r22, r25 \n\t" 21058 "mul r21, r11 \n\t" 21059 "add r23, r0 \n\t" 21060 "adc r24, r1 \n\t" 21061 "adc r22, r25 \n\t" 21062 "mul r2, r10 \n\t" 21063 "add r23, r0 \n\t" 21064 "adc r24, r1 \n\t" 21065 "adc r22, r25 \n\t" 21066 "mul r3, r9 \n\t" 21067 "add r23, r0 \n\t" 21068 "adc r24, r1 \n\t" 21069 "adc r22, r25 \n\t" 21070 "mul r4, r8 \n\t" 21071 "add r23, r0 \n\t" 21072 "adc r24, r1 \n\t" 21073 "adc r22, r25 \n\t" 21074 "mul r5, r7 \n\t" 21075 "add r23, r0 \n\t" 21076 "adc r24, r1 \n\t" 21077 "adc r22, r25 \n\t" 21078 "lsl r23 \n\t" 21079 "rol r24 \n\t" 21080 "rol r22 \n\t" 21081 "mul r6, r6 \n\t" 21082 "add r23, r0 \n\t" 21083 "adc r24, r1 \n\t" 21084 "adc r22, r25 \n\t" 21085 "add r23, r28 \n\t" 21086 "adc r24, r29 \n\t" 21087 "adc r22, r25 \n\t" 21088 "st z+, r23 \n\t" 21089 21090 "ldi r29, 0 \n\t" 21091 "mul r20, r13 \n\t" 21092 "mov r23, r0 \n\t" 21093 "mov r28, r1 \n\t" 21094 "mul r21, r12 \n\t" 21095 "add r23, r0 \n\t" 21096 "adc r28, r1 \n\t" 21097 "adc r29, r25 \n\t" 21098 "mul r2, r11 \n\t" 21099 "add r23, r0 \n\t" 21100 "adc r28, r1 \n\t" 21101 "adc r29, r25 \n\t" 21102 "mul r3, r10 \n\t" 21103 "add r23, r0 \n\t" 21104 "adc r28, r1 \n\t" 21105 "adc r29, r25 \n\t" 21106 "mul r4, r9 \n\t" 21107 "add r23, r0 \n\t" 21108 "adc r28, r1 \n\t" 21109 "adc r29, r25 \n\t" 21110 "mul r5, r8 \n\t" 21111 "add r23, r0 \n\t" 21112 "adc r28, r1 \n\t" 21113 "adc r29, r25 \n\t" 21114 "mul r6, r7 \n\t" 21115 "add r23, r0 \n\t" 21116 "adc r28, r1 \n\t" 21117 "adc r29, r25 \n\t" 21118 "lsl r23 \n\t" 21119 "rol r28 \n\t" 21120 "rol r29 \n\t" 21121 "add r23, r24 \n\t" 21122 "adc r28, r22 \n\t" 21123 "adc r29, r25 \n\t" 21124 "st z+, r23 \n\t" 21125 21126 "ldi r22, 0 \n\t" 21127 "mul r21, r13 \n\t" 21128 "mov r23, r0 \n\t" 21129 "mov r24, r1 \n\t" 21130 "mul r2, r12 \n\t" 21131 "add r23, r0 \n\t" 21132 "adc r24, r1 \n\t" 21133 "adc r22, r25 \n\t" 21134 "mul r3, r11 \n\t" 21135 "add r23, r0 \n\t" 21136 "adc r24, r1 \n\t" 21137 "adc r22, r25 \n\t" 21138 "mul r4, r10 \n\t" 21139 "add r23, r0 \n\t" 21140 "adc r24, r1 \n\t" 21141 "adc r22, r25 \n\t" 21142 "mul r5, r9 \n\t" 21143 "add r23, r0 \n\t" 21144 "adc r24, r1 \n\t" 21145 "adc r22, r25 \n\t" 21146 "mul r6, r8 \n\t" 21147 "add r23, r0 \n\t" 21148 "adc r24, r1 \n\t" 21149 "adc r22, r25 \n\t" 21150 "lsl r23 \n\t" 21151 "rol r24 \n\t" 21152 "rol r22 \n\t" 21153 "mul r7, r7 \n\t" 21154 "add r23, r0 \n\t" 21155 "adc r24, r1 \n\t" 21156 "adc r22, r25 \n\t" 21157 "add r23, r28 \n\t" 21158 "adc r24, r29 \n\t" 21159 "adc r22, r25 \n\t" 21160 "st z+, r23 \n\t" 21161 21162 "ldi r29, 0 \n\t" 21163 "mul r2, r13 \n\t" 21164 "mov r23, r0 \n\t" 21165 "mov r28, r1 \n\t" 21166 "mul r3, r12 \n\t" 21167 "add r23, r0 \n\t" 21168 "adc r28, r1 \n\t" 21169 "adc r29, r25 \n\t" 21170 "mul r4, r11 \n\t" 21171 "add r23, r0 \n\t" 21172 "adc r28, r1 \n\t" 21173 "adc r29, r25 \n\t" 21174 "mul r5, r10 \n\t" 21175 "add r23, r0 \n\t" 21176 "adc r28, r1 \n\t" 21177 "adc r29, r25 \n\t" 21178 "mul r6, r9 \n\t" 21179 "add r23, r0 \n\t" 21180 "adc r28, r1 \n\t" 21181 "adc r29, r25 \n\t" 21182 "mul r7, r8 \n\t" 21183 "add r23, r0 \n\t" 21184 "adc r28, r1 \n\t" 21185 "adc r29, r25 \n\t" 21186 "lsl r23 \n\t" 21187 "rol r28 \n\t" 21188 "rol r29 \n\t" 21189 "add r23, r24 \n\t" 21190 "adc r28, r22 \n\t" 21191 "adc r29, r25 \n\t" 21192 "st z+, r23 \n\t" 21193 21194 "ldi r22, 0 \n\t" 21195 "mul r3, r13 \n\t" 21196 "mov r23, r0 \n\t" 21197 "mov r24, r1 \n\t" 21198 "mul r4, r12 \n\t" 21199 "add r23, r0 \n\t" 21200 "adc r24, r1 \n\t" 21201 "adc r22, r25 \n\t" 21202 "mul r5, r11 \n\t" 21203 "add r23, r0 \n\t" 21204 "adc r24, r1 \n\t" 21205 "adc r22, r25 \n\t" 21206 "mul r6, r10 \n\t" 21207 "add r23, r0 \n\t" 21208 "adc r24, r1 \n\t" 21209 "adc r22, r25 \n\t" 21210 "mul r7, r9 \n\t" 21211 "add r23, r0 \n\t" 21212 "adc r24, r1 \n\t" 21213 "adc r22, r25 \n\t" 21214 "lsl r23 \n\t" 21215 "rol r24 \n\t" 21216 "rol r22 \n\t" 21217 "mul r8, r8 \n\t" 21218 "add r23, r0 \n\t" 21219 "adc r24, r1 \n\t" 21220 "adc r22, r25 \n\t" 21221 "add r23, r28 \n\t" 21222 "adc r24, r29 \n\t" 21223 "adc r22, r25 \n\t" 21224 "st z+, r23 \n\t" 21225 21226 "ldi r29, 0 \n\t" 21227 "mul r4, r13 \n\t" 21228 "mov r23, r0 \n\t" 21229 "mov r28, r1 \n\t" 21230 "mul r5, r12 \n\t" 21231 "add r23, r0 \n\t" 21232 "adc r28, r1 \n\t" 21233 "adc r29, r25 \n\t" 21234 "mul r6, r11 \n\t" 21235 "add r23, r0 \n\t" 21236 "adc r28, r1 \n\t" 21237 "adc r29, r25 \n\t" 21238 "mul r7, r10 \n\t" 21239 "add r23, r0 \n\t" 21240 "adc r28, r1 \n\t" 21241 "adc r29, r25 \n\t" 21242 "mul r8, r9 \n\t" 21243 "add r23, r0 \n\t" 21244 "adc r28, r1 \n\t" 21245 "adc r29, r25 \n\t" 21246 "lsl r23 \n\t" 21247 "rol r28 \n\t" 21248 "rol r29 \n\t" 21249 "add r23, r24 \n\t" 21250 "adc r28, r22 \n\t" 21251 "adc r29, r25 \n\t" 21252 "st z+, r23 \n\t" 21253 21254 "ldi r22, 0 \n\t" 21255 "mul r5, r13 \n\t" 21256 "mov r23, r0 \n\t" 21257 "mov r24, r1 \n\t" 21258 "mul r6, r12 \n\t" 21259 "add r23, r0 \n\t" 21260 "adc r24, r1 \n\t" 21261 "adc r22, r25 \n\t" 21262 "mul r7, r11 \n\t" 21263 "add r23, r0 \n\t" 21264 "adc r24, r1 \n\t" 21265 "adc r22, r25 \n\t" 21266 "mul r8, r10 \n\t" 21267 "add r23, r0 \n\t" 21268 "adc r24, r1 \n\t" 21269 "adc r22, r25 \n\t" 21270 "lsl r23 \n\t" 21271 "rol r24 \n\t" 21272 "rol r22 \n\t" 21273 "mul r9, r9 \n\t" 21274 "add r23, r0 \n\t" 21275 "adc r24, r1 \n\t" 21276 "adc r22, r25 \n\t" 21277 "add r23, r28 \n\t" 21278 "adc r24, r29 \n\t" 21279 "adc r22, r25 \n\t" 21280 "st z+, r23 \n\t" 21281 21282 "ldi r29, 0 \n\t" 21283 "mul r6, r13 \n\t" 21284 "mov r23, r0 \n\t" 21285 "mov r28, r1 \n\t" 21286 "mul r7, r12 \n\t" 21287 "add r23, r0 \n\t" 21288 "adc r28, r1 \n\t" 21289 "adc r29, r25 \n\t" 21290 "mul r8, r11 \n\t" 21291 "add r23, r0 \n\t" 21292 "adc r28, r1 \n\t" 21293 "adc r29, r25 \n\t" 21294 "mul r9, r10 \n\t" 21295 "add r23, r0 \n\t" 21296 "adc r28, r1 \n\t" 21297 "adc r29, r25 \n\t" 21298 "lsl r23 \n\t" 21299 "rol r28 \n\t" 21300 "rol r29 \n\t" 21301 "add r23, r24 \n\t" 21302 "adc r28, r22 \n\t" 21303 "adc r29, r25 \n\t" 21304 "st z+, r23 \n\t" 21305 21306 "ldi r22, 0 \n\t" 21307 "mul r7, r13 \n\t" 21308 "mov r23, r0 \n\t" 21309 "mov r24, r1 \n\t" 21310 "mul r8, r12 \n\t" 21311 "add r23, r0 \n\t" 21312 "adc r24, r1 \n\t" 21313 "adc r22, r25 \n\t" 21314 "mul r9, r11 \n\t" 21315 "add r23, r0 \n\t" 21316 "adc r24, r1 \n\t" 21317 "adc r22, r25 \n\t" 21318 "lsl r23 \n\t" 21319 "rol r24 \n\t" 21320 "rol r22 \n\t" 21321 "mul r10, r10 \n\t" 21322 "add r23, r0 \n\t" 21323 "adc r24, r1 \n\t" 21324 "adc r22, r25 \n\t" 21325 "add r23, r28 \n\t" 21326 "adc r24, r29 \n\t" 21327 "adc r22, r25 \n\t" 21328 "st z+, r23 \n\t" 21329 21330 "ldi r29, 0 \n\t" 21331 "mul r8, r13 \n\t" 21332 "mov r23, r0 \n\t" 21333 "mov r28, r1 \n\t" 21334 "mul r9, r12 \n\t" 21335 "add r23, r0 \n\t" 21336 "adc r28, r1 \n\t" 21337 "adc r29, r25 \n\t" 21338 "mul r10, r11 \n\t" 21339 "add r23, r0 \n\t" 21340 "adc r28, r1 \n\t" 21341 "adc r29, r25 \n\t" 21342 "lsl r23 \n\t" 21343 "rol r28 \n\t" 21344 "rol r29 \n\t" 21345 "add r23, r24 \n\t" 21346 "adc r28, r22 \n\t" 21347 "adc r29, r25 \n\t" 21348 "st z+, r23 \n\t" 21349 21350 "ldi r22, 0 \n\t" 21351 "mul r9, r13 \n\t" 21352 "mov r23, r0 \n\t" 21353 "mov r24, r1 \n\t" 21354 "mul r10, r12 \n\t" 21355 "add r23, r0 \n\t" 21356 "adc r24, r1 \n\t" 21357 "adc r22, r25 \n\t" 21358 "lsl r23 \n\t" 21359 "rol r24 \n\t" 21360 "rol r22 \n\t" 21361 "mul r11, r11 \n\t" 21362 "add r23, r0 \n\t" 21363 "adc r24, r1 \n\t" 21364 "adc r22, r25 \n\t" 21365 "add r23, r28 \n\t" 21366 "adc r24, r29 \n\t" 21367 "adc r22, r25 \n\t" 21368 "st z+, r23 \n\t" 21369 21370 "ldi r29, 0 \n\t" 21371 "mul r10, r13 \n\t" 21372 "mov r23, r0 \n\t" 21373 "mov r28, r1 \n\t" 21374 "mul r11, r12 \n\t" 21375 "add r23, r0 \n\t" 21376 "adc r28, r1 \n\t" 21377 "adc r29, r25 \n\t" 21378 "lsl r23 \n\t" 21379 "rol r28 \n\t" 21380 "rol r29 \n\t" 21381 "add r23, r24 \n\t" 21382 "adc r28, r22 \n\t" 21383 "adc r29, r25 \n\t" 21384 "st z+, r23 \n\t" 21385 21386 "ldi r23, 0 \n\t" 21387 "mul r11, r13 \n\t" 21388 "add r28, r0 \n\t" 21389 "adc r29, r1 \n\t" 21390 "adc r23, r25 \n\t" 21391 "add r28, r0 \n\t" 21392 "adc r29, r1 \n\t" 21393 "adc r23, r25 \n\t" 21394 "mul r12, r12 \n\t" 21395 "add r28, r0 \n\t" 21396 "adc r29, r1 \n\t" 21397 "adc r23, r25 \n\t" 21398 "st z+, r28 \n\t" 21399 21400 "ldi r28, 0 \n\t" 21401 "mul r12, r13 \n\t" 21402 "add r29, r0 \n\t" 21403 "adc r23, r1 \n\t" 21404 "adc r28, r25 \n\t" 21405 "add r29, r0 \n\t" 21406 "adc r23, r1 \n\t" 21407 "adc r28, r25 \n\t" 21408 "st z+, r29 \n\t" 21409 21410 "mul r13, r13 \n\t" 21411 "add r23, r0 \n\t" 21412 "adc r28, r1 \n\t" 21413 "st z+, r23 \n\t" 21414 "st z+, r28 \n\t" 21415 "eor r1, r1 \n\t" 21416 : "+x" (left), "+z" (result) 21417 : 21418 : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", 21419 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", 21420 "r21", "r22", "r23", "r24", "r25", "r28", "r29", "cc", "memory" 21421 ); 21422} 21423#define asm_square 1 21424 21425#endif /* uECC_BYTES == xx */ 21426#endif /* uECC_SQUARE_FUNC */ 21427 21428static void vli_modSub_fast(uint8_t *result, const uint8_t *left, const uint8_t *right) { 21429 uint8_t t1, t2; 21430 __asm__ volatile ( 21431 "push r28 \n\t" /* Save Y */ 21432 "push r29 \n\t" 21433 21434 "ld %[t1], x+ \n\t" /* Load left word. */ 21435 "ld %[t2], y+ \n\t" /* Load right word. */ 21436 "sub %[t1], %[t2] \n\t" /* Subtract the first word. */ 21437 "st z+, %[t1] \n\t" /* Store the first result word. */ 21438 21439 /* Now we just do the remaining words with the carry bit (using SBC) */ 21440 REPEAT(DEC(uECC_BYTES), 21441 "ld %[t1], x+ \n\t" 21442 "ld %[t2], y+ \n\t" 21443 "sbc %[t1], %[t2] \n\t" 21444 "st z+, %[t1] \n\t") 21445 21446 "brcs 1f \n\t" /* If borrow is set, then we need to add */ 21447 "rjmp done \n\t" /* otherwise we are done */ 21448 "1: \n\t" 21449 21450 "sbiw r30, " STR(uECC_BYTES) " \n\t" /* make z point at result again */ 21451 "ldi r28, lo8(curve_p) \n\t" /* make y point at curve_p */ 21452 "ldi r29, hi8(curve_p) \n\t" 21453 21454 /* do the addition */ 21455 "ld %[t1], z \n\t" 21456 "ld %[t2], y+ \n\t" 21457 "add %[t1], %[t2] \n\t" 21458 "st z+, %[t1] \n\t" 21459 REPEAT(DEC(uECC_BYTES), 21460 "ld %[t1], z \n\t" 21461 "ld %[t2], y+ \n\t" 21462 "adc %[t1], %[t2] \n\t" 21463 "st z+, %[t1] \n\t") 21464 21465 "done: \n\t" 21466 "pop r29 \n\t" /* Restore Y */ 21467 "pop r28 \n\t" 21468 21469 : "+z" (result), "+x" (left), 21470 [t1] "=&r" (t1), [t2] "=&r" (t2) 21471 : "y" (right) 21472 : "cc", "memory" 21473 ); 21474} 21475#define asm_modSub_fast 1 21476 21477#if uECC_CURVE == uECC_secp160r1 21478static void vli_mmod_fast(uint8_t *RESTRICT result, uint8_t *RESTRICT product) { 21479 uint8_t carry = 0; 21480 __asm__ volatile ( 21481 "in r30, __SP_L__ \n\t" 21482 "in r31, __SP_H__ \n\t" 21483 "sbiw r30, 24 \n\t" 21484 "in r0, __SREG__ \n\t" 21485 "cli \n\t" 21486 "out __SP_H__, r31 \n\t" 21487 "out __SREG__, r0 \n\t" 21488 "out __SP_L__, r30 \n\t" 21489 21490 "adiw r30, 25 \n\t" /* we are shifting by 31 bits, so shift over 4 bytes 21491 (+ 1 since z initially points below the stack) */ 21492 "adiw r26, 40 \n\t" /* end of product */ 21493 "ld r18, -x \n\t" /* Load word. */ 21494 "lsr r18 \n\t" /* Shift. */ 21495 "st -z, r18 \n\t" /* Store the first result word. */ 21496 21497 /* Now we just do the remaining words with the carry bit (using ROR) */ 21498 REPEAT(19, 21499 "ld r18, -x \n\t" 21500 "ror r18 \n\t" 21501 "st -z, r18 \n\t") 21502 21503 "eor r18, r18 \n\t" /* r18 = 0 */ 21504 "ror r18 \n\t" /* get last bit */ 21505 "st -z, r18 \n\t" /* store it */ 21506 21507 "sbiw r30, 3 \n\t" /* move z back to point at tmp */ 21508 /* now we add right */ 21509 "ld r18, x+ \n\t" 21510 "st z+, r18 \n\t" /* the first 3 bytes do not need to be added */ 21511 "ld r18, x+ \n\t" 21512 "st z+, r18 \n\t" 21513 "ld r18, x+ \n\t" 21514 "st z+, r18 \n\t" 21515 21516 "ld r18, x+ \n\t" 21517 "ld r19, z \n\t" 21518 "add r18, r19 \n\t" 21519 "st z+, r18 \n\t" 21520 21521 /* Now we just do the remaining words with the carry bit (using ADC) */ 21522 REPEAT(16, 21523 "ld r18, x+ \n\t" 21524 "ld r19, z \n\t" 21525 "adc r18, r19 \n\t" 21526 "st z+, r18 \n\t") 21527 21528 /* Propagate over the remaining bytes of result */ 21529 "ld r18, z \n\t" 21530 "adc r18, r1 \n\t" 21531 "st z+, r18 \n\t" 21532 21533 "ld r18, z \n\t" 21534 "adc r18, r1 \n\t" 21535 "st z+, r18 \n\t" 21536 21537 "ld r18, z \n\t" 21538 "adc r18, r1 \n\t" 21539 "st z+, r18 \n\t" 21540 21541 "ld r18, z \n\t" 21542 "adc r18, r1 \n\t" 21543 "st z+, r18 \n\t" 21544 21545 "sbiw r30, 24 \n\t" /* move z back to point at tmp */ 21546 "sbiw r26, 40 \n\t" /* move x back to point at product */ 21547 21548 /* add low bytes of tmp to product, storing in result */ 21549 "ld r18, z+ \n\t" 21550 "ld r19, x+ \n\t" 21551 "add r18, r19 \n\t" 21552 "st y+, r18 \n\t" 21553 REPEAT(19, 21554 "ld r18, z+ \n\t" 21555 "ld r19, x+ \n\t" 21556 "adc r18, r19 \n\t" 21557 "st y+, r18 \n\t") 21558 "adc %[carry], __zero_reg__ \n\t" /* Store carry bit (carry flag is cleared). */ 21559 /* at this point x is at the end of product, y is at the end of result, 21560 z is 20 bytes into tmp */ 21561 "sbiw r28, 20 \n\t" /* move y back to point at result */ 21562 "adiw r30, 4 \n\t" /* move z to point to the end of tmp */ 21563 21564 /* do omega_mult again with the 4 relevant bytes */ 21565 /* z points to the end of tmp, x points to the end of product */ 21566 "ld r18, -z \n\t" /* Load word. */ 21567 "lsr r18 \n\t" /* Shift. */ 21568 "st -x, r18 \n\t" /* Store the first result word. */ 21569 21570 "ld r18, -z \n\t" 21571 "ror r18 \n\t" 21572 "st -x, r18 \n\t" 21573 "ld r18, -z \n\t" 21574 "ror r18 \n\t" 21575 "st -x, r18 \n\t" 21576 "ld r18, -z \n\t" 21577 "ror r18 \n\t" 21578 "st -x, r18 \n\t" 21579 21580 "eor r18, r18 \n\t" /* r18 = 0 */ 21581 "ror r18 \n\t" /* get last bit */ 21582 "st -x, r18 \n\t" /* store it */ 21583 21584 "sbiw r26, 3 \n\t" /* move x back to point at beginning */ 21585 /* now we add a copy of the 4 bytes */ 21586 "ld r18, z+ \n\t" 21587 "st x+, r18 \n\t" /* the first 3 bytes do not need to be added */ 21588 "ld r18, z+ \n\t" 21589 "st x+, r18 \n\t" 21590 "ld r18, z+ \n\t" 21591 "st x+, r18 \n\t" 21592 21593 "ld r18, z+ \n\t" 21594 "ld r19, x \n\t" 21595 "add r18, r19 \n\t" 21596 "st x+, r18 \n\t" 21597 21598 /* Propagate over the remaining bytes */ 21599 "ld r18, x \n\t" 21600 "adc r18, r1 \n\t" 21601 "st x+, r18 \n\t" 21602 21603 "ld r18, x \n\t" 21604 "adc r18, r1 \n\t" 21605 "st x+, r18 \n\t" 21606 21607 "ld r18, x \n\t" 21608 "adc r18, r1 \n\t" 21609 "st x+, r18 \n\t" 21610 21611 "ld r18, x \n\t" 21612 "adc r18, r1 \n\t" 21613 "st x+, r18 \n\t" 21614 21615 /* now z points to the end of tmp, x points to the end of product 21616 (y still points at result) */ 21617 "sbiw r26, 8 \n\t" /* move x back to point at beginning of actual data */ 21618 /* add into result */ 21619 "ld r18, x+ \n\t" 21620 "ld r19, y \n\t" 21621 "add r18, r19 \n\t" 21622 "st y+, r18 \n\t" 21623 REPEAT(7, 21624 "ld r18, x+ \n\t" 21625 "ld r19, y \n\t" 21626 "adc r18, r19 \n\t" 21627 "st y+, r18 \n\t") 21628 21629 /* Done adding, now propagate carry bit */ 21630 REPEAT(12, 21631 "ld r18, y \n\t" 21632 "adc r18, __zero_reg__ \n\t" 21633 "st y+, r18 \n\t") 21634 21635 "adc %[carry], __zero_reg__ \n\t" /* Store carry bit (carry flag is cleared). */ 21636 "sbiw r28, 20 \n\t" /* move y back to point at result */ 21637 21638 "sbiw r30, 1 \n\t" /* fix stack pointer */ 21639 "in r0, __SREG__ \n\t" 21640 "cli \n\t" 21641 "out __SP_H__, r31 \n\t" 21642 "out __SREG__, r0 \n\t" 21643 "out __SP_L__, r30 \n\t" 21644 21645 : "+x" (product), [carry] "+r" (carry) 21646 : "y" (result) 21647 : "r0", "r18", "r19", "r30", "r31", "cc", "memory" 21648 ); 21649 21650 if (carry > 0) { 21651 --carry; 21652 vli_sub(result, result, curve_p); 21653 } 21654 if (carry > 0) { 21655 vli_sub(result, result, curve_p); 21656 } 21657 if (vli_cmp(result, curve_p) > 0) { 21658 vli_sub(result, result, curve_p); 21659 } 21660} 21661#define asm_mmod_fast 1 21662 21663#elif (uECC_CURVE == uECC_secp256k1) 21664static void vli_mmod_fast(uint8_t *RESTRICT result, uint8_t *RESTRICT product) { 21665 uint8_t carry = 0; 21666 __asm__ volatile ( 21667 "in r30, __SP_L__ \n\t" 21668 "in r31, __SP_H__ \n\t" 21669 "sbiw r30, 37 \n\t" 21670 "in r0, __SREG__ \n\t" 21671 "cli \n\t" 21672 "out __SP_H__, r31 \n\t" 21673 "out __SREG__, r0 \n\t" 21674 "out __SP_L__, r30 \n\t" 21675 21676 "adiw r30, 1 \n\t" /* add 1 since z initially points below the stack */ 21677 "adiw r26, 32 \n\t" /* product + uECC_WORDS */ 21678 "ldi r25, 0x03 \n\t" 21679 "ldi r24, 0xD1 \n\t" 21680 "ld r18, x+ \n\t" 21681 "ld r19, x+ \n\t" 21682 "ld r20, x+ \n\t" 21683 "ld r21, x+ \n\t" 21684 21685 "mul r24, r18 \n\t" 21686 "st z+, r0 \n\t" 21687 "mov r22, r1 \n\t" 21688 "ldi r23, 0 \n\t" 21689 21690 "mul r24, r19 \n\t" 21691 "add r22, r0 \n\t" 21692 "adc r23, r1 \n\t" /* can't overflow */ 21693 "mul r25, r18 \n\t" 21694 "add r22, r0 \n\t" 21695 "adc r23, r1 \n\t" /* can't overflow */ 21696 "st z+, r22 \n\t" 21697 "ldi r22, 0 \n\t" 21698 21699 "mul r24, r20 \n\t" 21700 "add r23, r0 \n\t" 21701 "adc r22, r1 \n\t" 21702 "mul r25, r19 \n\t" 21703 "add r23, r0 \n\t" 21704 "adc r22, r1 \n\t" 21705 "st z+, r23 \n\t" 21706 "ldi r23, 0 \n\t" 21707 21708 "mul r24, r21 \n\t" 21709 "add r22, r0 \n\t" 21710 "adc r23, r1 \n\t" 21711 "mul r25, r20 \n\t" 21712 "add r22, r0 \n\t" 21713 "adc r23, r1 \n\t" 21714 "st z+, r22 \n\t" 21715 "ldi r22, 0 \n\t" 21716 21717 /* now we start adding the 2^32 part as well */ 21718 "add r23, r18 \n\t" // 28 21719 "adc r22, r22 \n\t" 21720 "ld r18, x+ \n\t" 21721 "mul r24, r18 \n\t" 21722 "add r23, r0 \n\t" 21723 "adc r22, r1 \n\t" 21724 "mul r25, r21 \n\t" 21725 "add r23, r0 \n\t" 21726 "adc r22, r1 \n\t" 21727 "st z+, r23 \n\t" 21728 "ldi r23, 0 \n\t" 21729 21730 "add r22, r19 \n\t" // 27 21731 "adc r23, r23 \n\t" 21732 "ld r19, x+ \n\t" 21733 "mul r24, r19 \n\t" 21734 "add r22, r0 \n\t" 21735 "adc r23, r1 \n\t" 21736 "mul r25, r18 \n\t" 21737 "add r22, r0 \n\t" 21738 "adc r23, r1 \n\t" 21739 "st z+, r22 \n\t" 21740 "ldi r22, 0 \n\t" 21741 21742 REPEAT(6, // 26 - 3 21743 "add r23, r20 \n\t" 21744 "adc r22, r22 \n\t" 21745 "ld r20, x+ \n\t" 21746 "mul r24, r20 \n\t" 21747 "add r23, r0 \n\t" 21748 "adc r22, r1 \n\t" 21749 "mul r25, r19 \n\t" 21750 "add r23, r0 \n\t" 21751 "adc r22, r1 \n\t" 21752 "st z+, r23 \n\t" 21753 "ldi r23, 0 \n\t" 21754 21755 "add r22, r21 \n\t" 21756 "adc r23, r23 \n\t" 21757 "ld r21, x+ \n\t" 21758 "mul r24, r21 \n\t" 21759 "add r22, r0 \n\t" 21760 "adc r23, r1 \n\t" 21761 "mul r25, r20 \n\t" 21762 "add r22, r0 \n\t" 21763 "adc r23, r1 \n\t" 21764 "st z+, r22 \n\t" 21765 "ldi r22, 0 \n\t" 21766 21767 "add r23, r18 \n\t" 21768 "adc r22, r22 \n\t" 21769 "ld r18, x+ \n\t" 21770 "mul r24, r18 \n\t" 21771 "add r23, r0 \n\t" 21772 "adc r22, r1 \n\t" 21773 "mul r25, r21 \n\t" 21774 "add r23, r0 \n\t" 21775 "adc r22, r1 \n\t" 21776 "st z+, r23 \n\t" 21777 "ldi r23, 0 \n\t" 21778 21779 "add r22, r19 \n\t" 21780 "adc r23, r23 \n\t" 21781 "ld r19, x+ \n\t" 21782 "mul r24, r19 \n\t" 21783 "add r22, r0 \n\t" 21784 "adc r23, r1 \n\t" 21785 "mul r25, r18 \n\t" 21786 "add r22, r0 \n\t" 21787 "adc r23, r1 \n\t" 21788 "st z+, r22 \n\t" 21789 "ldi r22, 0 \n\t") 21790 21791 "add r23, r20 \n\t" // 2 21792 "adc r22, r22 \n\t" 21793 "ld r20, x+ \n\t" 21794 "mul r24, r20 \n\t" 21795 "add r23, r0 \n\t" 21796 "adc r22, r1 \n\t" 21797 "mul r25, r19 \n\t" 21798 "add r23, r0 \n\t" 21799 "adc r22, r1 \n\t" 21800 "st z+, r23 \n\t" 21801 "ldi r23, 0 \n\t" 21802 21803 "add r22, r21 \n\t" // 1 21804 "adc r23, r23 \n\t" 21805 "ld r21, x+ \n\t" 21806 "mul r24, r21 \n\t" 21807 "add r22, r0 \n\t" 21808 "adc r23, r1 \n\t" 21809 "mul r25, r20 \n\t" 21810 "add r22, r0 \n\t" 21811 "adc r23, r1 \n\t" 21812 "st z+, r22 \n\t" 21813 "ldi r22, 0 \n\t" 21814 21815 /* Now finish the carries etc */ 21816 "add r23, r18 \n\t" 21817 "adc r22, r22 \n\t" 21818 "mul r25, r21 \n\t" 21819 "add r23, r0 \n\t" 21820 "adc r22, r1 \n\t" 21821 "st z+, r23 \n\t" 21822 "ldi r23, 0 \n\t" 21823 21824 "add r22, r19 \n\t" 21825 "adc r23, r23 \n\t" 21826 "st z+, r22 \n\t" 21827 "ldi r22, 0 \n\t" 21828 21829 "add r23, r20 \n\t" 21830 "adc r22, r22 \n\t" 21831 "st z+, r23 \n\t" 21832 "ldi r23, 0 \n\t" 21833 21834 "add r22, r21 \n\t" 21835 "adc r23, r23 \n\t" 21836 "st z+, r22 \n\t" 21837 "st z+, r23 \n\t" 21838 "eor r1, r1 \n\t" /* make r1 be 0 again */ 21839 21840 "sbiw r30, 37 \n\t" /* move z back to point at tmp */ 21841 "subi r26, 64 \n\t" /* move x back to point at product */ 21842 "sbc r27, __zero_reg__ \n\t" 21843 21844 /* add low bytes of tmp to product, storing in result */ 21845 "ld r18, z+ \n\t" 21846 "ld r19, x+ \n\t" 21847 "add r18, r19 \n\t" 21848 "st y+, r18 \n\t" 21849 REPEAT(31, 21850 "ld r18, z+ \n\t" 21851 "ld r19, x+ \n\t" 21852 "adc r18, r19 \n\t" 21853 "st y+, r18 \n\t") 21854 21855 "adc %[carry], __zero_reg__ \n\t" /* Store carry bit (carry flag is cleared). */ 21856 /* at this point x is at the end of product, y is at the end of result, 21857 z is 32 bytes into tmp */ 21858 "sbiw r28, 32 \n\t" /* move y back to point at result */ 21859 21860 /* do omega_mult again with the 5 relevant bytes */ 21861 /* z points to tmp + uECC_WORDS, x points to the end of product */ 21862 "sbiw r26, 32 \n\t" /* shift x back to point into the product buffer 21863 (we can overwrite it now) */ 21864 "ld r18, z+ \n\t" 21865 "ld r19, z+ \n\t" 21866 "ld r20, z+ \n\t" 21867 "ld r21, z+ \n\t" 21868 21869 "mul r24, r18 \n\t" 21870 "st x+, r0 \n\t" 21871 "mov r22, r1 \n\t" 21872 "ldi r23, 0 \n\t" 21873 21874 "mul r24, r19 \n\t" 21875 "add r22, r0 \n\t" 21876 "adc r23, r1 \n\t" /* can't overflow */ 21877 "mul r25, r18 \n\t" 21878 "add r22, r0 \n\t" 21879 "adc r23, r1 \n\t" /* can't overflow */ 21880 "st x+, r22 \n\t" 21881 "ldi r22, 0 \n\t" 21882 21883 "mul r24, r20 \n\t" 21884 "add r23, r0 \n\t" 21885 "adc r22, r1 \n\t" 21886 "mul r25, r19 \n\t" 21887 "add r23, r0 \n\t" 21888 "adc r22, r1 \n\t" 21889 "st x+, r23 \n\t" 21890 "ldi r23, 0 \n\t" 21891 21892 "mul r24, r21 \n\t" 21893 "add r22, r0 \n\t" 21894 "adc r23, r1 \n\t" 21895 "mul r25, r20 \n\t" 21896 "add r22, r0 \n\t" 21897 "adc r23, r1 \n\t" 21898 "st x+, r22 \n\t" 21899 "ldi r22, 0 \n\t" 21900 21901 "add r23, r18 \n\t" 21902 "adc r22, r22 \n\t" 21903 "ld r18, z+ \n\t" 21904 "mul r24, r18 \n\t" 21905 "add r23, r0 \n\t" 21906 "adc r22, r1 \n\t" 21907 "mul r25, r21 \n\t" 21908 "add r23, r0 \n\t" 21909 "adc r22, r1 \n\t" 21910 "st x+, r23 \n\t" 21911 "ldi r23, 0 \n\t" 21912 21913 /* Now finish the carries etc */ 21914 "add r22, r19 \n\t" 21915 "adc r23, r23 \n\t" 21916 "mul r25, r18 \n\t" 21917 "add r22, r0 \n\t" 21918 "adc r23, r1 \n\t" 21919 "st x+, r22 \n\t" 21920 "ldi r22, 0 \n\t" 21921 21922 "add r23, r20 \n\t" 21923 "adc r22, r22 \n\t" 21924 "st x+, r23 \n\t" 21925 "ldi r23, 0 \n\t" 21926 21927 "add r22, r21 \n\t" 21928 "adc r23, r23 \n\t" 21929 "st x+, r22 \n\t" 21930 "ldi r22, 0 \n\t" 21931 21932 "add r23, r18 \n\t" 21933 "adc r22, r22 \n\t" 21934 "st x+, r23 \n\t" 21935 "st x+, r22 \n\t" 21936 "eor r1, r1 \n\t" /* make r1 be 0 again */ 21937 21938 /* now z points to the end of tmp, x points to the end of product 21939 (y still points at result) */ 21940 "sbiw r26, 10 \n\t" /* move x back to point at beginning of actual data */ 21941 /* add into result */ 21942 "ld r18, x+ \n\t" 21943 "ld r19, y \n\t" 21944 "add r18, r19 \n\t" 21945 "st y+, r18 \n\t" 21946 REPEAT(9, 21947 "ld r18, x+ \n\t" 21948 "ld r19, y \n\t" 21949 "adc r18, r19 \n\t" 21950 "st y+, r18 \n\t") 21951 21952 /* Done adding, now propagate carry bit */ 21953 REPEAT(22, 21954 "ld r18, y \n\t" 21955 "adc r18, __zero_reg__ \n\t" 21956 "st y+, r18 \n\t") 21957 21958 "adc %[carry], __zero_reg__ \n\t" /* Store carry bit (carry flag is cleared). */ 21959 "sbiw r28, 32 \n\t" /* move y back to point at result */ 21960 21961 "sbiw r30, 1 \n\t" /* fix stack pointer */ 21962 "in r0, __SREG__ \n\t" 21963 "cli \n\t" 21964 "out __SP_H__, r31 \n\t" 21965 "out __SREG__, r0 \n\t" 21966 "out __SP_L__, r30 \n\t" 21967 21968 : "+x" (product), [carry] "+r" (carry) 21969 : "y" (result) 21970 : "r0", "r18", "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r30", "r31", "cc", "memory" 21971 ); 21972 21973 if (carry > 0) { 21974 --carry; 21975 vli_sub(result, result, curve_p); 21976 } 21977 if (carry > 0) { 21978 vli_sub(result, result, curve_p); 21979 } 21980 if (vli_cmp(result, curve_p) > 0) { 21981 vli_sub(result, result, curve_p); 21982 } 21983} 21984#define asm_mmod_fast 1 21985 21986#endif /* (uECC_CURVE == uECC_secp256k1) */ 21987 21988#endif /* (uECC_ASM == uECC_asm_fast) */ 21989 21990#if !asm_rshift1 21991static void vli_rshift1(uint8_t *vli) { 21992 uint8_t i = uECC_BYTES; 21993 __asm__ volatile ( 21994 "adiw r30, " STR(uECC_BYTES) " \n\t" 21995 "clc \n\t" 21996 21997 "1: \n\t" 21998 "ld r0, -z \n\t" 21999 "ror r0 \n\t" 22000 "st z, r0 \n\t" 22001 "dec %[i] \n\t" 22002 "brne 1b \n\t" 22003 22004 : "+z" (vli), [i] "+r" (i) 22005 : 22006 : "r0", "cc", "memory" 22007 ); 22008} 22009#define asm_rshift1 1 22010#endif 22011 22012#if !asm_add 22013static uint8_t vli_add(uint8_t *result, const uint8_t *left, const uint8_t *right) { 22014 uint8_t i = uECC_BYTES; 22015 uint8_t carry = 0; 22016 uint8_t left_byte; 22017 uint8_t right_byte; 22018 22019 __asm__ volatile ( 22020 "clc \n\t" 22021 22022 "1: \n\t" 22023 "ld %[left], x+ \n\t" /* Load left byte. */ 22024 "ld %[right], y+ \n\t" /* Load right byte. */ 22025 "adc %[left], %[right] \n\t" /* Add. */ 22026 "st z+, %[left] \n\t" /* Store the result. */ 22027 "dec %[i] \n\t" 22028 "brne 1b \n\t" 22029 22030 "adc %[carry], %[carry] \n\t" /* Store carry bit. */ 22031 "sbiw r28, " STR(uECC_BYTES) " \n\t" /* Restore Y */ 22032 22033 : "+z" (result), "+x" (left), [i] "+r" (i), 22034 [carry] "+r" (carry), [left] "=&r" (left_byte), [right] "=&r" (right_byte) 22035 : "y" (right) 22036 : "cc", "memory" 22037 ); 22038 return carry; 22039} 22040#define asm_add 1 22041#endif 22042 22043#if !asm_sub 22044static uint8_t vli_sub(uint8_t *result, const uint8_t *left, const uint8_t *right) { 22045 uint8_t i = uECC_BYTES; 22046 uint8_t borrow = 0; 22047 uint8_t left_byte; 22048 uint8_t right_byte; 22049 22050 __asm__ volatile ( 22051 "clc \n\t" 22052 22053 "1: \n\t" 22054 "ld %[left], x+ \n\t" /* Load left byte. */ 22055 "ld %[right], y+ \n\t" /* Load right byte. */ 22056 "sbc %[left], %[right] \n\t" /* Subtract. */ 22057 "st z+, %[left] \n\t" /* Store the result. */ 22058 "dec %[i] \n\t" 22059 "brne 1b \n\t" 22060 22061 "adc %[borrow], %[borrow] \n\t" /* Store carry bit in borrow. */ 22062 "sbiw r28, " STR(uECC_BYTES) " \n\t" /* Restore Y */ 22063 22064 : "+z" (result), "+x" (left), [i] "+r" (i), 22065 [borrow] "+r" (borrow), [left] "=&r" (left_byte), [right] "=&r" (right_byte) 22066 : "y" (right) 22067 : "cc", "memory" 22068 ); 22069 return borrow; 22070} 22071#define asm_sub 1 22072#endif 22073 22074#if !asm_mult 22075__attribute((noinline)) 22076static void vli_mult(uint8_t *result, const uint8_t *left, const uint8_t *right) { 22077 uint8_t r0 = 0; 22078 uint8_t r1 = 0; 22079 uint8_t r2 = 0; 22080 uint8_t zero = 0; 22081 uint8_t k, i; 22082 22083 __asm__ volatile ( 22084 "ldi %[k], 1 \n\t" /* k = 1; k < uECC_BYTES; ++k */ 22085 22086 "1: \n\t" 22087 "ldi %[i], 0 \n\t" /* i = 0; i < k; ++i */ 22088 22089 "add r28, %[k] \n\t" /* pre-add right ptr */ 22090 "adc r29, %[zero] \n\t" 22091 22092 "2: \n\t" 22093 "ld r0, x+ \n\t" 22094 "ld r1, -y \n\t" 22095 "mul r0, r1 \n\t" 22096 22097 "add %[r0], r0 \n\t" 22098 "adc %[r1], r1 \n\t" 22099 "adc %[r2], %[zero] \n\t" 22100 22101 "inc %[i] \n\t" 22102 "cp %[i], %[k] \n\t" 22103 "brlo 2b \n\t" /* loop if i < k */ 22104 22105 "sub r26, %[k] \n\t" /* fix up left ptr */ 22106 "sbc r27, %[zero] \n\t" 22107 22108 "st z+, %[r0] \n\t" /* Store the result. */ 22109 "mov %[r0], %[r1] \n\t" 22110 "mov %[r1], %[r2] \n\t" 22111 "mov %[r2], %[zero] \n\t" 22112 22113 "inc %[k] \n\t" 22114 "cpi %[k], " STR(uECC_BYTES) " \n\t" 22115 "brlo 1b \n\t" /* loop if k < uECC_BYTES */ 22116 22117 /* second half */ 22118 "ldi %[k], " STR(uECC_BYTES) " \n\t" /* k = uECC_BYTES; k > 0; --k */ 22119 "adiw r28, " STR(uECC_BYTES) " \n\t" /* move right ptr to point at the end of right */ 22120 22121 "1: \n\t" 22122 "ldi %[i], 0 \n\t" /* i = 0; i < k; ++i */ 22123 22124 "2: \n\t" 22125 "ld r0, x+ \n\t" 22126 "ld r1, -y \n\t" 22127 "mul r0, r1 \n\t" 22128 22129 "add %[r0], r0 \n\t" 22130 "adc %[r1], r1 \n\t" 22131 "adc %[r2], %[zero] \n\t" 22132 22133 "inc %[i] \n\t" 22134 "cp %[i], %[k] \n\t" 22135 "brlo 2b \n\t" /* loop if i < k */ 22136 22137 "add r28, %[k] \n\t" /* fix up right ptr */ 22138 "adc r29, %[zero] \n\t" 22139 22140 "st z+, %[r0] \n\t" /* Store the result. */ 22141 "mov %[r0], %[r1] \n\t" 22142 "mov %[r1], %[r2] \n\t" 22143 "mov %[r2], %[zero] \n\t" 22144 22145 "dec %[k] \n\t" 22146 "sub r26, %[k] \n\t" /* fix up left ptr (after k is decremented, so next time 22147 we start 1 higher) */ 22148 "sbc r27, %[zero] \n\t" 22149 22150 "cpi %[k], 0 \n\t" 22151 "brne 1b \n\t" /* loop if k > 0 */ 22152 22153 "st z+, %[r0] \n\t" /* Store last result byte. */ 22154 "eor r1, r1 \n\t" /* fix r1 to be 0 again */ 22155 "sbiw r28, " STR(uECC_BYTES) " \n\t" /* Restore Y */ 22156 22157 : "+z" (result), "+x" (left), 22158 [r0] "+r" (r0), [r1] "+r" (r1), [r2] "+r" (r2), [zero] "+r" (zero), 22159 [k] "=&a" (k), [i] "=&a" (i) 22160 : "y" (right) 22161 : "r0", "cc", "memory" 22162 ); 22163} 22164#define asm_mult 1 22165#endif 22166 22167#if uECC_SQUARE_FUNC 22168#if !asm_square 22169static void vli_square(uint8_t *result, const uint8_t *left) { 22170 uint8_t r0 = 0; 22171 uint8_t r1 = 0; 22172 uint8_t r2 = 0; 22173 uint8_t zero = 0; 22174 uint8_t k; 22175 22176 __asm__ volatile ( 22177 "ldi %[k], 1 \n\t" /* k = 1; k < uECC_BYTES * 2; ++k */ 22178 22179 "1: \n\t" 22180 22181 "movw r26, %[orig] \n\t" /* copy orig ptr to 'left' ptr */ 22182 "movw r30, %[orig] \n\t" /* copy orig ptr to 'right' ptr */ 22183 "cpi %[k], " STR(uECC_BYTES) " \n\t" 22184 "brlo 2f \n\t" 22185 "breq 2f \n\t" 22186 22187 /* when k > uECC_BYTES, we start from (k - uECC_BYTES) on the 'left' ptr */ 22188 "add r26, %[k] \n\t" 22189 "adc r27, %[zero] \n\t" 22190 "subi r26, " STR(uECC_BYTES) " \n\t" 22191 "sbc r27, %[zero] \n\t" 22192 "adiw r30, " STR(uECC_BYTES) " \n\t" /* move right ptr to point at the end */ 22193 "rjmp 3f \n\t" 22194 22195 "2: \n\t" /* when k <= uECC_BYTES, we add k to the 'right' ptr */ 22196 "add r30, %[k] \n\t" /* pre-add 'right' ptr */ 22197 "adc r31, %[zero] \n\t" 22198 22199 "3: \n\t" 22200 "ld r0, x+ \n\t" 22201 "cp r26, r30 \n\t" /* if left == right here, then we are done after this mult 22202 (and we don't need to double) */ 22203 "breq 4f \n\t" 22204 "ld r1, -z \n\t" 22205 "mul r0, r1 \n\t" 22206 22207 /* add twice since it costs the same as doubling */ 22208 "add %[r0], r0 \n\t" 22209 "adc %[r1], r1 \n\t" 22210 "adc %[r2], %[zero] \n\t" 22211 "add %[r0], r0 \n\t" 22212 "adc %[r1], r1 \n\t" 22213 "adc %[r2], %[zero] \n\t" 22214 22215 "cpse r26, r30 \n\t" /* if left == right here, then we are done */ 22216 "rjmp 3b \n\t" 22217 "rjmp 5f \n\t" /* skip code for non-doubled mult */ 22218 22219 "4: \n\t" 22220 "ld r1, -z \n\t" 22221 "mul r0, r1 \n\t" 22222 "add %[r0], r0 \n\t" 22223 "adc %[r1], r1 \n\t" 22224 "adc %[r2], %[zero] \n\t" 22225 22226 "5: \n\t" 22227 "movw r30, %[result] \n\t" /* make z point to result */ 22228 "st z+, %[r0] \n\t" /* Store the result. */ 22229 "movw %[result], r30 \n\t" /* update result ptr*/ 22230 "mov %[r0], %[r1] \n\t" 22231 "mov %[r1], %[r2] \n\t" 22232 "mov %[r2], %[zero] \n\t" 22233 22234 "inc %[k] \n\t" 22235 "cpi %[k], %[max] \n\t" 22236 "brlo 1b \n\t" /* loop if k < uECC_BYTES */ 22237 22238 "movw r30, %[result] \n\t" /* make z point to result */ 22239 "st z+, %[r0] \n\t" /* Store last result byte. */ 22240 "eor r1, r1 \n\t" /* fix r1 to be 0 again */ 22241 22242 : [result] "+r" (result), 22243 [r0] "+r" (r0), [r1] "+r" (r1), [r2] "+r" (r2), [zero] "+r" (zero), 22244 [k] "=&a" (k) 22245 : [orig] "r" (left), [max] "M" (2*uECC_BYTES) 22246 : "r0", "r26", "r27", "r30", "r31", "cc", "memory" 22247 ); 22248} 22249#define asm_square 1 22250#endif 22251#endif /* uECC_SQUARE_FUNC */ 22252