Home | History | Annotate | Download | only in curve25519
      1 // Copyright 2012 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 // This code was translated into a form compatible with 6a from the public
      6 // domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html
      7 
      8 // +build amd64,!gccgo,!appengine
      9 
     10 // func ladderstep(inout *[5][5]uint64)
     11 TEXT ladderstep(SB),0,$384-8
     12 	MOVQ inout+0(FP),DI
     13 
     14 	MOVQ SP,R11
     15 	MOVQ $31,CX
     16 	NOTQ CX
     17 	ANDQ CX,SP
     18 	ADDQ $32,SP
     19 
     20 	MOVQ R11,0(SP)
     21 	MOVQ R12,8(SP)
     22 	MOVQ R13,16(SP)
     23 	MOVQ R14,24(SP)
     24 	MOVQ R15,32(SP)
     25 	MOVQ BX,40(SP)
     26 	MOVQ BP,48(SP)
     27 	MOVQ 40(DI),SI
     28 	MOVQ 48(DI),DX
     29 	MOVQ 56(DI),CX
     30 	MOVQ 64(DI),R8
     31 	MOVQ 72(DI),R9
     32 	MOVQ SI,AX
     33 	MOVQ DX,R10
     34 	MOVQ CX,R11
     35 	MOVQ R8,R12
     36 	MOVQ R9,R13
     37 	ADDQ _2P0(SB),AX
     38 	ADDQ _2P1234(SB),R10
     39 	ADDQ _2P1234(SB),R11
     40 	ADDQ _2P1234(SB),R12
     41 	ADDQ _2P1234(SB),R13
     42 	ADDQ 80(DI),SI
     43 	ADDQ 88(DI),DX
     44 	ADDQ 96(DI),CX
     45 	ADDQ 104(DI),R8
     46 	ADDQ 112(DI),R9
     47 	SUBQ 80(DI),AX
     48 	SUBQ 88(DI),R10
     49 	SUBQ 96(DI),R11
     50 	SUBQ 104(DI),R12
     51 	SUBQ 112(DI),R13
     52 	MOVQ SI,56(SP)
     53 	MOVQ DX,64(SP)
     54 	MOVQ CX,72(SP)
     55 	MOVQ R8,80(SP)
     56 	MOVQ R9,88(SP)
     57 	MOVQ AX,96(SP)
     58 	MOVQ R10,104(SP)
     59 	MOVQ R11,112(SP)
     60 	MOVQ R12,120(SP)
     61 	MOVQ R13,128(SP)
     62 	MOVQ 96(SP),AX
     63 	MULQ 96(SP)
     64 	MOVQ AX,SI
     65 	MOVQ DX,CX
     66 	MOVQ 96(SP),AX
     67 	SHLQ $1,AX
     68 	MULQ 104(SP)
     69 	MOVQ AX,R8
     70 	MOVQ DX,R9
     71 	MOVQ 96(SP),AX
     72 	SHLQ $1,AX
     73 	MULQ 112(SP)
     74 	MOVQ AX,R10
     75 	MOVQ DX,R11
     76 	MOVQ 96(SP),AX
     77 	SHLQ $1,AX
     78 	MULQ 120(SP)
     79 	MOVQ AX,R12
     80 	MOVQ DX,R13
     81 	MOVQ 96(SP),AX
     82 	SHLQ $1,AX
     83 	MULQ 128(SP)
     84 	MOVQ AX,R14
     85 	MOVQ DX,R15
     86 	MOVQ 104(SP),AX
     87 	MULQ 104(SP)
     88 	ADDQ AX,R10
     89 	ADCQ DX,R11
     90 	MOVQ 104(SP),AX
     91 	SHLQ $1,AX
     92 	MULQ 112(SP)
     93 	ADDQ AX,R12
     94 	ADCQ DX,R13
     95 	MOVQ 104(SP),AX
     96 	SHLQ $1,AX
     97 	MULQ 120(SP)
     98 	ADDQ AX,R14
     99 	ADCQ DX,R15
    100 	MOVQ 104(SP),DX
    101 	IMUL3Q $38,DX,AX
    102 	MULQ 128(SP)
    103 	ADDQ AX,SI
    104 	ADCQ DX,CX
    105 	MOVQ 112(SP),AX
    106 	MULQ 112(SP)
    107 	ADDQ AX,R14
    108 	ADCQ DX,R15
    109 	MOVQ 112(SP),DX
    110 	IMUL3Q $38,DX,AX
    111 	MULQ 120(SP)
    112 	ADDQ AX,SI
    113 	ADCQ DX,CX
    114 	MOVQ 112(SP),DX
    115 	IMUL3Q $38,DX,AX
    116 	MULQ 128(SP)
    117 	ADDQ AX,R8
    118 	ADCQ DX,R9
    119 	MOVQ 120(SP),DX
    120 	IMUL3Q $19,DX,AX
    121 	MULQ 120(SP)
    122 	ADDQ AX,R8
    123 	ADCQ DX,R9
    124 	MOVQ 120(SP),DX
    125 	IMUL3Q $38,DX,AX
    126 	MULQ 128(SP)
    127 	ADDQ AX,R10
    128 	ADCQ DX,R11
    129 	MOVQ 128(SP),DX
    130 	IMUL3Q $19,DX,AX
    131 	MULQ 128(SP)
    132 	ADDQ AX,R12
    133 	ADCQ DX,R13
    134 	MOVQ REDMASK51(SB),DX
    135 	SHLQ $13,CX:SI
    136 	ANDQ DX,SI
    137 	SHLQ $13,R9:R8
    138 	ANDQ DX,R8
    139 	ADDQ CX,R8
    140 	SHLQ $13,R11:R10
    141 	ANDQ DX,R10
    142 	ADDQ R9,R10
    143 	SHLQ $13,R13:R12
    144 	ANDQ DX,R12
    145 	ADDQ R11,R12
    146 	SHLQ $13,R15:R14
    147 	ANDQ DX,R14
    148 	ADDQ R13,R14
    149 	IMUL3Q $19,R15,CX
    150 	ADDQ CX,SI
    151 	MOVQ SI,CX
    152 	SHRQ $51,CX
    153 	ADDQ R8,CX
    154 	ANDQ DX,SI
    155 	MOVQ CX,R8
    156 	SHRQ $51,CX
    157 	ADDQ R10,CX
    158 	ANDQ DX,R8
    159 	MOVQ CX,R9
    160 	SHRQ $51,CX
    161 	ADDQ R12,CX
    162 	ANDQ DX,R9
    163 	MOVQ CX,AX
    164 	SHRQ $51,CX
    165 	ADDQ R14,CX
    166 	ANDQ DX,AX
    167 	MOVQ CX,R10
    168 	SHRQ $51,CX
    169 	IMUL3Q $19,CX,CX
    170 	ADDQ CX,SI
    171 	ANDQ DX,R10
    172 	MOVQ SI,136(SP)
    173 	MOVQ R8,144(SP)
    174 	MOVQ R9,152(SP)
    175 	MOVQ AX,160(SP)
    176 	MOVQ R10,168(SP)
    177 	MOVQ 56(SP),AX
    178 	MULQ 56(SP)
    179 	MOVQ AX,SI
    180 	MOVQ DX,CX
    181 	MOVQ 56(SP),AX
    182 	SHLQ $1,AX
    183 	MULQ 64(SP)
    184 	MOVQ AX,R8
    185 	MOVQ DX,R9
    186 	MOVQ 56(SP),AX
    187 	SHLQ $1,AX
    188 	MULQ 72(SP)
    189 	MOVQ AX,R10
    190 	MOVQ DX,R11
    191 	MOVQ 56(SP),AX
    192 	SHLQ $1,AX
    193 	MULQ 80(SP)
    194 	MOVQ AX,R12
    195 	MOVQ DX,R13
    196 	MOVQ 56(SP),AX
    197 	SHLQ $1,AX
    198 	MULQ 88(SP)
    199 	MOVQ AX,R14
    200 	MOVQ DX,R15
    201 	MOVQ 64(SP),AX
    202 	MULQ 64(SP)
    203 	ADDQ AX,R10
    204 	ADCQ DX,R11
    205 	MOVQ 64(SP),AX
    206 	SHLQ $1,AX
    207 	MULQ 72(SP)
    208 	ADDQ AX,R12
    209 	ADCQ DX,R13
    210 	MOVQ 64(SP),AX
    211 	SHLQ $1,AX
    212 	MULQ 80(SP)
    213 	ADDQ AX,R14
    214 	ADCQ DX,R15
    215 	MOVQ 64(SP),DX
    216 	IMUL3Q $38,DX,AX
    217 	MULQ 88(SP)
    218 	ADDQ AX,SI
    219 	ADCQ DX,CX
    220 	MOVQ 72(SP),AX
    221 	MULQ 72(SP)
    222 	ADDQ AX,R14
    223 	ADCQ DX,R15
    224 	MOVQ 72(SP),DX
    225 	IMUL3Q $38,DX,AX
    226 	MULQ 80(SP)
    227 	ADDQ AX,SI
    228 	ADCQ DX,CX
    229 	MOVQ 72(SP),DX
    230 	IMUL3Q $38,DX,AX
    231 	MULQ 88(SP)
    232 	ADDQ AX,R8
    233 	ADCQ DX,R9
    234 	MOVQ 80(SP),DX
    235 	IMUL3Q $19,DX,AX
    236 	MULQ 80(SP)
    237 	ADDQ AX,R8
    238 	ADCQ DX,R9
    239 	MOVQ 80(SP),DX
    240 	IMUL3Q $38,DX,AX
    241 	MULQ 88(SP)
    242 	ADDQ AX,R10
    243 	ADCQ DX,R11
    244 	MOVQ 88(SP),DX
    245 	IMUL3Q $19,DX,AX
    246 	MULQ 88(SP)
    247 	ADDQ AX,R12
    248 	ADCQ DX,R13
    249 	MOVQ REDMASK51(SB),DX
    250 	SHLQ $13,CX:SI
    251 	ANDQ DX,SI
    252 	SHLQ $13,R9:R8
    253 	ANDQ DX,R8
    254 	ADDQ CX,R8
    255 	SHLQ $13,R11:R10
    256 	ANDQ DX,R10
    257 	ADDQ R9,R10
    258 	SHLQ $13,R13:R12
    259 	ANDQ DX,R12
    260 	ADDQ R11,R12
    261 	SHLQ $13,R15:R14
    262 	ANDQ DX,R14
    263 	ADDQ R13,R14
    264 	IMUL3Q $19,R15,CX
    265 	ADDQ CX,SI
    266 	MOVQ SI,CX
    267 	SHRQ $51,CX
    268 	ADDQ R8,CX
    269 	ANDQ DX,SI
    270 	MOVQ CX,R8
    271 	SHRQ $51,CX
    272 	ADDQ R10,CX
    273 	ANDQ DX,R8
    274 	MOVQ CX,R9
    275 	SHRQ $51,CX
    276 	ADDQ R12,CX
    277 	ANDQ DX,R9
    278 	MOVQ CX,AX
    279 	SHRQ $51,CX
    280 	ADDQ R14,CX
    281 	ANDQ DX,AX
    282 	MOVQ CX,R10
    283 	SHRQ $51,CX
    284 	IMUL3Q $19,CX,CX
    285 	ADDQ CX,SI
    286 	ANDQ DX,R10
    287 	MOVQ SI,176(SP)
    288 	MOVQ R8,184(SP)
    289 	MOVQ R9,192(SP)
    290 	MOVQ AX,200(SP)
    291 	MOVQ R10,208(SP)
    292 	MOVQ SI,SI
    293 	MOVQ R8,DX
    294 	MOVQ R9,CX
    295 	MOVQ AX,R8
    296 	MOVQ R10,R9
    297 	ADDQ _2P0(SB),SI
    298 	ADDQ _2P1234(SB),DX
    299 	ADDQ _2P1234(SB),CX
    300 	ADDQ _2P1234(SB),R8
    301 	ADDQ _2P1234(SB),R9
    302 	SUBQ 136(SP),SI
    303 	SUBQ 144(SP),DX
    304 	SUBQ 152(SP),CX
    305 	SUBQ 160(SP),R8
    306 	SUBQ 168(SP),R9
    307 	MOVQ SI,216(SP)
    308 	MOVQ DX,224(SP)
    309 	MOVQ CX,232(SP)
    310 	MOVQ R8,240(SP)
    311 	MOVQ R9,248(SP)
    312 	MOVQ 120(DI),SI
    313 	MOVQ 128(DI),DX
    314 	MOVQ 136(DI),CX
    315 	MOVQ 144(DI),R8
    316 	MOVQ 152(DI),R9
    317 	MOVQ SI,AX
    318 	MOVQ DX,R10
    319 	MOVQ CX,R11
    320 	MOVQ R8,R12
    321 	MOVQ R9,R13
    322 	ADDQ _2P0(SB),AX
    323 	ADDQ _2P1234(SB),R10
    324 	ADDQ _2P1234(SB),R11
    325 	ADDQ _2P1234(SB),R12
    326 	ADDQ _2P1234(SB),R13
    327 	ADDQ 160(DI),SI
    328 	ADDQ 168(DI),DX
    329 	ADDQ 176(DI),CX
    330 	ADDQ 184(DI),R8
    331 	ADDQ 192(DI),R9
    332 	SUBQ 160(DI),AX
    333 	SUBQ 168(DI),R10
    334 	SUBQ 176(DI),R11
    335 	SUBQ 184(DI),R12
    336 	SUBQ 192(DI),R13
    337 	MOVQ SI,256(SP)
    338 	MOVQ DX,264(SP)
    339 	MOVQ CX,272(SP)
    340 	MOVQ R8,280(SP)
    341 	MOVQ R9,288(SP)
    342 	MOVQ AX,296(SP)
    343 	MOVQ R10,304(SP)
    344 	MOVQ R11,312(SP)
    345 	MOVQ R12,320(SP)
    346 	MOVQ R13,328(SP)
    347 	MOVQ 280(SP),SI
    348 	IMUL3Q $19,SI,AX
    349 	MOVQ AX,336(SP)
    350 	MULQ 112(SP)
    351 	MOVQ AX,SI
    352 	MOVQ DX,CX
    353 	MOVQ 288(SP),DX
    354 	IMUL3Q $19,DX,AX
    355 	MOVQ AX,344(SP)
    356 	MULQ 104(SP)
    357 	ADDQ AX,SI
    358 	ADCQ DX,CX
    359 	MOVQ 256(SP),AX
    360 	MULQ 96(SP)
    361 	ADDQ AX,SI
    362 	ADCQ DX,CX
    363 	MOVQ 256(SP),AX
    364 	MULQ 104(SP)
    365 	MOVQ AX,R8
    366 	MOVQ DX,R9
    367 	MOVQ 256(SP),AX
    368 	MULQ 112(SP)
    369 	MOVQ AX,R10
    370 	MOVQ DX,R11
    371 	MOVQ 256(SP),AX
    372 	MULQ 120(SP)
    373 	MOVQ AX,R12
    374 	MOVQ DX,R13
    375 	MOVQ 256(SP),AX
    376 	MULQ 128(SP)
    377 	MOVQ AX,R14
    378 	MOVQ DX,R15
    379 	MOVQ 264(SP),AX
    380 	MULQ 96(SP)
    381 	ADDQ AX,R8
    382 	ADCQ DX,R9
    383 	MOVQ 264(SP),AX
    384 	MULQ 104(SP)
    385 	ADDQ AX,R10
    386 	ADCQ DX,R11
    387 	MOVQ 264(SP),AX
    388 	MULQ 112(SP)
    389 	ADDQ AX,R12
    390 	ADCQ DX,R13
    391 	MOVQ 264(SP),AX
    392 	MULQ 120(SP)
    393 	ADDQ AX,R14
    394 	ADCQ DX,R15
    395 	MOVQ 264(SP),DX
    396 	IMUL3Q $19,DX,AX
    397 	MULQ 128(SP)
    398 	ADDQ AX,SI
    399 	ADCQ DX,CX
    400 	MOVQ 272(SP),AX
    401 	MULQ 96(SP)
    402 	ADDQ AX,R10
    403 	ADCQ DX,R11
    404 	MOVQ 272(SP),AX
    405 	MULQ 104(SP)
    406 	ADDQ AX,R12
    407 	ADCQ DX,R13
    408 	MOVQ 272(SP),AX
    409 	MULQ 112(SP)
    410 	ADDQ AX,R14
    411 	ADCQ DX,R15
    412 	MOVQ 272(SP),DX
    413 	IMUL3Q $19,DX,AX
    414 	MULQ 120(SP)
    415 	ADDQ AX,SI
    416 	ADCQ DX,CX
    417 	MOVQ 272(SP),DX
    418 	IMUL3Q $19,DX,AX
    419 	MULQ 128(SP)
    420 	ADDQ AX,R8
    421 	ADCQ DX,R9
    422 	MOVQ 280(SP),AX
    423 	MULQ 96(SP)
    424 	ADDQ AX,R12
    425 	ADCQ DX,R13
    426 	MOVQ 280(SP),AX
    427 	MULQ 104(SP)
    428 	ADDQ AX,R14
    429 	ADCQ DX,R15
    430 	MOVQ 336(SP),AX
    431 	MULQ 120(SP)
    432 	ADDQ AX,R8
    433 	ADCQ DX,R9
    434 	MOVQ 336(SP),AX
    435 	MULQ 128(SP)
    436 	ADDQ AX,R10
    437 	ADCQ DX,R11
    438 	MOVQ 288(SP),AX
    439 	MULQ 96(SP)
    440 	ADDQ AX,R14
    441 	ADCQ DX,R15
    442 	MOVQ 344(SP),AX
    443 	MULQ 112(SP)
    444 	ADDQ AX,R8
    445 	ADCQ DX,R9
    446 	MOVQ 344(SP),AX
    447 	MULQ 120(SP)
    448 	ADDQ AX,R10
    449 	ADCQ DX,R11
    450 	MOVQ 344(SP),AX
    451 	MULQ 128(SP)
    452 	ADDQ AX,R12
    453 	ADCQ DX,R13
    454 	MOVQ REDMASK51(SB),DX
    455 	SHLQ $13,CX:SI
    456 	ANDQ DX,SI
    457 	SHLQ $13,R9:R8
    458 	ANDQ DX,R8
    459 	ADDQ CX,R8
    460 	SHLQ $13,R11:R10
    461 	ANDQ DX,R10
    462 	ADDQ R9,R10
    463 	SHLQ $13,R13:R12
    464 	ANDQ DX,R12
    465 	ADDQ R11,R12
    466 	SHLQ $13,R15:R14
    467 	ANDQ DX,R14
    468 	ADDQ R13,R14
    469 	IMUL3Q $19,R15,CX
    470 	ADDQ CX,SI
    471 	MOVQ SI,CX
    472 	SHRQ $51,CX
    473 	ADDQ R8,CX
    474 	MOVQ CX,R8
    475 	SHRQ $51,CX
    476 	ANDQ DX,SI
    477 	ADDQ R10,CX
    478 	MOVQ CX,R9
    479 	SHRQ $51,CX
    480 	ANDQ DX,R8
    481 	ADDQ R12,CX
    482 	MOVQ CX,AX
    483 	SHRQ $51,CX
    484 	ANDQ DX,R9
    485 	ADDQ R14,CX
    486 	MOVQ CX,R10
    487 	SHRQ $51,CX
    488 	ANDQ DX,AX
    489 	IMUL3Q $19,CX,CX
    490 	ADDQ CX,SI
    491 	ANDQ DX,R10
    492 	MOVQ SI,96(SP)
    493 	MOVQ R8,104(SP)
    494 	MOVQ R9,112(SP)
    495 	MOVQ AX,120(SP)
    496 	MOVQ R10,128(SP)
    497 	MOVQ 320(SP),SI
    498 	IMUL3Q $19,SI,AX
    499 	MOVQ AX,256(SP)
    500 	MULQ 72(SP)
    501 	MOVQ AX,SI
    502 	MOVQ DX,CX
    503 	MOVQ 328(SP),DX
    504 	IMUL3Q $19,DX,AX
    505 	MOVQ AX,264(SP)
    506 	MULQ 64(SP)
    507 	ADDQ AX,SI
    508 	ADCQ DX,CX
    509 	MOVQ 296(SP),AX
    510 	MULQ 56(SP)
    511 	ADDQ AX,SI
    512 	ADCQ DX,CX
    513 	MOVQ 296(SP),AX
    514 	MULQ 64(SP)
    515 	MOVQ AX,R8
    516 	MOVQ DX,R9
    517 	MOVQ 296(SP),AX
    518 	MULQ 72(SP)
    519 	MOVQ AX,R10
    520 	MOVQ DX,R11
    521 	MOVQ 296(SP),AX
    522 	MULQ 80(SP)
    523 	MOVQ AX,R12
    524 	MOVQ DX,R13
    525 	MOVQ 296(SP),AX
    526 	MULQ 88(SP)
    527 	MOVQ AX,R14
    528 	MOVQ DX,R15
    529 	MOVQ 304(SP),AX
    530 	MULQ 56(SP)
    531 	ADDQ AX,R8
    532 	ADCQ DX,R9
    533 	MOVQ 304(SP),AX
    534 	MULQ 64(SP)
    535 	ADDQ AX,R10
    536 	ADCQ DX,R11
    537 	MOVQ 304(SP),AX
    538 	MULQ 72(SP)
    539 	ADDQ AX,R12
    540 	ADCQ DX,R13
    541 	MOVQ 304(SP),AX
    542 	MULQ 80(SP)
    543 	ADDQ AX,R14
    544 	ADCQ DX,R15
    545 	MOVQ 304(SP),DX
    546 	IMUL3Q $19,DX,AX
    547 	MULQ 88(SP)
    548 	ADDQ AX,SI
    549 	ADCQ DX,CX
    550 	MOVQ 312(SP),AX
    551 	MULQ 56(SP)
    552 	ADDQ AX,R10
    553 	ADCQ DX,R11
    554 	MOVQ 312(SP),AX
    555 	MULQ 64(SP)
    556 	ADDQ AX,R12
    557 	ADCQ DX,R13
    558 	MOVQ 312(SP),AX
    559 	MULQ 72(SP)
    560 	ADDQ AX,R14
    561 	ADCQ DX,R15
    562 	MOVQ 312(SP),DX
    563 	IMUL3Q $19,DX,AX
    564 	MULQ 80(SP)
    565 	ADDQ AX,SI
    566 	ADCQ DX,CX
    567 	MOVQ 312(SP),DX
    568 	IMUL3Q $19,DX,AX
    569 	MULQ 88(SP)
    570 	ADDQ AX,R8
    571 	ADCQ DX,R9
    572 	MOVQ 320(SP),AX
    573 	MULQ 56(SP)
    574 	ADDQ AX,R12
    575 	ADCQ DX,R13
    576 	MOVQ 320(SP),AX
    577 	MULQ 64(SP)
    578 	ADDQ AX,R14
    579 	ADCQ DX,R15
    580 	MOVQ 256(SP),AX
    581 	MULQ 80(SP)
    582 	ADDQ AX,R8
    583 	ADCQ DX,R9
    584 	MOVQ 256(SP),AX
    585 	MULQ 88(SP)
    586 	ADDQ AX,R10
    587 	ADCQ DX,R11
    588 	MOVQ 328(SP),AX
    589 	MULQ 56(SP)
    590 	ADDQ AX,R14
    591 	ADCQ DX,R15
    592 	MOVQ 264(SP),AX
    593 	MULQ 72(SP)
    594 	ADDQ AX,R8
    595 	ADCQ DX,R9
    596 	MOVQ 264(SP),AX
    597 	MULQ 80(SP)
    598 	ADDQ AX,R10
    599 	ADCQ DX,R11
    600 	MOVQ 264(SP),AX
    601 	MULQ 88(SP)
    602 	ADDQ AX,R12
    603 	ADCQ DX,R13
    604 	MOVQ REDMASK51(SB),DX
    605 	SHLQ $13,CX:SI
    606 	ANDQ DX,SI
    607 	SHLQ $13,R9:R8
    608 	ANDQ DX,R8
    609 	ADDQ CX,R8
    610 	SHLQ $13,R11:R10
    611 	ANDQ DX,R10
    612 	ADDQ R9,R10
    613 	SHLQ $13,R13:R12
    614 	ANDQ DX,R12
    615 	ADDQ R11,R12
    616 	SHLQ $13,R15:R14
    617 	ANDQ DX,R14
    618 	ADDQ R13,R14
    619 	IMUL3Q $19,R15,CX
    620 	ADDQ CX,SI
    621 	MOVQ SI,CX
    622 	SHRQ $51,CX
    623 	ADDQ R8,CX
    624 	MOVQ CX,R8
    625 	SHRQ $51,CX
    626 	ANDQ DX,SI
    627 	ADDQ R10,CX
    628 	MOVQ CX,R9
    629 	SHRQ $51,CX
    630 	ANDQ DX,R8
    631 	ADDQ R12,CX
    632 	MOVQ CX,AX
    633 	SHRQ $51,CX
    634 	ANDQ DX,R9
    635 	ADDQ R14,CX
    636 	MOVQ CX,R10
    637 	SHRQ $51,CX
    638 	ANDQ DX,AX
    639 	IMUL3Q $19,CX,CX
    640 	ADDQ CX,SI
    641 	ANDQ DX,R10
    642 	MOVQ SI,DX
    643 	MOVQ R8,CX
    644 	MOVQ R9,R11
    645 	MOVQ AX,R12
    646 	MOVQ R10,R13
    647 	ADDQ _2P0(SB),DX
    648 	ADDQ _2P1234(SB),CX
    649 	ADDQ _2P1234(SB),R11
    650 	ADDQ _2P1234(SB),R12
    651 	ADDQ _2P1234(SB),R13
    652 	ADDQ 96(SP),SI
    653 	ADDQ 104(SP),R8
    654 	ADDQ 112(SP),R9
    655 	ADDQ 120(SP),AX
    656 	ADDQ 128(SP),R10
    657 	SUBQ 96(SP),DX
    658 	SUBQ 104(SP),CX
    659 	SUBQ 112(SP),R11
    660 	SUBQ 120(SP),R12
    661 	SUBQ 128(SP),R13
    662 	MOVQ SI,120(DI)
    663 	MOVQ R8,128(DI)
    664 	MOVQ R9,136(DI)
    665 	MOVQ AX,144(DI)
    666 	MOVQ R10,152(DI)
    667 	MOVQ DX,160(DI)
    668 	MOVQ CX,168(DI)
    669 	MOVQ R11,176(DI)
    670 	MOVQ R12,184(DI)
    671 	MOVQ R13,192(DI)
    672 	MOVQ 120(DI),AX
    673 	MULQ 120(DI)
    674 	MOVQ AX,SI
    675 	MOVQ DX,CX
    676 	MOVQ 120(DI),AX
    677 	SHLQ $1,AX
    678 	MULQ 128(DI)
    679 	MOVQ AX,R8
    680 	MOVQ DX,R9
    681 	MOVQ 120(DI),AX
    682 	SHLQ $1,AX
    683 	MULQ 136(DI)
    684 	MOVQ AX,R10
    685 	MOVQ DX,R11
    686 	MOVQ 120(DI),AX
    687 	SHLQ $1,AX
    688 	MULQ 144(DI)
    689 	MOVQ AX,R12
    690 	MOVQ DX,R13
    691 	MOVQ 120(DI),AX
    692 	SHLQ $1,AX
    693 	MULQ 152(DI)
    694 	MOVQ AX,R14
    695 	MOVQ DX,R15
    696 	MOVQ 128(DI),AX
    697 	MULQ 128(DI)
    698 	ADDQ AX,R10
    699 	ADCQ DX,R11
    700 	MOVQ 128(DI),AX
    701 	SHLQ $1,AX
    702 	MULQ 136(DI)
    703 	ADDQ AX,R12
    704 	ADCQ DX,R13
    705 	MOVQ 128(DI),AX
    706 	SHLQ $1,AX
    707 	MULQ 144(DI)
    708 	ADDQ AX,R14
    709 	ADCQ DX,R15
    710 	MOVQ 128(DI),DX
    711 	IMUL3Q $38,DX,AX
    712 	MULQ 152(DI)
    713 	ADDQ AX,SI
    714 	ADCQ DX,CX
    715 	MOVQ 136(DI),AX
    716 	MULQ 136(DI)
    717 	ADDQ AX,R14
    718 	ADCQ DX,R15
    719 	MOVQ 136(DI),DX
    720 	IMUL3Q $38,DX,AX
    721 	MULQ 144(DI)
    722 	ADDQ AX,SI
    723 	ADCQ DX,CX
    724 	MOVQ 136(DI),DX
    725 	IMUL3Q $38,DX,AX
    726 	MULQ 152(DI)
    727 	ADDQ AX,R8
    728 	ADCQ DX,R9
    729 	MOVQ 144(DI),DX
    730 	IMUL3Q $19,DX,AX
    731 	MULQ 144(DI)
    732 	ADDQ AX,R8
    733 	ADCQ DX,R9
    734 	MOVQ 144(DI),DX
    735 	IMUL3Q $38,DX,AX
    736 	MULQ 152(DI)
    737 	ADDQ AX,R10
    738 	ADCQ DX,R11
    739 	MOVQ 152(DI),DX
    740 	IMUL3Q $19,DX,AX
    741 	MULQ 152(DI)
    742 	ADDQ AX,R12
    743 	ADCQ DX,R13
    744 	MOVQ REDMASK51(SB),DX
    745 	SHLQ $13,CX:SI
    746 	ANDQ DX,SI
    747 	SHLQ $13,R9:R8
    748 	ANDQ DX,R8
    749 	ADDQ CX,R8
    750 	SHLQ $13,R11:R10
    751 	ANDQ DX,R10
    752 	ADDQ R9,R10
    753 	SHLQ $13,R13:R12
    754 	ANDQ DX,R12
    755 	ADDQ R11,R12
    756 	SHLQ $13,R15:R14
    757 	ANDQ DX,R14
    758 	ADDQ R13,R14
    759 	IMUL3Q $19,R15,CX
    760 	ADDQ CX,SI
    761 	MOVQ SI,CX
    762 	SHRQ $51,CX
    763 	ADDQ R8,CX
    764 	ANDQ DX,SI
    765 	MOVQ CX,R8
    766 	SHRQ $51,CX
    767 	ADDQ R10,CX
    768 	ANDQ DX,R8
    769 	MOVQ CX,R9
    770 	SHRQ $51,CX
    771 	ADDQ R12,CX
    772 	ANDQ DX,R9
    773 	MOVQ CX,AX
    774 	SHRQ $51,CX
    775 	ADDQ R14,CX
    776 	ANDQ DX,AX
    777 	MOVQ CX,R10
    778 	SHRQ $51,CX
    779 	IMUL3Q $19,CX,CX
    780 	ADDQ CX,SI
    781 	ANDQ DX,R10
    782 	MOVQ SI,120(DI)
    783 	MOVQ R8,128(DI)
    784 	MOVQ R9,136(DI)
    785 	MOVQ AX,144(DI)
    786 	MOVQ R10,152(DI)
    787 	MOVQ 160(DI),AX
    788 	MULQ 160(DI)
    789 	MOVQ AX,SI
    790 	MOVQ DX,CX
    791 	MOVQ 160(DI),AX
    792 	SHLQ $1,AX
    793 	MULQ 168(DI)
    794 	MOVQ AX,R8
    795 	MOVQ DX,R9
    796 	MOVQ 160(DI),AX
    797 	SHLQ $1,AX
    798 	MULQ 176(DI)
    799 	MOVQ AX,R10
    800 	MOVQ DX,R11
    801 	MOVQ 160(DI),AX
    802 	SHLQ $1,AX
    803 	MULQ 184(DI)
    804 	MOVQ AX,R12
    805 	MOVQ DX,R13
    806 	MOVQ 160(DI),AX
    807 	SHLQ $1,AX
    808 	MULQ 192(DI)
    809 	MOVQ AX,R14
    810 	MOVQ DX,R15
    811 	MOVQ 168(DI),AX
    812 	MULQ 168(DI)
    813 	ADDQ AX,R10
    814 	ADCQ DX,R11
    815 	MOVQ 168(DI),AX
    816 	SHLQ $1,AX
    817 	MULQ 176(DI)
    818 	ADDQ AX,R12
    819 	ADCQ DX,R13
    820 	MOVQ 168(DI),AX
    821 	SHLQ $1,AX
    822 	MULQ 184(DI)
    823 	ADDQ AX,R14
    824 	ADCQ DX,R15
    825 	MOVQ 168(DI),DX
    826 	IMUL3Q $38,DX,AX
    827 	MULQ 192(DI)
    828 	ADDQ AX,SI
    829 	ADCQ DX,CX
    830 	MOVQ 176(DI),AX
    831 	MULQ 176(DI)
    832 	ADDQ AX,R14
    833 	ADCQ DX,R15
    834 	MOVQ 176(DI),DX
    835 	IMUL3Q $38,DX,AX
    836 	MULQ 184(DI)
    837 	ADDQ AX,SI
    838 	ADCQ DX,CX
    839 	MOVQ 176(DI),DX
    840 	IMUL3Q $38,DX,AX
    841 	MULQ 192(DI)
    842 	ADDQ AX,R8
    843 	ADCQ DX,R9
    844 	MOVQ 184(DI),DX
    845 	IMUL3Q $19,DX,AX
    846 	MULQ 184(DI)
    847 	ADDQ AX,R8
    848 	ADCQ DX,R9
    849 	MOVQ 184(DI),DX
    850 	IMUL3Q $38,DX,AX
    851 	MULQ 192(DI)
    852 	ADDQ AX,R10
    853 	ADCQ DX,R11
    854 	MOVQ 192(DI),DX
    855 	IMUL3Q $19,DX,AX
    856 	MULQ 192(DI)
    857 	ADDQ AX,R12
    858 	ADCQ DX,R13
    859 	MOVQ REDMASK51(SB),DX
    860 	SHLQ $13,CX:SI
    861 	ANDQ DX,SI
    862 	SHLQ $13,R9:R8
    863 	ANDQ DX,R8
    864 	ADDQ CX,R8
    865 	SHLQ $13,R11:R10
    866 	ANDQ DX,R10
    867 	ADDQ R9,R10
    868 	SHLQ $13,R13:R12
    869 	ANDQ DX,R12
    870 	ADDQ R11,R12
    871 	SHLQ $13,R15:R14
    872 	ANDQ DX,R14
    873 	ADDQ R13,R14
    874 	IMUL3Q $19,R15,CX
    875 	ADDQ CX,SI
    876 	MOVQ SI,CX
    877 	SHRQ $51,CX
    878 	ADDQ R8,CX
    879 	ANDQ DX,SI
    880 	MOVQ CX,R8
    881 	SHRQ $51,CX
    882 	ADDQ R10,CX
    883 	ANDQ DX,R8
    884 	MOVQ CX,R9
    885 	SHRQ $51,CX
    886 	ADDQ R12,CX
    887 	ANDQ DX,R9
    888 	MOVQ CX,AX
    889 	SHRQ $51,CX
    890 	ADDQ R14,CX
    891 	ANDQ DX,AX
    892 	MOVQ CX,R10
    893 	SHRQ $51,CX
    894 	IMUL3Q $19,CX,CX
    895 	ADDQ CX,SI
    896 	ANDQ DX,R10
    897 	MOVQ SI,160(DI)
    898 	MOVQ R8,168(DI)
    899 	MOVQ R9,176(DI)
    900 	MOVQ AX,184(DI)
    901 	MOVQ R10,192(DI)
    902 	MOVQ 184(DI),SI
    903 	IMUL3Q $19,SI,AX
    904 	MOVQ AX,56(SP)
    905 	MULQ 16(DI)
    906 	MOVQ AX,SI
    907 	MOVQ DX,CX
    908 	MOVQ 192(DI),DX
    909 	IMUL3Q $19,DX,AX
    910 	MOVQ AX,64(SP)
    911 	MULQ 8(DI)
    912 	ADDQ AX,SI
    913 	ADCQ DX,CX
    914 	MOVQ 160(DI),AX
    915 	MULQ 0(DI)
    916 	ADDQ AX,SI
    917 	ADCQ DX,CX
    918 	MOVQ 160(DI),AX
    919 	MULQ 8(DI)
    920 	MOVQ AX,R8
    921 	MOVQ DX,R9
    922 	MOVQ 160(DI),AX
    923 	MULQ 16(DI)
    924 	MOVQ AX,R10
    925 	MOVQ DX,R11
    926 	MOVQ 160(DI),AX
    927 	MULQ 24(DI)
    928 	MOVQ AX,R12
    929 	MOVQ DX,R13
    930 	MOVQ 160(DI),AX
    931 	MULQ 32(DI)
    932 	MOVQ AX,R14
    933 	MOVQ DX,R15
    934 	MOVQ 168(DI),AX
    935 	MULQ 0(DI)
    936 	ADDQ AX,R8
    937 	ADCQ DX,R9
    938 	MOVQ 168(DI),AX
    939 	MULQ 8(DI)
    940 	ADDQ AX,R10
    941 	ADCQ DX,R11
    942 	MOVQ 168(DI),AX
    943 	MULQ 16(DI)
    944 	ADDQ AX,R12
    945 	ADCQ DX,R13
    946 	MOVQ 168(DI),AX
    947 	MULQ 24(DI)
    948 	ADDQ AX,R14
    949 	ADCQ DX,R15
    950 	MOVQ 168(DI),DX
    951 	IMUL3Q $19,DX,AX
    952 	MULQ 32(DI)
    953 	ADDQ AX,SI
    954 	ADCQ DX,CX
    955 	MOVQ 176(DI),AX
    956 	MULQ 0(DI)
    957 	ADDQ AX,R10
    958 	ADCQ DX,R11
    959 	MOVQ 176(DI),AX
    960 	MULQ 8(DI)
    961 	ADDQ AX,R12
    962 	ADCQ DX,R13
    963 	MOVQ 176(DI),AX
    964 	MULQ 16(DI)
    965 	ADDQ AX,R14
    966 	ADCQ DX,R15
    967 	MOVQ 176(DI),DX
    968 	IMUL3Q $19,DX,AX
    969 	MULQ 24(DI)
    970 	ADDQ AX,SI
    971 	ADCQ DX,CX
    972 	MOVQ 176(DI),DX
    973 	IMUL3Q $19,DX,AX
    974 	MULQ 32(DI)
    975 	ADDQ AX,R8
    976 	ADCQ DX,R9
    977 	MOVQ 184(DI),AX
    978 	MULQ 0(DI)
    979 	ADDQ AX,R12
    980 	ADCQ DX,R13
    981 	MOVQ 184(DI),AX
    982 	MULQ 8(DI)
    983 	ADDQ AX,R14
    984 	ADCQ DX,R15
    985 	MOVQ 56(SP),AX
    986 	MULQ 24(DI)
    987 	ADDQ AX,R8
    988 	ADCQ DX,R9
    989 	MOVQ 56(SP),AX
    990 	MULQ 32(DI)
    991 	ADDQ AX,R10
    992 	ADCQ DX,R11
    993 	MOVQ 192(DI),AX
    994 	MULQ 0(DI)
    995 	ADDQ AX,R14
    996 	ADCQ DX,R15
    997 	MOVQ 64(SP),AX
    998 	MULQ 16(DI)
    999 	ADDQ AX,R8
   1000 	ADCQ DX,R9
   1001 	MOVQ 64(SP),AX
   1002 	MULQ 24(DI)
   1003 	ADDQ AX,R10
   1004 	ADCQ DX,R11
   1005 	MOVQ 64(SP),AX
   1006 	MULQ 32(DI)
   1007 	ADDQ AX,R12
   1008 	ADCQ DX,R13
   1009 	MOVQ REDMASK51(SB),DX
   1010 	SHLQ $13,CX:SI
   1011 	ANDQ DX,SI
   1012 	SHLQ $13,R9:R8
   1013 	ANDQ DX,R8
   1014 	ADDQ CX,R8
   1015 	SHLQ $13,R11:R10
   1016 	ANDQ DX,R10
   1017 	ADDQ R9,R10
   1018 	SHLQ $13,R13:R12
   1019 	ANDQ DX,R12
   1020 	ADDQ R11,R12
   1021 	SHLQ $13,R15:R14
   1022 	ANDQ DX,R14
   1023 	ADDQ R13,R14
   1024 	IMUL3Q $19,R15,CX
   1025 	ADDQ CX,SI
   1026 	MOVQ SI,CX
   1027 	SHRQ $51,CX
   1028 	ADDQ R8,CX
   1029 	MOVQ CX,R8
   1030 	SHRQ $51,CX
   1031 	ANDQ DX,SI
   1032 	ADDQ R10,CX
   1033 	MOVQ CX,R9
   1034 	SHRQ $51,CX
   1035 	ANDQ DX,R8
   1036 	ADDQ R12,CX
   1037 	MOVQ CX,AX
   1038 	SHRQ $51,CX
   1039 	ANDQ DX,R9
   1040 	ADDQ R14,CX
   1041 	MOVQ CX,R10
   1042 	SHRQ $51,CX
   1043 	ANDQ DX,AX
   1044 	IMUL3Q $19,CX,CX
   1045 	ADDQ CX,SI
   1046 	ANDQ DX,R10
   1047 	MOVQ SI,160(DI)
   1048 	MOVQ R8,168(DI)
   1049 	MOVQ R9,176(DI)
   1050 	MOVQ AX,184(DI)
   1051 	MOVQ R10,192(DI)
   1052 	MOVQ 200(SP),SI
   1053 	IMUL3Q $19,SI,AX
   1054 	MOVQ AX,56(SP)
   1055 	MULQ 152(SP)
   1056 	MOVQ AX,SI
   1057 	MOVQ DX,CX
   1058 	MOVQ 208(SP),DX
   1059 	IMUL3Q $19,DX,AX
   1060 	MOVQ AX,64(SP)
   1061 	MULQ 144(SP)
   1062 	ADDQ AX,SI
   1063 	ADCQ DX,CX
   1064 	MOVQ 176(SP),AX
   1065 	MULQ 136(SP)
   1066 	ADDQ AX,SI
   1067 	ADCQ DX,CX
   1068 	MOVQ 176(SP),AX
   1069 	MULQ 144(SP)
   1070 	MOVQ AX,R8
   1071 	MOVQ DX,R9
   1072 	MOVQ 176(SP),AX
   1073 	MULQ 152(SP)
   1074 	MOVQ AX,R10
   1075 	MOVQ DX,R11
   1076 	MOVQ 176(SP),AX
   1077 	MULQ 160(SP)
   1078 	MOVQ AX,R12
   1079 	MOVQ DX,R13
   1080 	MOVQ 176(SP),AX
   1081 	MULQ 168(SP)
   1082 	MOVQ AX,R14
   1083 	MOVQ DX,R15
   1084 	MOVQ 184(SP),AX
   1085 	MULQ 136(SP)
   1086 	ADDQ AX,R8
   1087 	ADCQ DX,R9
   1088 	MOVQ 184(SP),AX
   1089 	MULQ 144(SP)
   1090 	ADDQ AX,R10
   1091 	ADCQ DX,R11
   1092 	MOVQ 184(SP),AX
   1093 	MULQ 152(SP)
   1094 	ADDQ AX,R12
   1095 	ADCQ DX,R13
   1096 	MOVQ 184(SP),AX
   1097 	MULQ 160(SP)
   1098 	ADDQ AX,R14
   1099 	ADCQ DX,R15
   1100 	MOVQ 184(SP),DX
   1101 	IMUL3Q $19,DX,AX
   1102 	MULQ 168(SP)
   1103 	ADDQ AX,SI
   1104 	ADCQ DX,CX
   1105 	MOVQ 192(SP),AX
   1106 	MULQ 136(SP)
   1107 	ADDQ AX,R10
   1108 	ADCQ DX,R11
   1109 	MOVQ 192(SP),AX
   1110 	MULQ 144(SP)
   1111 	ADDQ AX,R12
   1112 	ADCQ DX,R13
   1113 	MOVQ 192(SP),AX
   1114 	MULQ 152(SP)
   1115 	ADDQ AX,R14
   1116 	ADCQ DX,R15
   1117 	MOVQ 192(SP),DX
   1118 	IMUL3Q $19,DX,AX
   1119 	MULQ 160(SP)
   1120 	ADDQ AX,SI
   1121 	ADCQ DX,CX
   1122 	MOVQ 192(SP),DX
   1123 	IMUL3Q $19,DX,AX
   1124 	MULQ 168(SP)
   1125 	ADDQ AX,R8
   1126 	ADCQ DX,R9
   1127 	MOVQ 200(SP),AX
   1128 	MULQ 136(SP)
   1129 	ADDQ AX,R12
   1130 	ADCQ DX,R13
   1131 	MOVQ 200(SP),AX
   1132 	MULQ 144(SP)
   1133 	ADDQ AX,R14
   1134 	ADCQ DX,R15
   1135 	MOVQ 56(SP),AX
   1136 	MULQ 160(SP)
   1137 	ADDQ AX,R8
   1138 	ADCQ DX,R9
   1139 	MOVQ 56(SP),AX
   1140 	MULQ 168(SP)
   1141 	ADDQ AX,R10
   1142 	ADCQ DX,R11
   1143 	MOVQ 208(SP),AX
   1144 	MULQ 136(SP)
   1145 	ADDQ AX,R14
   1146 	ADCQ DX,R15
   1147 	MOVQ 64(SP),AX
   1148 	MULQ 152(SP)
   1149 	ADDQ AX,R8
   1150 	ADCQ DX,R9
   1151 	MOVQ 64(SP),AX
   1152 	MULQ 160(SP)
   1153 	ADDQ AX,R10
   1154 	ADCQ DX,R11
   1155 	MOVQ 64(SP),AX
   1156 	MULQ 168(SP)
   1157 	ADDQ AX,R12
   1158 	ADCQ DX,R13
   1159 	MOVQ REDMASK51(SB),DX
   1160 	SHLQ $13,CX:SI
   1161 	ANDQ DX,SI
   1162 	SHLQ $13,R9:R8
   1163 	ANDQ DX,R8
   1164 	ADDQ CX,R8
   1165 	SHLQ $13,R11:R10
   1166 	ANDQ DX,R10
   1167 	ADDQ R9,R10
   1168 	SHLQ $13,R13:R12
   1169 	ANDQ DX,R12
   1170 	ADDQ R11,R12
   1171 	SHLQ $13,R15:R14
   1172 	ANDQ DX,R14
   1173 	ADDQ R13,R14
   1174 	IMUL3Q $19,R15,CX
   1175 	ADDQ CX,SI
   1176 	MOVQ SI,CX
   1177 	SHRQ $51,CX
   1178 	ADDQ R8,CX
   1179 	MOVQ CX,R8
   1180 	SHRQ $51,CX
   1181 	ANDQ DX,SI
   1182 	ADDQ R10,CX
   1183 	MOVQ CX,R9
   1184 	SHRQ $51,CX
   1185 	ANDQ DX,R8
   1186 	ADDQ R12,CX
   1187 	MOVQ CX,AX
   1188 	SHRQ $51,CX
   1189 	ANDQ DX,R9
   1190 	ADDQ R14,CX
   1191 	MOVQ CX,R10
   1192 	SHRQ $51,CX
   1193 	ANDQ DX,AX
   1194 	IMUL3Q $19,CX,CX
   1195 	ADDQ CX,SI
   1196 	ANDQ DX,R10
   1197 	MOVQ SI,40(DI)
   1198 	MOVQ R8,48(DI)
   1199 	MOVQ R9,56(DI)
   1200 	MOVQ AX,64(DI)
   1201 	MOVQ R10,72(DI)
   1202 	MOVQ 216(SP),AX
   1203 	MULQ _121666_213(SB)
   1204 	SHRQ $13,AX
   1205 	MOVQ AX,SI
   1206 	MOVQ DX,CX
   1207 	MOVQ 224(SP),AX
   1208 	MULQ _121666_213(SB)
   1209 	SHRQ $13,AX
   1210 	ADDQ AX,CX
   1211 	MOVQ DX,R8
   1212 	MOVQ 232(SP),AX
   1213 	MULQ _121666_213(SB)
   1214 	SHRQ $13,AX
   1215 	ADDQ AX,R8
   1216 	MOVQ DX,R9
   1217 	MOVQ 240(SP),AX
   1218 	MULQ _121666_213(SB)
   1219 	SHRQ $13,AX
   1220 	ADDQ AX,R9
   1221 	MOVQ DX,R10
   1222 	MOVQ 248(SP),AX
   1223 	MULQ _121666_213(SB)
   1224 	SHRQ $13,AX
   1225 	ADDQ AX,R10
   1226 	IMUL3Q $19,DX,DX
   1227 	ADDQ DX,SI
   1228 	ADDQ 136(SP),SI
   1229 	ADDQ 144(SP),CX
   1230 	ADDQ 152(SP),R8
   1231 	ADDQ 160(SP),R9
   1232 	ADDQ 168(SP),R10
   1233 	MOVQ SI,80(DI)
   1234 	MOVQ CX,88(DI)
   1235 	MOVQ R8,96(DI)
   1236 	MOVQ R9,104(DI)
   1237 	MOVQ R10,112(DI)
   1238 	MOVQ 104(DI),SI
   1239 	IMUL3Q $19,SI,AX
   1240 	MOVQ AX,56(SP)
   1241 	MULQ 232(SP)
   1242 	MOVQ AX,SI
   1243 	MOVQ DX,CX
   1244 	MOVQ 112(DI),DX
   1245 	IMUL3Q $19,DX,AX
   1246 	MOVQ AX,64(SP)
   1247 	MULQ 224(SP)
   1248 	ADDQ AX,SI
   1249 	ADCQ DX,CX
   1250 	MOVQ 80(DI),AX
   1251 	MULQ 216(SP)
   1252 	ADDQ AX,SI
   1253 	ADCQ DX,CX
   1254 	MOVQ 80(DI),AX
   1255 	MULQ 224(SP)
   1256 	MOVQ AX,R8
   1257 	MOVQ DX,R9
   1258 	MOVQ 80(DI),AX
   1259 	MULQ 232(SP)
   1260 	MOVQ AX,R10
   1261 	MOVQ DX,R11
   1262 	MOVQ 80(DI),AX
   1263 	MULQ 240(SP)
   1264 	MOVQ AX,R12
   1265 	MOVQ DX,R13
   1266 	MOVQ 80(DI),AX
   1267 	MULQ 248(SP)
   1268 	MOVQ AX,R14
   1269 	MOVQ DX,R15
   1270 	MOVQ 88(DI),AX
   1271 	MULQ 216(SP)
   1272 	ADDQ AX,R8
   1273 	ADCQ DX,R9
   1274 	MOVQ 88(DI),AX
   1275 	MULQ 224(SP)
   1276 	ADDQ AX,R10
   1277 	ADCQ DX,R11
   1278 	MOVQ 88(DI),AX
   1279 	MULQ 232(SP)
   1280 	ADDQ AX,R12
   1281 	ADCQ DX,R13
   1282 	MOVQ 88(DI),AX
   1283 	MULQ 240(SP)
   1284 	ADDQ AX,R14
   1285 	ADCQ DX,R15
   1286 	MOVQ 88(DI),DX
   1287 	IMUL3Q $19,DX,AX
   1288 	MULQ 248(SP)
   1289 	ADDQ AX,SI
   1290 	ADCQ DX,CX
   1291 	MOVQ 96(DI),AX
   1292 	MULQ 216(SP)
   1293 	ADDQ AX,R10
   1294 	ADCQ DX,R11
   1295 	MOVQ 96(DI),AX
   1296 	MULQ 224(SP)
   1297 	ADDQ AX,R12
   1298 	ADCQ DX,R13
   1299 	MOVQ 96(DI),AX
   1300 	MULQ 232(SP)
   1301 	ADDQ AX,R14
   1302 	ADCQ DX,R15
   1303 	MOVQ 96(DI),DX
   1304 	IMUL3Q $19,DX,AX
   1305 	MULQ 240(SP)
   1306 	ADDQ AX,SI
   1307 	ADCQ DX,CX
   1308 	MOVQ 96(DI),DX
   1309 	IMUL3Q $19,DX,AX
   1310 	MULQ 248(SP)
   1311 	ADDQ AX,R8
   1312 	ADCQ DX,R9
   1313 	MOVQ 104(DI),AX
   1314 	MULQ 216(SP)
   1315 	ADDQ AX,R12
   1316 	ADCQ DX,R13
   1317 	MOVQ 104(DI),AX
   1318 	MULQ 224(SP)
   1319 	ADDQ AX,R14
   1320 	ADCQ DX,R15
   1321 	MOVQ 56(SP),AX
   1322 	MULQ 240(SP)
   1323 	ADDQ AX,R8
   1324 	ADCQ DX,R9
   1325 	MOVQ 56(SP),AX
   1326 	MULQ 248(SP)
   1327 	ADDQ AX,R10
   1328 	ADCQ DX,R11
   1329 	MOVQ 112(DI),AX
   1330 	MULQ 216(SP)
   1331 	ADDQ AX,R14
   1332 	ADCQ DX,R15
   1333 	MOVQ 64(SP),AX
   1334 	MULQ 232(SP)
   1335 	ADDQ AX,R8
   1336 	ADCQ DX,R9
   1337 	MOVQ 64(SP),AX
   1338 	MULQ 240(SP)
   1339 	ADDQ AX,R10
   1340 	ADCQ DX,R11
   1341 	MOVQ 64(SP),AX
   1342 	MULQ 248(SP)
   1343 	ADDQ AX,R12
   1344 	ADCQ DX,R13
   1345 	MOVQ REDMASK51(SB),DX
   1346 	SHLQ $13,CX:SI
   1347 	ANDQ DX,SI
   1348 	SHLQ $13,R9:R8
   1349 	ANDQ DX,R8
   1350 	ADDQ CX,R8
   1351 	SHLQ $13,R11:R10
   1352 	ANDQ DX,R10
   1353 	ADDQ R9,R10
   1354 	SHLQ $13,R13:R12
   1355 	ANDQ DX,R12
   1356 	ADDQ R11,R12
   1357 	SHLQ $13,R15:R14
   1358 	ANDQ DX,R14
   1359 	ADDQ R13,R14
   1360 	IMUL3Q $19,R15,CX
   1361 	ADDQ CX,SI
   1362 	MOVQ SI,CX
   1363 	SHRQ $51,CX
   1364 	ADDQ R8,CX
   1365 	MOVQ CX,R8
   1366 	SHRQ $51,CX
   1367 	ANDQ DX,SI
   1368 	ADDQ R10,CX
   1369 	MOVQ CX,R9
   1370 	SHRQ $51,CX
   1371 	ANDQ DX,R8
   1372 	ADDQ R12,CX
   1373 	MOVQ CX,AX
   1374 	SHRQ $51,CX
   1375 	ANDQ DX,R9
   1376 	ADDQ R14,CX
   1377 	MOVQ CX,R10
   1378 	SHRQ $51,CX
   1379 	ANDQ DX,AX
   1380 	IMUL3Q $19,CX,CX
   1381 	ADDQ CX,SI
   1382 	ANDQ DX,R10
   1383 	MOVQ SI,80(DI)
   1384 	MOVQ R8,88(DI)
   1385 	MOVQ R9,96(DI)
   1386 	MOVQ AX,104(DI)
   1387 	MOVQ R10,112(DI)
   1388 	MOVQ 0(SP),R11
   1389 	MOVQ 8(SP),R12
   1390 	MOVQ 16(SP),R13
   1391 	MOVQ 24(SP),R14
   1392 	MOVQ 32(SP),R15
   1393 	MOVQ 40(SP),BX
   1394 	MOVQ 48(SP),BP
   1395 	MOVQ R11,SP
   1396 	MOVQ DI,AX
   1397 	MOVQ SI,DX
   1398 	RET
   1399