github.com/icodeface/tls@v0.0.0-20230910023335-34df9250cd12/internal/x/crypto/curve25519/ladderstep_amd64.s (about)

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