37         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
   38         MMI_LDC1(%[ftmp1], %[
src], 0x00)
 
   39         MMI_LDC1(%[ftmp2], %[
src], 0x08)
 
   40         MMI_LDC1(%[ftmp3], %[
src], 0x10)
 
   41         MMI_LDC1(%[ftmp4], %[
src], 0x18)
 
   43         MMI_SQC1(%[ftmp0], %[ftmp0], %[
src], 0x00)
 
   44         MMI_SQC1(%[ftmp0], %[ftmp0], %[
src], 0x10)
 
   45         MMI_ULWC1(%[ftmp5], %[dst0], 0x00)
 
   46         MMI_ULWC1(%[ftmp6], %[dst1], 0x00)
 
   47         MMI_ULWC1(%[ftmp7], %[dst2], 0x00)
 
   48         MMI_ULWC1(%[ftmp8], %[dst3], 0x00)
 
   49         "punpcklbh  %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
   50         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
   51         "punpcklbh  %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
   52         "punpcklbh  %[ftmp8],   %[ftmp8],       %[ftmp0]                \n\t" 
   53         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
   54         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
   55         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
   56         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
   57         "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
   58         "packushb   %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
   59         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
   60         "packushb   %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
   61         MMI_SWC1(%[ftmp1], %[dst0], 0x00)
 
   62         MMI_SWC1(%[ftmp2], %[dst1], 0x00)
 
   63         MMI_SWC1(%[ftmp3], %[dst2], 0x00)
 
   64         MMI_SWC1(%[ftmp4], %[dst3], 0x00)
 
   65         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
   66           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
   67           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
   68           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
   87         MMI_LDC1(%[ftmp0], %[
block], 0x00)
 
   88         MMI_LDC1(%[ftmp1], %[
block], 0x08)
 
   89         MMI_LDC1(%[ftmp2], %[
block], 0x10)
 
   90         MMI_LDC1(%[ftmp3], %[
block], 0x18)
 
   92         "pxor       %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
   93         MMI_SQC1(%[ftmp4], %[ftmp4], %[
block], 0x00)
 
   94         MMI_SQC1(%[ftmp4], %[ftmp4], %[
block], 0x10)
 
   95         "dli        %[tmp0],    0x01                                    \n\t" 
   96         "mtc1       %[tmp0],    %[ftmp8]                                \n\t" 
   97         "dli        %[tmp0],    0x06                                    \n\t" 
   98         "mtc1       %[tmp0],    %[ftmp9]                                \n\t" 
   99         "psrah      %[ftmp4],   %[ftmp1],       %[ftmp8]                \n\t" 
  100         "psrah      %[ftmp5],   %[ftmp3],       %[ftmp8]                \n\t" 
  101         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp3]                \n\t" 
  102         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp1]                \n\t" 
  103         "paddh      %[ftmp10],  %[ftmp2],       %[ftmp0]                \n\t" 
  104         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  105         "paddh      %[ftmp11],  %[ftmp5],       %[ftmp10]               \n\t" 
  106         "psubh      %[ftmp2],   %[ftmp10],      %[ftmp5]                \n\t" 
  107         "paddh      %[ftmp10],  %[ftmp4],       %[ftmp0]                \n\t" 
  108         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  109         "punpckhhw  %[ftmp1],   %[ftmp11],      %[ftmp10]               \n\t" 
  110         "punpcklhw  %[ftmp5],   %[ftmp11],      %[ftmp10]               \n\t" 
  111         "punpckhhw  %[ftmp4],   %[ftmp0],       %[ftmp2]                \n\t" 
  112         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  113         "punpckhwd  %[ftmp2],   %[ftmp5],       %[ftmp0]                \n\t" 
  114         "punpcklwd  %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
  115         "punpcklwd  %[ftmp10],  %[ftmp1],       %[ftmp4]                \n\t" 
  116         "punpckhwd  %[ftmp0],   %[ftmp1],       %[ftmp4]                \n\t" 
  117         "paddh      %[ftmp5],   %[ftmp5],       %[ff_pw_32]             \n\t" 
  118         "psrah      %[ftmp4],   %[ftmp2],       %[ftmp8]                \n\t" 
  119         "psrah      %[ftmp3],   %[ftmp0],       %[ftmp8]                \n\t" 
  120         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  121         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  122         "paddh      %[ftmp1],   %[ftmp10],      %[ftmp5]                \n\t" 
  123         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp10]               \n\t" 
  124         "paddh      %[ftmp10],  %[ftmp3],       %[ftmp1]                \n\t" 
  125         "psubh      %[ftmp1],   %[ftmp1],       %[ftmp3]                \n\t" 
  126         "paddh      %[ftmp11],  %[ftmp4],       %[ftmp5]                \n\t" 
  127         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp4]                \n\t" 
  128         MMI_ULWC1(%[ftmp2], %[
dst], 0x00)
 
  129         MMI_LWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  130         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
  131         "psrah      %[ftmp3],   %[ftmp10],      %[ftmp9]                \n\t" 
  132         "psrah      %[ftmp4],   %[ftmp11],      %[ftmp9]                \n\t" 
  133         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  134         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  135         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
  136         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  137         "packushb   %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  138         "packushb   %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  139         MMI_SWC1(%[ftmp2], %[
dst], 0x00)
 
  140         MMI_SWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  141         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  142         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  143         MMI_ULWC1(%[ftmp2], %[
dst], 0x00)
 
  144         "psrah      %[ftmp5],   %[ftmp5],       %[ftmp9]                \n\t" 
  145         MMI_LWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  146         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp9]                \n\t" 
  147         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  148         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  149         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
  150         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
  151         "packushb   %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  152         MMI_SWC1(%[ftmp2], %[
dst], 0x00)
 
  153         "packushb   %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  154         MMI_SWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  155         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
  156           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
  157           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
  158           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
  159           [ftmp8]
"=&f"(ftmp[8]),            [ftmp9]
"=&f"(ftmp[9]),
 
  160           [ftmp10]
"=&f"(ftmp[10]),          [ftmp11]
"=&f"(ftmp[11]),
 
  180         "lhu        %[tmp0],    0x00(%[block])                          \n\t" 
  183         MMI_LDC1(%[ftmp1], %[
block], 0x10)
 
  184         "sh         %[tmp0],    0x00(%[block])                          \n\t" 
  185         MMI_LDC1(%[ftmp2], %[
block], 0x20)
 
  186         "dli        %[tmp0],    0x01                                    \n\t" 
  187         MMI_LDC1(%[ftmp3], %[
block], 0x30)
 
  188         "mtc1       %[tmp0],    %[ftmp8]                                \n\t" 
  189         MMI_LDC1(%[ftmp5], %[
block], 0x50)
 
  190         MMI_LDC1(%[ftmp6], %[
block], 0x60)
 
  191         MMI_LDC1(%[ftmp7], %[
block], 0x70)
 
  192         "mov.d      %[ftmp0],   %[ftmp1]                                \n\t" 
  193         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp8]                \n\t" 
  194         "psrah      %[ftmp4],   %[ftmp5],       %[ftmp8]                \n\t" 
  195         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  196         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
  197         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
  198         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp7]                \n\t" 
  199         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp3]                \n\t" 
  200         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  201         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp3]                \n\t" 
  202         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp3]                \n\t" 
  203         "psrah      %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
  204         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  205         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  206         "psrah      %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
  207         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp3]                \n\t" 
  208         "dli        %[tmp0],    0x02                                    \n\t" 
  209         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  210         "mtc1       %[tmp0],    %[ftmp9]                                \n\t" 
  211         "mov.d      %[ftmp7],   %[ftmp1]                                \n\t" 
  212         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp9]                \n\t" 
  213         "psrah      %[ftmp3],   %[ftmp4],       %[ftmp9]                \n\t" 
  214         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  215         "psrah      %[ftmp0],   %[ftmp0],       %[ftmp9]                \n\t" 
  216         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
  217         "psrah      %[ftmp5],   %[ftmp5],       %[ftmp9]                \n\t" 
  218         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  219         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  220         "mov.d      %[ftmp5],   %[ftmp6]                                \n\t" 
  221         "psrah      %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
  222         "psrah      %[ftmp4],   %[ftmp2],       %[ftmp8]                \n\t" 
  223         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp2]                \n\t" 
  224         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
  225         MMI_LDC1(%[ftmp2], %[
block], 0x00)
 
  226         MMI_LDC1(%[ftmp5], %[
block], 0x40)
 
  227         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp2]                \n\t" 
  228         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp2]                \n\t" 
  229         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
  230         "psubh      %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
  231         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
  232         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp2]                \n\t" 
  233         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
  234         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp2]                \n\t" 
  235         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
  236         "psubh      %[ftmp2],   %[ftmp2],       %[ftmp4]                \n\t" 
  237         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
  238         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  239         "psubh      %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
  240         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
  241         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  242         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  243         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp2]                \n\t" 
  244         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
  245         "psubh      %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
  246         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
  247         MMI_SDC1(%[ftmp6], %[
block], 0x00)
 
  248         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp1]                \n\t" 
  249         "punpckhhw  %[ftmp6],   %[ftmp7],       %[ftmp0]                \n\t" 
  250         "punpcklhw  %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  251         "punpckhhw  %[ftmp0],   %[ftmp3],       %[ftmp1]                \n\t" 
  252         "punpcklhw  %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
  253         "punpckhwd  %[ftmp1],   %[ftmp7],       %[ftmp3]                \n\t" 
  254         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp3]                \n\t" 
  255         "punpckhwd  %[ftmp3],   %[ftmp6],       %[ftmp0]                \n\t" 
  256         "punpcklwd  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  257         MMI_LDC1(%[ftmp0], %[
block], 0x00)
 
  258         MMI_SDC1(%[ftmp7], $sp, 0x00)
 
  259         MMI_SDC1(%[ftmp1], $sp, 0x10)
 
  260         "dmfc1      %[tmp1],    %[ftmp6]                                \n\t" 
  261         "dmfc1      %[tmp3],    %[ftmp3]                                \n\t" 
  262         "punpckhhw  %[ftmp3],   %[ftmp5],       %[ftmp2]                \n\t" 
  263         "punpcklhw  %[ftmp5],   %[ftmp5],       %[ftmp2]                \n\t" 
  264         "punpckhhw  %[ftmp2],   %[ftmp4],       %[ftmp0]                \n\t" 
  265         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  266         "punpckhwd  %[ftmp0],   %[ftmp5],       %[ftmp4]                \n\t" 
  267         "punpcklwd  %[ftmp5],   %[ftmp5],       %[ftmp4]                \n\t" 
  268         "punpckhwd  %[ftmp4],   %[ftmp3],       %[ftmp2]                \n\t" 
  269         "punpcklwd  %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  270         MMI_SDC1(%[ftmp5], $sp, 0x08)
 
  271         MMI_SDC1(%[ftmp0], $sp, 0x18)
 
  272         "dmfc1      %[tmp2],    %[ftmp3]                                \n\t" 
  273         "dmfc1      %[tmp4],    %[ftmp4]                                \n\t" 
  274         MMI_LDC1(%[ftmp1], %[
block], 0x18)
 
  275         MMI_LDC1(%[ftmp6], %[
block], 0x28)
 
  276         MMI_LDC1(%[ftmp2], %[
block], 0x38)
 
  277         MMI_LDC1(%[ftmp0], %[
block], 0x58)
 
  278         MMI_LDC1(%[ftmp3], %[
block], 0x68)
 
  279         MMI_LDC1(%[ftmp4], %[
block], 0x78)
 
  280         "mov.d      %[ftmp7],   %[ftmp1]                                \n\t" 
  281         "psrah      %[ftmp5],   %[ftmp0],       %[ftmp8]                \n\t" 
  282         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp8]                \n\t" 
  283         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
  284         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
  285         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp4]                \n\t" 
  286         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  287         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  288         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp2]                \n\t" 
  289         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
  290         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  291         "psrah      %[ftmp2],   %[ftmp2],       %[ftmp8]                \n\t" 
  292         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
  293         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  294         "psrah      %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
  295         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
  296         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  297         "mov.d      %[ftmp4],   %[ftmp1]                                \n\t" 
  298         "psrah      %[ftmp2],   %[ftmp5],       %[ftmp9]                \n\t" 
  299         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp9]                \n\t" 
  300         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  301         "psrah      %[ftmp7],   %[ftmp7],       %[ftmp9]                \n\t" 
  302         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  303         "psrah      %[ftmp0],   %[ftmp0],       %[ftmp9]                \n\t" 
  304         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  305         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  306         "mov.d      %[ftmp0],   %[ftmp3]                                \n\t" 
  307         "psrah      %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
  308         "psrah      %[ftmp5],   %[ftmp6],       %[ftmp8]                \n\t" 
  309         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp6]                \n\t" 
  310         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
  311         MMI_LDC1(%[ftmp6], %[
block], 0x08)
 
  312         MMI_LDC1(%[ftmp0], %[
block], 0x48)
 
  313         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp6]                \n\t" 
  314         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
  315         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  316         "psubh      %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  317         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
  318         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
  319         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp3]                \n\t" 
  320         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
  321         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp3]                \n\t" 
  322         "psubh      %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
  323         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
  324         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  325         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
  326         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
  327         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
  328         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  329         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
  330         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  331         "psubh      %[ftmp6],   %[ftmp6],       %[ftmp2]                \n\t" 
  332         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
  333         MMI_SDC1(%[ftmp3], %[
block], 0x08)
 
  334         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
  335         "punpckhhw  %[ftmp3],   %[ftmp4],       %[ftmp7]                \n\t" 
  336         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp7]                \n\t" 
  337         "punpckhhw  %[ftmp7],   %[ftmp2],       %[ftmp1]                \n\t" 
  338         "punpcklhw  %[ftmp2],   %[ftmp2],       %[ftmp1]                \n\t" 
  339         "punpckhwd  %[ftmp1],   %[ftmp4],       %[ftmp2]                \n\t" 
  340         "punpcklwd  %[ftmp4],   %[ftmp4],       %[ftmp2]                \n\t" 
  341         "punpckhwd  %[ftmp2],   %[ftmp3],       %[ftmp7]                \n\t" 
  342         "punpcklwd  %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
  343         MMI_LDC1(%[ftmp7], %[
block], 0x08)
 
  344         "dmfc1      %[tmp5],    %[ftmp4]                                \n\t" 
  345         "mov.d      %[ftmp10],  %[ftmp1]                                \n\t" 
  346         "mov.d      %[ftmp12],  %[ftmp3]                                \n\t" 
  347         "mov.d      %[ftmp14],  %[ftmp2]                                \n\t" 
  348         "punpckhhw  %[ftmp2],   %[ftmp0],       %[ftmp6]                \n\t" 
  349         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp6]                \n\t" 
  350         "punpckhhw  %[ftmp6],   %[ftmp5],       %[ftmp7]                \n\t" 
  351         "punpcklhw  %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  352         "punpckhwd  %[ftmp7],   %[ftmp0],       %[ftmp5]                \n\t" 
  353         "punpcklwd  %[ftmp0],   %[ftmp0],       %[ftmp5]                \n\t" 
  354         "punpckhwd  %[ftmp5],   %[ftmp2],       %[ftmp6]                \n\t" 
  355         "punpcklwd  %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
  356         "dmfc1      %[tmp6],    %[ftmp0]                                \n\t" 
  357         "mov.d      %[ftmp11],  %[ftmp7]                                \n\t" 
  358         "mov.d      %[ftmp13],  %[ftmp2]                                \n\t" 
  359         "mov.d      %[ftmp15],  %[ftmp5]                                \n\t" 
  361         "mov.d      %[ftmp7],   %[ftmp10]                               \n\t" 
  362         "dmtc1      %[tmp3],    %[ftmp6]                                \n\t" 
  363         MMI_LDC1(%[ftmp1], $sp, 0x10)
 
  364         "dmtc1      %[tmp1],    %[ftmp3]                                \n\t" 
  365         "mov.d      %[ftmp4],   %[ftmp1]                                \n\t" 
  366         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp8]                \n\t" 
  367         "psrah      %[ftmp0],   %[ftmp7],       %[ftmp8]                \n\t" 
  368         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp4]                \n\t" 
  369         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  370         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
  371         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp14]               \n\t" 
  372         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp6]                \n\t" 
  373         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  374         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
  375         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
  376         "psrah      %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
  377         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp14]               \n\t" 
  378         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp14]               \n\t" 
  379         "psrah      %[ftmp5],   %[ftmp14],      %[ftmp8]                \n\t" 
  380         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
  381         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  382         "mov.d      %[ftmp5],   %[ftmp1]                                \n\t" 
  383         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp9]                \n\t" 
  384         "psrah      %[ftmp6],   %[ftmp0],       %[ftmp9]                \n\t" 
  385         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
  386         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp4]                \n\t" 
  387         "psrah      %[ftmp4],   %[ftmp4],       %[ftmp9]                \n\t" 
  388         "psrah      %[ftmp7],   %[ftmp7],       %[ftmp9]                \n\t" 
  389         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  390         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  391         "mov.d      %[ftmp7],   %[ftmp12]                               \n\t" 
  392         "psrah      %[ftmp2],   %[ftmp12],      %[ftmp8]                \n\t" 
  393         "psrah      %[ftmp0],   %[ftmp3],       %[ftmp8]                \n\t" 
  394         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
  395         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  396         MMI_LDC1(%[ftmp3], $sp, 0x00)
 
  397         "dmtc1      %[tmp5],    %[ftmp7]                                \n\t" 
  398         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp3]                \n\t" 
  399         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
  400         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  401         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
  402         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
  403         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp3]                \n\t" 
  404         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
  405         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
  406         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp2]                \n\t" 
  407         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  408         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp2]                \n\t" 
  409         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  410         "psubh      %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
  411         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
  412         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
  413         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  414         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
  415         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
  416         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp6]                \n\t" 
  417         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
  418         MMI_SDC1(%[ftmp3], $sp, 0x00)
 
  419         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
  420         MMI_SDC1(%[ftmp0], $sp, 0x10)
 
  421         "dmfc1      %[tmp1],    %[ftmp2]                                \n\t" 
  422         "pxor       %[ftmp2],   %[ftmp2],       %[ftmp2]                \n\t" 
  423         MMI_SDC1(%[ftmp2], %[
block], 0x00)
 
  424         MMI_SDC1(%[ftmp2], %[
block], 0x08)
 
  425         MMI_SDC1(%[ftmp2], %[
block], 0x10)
 
  426         MMI_SDC1(%[ftmp2], %[
block], 0x18)
 
  427         MMI_SDC1(%[ftmp2], %[
block], 0x20)
 
  428         MMI_SDC1(%[ftmp2], %[
block], 0x28)
 
  429         MMI_SDC1(%[ftmp2], %[
block], 0x30)
 
  430         MMI_SDC1(%[ftmp2], %[
block], 0x38)
 
  431         MMI_SDC1(%[ftmp2], %[
block], 0x40)
 
  432         MMI_SDC1(%[ftmp2], %[
block], 0x48)
 
  433         MMI_SDC1(%[ftmp2], %[
block], 0x50)
 
  434         MMI_SDC1(%[ftmp2], %[
block], 0x58)
 
  435         MMI_SDC1(%[ftmp2], %[
block], 0x60)
 
  436         MMI_SDC1(%[ftmp2], %[
block], 0x68)
 
  437         MMI_SDC1(%[ftmp2], %[
block], 0x70)
 
  438         MMI_SDC1(%[ftmp2], %[
block], 0x78)
 
  439         "dli        %[tmp3],    0x06                                    \n\t" 
  440         "mtc1       %[tmp3],    %[ftmp10]                               \n\t" 
  441         MMI_ULWC1(%[ftmp3], %[
dst], 0x00)
 
  442         MMI_LWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  443         "psrah      %[ftmp5],   %[ftmp5],       %[ftmp10]               \n\t" 
  444         "psrah      %[ftmp4],   %[ftmp4],       %[ftmp10]               \n\t" 
  445         "punpcklbh  %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  446         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  447         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
  448         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  449         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  450         "packushb   %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  451         MMI_SWC1(%[ftmp3], %[
dst], 0x00)
 
  452         MMI_SWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  453         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  454         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  455         MMI_ULWC1(%[ftmp3], %[
dst], 0x00)
 
  456         MMI_LWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  457         "psrah      %[ftmp6],   %[ftmp6],       %[ftmp10]               \n\t" 
  458         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp10]               \n\t" 
  459         "punpcklbh  %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  460         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  461         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp6]                \n\t" 
  462         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
  463         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  464         "packushb   %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  465         MMI_SWC1(%[ftmp3], %[
dst], 0x00)
 
  466         MMI_SWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  467         MMI_LDC1(%[ftmp5], $sp, 0x00)
 
  468         MMI_LDC1(%[ftmp4], $sp, 0x10)
 
  469         "dmtc1      %[tmp1],    %[ftmp6]                                \n\t" 
  470         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  471         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  472         MMI_ULWC1(%[ftmp3], %[
dst], 0x00)
 
  473         MMI_LWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  474         "psrah      %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
  475         "psrah      %[ftmp5],   %[ftmp5],       %[ftmp10]               \n\t" 
  476         "punpcklbh  %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  477         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  478         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
  479         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp5]                \n\t" 
  480         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  481         "packushb   %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  482         MMI_SWC1(%[ftmp3], %[
dst], 0x00)
 
  483         MMI_SWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  484         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  485         PTR_ADDU   "%[dst],     %[dst],         %[stride]               \n\t" 
  486         MMI_ULWC1(%[ftmp3], %[
dst], 0x00)
 
  487         MMI_LWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  488         "psrah      %[ftmp4],   %[ftmp4],       %[ftmp10]               \n\t" 
  489         "psrah      %[ftmp6],   %[ftmp6],       %[ftmp10]               \n\t" 
  490         "punpcklbh  %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  491         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  492         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
  493         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp6]                \n\t" 
  494         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  495         "packushb   %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  496         MMI_SWC1(%[ftmp3], %[
dst], 0x00)
 
  497         MMI_SWXC1(%[ftmp0], %[
dst], %[
stride], 0x00)
 
  498         "dmtc1      %[tmp4],    %[ftmp1]                                \n\t" 
  499         "dmtc1      %[tmp2],    %[ftmp6]                                \n\t" 
  500         MMI_LDC1(%[ftmp4], $sp, 0x18)
 
  501         "mov.d      %[ftmp5],   %[ftmp4]                                \n\t" 
  502         "psrah      %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
  503         "psrah      %[ftmp7],   %[ftmp11],      %[ftmp8]                \n\t" 
  504         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp11]               \n\t" 
  505         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
  506         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp15]               \n\t" 
  507         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp11]               \n\t" 
  508         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  509         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp1]                \n\t" 
  510         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp1]                \n\t" 
  511         "psubh      %[ftmp3],   %[ftmp11],      %[ftmp1]                \n\t" 
  512         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp8]                \n\t" 
  513         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp15]               \n\t" 
  514         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp15]               \n\t" 
  515         "psrah      %[ftmp2],   %[ftmp15],      %[ftmp8]                \n\t" 
  516         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp1]                \n\t" 
  517         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  518         "mov.d      %[ftmp2],   %[ftmp4]                                \n\t" 
  519         "psrah      %[ftmp4],   %[ftmp4],       %[ftmp9]                \n\t" 
  520         "psrah      %[ftmp1],   %[ftmp7],       %[ftmp9]                \n\t" 
  521         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp3]                \n\t" 
  522         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
  523         "psrah      %[ftmp5],   %[ftmp5],       %[ftmp9]                \n\t" 
  524         "psrah      %[ftmp3],   %[ftmp3],       %[ftmp9]                \n\t" 
  525         "psubh      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  526         "psubh      %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
  527         "mov.d      %[ftmp3],   %[ftmp13]                               \n\t" 
  528         "psrah      %[ftmp0],   %[ftmp13],      %[ftmp8]                \n\t" 
  529         "psrah      %[ftmp7],   %[ftmp6],       %[ftmp8]                \n\t" 
  530         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp6]                \n\t" 
  531         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp3]                \n\t" 
  532         MMI_LDC1(%[ftmp6], $sp, 0x08)
 
  533         "dmtc1      %[tmp6],    %[ftmp3]                                \n\t" 
  534         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp6]                \n\t" 
  535         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
  536         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp3]                \n\t" 
  537         "psubh      %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
  538         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
  539         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
  540         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  541         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
  542         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
  543         "psubh      %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
  544         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
  545         "paddh      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  546         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  547         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
  548         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp6]                \n\t" 
  549         "psubh      %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  550         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
  551         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp3]                \n\t" 
  552         "psubh      %[ftmp6],   %[ftmp6],       %[ftmp1]                \n\t" 
  553         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
  554         MMI_SDC1(%[ftmp6], $sp, 0x08)
 
  555         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
  556         MMI_SDC1(%[ftmp7], $sp, 0x18)
 
  557         "dmfc1      %[tmp2],    %[ftmp0]                                \n\t" 
  558         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
  559         MMI_ULWC1(%[ftmp6], %[addr0], 0x00)
 
  560         MMI_LWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  561         "psrah      %[ftmp2],   %[ftmp2],       %[ftmp10]               \n\t" 
  562         "psrah      %[ftmp5],   %[ftmp5],       %[ftmp10]               \n\t" 
  563         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  564         "punpcklbh  %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  565         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp2]                \n\t" 
  566         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  567         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  568         "packushb   %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  569         MMI_SWC1(%[ftmp6], %[addr0], 0x00)
 
  570         MMI_SWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  571         PTR_ADDU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
  572         PTR_ADDU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
  573         MMI_ULWC1(%[ftmp6], %[addr0], 0x00)
 
  574         MMI_LWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  575         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp10]               \n\t" 
  576         "psrah      %[ftmp4],   %[ftmp4],       %[ftmp10]               \n\t" 
  577         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  578         "punpcklbh  %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  579         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp1]                \n\t" 
  580         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
  581         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  582         "packushb   %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  583         MMI_SWC1(%[ftmp6], %[addr0], 0x00)
 
  584         MMI_SWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  585         MMI_LDC1(%[ftmp2], $sp, 0x08)
 
  586         MMI_LDC1(%[ftmp5], $sp, 0x18)
 
  587         PTR_ADDU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
  588         "dmtc1      %[tmp2],    %[ftmp1]                                \n\t" 
  589         PTR_ADDU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
  590         MMI_ULWC1(%[ftmp6], %[addr0], 0x00)
 
  591         MMI_LWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  592         "psrah      %[ftmp3],   %[ftmp3],       %[ftmp10]               \n\t" 
  593         "psrah      %[ftmp2],   %[ftmp2],       %[ftmp10]               \n\t" 
  594         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  595         "punpcklbh  %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  596         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
  597         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
  598         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  599         "packushb   %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  600         MMI_SWC1(%[ftmp6], %[addr0], 0x00)
 
  601         MMI_SWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  602         PTR_ADDU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
  603         PTR_ADDU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
  604         MMI_ULWC1(%[ftmp6], %[addr0], 0x00)
 
  605         MMI_LWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  606         "psrah      %[ftmp5],   %[ftmp5],       %[ftmp10]               \n\t" 
  607         "psrah      %[ftmp1],   %[ftmp1],       %[ftmp10]               \n\t" 
  608         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  609         "punpcklbh  %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  610         "paddh      %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
  611         "paddh      %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
  612         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
  613         "packushb   %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
  614         MMI_SWC1(%[ftmp6], %[addr0], 0x00)
 
  615         MMI_SWXC1(%[ftmp7], %[addr0], %[
stride], 0x00)
 
  617         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
  618           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
  619           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
  620           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
  621           [ftmp8]
"=&f"(ftmp[8]),            [ftmp9]
"=&f"(ftmp[9]),
 
  622           [ftmp10]
"=&f"(ftmp[10]),          [ftmp11]
"=&f"(ftmp[11]),
 
  623           [ftmp12]
"=&f"(ftmp[12]),          [ftmp13]
"=&f"(ftmp[13]),
 
  624           [ftmp14]
"=&f"(ftmp[14]),          [ftmp15]
"=&f"(ftmp[15]),
 
  625           [tmp0]
"=&r"(
tmp[0]),              [tmp1]
"=&r"(
tmp[1]),
 
  626           [tmp2]
"=&r"(
tmp[2]),              [tmp3]
"=&r"(
tmp[3]),
 
  627           [tmp4]
"=&r"(
tmp[4]),              [tmp5]
"=&r"(
tmp[5]),
 
  631           [addr0]
"=&r"(addr[0])
 
  648         "mtc1       %[dc],      %[ftmp5]                                \n\t" 
  649         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
  650         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
  651         MMI_ULWC1(%[ftmp1], %[dst0], 0x00)
 
  652         MMI_ULWC1(%[ftmp2], %[dst1], 0x00)
 
  653         MMI_ULWC1(%[ftmp3], %[dst2], 0x00)
 
  654         MMI_ULWC1(%[ftmp4], %[dst3], 0x00)
 
  655         "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  656         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
  657         "punpcklbh  %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  658         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  659         "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
  660         "paddsh     %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
  661         "paddsh     %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
  662         "paddsh     %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
  663         "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  664         "packushb   %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
  665         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  666         "packushb   %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  667         MMI_SWC1(%[ftmp1], %[dst0], 0x00)
 
  668         MMI_SWC1(%[ftmp2], %[dst1], 0x00)
 
  669         MMI_SWC1(%[ftmp3], %[dst2], 0x00)
 
  670         MMI_SWC1(%[ftmp4], %[dst3], 0x00)
 
  671         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
  672           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
  673           [ftmp4]
"=&f"(ftmp[4]),
 
  675           [ftmp5]
"=&f"(ftmp[5])
 
  692         "mtc1       %[dc],      %[ftmp5]                                \n\t" 
  693         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
  694         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
  695         MMI_LDC1(%[ftmp1], %[dst0], 0x00)
 
  696         MMI_LDC1(%[ftmp2], %[dst1], 0x00)
 
  697         MMI_LDC1(%[ftmp3], %[dst2], 0x00)
 
  698         MMI_LDC1(%[ftmp4], %[dst3], 0x00)
 
  699         "punpckhbh  %[ftmp6],   %[ftmp1],       %[ftmp0]                \n\t" 
  700         "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  701         "punpckhbh  %[ftmp7],   %[ftmp2],       %[ftmp0]                \n\t" 
  702         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
  703         "punpckhbh  %[ftmp8],   %[ftmp3],       %[ftmp0]                \n\t" 
  704         "punpcklbh  %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  705         "punpckhbh  %[ftmp9],   %[ftmp4],       %[ftmp0]                \n\t" 
  706         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  707         "paddsh     %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
  708         "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
  709         "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  710         "paddsh     %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
  711         "paddsh     %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
  712         "paddsh     %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
  713         "paddsh     %[ftmp9],   %[ftmp9],       %[ftmp5]                \n\t" 
  714         "paddsh     %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
  715         "packushb   %[ftmp1],   %[ftmp1],       %[ftmp6]                \n\t" 
  716         "packushb   %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  717         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
  718         "packushb   %[ftmp4],   %[ftmp4],       %[ftmp9]                \n\t" 
  719         MMI_SDC1(%[ftmp1], %[dst0], 0x00)
 
  720         MMI_SDC1(%[ftmp2], %[dst1], 0x00)
 
  721         MMI_SDC1(%[ftmp3], %[dst2], 0x00)
 
  722         MMI_SDC1(%[ftmp4], %[dst3], 0x00)
 
  724         MMI_LDC1(%[ftmp1], %[dst4], 0x00)
 
  725         MMI_LDC1(%[ftmp2], %[dst5], 0x00)
 
  726         MMI_LDC1(%[ftmp3], %[dst6], 0x00)
 
  727         MMI_LDC1(%[ftmp4], %[dst7], 0x00)
 
  728         "punpckhbh  %[ftmp6],   %[ftmp1],       %[ftmp0]                \n\t" 
  729         "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  730         "punpckhbh  %[ftmp7],   %[ftmp2],       %[ftmp0]                \n\t" 
  731         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
  732         "punpckhbh  %[ftmp8],   %[ftmp3],       %[ftmp0]                \n\t" 
  733         "punpcklbh  %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  734         "punpckhbh  %[ftmp9],   %[ftmp4],       %[ftmp0]                \n\t" 
  735         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp0]                \n\t" 
  736         "paddsh     %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
  737         "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
  738         "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
  739         "paddsh     %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
  740         "paddsh     %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
  741         "paddsh     %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
  742         "paddsh     %[ftmp9],   %[ftmp9],       %[ftmp5]                \n\t" 
  743         "paddsh     %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
  744         "packushb   %[ftmp1],   %[ftmp1],       %[ftmp6]                \n\t" 
  745         "packushb   %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  746         "packushb   %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
  747         "packushb   %[ftmp4],   %[ftmp4],       %[ftmp9]                \n\t" 
  748         MMI_SDC1(%[ftmp1], %[dst4], 0x00)
 
  749         MMI_SDC1(%[ftmp2], %[dst5], 0x00)
 
  750         MMI_SDC1(%[ftmp3], %[dst6], 0x00)
 
  751         MMI_SDC1(%[ftmp4], %[dst7], 0x00)
 
  752         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
  753           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
  754           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
  755           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
  756           [ftmp8]
"=&f"(ftmp[8]),
 
  758           [ftmp9]
"=&f"(ftmp[9])
 
  770                               const uint8_t nnzc[5 * 8])
 
  774         int nnz = nnzc[ 
scan8[
i] ];
 
  776             if(nnz==1 && ((int16_t*)
block)[
i*16])
 
  787         int16_t *
block, 
int stride, 
const uint8_t nnzc[5 * 8])
 
  793         else if(((int16_t*)
block)[
i*16])
 
  800         int16_t *
block, 
int stride, 
const uint8_t nnzc[5 * 8])
 
  803     for(
i=0; 
i<16; 
i+=4){
 
  804         int nnz = nnzc[ 
scan8[
i] ];
 
  806             if(nnz==1 && ((int16_t*)
block)[
i*16])
 
  817         int16_t *
block, 
int stride, 
const uint8_t nnzc[15*8])
 
  821         for(
i=j*16; 
i<j*16+4; 
i++){
 
  825             else if(((int16_t*)
block)[
i*16])
 
  833         int16_t *
block, 
int stride, 
const uint8_t nnzc[15*8])
 
  838         for(
i=j*16; 
i<j*16+4; 
i++){
 
  842             else if(((int16_t*)
block)[
i*16])
 
  849         for(
i=j*16+4; 
i<j*16+8; 
i++){
 
  853             else if(((int16_t*)
block)[
i*16])
 
  868         ".set       noreorder                                           \n\t" 
  869         "dli        %[tmp0],    0x08                                    \n\t" 
  870         MMI_LDC1(%[ftmp3], %[
input], 0x18)
 
  871         "mtc1       %[tmp0],    %[ftmp8]                                \n\t" 
  872         MMI_LDC1(%[ftmp2], %[
input], 0x10)
 
  873         "dli        %[tmp0],    0x20                                    \n\t" 
  874         MMI_LDC1(%[ftmp1], %[
input], 0x08)
 
  875         "mtc1       %[tmp0],    %[ftmp9]                                \n\t" 
  876         MMI_LDC1(%[ftmp0], %[
input], 0x00)
 
  877         "mov.d      %[ftmp4],   %[ftmp3]                                \n\t" 
  878         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp2]                \n\t" 
  879         "psubh      %[ftmp2],   %[ftmp2],       %[ftmp4]                \n\t" 
  880         "mov.d      %[ftmp4],   %[ftmp1]                                \n\t" 
  881         "paddh      %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
  882         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  883         "mov.d      %[ftmp4],   %[ftmp3]                                \n\t" 
  884         "paddh      %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
  885         "psubh      %[ftmp1],   %[ftmp1],       %[ftmp4]                \n\t" 
  886         "mov.d      %[ftmp4],   %[ftmp2]                                \n\t" 
  887         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
  888         "psubh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  889         "mov.d      %[ftmp4],   %[ftmp3]                                \n\t" 
  890         "punpcklhw  %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
  891         "punpckhhw  %[ftmp4],   %[ftmp4],       %[ftmp1]                \n\t" 
  892         "punpckhhw  %[ftmp1],   %[ftmp0],       %[ftmp2]                \n\t" 
  893         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  894         "punpckhwd  %[ftmp2],   %[ftmp3],       %[ftmp0]                \n\t" 
  895         "punpcklwd  %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
  896         "mov.d      %[ftmp0],   %[ftmp4]                                \n\t" 
  897         "punpcklwd  %[ftmp4],   %[ftmp4],       %[ftmp1]                \n\t" 
  898         "punpckhwd  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
  899         "mov.d      %[ftmp1],   %[ftmp0]                                \n\t" 
  900         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
  901         "psubh      %[ftmp4],   %[ftmp4],       %[ftmp1]                \n\t" 
  902         "mov.d      %[ftmp1],   %[ftmp2]                                \n\t" 
  903         "paddh      %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
  904         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
  905         "mov.d      %[ftmp1],   %[ftmp0]                                \n\t" 
  906         "paddh      %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
  907         "psubh      %[ftmp2],   %[ftmp2],       %[ftmp1]                \n\t" 
  908         "mov.d      %[ftmp1],   %[ftmp4]                                \n\t" 
  909         "daddi      %[tmp0],    %[qmul],        -0x7fff                 \n\t" 
  910         "paddh      %[ftmp4],   %[ftmp4],       %[ftmp3]                \n\t" 
  911         "bgtz       %[tmp0],    1f                                      \n\t" 
  912         "psubh      %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
  913         "ori        %[tmp0],    $0,             0x80                    \n\t" 
  914         "dsll       %[tmp0],    %[tmp0],        0x10                    \n\t" 
  915         "punpckhhw  %[ftmp1],   %[ftmp0],       %[ff_pw_1]              \n\t" 
  916         "daddu      %[qmul],    %[qmul],        %[tmp0]                 \n\t" 
  917         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ff_pw_1]              \n\t" 
  918         "punpckhhw  %[ftmp5],   %[ftmp2],       %[ff_pw_1]              \n\t" 
  919         "punpcklhw  %[ftmp2],   %[ftmp2],       %[ff_pw_1]              \n\t" 
  920         "mtc1       %[qmul],    %[ftmp7]                                \n\t" 
  921         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
  922         "pmaddhw    %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
  923         "pmaddhw    %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
  924         "pmaddhw    %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
  925         "pmaddhw    %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  926         "psraw      %[ftmp0],   %[ftmp0],       %[ftmp8]                \n\t" 
  927         "psraw      %[ftmp2],   %[ftmp2],       %[ftmp8]                \n\t" 
  928         "psraw      %[ftmp1],   %[ftmp1],       %[ftmp8]                \n\t" 
  929         "psraw      %[ftmp5],   %[ftmp5],       %[ftmp8]                \n\t" 
  930         "packsswh   %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
  931         "packsswh   %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
  932         "dmfc1      %[tmp1],    %[ftmp0]                                \n\t" 
  933         "ssrld      %[ftmp0],   %[ftmp0],       %[ftmp9]                \n\t" 
  934         "mfc1       %[input],   %[ftmp0]                                \n\t" 
  935         "sh         %[tmp1],    0x00(%[output])                         \n\t" 
  936         "sh         %[input],   0x80(%[output])                         \n\t" 
  937         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
  938         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
  939         "sh         %[tmp1],    0x20(%[output])                         \n\t" 
  940         "sh         %[input],   0xa0(%[output])                         \n\t" 
  941         "dmfc1      %[tmp1],    %[ftmp2]                                \n\t" 
  942         "ssrld      %[ftmp2],   %[ftmp2],       %[ftmp9]                \n\t" 
  943         "mfc1       %[input],   %[ftmp2]                                \n\t" 
  944         "sh         %[tmp1],    0x40(%[output])                         \n\t" 
  945         "sh         %[input],   0xc0(%[output])                         \n\t" 
  946         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
  947         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
  948         "sh         %[tmp1],    0x60(%[output])                         \n\t" 
  949         "sh         %[input],   0xe0(%[output])                         \n\t" 
  950         "punpckhhw  %[ftmp1],   %[ftmp3],       %[ff_pw_1]              \n\t" 
  951         "punpcklhw  %[ftmp3],   %[ftmp3],       %[ff_pw_1]              \n\t" 
  952         "punpckhhw  %[ftmp5],   %[ftmp4],       %[ff_pw_1]              \n\t" 
  953         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ff_pw_1]              \n\t" 
  954         "mtc1       %[qmul],    %[ftmp7]                                \n\t" 
  955         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
  956         "pmaddhw    %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
  957         "pmaddhw    %[ftmp4],   %[ftmp4],       %[ftmp7]                \n\t" 
  958         "pmaddhw    %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
  959         "pmaddhw    %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
  960         "psraw      %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
  961         "psraw      %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
  962         "psraw      %[ftmp1],   %[ftmp1],       %[ftmp8]                \n\t" 
  963         "psraw      %[ftmp5],   %[ftmp5],       %[ftmp8]                \n\t" 
  964         "packsswh   %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
  965         "packsswh   %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
  966         "dmfc1      %[tmp1],    %[ftmp3]                                \n\t" 
  967         "ssrld      %[ftmp3],   %[ftmp3],       %[ftmp9]                \n\t" 
  968         "mfc1       %[input],   %[ftmp3]                                \n\t" 
  969         "sh         %[tmp1],    0x100(%[output])                        \n\t" 
  970         "sh         %[input],   0x180(%[output])                        \n\t" 
  971         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
  972         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
  973         "sh         %[tmp1],    0x120(%[output])                        \n\t" 
  974         "sh         %[input],   0x1a0(%[output])                        \n\t" 
  975         "dmfc1      %[tmp1],    %[ftmp4]                                \n\t" 
  976         "ssrld      %[ftmp4],   %[ftmp4],       %[ftmp9]                \n\t" 
  977         "mfc1       %[input],   %[ftmp4]                                \n\t" 
  978         "sh         %[tmp1],    0x140(%[output])                        \n\t" 
  979         "sh         %[input],   0x1c0(%[output])                        \n\t" 
  980         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
  981         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
  982         "sh         %[tmp1],    0x160(%[output])                        \n\t" 
  984         "sh         %[input],   0x1e0(%[output])                        \n\t" 
  986         "ori        %[tmp0],    $0,             0x1f                    \n\t" 
  988         "clz        %[tmp1],    %[qmul]                                 \n\t" 
  991         "ori        %[input],   $0,             0x07                    \n\t" 
  992         "dsubu      %[tmp1],    %[tmp0],        %[tmp1]                 \n\t" 
  993         "ori        %[tmp0],    $0,             0x80                    \n\t" 
  994         "dsll       %[tmp0],    %[tmp0],        0x10                    \n\t" 
  995         "daddu      %[qmul],    %[qmul],        %[tmp0]                 \n\t" 
  996         "dsubu      %[tmp0],    %[tmp1],        %[input]                \n\t" 
  997         "movn       %[tmp1],    %[input],       %[tmp0]                 \n\t" 
  998         PTR_ADDIU  "%[input],   %[input],       0x01                    \n\t" 
  999         "andi       %[tmp0],    %[tmp1],        0xff                    \n\t" 
 1000         "srlv       %[qmul],    %[qmul],        %[tmp0]                 \n\t" 
 1001         PTR_SUBU   "%[input],   %[input],       %[tmp1]                 \n\t" 
 1002         "mtc1       %[input],   %[ftmp6]                                \n\t" 
 1003         "punpckhhw  %[ftmp1],   %[ftmp0],       %[ff_pw_1]              \n\t" 
 1004         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ff_pw_1]              \n\t" 
 1005         "punpckhhw  %[ftmp5],   %[ftmp2],       %[ff_pw_1]              \n\t" 
 1006         "punpcklhw  %[ftmp2],   %[ftmp2],       %[ff_pw_1]              \n\t" 
 1007         "mtc1       %[qmul],    %[ftmp7]                                \n\t" 
 1008         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1009         "pmaddhw    %[ftmp0],   %[ftmp0],       %[ftmp7]                \n\t" 
 1010         "pmaddhw    %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
 1011         "pmaddhw    %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
 1012         "pmaddhw    %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1013         "psraw      %[ftmp0],   %[ftmp0],       %[ftmp6]                \n\t" 
 1014         "psraw      %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 1015         "psraw      %[ftmp1],   %[ftmp1],       %[ftmp6]                \n\t" 
 1016         "psraw      %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1017         "packsswh   %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 1018         "packsswh   %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
 1019         "dmfc1      %[tmp1],    %[ftmp0]                                \n\t" 
 1020         "ssrld      %[ftmp0],   %[ftmp0],       %[ftmp9]                \n\t" 
 1021         "sh         %[tmp1],    0x00(%[output])                         \n\t" 
 1022         "mfc1       %[input],   %[ftmp0]                                \n\t" 
 1023         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
 1024         "sh         %[input],   0x80(%[output])                         \n\t" 
 1025         "sh         %[tmp1],    0x20(%[output])                         \n\t" 
 1026         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
 1027         "dmfc1      %[tmp1],    %[ftmp2]                                \n\t" 
 1028         "sh         %[input],   0xa0(%[output])                         \n\t" 
 1029         "ssrld      %[ftmp2],   %[ftmp2],       %[ftmp9]                \n\t" 
 1030         "sh         %[tmp1],    0x40(%[output])                         \n\t" 
 1031         "mfc1       %[input],   %[ftmp2]                                \n\t" 
 1032         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
 1033         "sh         %[input],   0xc0(%[output])                         \n\t" 
 1034         "sh         %[tmp1],    0x60(%[output])                         \n\t" 
 1035         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
 1036         "sh         %[input],   0xe0(%[output])                         \n\t" 
 1037         "punpckhhw  %[ftmp1],   %[ftmp3],       %[ff_pw_1]              \n\t" 
 1038         "punpcklhw  %[ftmp3],   %[ftmp3],       %[ff_pw_1]              \n\t" 
 1039         "punpckhhw  %[ftmp5],   %[ftmp4],       %[ff_pw_1]              \n\t" 
 1040         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ff_pw_1]              \n\t" 
 1041         "mtc1       %[qmul],    %[ftmp7]                                \n\t" 
 1042         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1043         "pmaddhw    %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
 1044         "pmaddhw    %[ftmp4],   %[ftmp4],       %[ftmp7]                \n\t" 
 1045         "pmaddhw    %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
 1046         "pmaddhw    %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1047         "psraw      %[ftmp3],   %[ftmp3],       %[ftmp6]                \n\t" 
 1048         "psraw      %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 1049         "psraw      %[ftmp1],   %[ftmp1],       %[ftmp6]                \n\t" 
 1050         "psraw      %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1051         "packsswh   %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
 1052         "packsswh   %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1053         "dmfc1      %[tmp1],    %[ftmp3]                                \n\t" 
 1054         "ssrld      %[ftmp3],   %[ftmp3],       %[ftmp9]                \n\t" 
 1055         "mfc1       %[input],   %[ftmp3]                                \n\t" 
 1056         "sh         %[tmp1],    0x100(%[output])                        \n\t" 
 1057         "sh         %[input],   0x180(%[output])                        \n\t" 
 1058         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
 1059         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
 1060         "sh         %[tmp1],    0x120(%[output])                        \n\t" 
 1061         "sh         %[input],   0x1a0(%[output])                        \n\t" 
 1062         "dmfc1      %[tmp1],    %[ftmp4]                                \n\t" 
 1063         "ssrld      %[ftmp4],   %[ftmp4],       %[ftmp9]                \n\t" 
 1064         "mfc1       %[input],   %[ftmp4]                                \n\t" 
 1065         "sh         %[tmp1],    0x140(%[output])                        \n\t" 
 1066         "sh         %[input],   0x1c0(%[output])                        \n\t" 
 1067         "dsrl       %[tmp1],    %[tmp1],        0x10                    \n\t" 
 1068         PTR_SRL    "%[input],   %[input],       0x10                    \n\t" 
 1069         "sh         %[tmp1],    0x160(%[output])                        \n\t" 
 1070         "sh         %[input],   0x1e0(%[output])                        \n\t" 
 1073         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 1074           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 1075           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 1076           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 1077           [ftmp8]
"=&f"(ftmp[8]),            [ftmp9]
"=&f"(ftmp[9]),
 
 1078           [tmp0]
"=&r"(
tmp[0]),              [tmp1]
"=&r"(
tmp[1]),
 
 1097         offset += 1 << (log2_denom - 1);
 
 1101             "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
 1102             MMI_LDC1(%[ftmp1], %[block0], 0x00)
 
 1103             MMI_LDC1(%[ftmp2], %[
block1], 0x00)
 
 1104             "mtc1       %[weight],  %[ftmp3]                            \n\t" 
 1105             "mtc1       %[offset],  %[ftmp4]                            \n\t" 
 1106             "mtc1       %[log2_denom],              %[ftmp5]            \n\t" 
 1107             "pshufh     %[ftmp3],   %[ftmp3],       %[ftmp0]            \n\t" 
 1108             "pshufh     %[ftmp4],   %[ftmp4],       %[ftmp0]            \n\t" 
 1109             "punpckhbh  %[ftmp6],   %[ftmp1],       %[ftmp0]            \n\t" 
 1110             "punpckhbh  %[ftmp7],   %[ftmp2],       %[ftmp0]            \n\t" 
 1111             "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1112             "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]            \n\t" 
 1113             "pmullh     %[ftmp6],   %[ftmp6],       %[ftmp3]            \n\t" 
 1114             "pmullh     %[ftmp7],   %[ftmp7],       %[ftmp3]            \n\t" 
 1115             "pmullh     %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
 1116             "pmullh     %[ftmp2],   %[ftmp2],       %[ftmp3]            \n\t" 
 1117             "paddsh     %[ftmp6],   %[ftmp6],       %[ftmp4]            \n\t" 
 1118             "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp4]            \n\t" 
 1119             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp4]            \n\t" 
 1120             "paddsh     %[ftmp2],   %[ftmp2],       %[ftmp4]            \n\t" 
 1121             "psrah      %[ftmp6],   %[ftmp6],       %[ftmp5]            \n\t" 
 1122             "psrah      %[ftmp7],   %[ftmp7],       %[ftmp5]            \n\t" 
 1123             "psrah      %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
 1124             "psrah      %[ftmp2],   %[ftmp2],       %[ftmp5]            \n\t" 
 1125             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp6]            \n\t" 
 1126             "packushb   %[ftmp2],   %[ftmp2],       %[ftmp7]            \n\t" 
 1127             MMI_SDC1(%[ftmp1], %[block0], 0x00)
 
 1128             MMI_SDC1(%[ftmp2], %[
block1], 0x00)
 
 1129             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
 1130               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
 1131               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
 1132               [ftmp6]
"=&f"(ftmp[6]),
 
 1134               [ftmp7]
"=&f"(ftmp[7])
 
 1137               [log2_denom]
"r"(log2_denom)
 
 1155             "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
 1156             MMI_LDC1(%[ftmp1], %[
src0], 0x00)
 
 1157             MMI_LDC1(%[ftmp2], %[dst0], 0x00)
 
 1158             "mtc1       %[weights], %[ftmp3]                            \n\t" 
 1159             "mtc1       %[weightd], %[ftmp4]                            \n\t" 
 1160             "mtc1       %[offset],  %[ftmp5]                            \n\t" 
 1161             "mtc1       %[log2_denom],              %[ftmp6]            \n\t" 
 1162             "pshufh     %[ftmp3],   %[ftmp3],       %[ftmp0]            \n\t" 
 1163             "pshufh     %[ftmp4],   %[ftmp4],       %[ftmp0]            \n\t" 
 1164             "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]            \n\t" 
 1165             "punpckhbh  %[ftmp7],   %[ftmp1],       %[ftmp0]            \n\t" 
 1166             "punpckhbh  %[ftmp8],   %[ftmp2],       %[ftmp0]            \n\t" 
 1167             "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1168             "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]            \n\t" 
 1169             "pmullh     %[ftmp7],   %[ftmp7],       %[ftmp3]            \n\t" 
 1170             "pmullh     %[ftmp8],   %[ftmp8],       %[ftmp4]            \n\t" 
 1171             "pmullh     %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
 1172             "pmullh     %[ftmp2],   %[ftmp2],       %[ftmp4]            \n\t" 
 1173             "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp5]            \n\t" 
 1174             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
 1175             "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp8]            \n\t" 
 1176             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
 1177             "psrah      %[ftmp7],   %[ftmp7],       %[ftmp6]            \n\t" 
 1178             "psrah      %[ftmp1],   %[ftmp1],       %[ftmp6]            \n\t" 
 1179             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp7]            \n\t" 
 1180             MMI_SDC1(%[ftmp1], %[dst0], 0x00)
 
 1181             MMI_LDC1(%[ftmp1], %[
src1], 0x00)
 
 1182             MMI_LDC1(%[ftmp2], %[dst1], 0x00)
 
 1183             "punpckhbh  %[ftmp7],   %[ftmp1],       %[ftmp0]            \n\t" 
 1184             "punpckhbh  %[ftmp8],   %[ftmp2],       %[ftmp0]            \n\t" 
 1185             "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1186             "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]            \n\t" 
 1187             "pmullh     %[ftmp7],   %[ftmp7],       %[ftmp3]            \n\t" 
 1188             "pmullh     %[ftmp8],   %[ftmp8],       %[ftmp4]            \n\t" 
 1189             "pmullh     %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
 1190             "pmullh     %[ftmp2],   %[ftmp2],       %[ftmp4]            \n\t" 
 1191             "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp5]            \n\t" 
 1192             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
 1193             "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp8]            \n\t" 
 1194             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
 1195             "psrah      %[ftmp7],   %[ftmp7],       %[ftmp6]            \n\t" 
 1196             "psrah      %[ftmp1],   %[ftmp1],       %[ftmp6]            \n\t" 
 1197             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp7]            \n\t" 
 1198             MMI_SDC1(%[ftmp1], %[dst1], 0x00)
 
 1199             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
 1200               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
 1201               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
 1202               [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
 1204               [ftmp8]
"=&f"(ftmp[8])
 
 1205             : [dst0]
"r"(
dst),               [dst1]
"r"(
dst+8),
 
 1224         offset += 1 << (log2_denom - 1);
 
 1228             "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
 1229             MMI_LDC1(%[ftmp1], %[
block], 0x00)
 
 1230             "mtc1       %[weight],  %[ftmp2]                            \n\t" 
 1231             "mtc1       %[offset],  %[ftmp3]                            \n\t" 
 1232             "mtc1       %[log2_denom],              %[ftmp5]            \n\t" 
 1233             "pshufh     %[ftmp2],   %[ftmp2],       %[ftmp0]            \n\t" 
 1234             "pshufh     %[ftmp3],   %[ftmp3],       %[ftmp0]            \n\t" 
 1235             "punpckhbh  %[ftmp4],   %[ftmp1],       %[ftmp0]            \n\t" 
 1236             "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1237             "pmullh     %[ftmp4],   %[ftmp4],       %[ftmp2]            \n\t" 
 1238             "pmullh     %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
 1239             "paddsh     %[ftmp4],   %[ftmp4],       %[ftmp3]            \n\t" 
 1240             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
 1241             "psrah      %[ftmp4],   %[ftmp4],       %[ftmp5]            \n\t" 
 1242             "psrah      %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
 1243             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp4]            \n\t" 
 1244             MMI_SDC1(%[ftmp1], %[
block], 0x00)
 
 1245             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
 1246               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
 1247               [ftmp4]
"=&f"(ftmp[4]),
 
 1249               [ftmp5]
"=&f"(ftmp[5])
 
 1269             "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
 1270             MMI_LDC1(%[ftmp1], %[
src], 0x00)
 
 1271             MMI_LDC1(%[ftmp2], %[
dst], 0x00)
 
 1272             "mtc1       %[weights], %[ftmp3]                            \n\t" 
 1273             "mtc1       %[weightd], %[ftmp4]                            \n\t" 
 1274             "mtc1       %[offset],  %[ftmp5]                            \n\t" 
 1275             "mtc1       %[log2_denom],              %[ftmp6]            \n\t" 
 1276             "pshufh     %[ftmp3],   %[ftmp3],       %[ftmp0]            \n\t" 
 1277             "pshufh     %[ftmp4],   %[ftmp4],       %[ftmp0]            \n\t" 
 1278             "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]            \n\t" 
 1279             "punpckhbh  %[ftmp7],   %[ftmp1],       %[ftmp0]            \n\t" 
 1280             "punpckhbh  %[ftmp8],   %[ftmp2],       %[ftmp0]            \n\t" 
 1281             "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1282             "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]            \n\t" 
 1283             "pmullh     %[ftmp7],   %[ftmp7],       %[ftmp3]            \n\t" 
 1284             "pmullh     %[ftmp8],   %[ftmp8],       %[ftmp4]            \n\t" 
 1285             "pmullh     %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
 1286             "pmullh     %[ftmp2],   %[ftmp2],       %[ftmp4]            \n\t" 
 1287             "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp5]            \n\t" 
 1288             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
 1289             "paddsh     %[ftmp7],   %[ftmp7],       %[ftmp8]            \n\t" 
 1290             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
 1291             "psrah      %[ftmp7],   %[ftmp7],       %[ftmp6]            \n\t" 
 1292             "psrah      %[ftmp1],   %[ftmp1],       %[ftmp6]            \n\t" 
 1293             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp7]            \n\t" 
 1294             MMI_SDC1(%[ftmp1], %[
dst], 0x00)
 
 1295             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
 1296               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
 1297               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
 1298               [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
 1300               [ftmp8]
"=&f"(ftmp[8])
 
 1319         offset += 1 << (log2_denom - 1);
 
 1323             "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
 1324             MMI_ULWC1(%[ftmp1], %[
block], 0x00)
 
 1325             "mtc1       %[weight],  %[ftmp2]                            \n\t" 
 1326             "mtc1       %[offset],  %[ftmp3]                            \n\t" 
 1327             "mtc1       %[log2_denom],              %[ftmp4]            \n\t" 
 1328             "pshufh     %[ftmp2],   %[ftmp2],       %[ftmp0]            \n\t" 
 1329             "pshufh     %[ftmp3],   %[ftmp3],       %[ftmp0]            \n\t" 
 1330             "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1331             "pmullh     %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
 1332             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
 1333             "psrah      %[ftmp1],   %[ftmp1],       %[ftmp4]            \n\t" 
 1334             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1335             MMI_SWC1(%[ftmp1], %[
block], 0x00)
 
 1336             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
 1337               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
 1339               [ftmp4]
"=&f"(ftmp[4])
 
 1359             "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
 1360             MMI_ULWC1(%[ftmp1], %[
src], 0x00)
 
 1361             MMI_ULWC1(%[ftmp2], %[
dst], 0x00)
 
 1362             "mtc1       %[weight],  %[ftmp3]                            \n\t" 
 1363             "mtc1       %[weightd], %[ftmp4]                            \n\t" 
 1364             "mtc1       %[offset],  %[ftmp5]                            \n\t" 
 1365             "mtc1       %[log2_denom],              %[ftmp6]            \n\t" 
 1366             "pshufh     %[ftmp3],   %[ftmp3],       %[ftmp0]            \n\t" 
 1367             "pshufh     %[ftmp4],   %[ftmp4],       %[ftmp0]            \n\t" 
 1368             "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]            \n\t" 
 1369             "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1370             "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp0]            \n\t" 
 1371             "pmullh     %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
 1372             "pmullh     %[ftmp2],   %[ftmp2],       %[ftmp4]            \n\t" 
 1373             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
 1374             "paddsh     %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
 1375             "psrah      %[ftmp1],   %[ftmp1],       %[ftmp6]            \n\t" 
 1376             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
 1377             MMI_SWC1(%[ftmp1], %[
dst], 0x00)
 
 1378             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
 1379               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
 1380               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
 1382               [ftmp6]
"=&f"(ftmp[6])
 
 1401         PTR_ADDU   "%[addr0],   %[stride],      %[stride]               \n\t" 
 1402         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 1403         PTR_ADDU   "%[addr1],   %[stride],      %[addr0]                \n\t" 
 1404         "addi       %[alpha],   %[alpha],       -0x01                   \n\t" 
 1405         PTR_SUBU   "%[addr1],   $0,             %[addr1]                \n\t" 
 1406         "addi       %[beta],    %[beta],        -0x01                   \n\t" 
 1407         PTR_ADDU   "%[addr1],   %[addr1],       %[pix]                  \n\t" 
 1408         MMI_LDC1(%[ftmp3], %[
pix], 0x00)
 
 1409         MMI_LDXC1(%[ftmp1], %[addr1], %[
stride], 0x00)
 
 1410         MMI_LDXC1(%[ftmp2], %[addr1], %[addr0], 0x00)
 
 1411         MMI_LDXC1(%[ftmp4], %[
pix], %[
stride], 0x00)
 
 1412         "mtc1       %[alpha],   %[ftmp5]                                \n\t" 
 1413         "mtc1       %[beta],    %[ftmp6]                                \n\t" 
 1414         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
 1415         "pshufh     %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
 1416         "packushb   %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1417         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
 1418         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp2]                \n\t" 
 1419         "psubusb    %[ftmp8],   %[ftmp2],       %[ftmp3]                \n\t" 
 1420         "por        %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1421         "psubusb    %[ftmp7],   %[ftmp2],       %[ftmp1]                \n\t" 
 1422         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1423         "psubusb    %[ftmp5],   %[ftmp1],       %[ftmp2]                \n\t" 
 1424         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1425         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp4]                \n\t" 
 1426         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1427         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1428         "psubusb    %[ftmp5],   %[ftmp4],       %[ftmp3]                \n\t" 
 1429         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1430         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1431         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1432         "pcmpeqb    %[ftmp8],   %[ftmp8],       %[ftmp0]                \n\t" 
 1433         "pcmpeqb    %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
 1434         MMI_ULWC1(%[ftmp5], %[tc0], 0x00)
 
 1435         "punpcklbh  %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1436         "punpcklbh  %[ftmp9],   %[ftmp5],       %[ftmp5]                \n\t" 
 1437         "pcmpgtb    %[ftmp5],   %[ftmp9],       %[ftmp4]                \n\t" 
 1438         MMI_LDC1(%[ftmp4], %[addr1], 0x00)
 
 1439         "pand       %[ftmp10],  %[ftmp5],       %[ftmp8]                \n\t" 
 1440         "psubusb    %[ftmp8],   %[ftmp4],       %[ftmp2]                \n\t" 
 1441         "psubusb    %[ftmp7],   %[ftmp2],       %[ftmp4]                \n\t" 
 1442         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp6]                \n\t" 
 1443         "psubusb    %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 1444         "pcmpeqb    %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1445         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1446         "pand       %[ftmp5],   %[ftmp10],      %[ftmp9]                \n\t" 
 1447         "psubb      %[ftmp8],   %[ftmp5],       %[ftmp7]                \n\t" 
 1448         "pand       %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
 1449         "pavgb      %[ftmp5],   %[ftmp2],       %[ftmp3]                \n\t" 
 1450         MMI_LDC1(%[ftmp11], %[addr1], 0x00)
 
 1451         "pavgb      %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1452         "pxor       %[ftmp5],   %[ftmp5],       %[ftmp11]               \n\t" 
 1453         "pand       %[ftmp5],   %[ftmp5],       %[ff_pb_1]              \n\t" 
 1454         "psubusb    %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1455         "psubusb    %[ftmp5],   %[ftmp1],       %[ftmp7]                \n\t" 
 1456         "paddusb    %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
 1457         "pmaxub     %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1458         "pminub     %[ftmp4],   %[ftmp4],       %[ftmp7]                \n\t" 
 1459         MMI_SDXC1(%[ftmp4], %[addr1], %[
stride], 0x00)
 
 1460         MMI_LDXC1(%[ftmp5], %[
pix], %[addr0], 0x00)
 
 1461         "psubusb    %[ftmp4],   %[ftmp5],       %[ftmp3]                \n\t" 
 1462         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp5]                \n\t" 
 1463         "psubusb    %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 1464         "psubusb    %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 1465         "pcmpeqb    %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 1466         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1467         "psubb      %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1468         "pand       %[ftmp6],   %[ftmp9],       %[ftmp7]                \n\t" 
 1469         MMI_LDXC1(%[ftmp4], %[
pix], %[
stride], 0x00)
 
 1470         "pavgb      %[ftmp7],   %[ftmp2],       %[ftmp3]                \n\t" 
 1471         MMI_LDXC1(%[ftmp11], %[
pix], %[addr0], 0x00)
 
 1472         "pavgb      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1473         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp11]               \n\t" 
 1474         "pand       %[ftmp7],   %[ftmp7],       %[ff_pb_1]              \n\t" 
 1475         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1476         "psubusb    %[ftmp7],   %[ftmp4],       %[ftmp6]                \n\t" 
 1477         "paddusb    %[ftmp6],   %[ftmp6],       %[ftmp4]                \n\t" 
 1478         "pmaxub     %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1479         "pminub     %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1480         MMI_SDXC1(%[ftmp5], %[
pix], %[
stride], 0x00)
 
 1481         "pxor       %[ftmp6],   %[ftmp2],       %[ftmp3]                \n\t" 
 1482         "pcmpeqb    %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1483         "pand       %[ftmp6],   %[ftmp6],       %[ff_pb_1]              \n\t" 
 1484         "pxor       %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1485         "pxor       %[ftmp5],   %[ftmp5],       %[ftmp2]                \n\t" 
 1486         "pavgb      %[ftmp4],   %[ftmp4],       %[ftmp1]                \n\t" 
 1487         "pavgb      %[ftmp4],   %[ftmp4],       %[ff_pb_3]              \n\t" 
 1488         "pavgb      %[ftmp5],   %[ftmp5],       %[ftmp3]                \n\t" 
 1489         "pavgb      %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 1490         "paddusb    %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1491         "psubusb    %[ftmp7],   %[ff_pb_A1],    %[ftmp4]                \n\t" 
 1492         "psubusb    %[ftmp4],   %[ftmp4],       %[ff_pb_A1]             \n\t" 
 1493         "pminub     %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1494         "pminub     %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
 1495         "psubusb    %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
 1496         "psubusb    %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
 1497         "paddusb    %[ftmp2],   %[ftmp2],       %[ftmp4]                \n\t" 
 1498         "paddusb    %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
 1499         MMI_SDXC1(%[ftmp2], %[addr1], %[addr0], 0x00)
 
 1500         MMI_SDC1(%[ftmp3], %[
pix], 0x00)
 
 1501         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 1502           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 1503           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 1504           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 1505           [ftmp8]
"=&f"(ftmp[8]),            [ftmp9]
"=&f"(ftmp[9]),
 
 1506           [ftmp10]
"=&f"(ftmp[10]),          [ftmp11]
"=&f"(ftmp[11]),
 
 1510           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1])
 
 1530         "ori        %[tmp0],    $0,             0x01                    \n\t" 
 1531         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 1532         "mtc1       %[tmp0],    %[ftmp9]                                \n\t" 
 1533         PTR_SLL    "%[addr0],   %[stride],      0x02                    \n\t" 
 1534         PTR_ADDU   "%[addr2],   %[stride],      %[stride]               \n\t" 
 1535         PTR_ADDIU  "%[alpha],   %[alpha],       -0x01                   \n\t" 
 1536         "sslld      %[ftmp11],  %[ftmp9],       %[ftmp9]                \n\t" 
 1537         "bltz       %[alpha],   1f                                      \n\t" 
 1538         PTR_ADDU   "%[addr1],   %[addr2],       %[stride]               \n\t" 
 1539         PTR_ADDIU  "%[beta],    %[beta],        -0x01                   \n\t" 
 1540         "bltz       %[beta],    1f                                      \n\t" 
 1541         PTR_SUBU   "%[addr0],   $0,             %[addr0]                \n\t" 
 1542         PTR_ADDU   "%[addr0],   %[addr0],       %[pix]                  \n\t" 
 1543         MMI_LDC1(%[ftmp3], %[
pix], 0x00)
 
 1544         MMI_LDXC1(%[ftmp1], %[addr0], %[addr2], 0x00)
 
 1545         MMI_LDXC1(%[ftmp2], %[addr0], %[addr1], 0x00)
 
 1546         MMI_LDXC1(%[ftmp4], %[
pix], %[
stride], 0x00)
 
 1547         "mtc1       %[alpha],   %[ftmp5]                                \n\t" 
 1548         "mtc1       %[beta],    %[ftmp6]                                \n\t" 
 1549         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
 1550         "pshufh     %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
 1551         "packushb   %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1552         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp2]                \n\t" 
 1553         "psubusb    %[ftmp8],   %[ftmp2],       %[ftmp3]                \n\t" 
 1554         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
 1555         "por        %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1556         MMI_SDC1(%[ftmp5], %[stack], 0x10)
 
 1557         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1558         "psubusb    %[ftmp7],   %[ftmp2],       %[ftmp1]                \n\t" 
 1559         "psubusb    %[ftmp5],   %[ftmp1],       %[ftmp2]                \n\t" 
 1560         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1561         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1562         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1563         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp4]                \n\t" 
 1564         "psubusb    %[ftmp5],   %[ftmp4],       %[ftmp3]                \n\t" 
 1565         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1566         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1567         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1568         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1569         MMI_LDC1(%[ftmp5], %[stack], 0x10)
 
 1570         "pcmpeqb    %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1571         "ldc1       %[ftmp10],  %[ff_pb_1]                              \n\t" 
 1572         MMI_SDC1(%[ftmp8], %[stack], 0x20)
 
 1573         "pavgb      %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
 1574         "psubusb    %[ftmp8],   %[ftmp3],       %[ftmp2]                \n\t" 
 1575         "pavgb      %[ftmp5],   %[ftmp5],       %[ftmp10]               \n\t" 
 1576         "psubusb    %[ftmp7],   %[ftmp2],       %[ftmp3]                \n\t" 
 1577         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1578         "psubusb    %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
 1579         MMI_LDC1(%[ftmp15], %[stack], 0x20)
 
 1580         "pcmpeqb    %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1581         "pand       %[ftmp7],   %[ftmp7],       %[ftmp15]               \n\t" 
 1582         MMI_LDXC1(%[ftmp15], %[addr0], %[
stride], 0x00)
 
 1583         "psubusb    %[ftmp8],   %[ftmp15],      %[ftmp2]                \n\t" 
 1584         "psubusb    %[ftmp5],   %[ftmp2],       %[ftmp15]               \n\t" 
 1585         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp6]                \n\t" 
 1586         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1587         "pcmpeqb    %[ftmp5],   %[ftmp5],       %[ftmp8]                \n\t" 
 1588         "pand       %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1589         MMI_LDXC1(%[ftmp14], %[
pix], %[addr2], 0x00)
 
 1590         MMI_SDC1(%[ftmp5], %[stack], 0x30)
 
 1591         "psubusb    %[ftmp8],   %[ftmp14],      %[ftmp3]                \n\t" 
 1592         "psubusb    %[ftmp5],   %[ftmp3],       %[ftmp14]               \n\t" 
 1593         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp6]                \n\t" 
 1594         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1595         "pcmpeqb    %[ftmp5],   %[ftmp5],       %[ftmp8]                \n\t" 
 1596         "pand       %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1597         MMI_SDC1(%[ftmp5], %[stack], 0x40)
 
 1598         "pavgb      %[ftmp5],   %[ftmp15],      %[ftmp1]                \n\t" 
 1599         "pavgb      %[ftmp6],   %[ftmp2],       %[ftmp3]                \n\t" 
 1600         "pavgb      %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1601         MMI_SDC1(%[ftmp6], %[stack], 0x10)
 
 1602         "paddb      %[ftmp7],   %[ftmp15],      %[ftmp1]                \n\t" 
 1603         "paddb      %[ftmp8],   %[ftmp2],       %[ftmp3]                \n\t" 
 1604         "paddb      %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1605         "mov.d      %[ftmp8],   %[ftmp7]                                \n\t" 
 1606         MMI_SDC1(%[ftmp7], %[stack], 0x00)
 
 1607         "psrlh      %[ftmp7],   %[ftmp7],       %[ftmp9]                \n\t" 
 1608         "pavgb      %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
 1609         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
 1610         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1611         "psubb      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1612         "pavgb      %[ftmp6],   %[ftmp15],      %[ftmp4]                \n\t" 
 1613         "psubb      %[ftmp7],   %[ftmp15],      %[ftmp4]                \n\t" 
 1614         "paddb      %[ftmp8],   %[ftmp8],       %[ftmp8]                \n\t" 
 1615         "psubb      %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1616         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1617         "psubb      %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1618         MMI_LDC1(%[ftmp13], %[stack], 0x10)
 
 1619         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp1]                \n\t" 
 1620         "psrlh      %[ftmp8],   %[ftmp8],       %[ftmp11]               \n\t" 
 1621         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp13]               \n\t" 
 1622         "pavgb      %[ftmp8],   %[ftmp8],       %[ftmp0]                \n\t" 
 1623         "pxor       %[ftmp8],   %[ftmp8],       %[ftmp6]                \n\t" 
 1624         "pand       %[ftmp8],   %[ftmp8],       %[ftmp10]               \n\t" 
 1625         "psubb      %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 1626         "pxor       %[ftmp8],   %[ftmp2],       %[ftmp4]                \n\t" 
 1627         "pavgb      %[ftmp7],   %[ftmp2],       %[ftmp4]                \n\t" 
 1628         "pand       %[ftmp8],   %[ftmp8],       %[ftmp10]               \n\t" 
 1629         "psubb      %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1630         MMI_LDC1(%[ftmp13], %[stack], 0x30)
 
 1631         "pavgb      %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
 1632         MMI_LDC1(%[ftmp12], %[stack], 0x20)
 
 1633         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1634         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
 1635         "pand       %[ftmp6],   %[ftmp6],       %[ftmp13]               \n\t" 
 1636         "pand       %[ftmp7],   %[ftmp7],       %[ftmp12]               \n\t" 
 1637         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1638         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp2]                \n\t" 
 1639         MMI_SDXC1(%[ftmp6], %[addr0], %[addr1], 0x00)
 
 1640         MMI_LDC1(%[ftmp6], %[addr0], 0x00)
 
 1641         "paddb      %[ftmp7],   %[ftmp15],      %[ftmp6]                \n\t" 
 1642         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp15]               \n\t" 
 1643         MMI_LDC1(%[ftmp12], %[stack], 0x00)
 
 1644         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
 1645         "paddb      %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1646         "paddb      %[ftmp7],   %[ftmp7],       %[ftmp12]               \n\t" 
 1647         "psrlh      %[ftmp7],   %[ftmp7],       %[ftmp11]               \n\t" 
 1648         "pavgb      %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
 1649         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 1650         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1651         MMI_LDC1(%[ftmp12], %[stack], 0x30)
 
 1652         "psubb      %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1653         "pxor       %[ftmp5],   %[ftmp5],       %[ftmp1]                \n\t" 
 1654         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp15]               \n\t" 
 1655         "pand       %[ftmp5],   %[ftmp5],       %[ftmp12]               \n\t" 
 1656         "pand       %[ftmp6],   %[ftmp6],       %[ftmp12]               \n\t" 
 1657         "pxor       %[ftmp5],   %[ftmp5],       %[ftmp1]                \n\t" 
 1658         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp15]               \n\t" 
 1659         MMI_SDXC1(%[ftmp5], %[addr0], %[addr2], 0x00)
 
 1660         MMI_SDXC1(%[ftmp6], %[addr0], %[
stride], 0x00)
 
 1661         "pavgb      %[ftmp5],   %[ftmp14],      %[ftmp4]                \n\t" 
 1662         "pavgb      %[ftmp6],   %[ftmp3],       %[ftmp2]                \n\t" 
 1663         "pavgb      %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1664         MMI_SDC1(%[ftmp6], %[stack], 0x10)
 
 1665         "paddb      %[ftmp7],   %[ftmp14],      %[ftmp4]                \n\t" 
 1666         "paddb      %[ftmp8],   %[ftmp3],       %[ftmp2]                \n\t" 
 1667         "paddb      %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1668         "mov.d      %[ftmp8],   %[ftmp7]                                \n\t" 
 1669         MMI_SDC1(%[ftmp7], %[stack], 0x00)
 
 1670         "psrlh      %[ftmp7],   %[ftmp7],       %[ftmp9]                \n\t" 
 1671         "pavgb      %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
 1672         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp5]                \n\t" 
 1673         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1674         "psubb      %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1675         "pavgb      %[ftmp6],   %[ftmp14],      %[ftmp1]                \n\t" 
 1676         "paddb      %[ftmp8],   %[ftmp8],       %[ftmp8]                \n\t" 
 1677         "psubb      %[ftmp7],   %[ftmp14],      %[ftmp1]                \n\t" 
 1678         "psubb      %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1679         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1680         "psubb      %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1681         MMI_LDC1(%[ftmp12], %[stack], 0x10)
 
 1682         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp4]                \n\t" 
 1683         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp12]               \n\t" 
 1684         "psrlh      %[ftmp8],   %[ftmp8],       %[ftmp11]               \n\t" 
 1685         "pavgb      %[ftmp8],   %[ftmp8],       %[ftmp0]                \n\t" 
 1686         "pxor       %[ftmp8],   %[ftmp8],       %[ftmp6]                \n\t" 
 1687         "pand       %[ftmp8],   %[ftmp8],       %[ftmp10]               \n\t" 
 1688         "psubb      %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 1689         "pxor       %[ftmp8],   %[ftmp3],       %[ftmp1]                \n\t" 
 1690         "pavgb      %[ftmp7],   %[ftmp3],       %[ftmp1]                \n\t" 
 1691         "pand       %[ftmp8],   %[ftmp8],       %[ftmp10]               \n\t" 
 1692         MMI_LDC1(%[ftmp12], %[stack], 0x40)
 
 1693         "psubb      %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1694         MMI_LDC1(%[ftmp13], %[stack], 0x20)
 
 1695         "pavgb      %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 1696         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1697         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp3]                \n\t" 
 1698         "pand       %[ftmp6],   %[ftmp6],       %[ftmp12]               \n\t" 
 1699         "pand       %[ftmp7],   %[ftmp7],       %[ftmp13]               \n\t" 
 1700         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1701         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
 1702         MMI_SDC1(%[ftmp6], %[
pix], 0x00)
 
 1703         MMI_LDXC1(%[ftmp6], %[
pix], %[addr1], 0x00)
 
 1704         "paddb      %[ftmp7],   %[ftmp14],      %[ftmp6]                \n\t" 
 1705         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp14]               \n\t" 
 1706         MMI_LDC1(%[ftmp12], %[stack], 0x00)
 
 1707         "pavgb      %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
 1708         "paddb      %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1709         "paddb      %[ftmp7],   %[ftmp7],       %[ftmp12]               \n\t" 
 1710         "psrlh      %[ftmp7],   %[ftmp7],       %[ftmp11]               \n\t" 
 1711         "pavgb      %[ftmp7],   %[ftmp7],       %[ftmp0]                \n\t" 
 1712         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 1713         "pand       %[ftmp7],   %[ftmp7],       %[ftmp10]               \n\t" 
 1714         MMI_LDC1(%[ftmp12], %[stack], 0x40)
 
 1715         "psubb      %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1716         "pxor       %[ftmp5],   %[ftmp5],       %[ftmp4]                \n\t" 
 1717         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp14]               \n\t" 
 1718         "pand       %[ftmp5],   %[ftmp5],       %[ftmp12]               \n\t" 
 1719         "pand       %[ftmp6],   %[ftmp6],       %[ftmp12]               \n\t" 
 1720         "pxor       %[ftmp5],   %[ftmp5],       %[ftmp4]                \n\t" 
 1721         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp14]               \n\t" 
 1722         MMI_SDXC1(%[ftmp5], %[
pix], %[
stride], 0x00)
 
 1723         MMI_SDXC1(%[ftmp6], %[
pix], %[addr2], 0x00)
 
 1725         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 1726           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 1727           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 1728           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 1729           [ftmp8]
"=&f"(ftmp[8]),            [ftmp9]
"=&f"(ftmp[9]),
 
 1730           [ftmp10]
"=&f"(ftmp[10]),          [ftmp11]
"=&f"(ftmp[11]),
 
 1731           [ftmp12]
"=&f"(ftmp[12]),          [ftmp13]
"=&f"(ftmp[13]),
 
 1732           [ftmp14]
"=&f"(ftmp[14]),          [ftmp15]
"=&f"(ftmp[15]),
 
 1733           [tmp0]
"=&r"(
tmp[0]),
 
 1736           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1]),
 
 1737           [addr2]
"=&r"(addr[2]),
 
 1746         int beta, int8_t *tc0)
 
 1755         "addi       %[alpha],   %[alpha],       -0x01                   \n\t" 
 1756         "addi       %[beta],    %[beta],        -0x01                   \n\t" 
 1757         "or         %[addr0],   $0,             %[pix]                  \n\t" 
 1758         PTR_SUBU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
 1759         PTR_SUBU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
 1760         MMI_LDC1(%[ftmp1], %[addr0], 0x00)
 
 1761         MMI_LDXC1(%[ftmp2], %[addr0], %[
stride], 0x00)
 
 1762         MMI_LDC1(%[ftmp3], %[
pix], 0x00)
 
 1763         MMI_LDXC1(%[ftmp4], %[
pix], %[
stride], 0x00)
 
 1765         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 1766         "mtc1       %[alpha],   %[ftmp5]                                \n\t" 
 1767         "mtc1       %[beta],    %[ftmp6]                                \n\t" 
 1768         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
 1769         "pshufh     %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
 1770         "packushb   %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1771         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
 1772         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp2]                \n\t" 
 1773         "psubusb    %[ftmp8],   %[ftmp2],       %[ftmp3]                \n\t" 
 1774         "por        %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1775         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1776         "psubusb    %[ftmp7],   %[ftmp2],       %[ftmp1]                \n\t" 
 1777         "psubusb    %[ftmp5],   %[ftmp1],       %[ftmp2]                \n\t" 
 1778         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1779         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1780         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1781         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp4]                \n\t" 
 1782         "psubusb    %[ftmp5],   %[ftmp4],       %[ftmp3]                \n\t" 
 1783         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1784         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1785         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1786         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1787         "pcmpeqb    %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1788         MMI_ULWC1(%[ftmp7], %[tc0], 0x00)
 
 1789         "punpcklbh  %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1790         "pand       %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1791         "pcmpeqb    %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1792         "pxor       %[ftmp6],   %[ftmp2],       %[ftmp3]                \n\t" 
 1793         "pxor       %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1794         "pand       %[ftmp6],   %[ftmp6],       %[ff_pb_1]              \n\t" 
 1795         "pavgb      %[ftmp4],   %[ftmp4],       %[ftmp1]                \n\t" 
 1796         "pxor       %[ftmp5],   %[ftmp5],       %[ftmp2]                \n\t" 
 1797         "pavgb      %[ftmp4],   %[ftmp4],       %[ff_pb_3]              \n\t" 
 1798         "pavgb      %[ftmp5],   %[ftmp5],       %[ftmp3]                \n\t" 
 1799         "pavgb      %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 1800         "paddusb    %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1801         "psubusb    %[ftmp7],   %[ff_pb_A1],    %[ftmp4]                \n\t" 
 1802         "psubusb    %[ftmp4],   %[ftmp4],       %[ff_pb_A1]             \n\t" 
 1803         "pminub     %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 1804         "pminub     %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
 1805         "psubusb    %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
 1806         "psubusb    %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
 1807         "paddusb    %[ftmp2],   %[ftmp2],       %[ftmp4]                \n\t" 
 1808         "paddusb    %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
 1810         MMI_SDXC1(%[ftmp2], %[addr0], %[
stride], 0x00)
 
 1811         MMI_SDC1(%[ftmp3], %[
pix], 0x00)
 
 1812         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 1813           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 1814           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 1815           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 1816           [ftmp8]
"=&f"(ftmp[8]),
 
 1820           [addr0]
"=&r"(addr[0])
 
 1838         "addi       %[alpha],   %[alpha],       -0x01                   \n\t" 
 1839         "addi       %[beta],    %[beta],        -0x01                   \n\t" 
 1840         "or         %[addr0],   $0,             %[pix]                  \n\t" 
 1841         PTR_SUBU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
 1842         PTR_SUBU   "%[addr0],   %[addr0],       %[stride]               \n\t" 
 1843         MMI_LDC1(%[ftmp1], %[addr0], 0x00)
 
 1844         MMI_LDXC1(%[ftmp2], %[addr0], %[
stride], 0x00)
 
 1845         MMI_LDC1(%[ftmp3], %[
pix], 0x00)
 
 1846         MMI_LDXC1(%[ftmp4], %[
pix], %[
stride], 0x00)
 
 1848         "pxor       %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 1849         "mtc1       %[alpha],   %[ftmp5]                                \n\t" 
 1850         "mtc1       %[beta],    %[ftmp6]                                \n\t" 
 1851         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp0]                \n\t" 
 1852         "pshufh     %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
 1853         "packushb   %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1854         "packushb   %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
 1855         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp2]                \n\t" 
 1856         "psubusb    %[ftmp8],   %[ftmp2],       %[ftmp3]                \n\t" 
 1857         "por        %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1858         "psubusb    %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1859         "psubusb    %[ftmp7],   %[ftmp2],       %[ftmp1]                \n\t" 
 1860         "psubusb    %[ftmp5],   %[ftmp1],       %[ftmp2]                \n\t" 
 1861         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1862         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1863         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1864         "psubusb    %[ftmp7],   %[ftmp3],       %[ftmp4]                \n\t" 
 1865         "psubusb    %[ftmp5],   %[ftmp4],       %[ftmp3]                \n\t" 
 1866         "por        %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1867         "psubusb    %[ftmp5],   %[ftmp5],       %[ftmp6]                \n\t" 
 1868         "por        %[ftmp8],   %[ftmp8],       %[ftmp5]                \n\t" 
 1869         "pxor       %[ftmp7],   %[ftmp7],       %[ftmp7]                \n\t" 
 1870         "pcmpeqb    %[ftmp8],   %[ftmp8],       %[ftmp7]                \n\t" 
 1871         "mov.d      %[ftmp6],   %[ftmp2]                                \n\t" 
 1872         "mov.d      %[ftmp7],   %[ftmp3]                                \n\t" 
 1873         "pxor       %[ftmp5],   %[ftmp2],       %[ftmp4]                \n\t" 
 1874         "pand       %[ftmp5],   %[ftmp5],       %[ff_pb_1]              \n\t" 
 1875         "pavgb      %[ftmp2],   %[ftmp2],       %[ftmp4]                \n\t" 
 1876         "psubusb    %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
 1877         "pavgb      %[ftmp2],   %[ftmp2],       %[ftmp1]                \n\t" 
 1878         "pxor       %[ftmp5],   %[ftmp3],       %[ftmp1]                \n\t" 
 1879         "pand       %[ftmp5],   %[ftmp5],       %[ff_pb_1]              \n\t" 
 1880         "pavgb      %[ftmp3],   %[ftmp3],       %[ftmp1]                \n\t" 
 1881         "psubusb    %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
 1882         "pavgb      %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
 1883         "psubb      %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 1884         "psubb      %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
 1885         "pand       %[ftmp2],   %[ftmp2],       %[ftmp8]                \n\t" 
 1886         "pand       %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
 1887         "paddb      %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 1888         "paddb      %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
 1890         MMI_SDXC1(%[ftmp2], %[addr0], %[
stride], 0x00)
 
 1891         MMI_SDC1(%[ftmp3], %[
pix], 0x00)
 
 1892         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 1893           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 1894           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 1895           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 1896           [ftmp8]
"=&f"(ftmp[8]),
 
 1899           [addr0]
"=&r"(addr[0])
 
 1915         "addi       %[alpha],   %[alpha],       -0x01                   \n\t" 
 1916         "addi       %[beta],    %[beta],        -0x01                   \n\t" 
 1917         PTR_ADDU   "%[addr0],   %[stride],      %[stride]               \n\t" 
 1918         PTR_ADDI   "%[pix],     %[pix],         -0x02                   \n\t" 
 1919         PTR_ADDU   "%[addr1],   %[addr0],       %[stride]               \n\t" 
 1920         PTR_ADDU   "%[addr2],   %[addr0],       %[addr0]                \n\t" 
 1921         "or         %[addr5],   $0,             %[pix]                  \n\t" 
 1922         PTR_ADDU   "%[pix],     %[pix],         %[addr1]                \n\t" 
 1923         MMI_ULWC1(%[ftmp0], %[addr5], 0x00)
 
 1924         PTR_ADDU   "%[addr3],   %[addr5],       %[stride]               \n\t" 
 1925         MMI_ULWC1(%[ftmp2], %[addr3], 0x00)
 
 1926         PTR_ADDU   "%[addr4],   %[addr5],       %[addr0]                \n\t" 
 1927         MMI_ULWC1(%[ftmp1], %[addr4], 0x00)
 
 1928         MMI_ULWC1(%[ftmp3], %[
pix], 0x00)
 
 1929         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 1930         "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp3]                \n\t" 
 1931         PTR_ADDU   "%[addr3],   %[pix],         %[stride]               \n\t" 
 1932         "punpckhhw  %[ftmp2],   %[ftmp0],       %[ftmp1]                \n\t" 
 1933         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 1934         MMI_ULWC1(%[ftmp4], %[addr3], 0x00)
 
 1935         PTR_ADDU   "%[addr4],   %[pix],         %[addr0]                \n\t" 
 1936         MMI_ULWC1(%[ftmp6], %[addr4], 0x00)
 
 1937         PTR_ADDU   "%[addr3],   %[pix],         %[addr1]                \n\t" 
 1938         MMI_ULWC1(%[ftmp5], %[addr3], 0x00)
 
 1939         PTR_ADDU   "%[addr4],   %[pix],         %[addr2]                \n\t" 
 1940         MMI_ULWC1(%[ftmp7], %[addr4], 0x00)
 
 1941         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 1942         "punpcklbh  %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 1943         "mov.d      %[ftmp6],   %[ftmp4]                                \n\t" 
 1944         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1945         "punpckhhw  %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
 1946         "punpckhwd  %[ftmp1],   %[ftmp0],       %[ftmp4]                \n\t" 
 1947         "punpckhwd  %[ftmp3],   %[ftmp2],       %[ftmp6]                \n\t" 
 1948         "punpcklwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 1949         "punpcklwd  %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 1950         "mov.d      %[ftmp9],   %[ftmp0]                                \n\t" 
 1951         "mov.d      %[ftmp10],  %[ftmp3]                                \n\t" 
 1953         "pxor       %[ftmp8],   %[ftmp8],       %[ftmp8]                \n\t" 
 1954         "mtc1       %[alpha],   %[ftmp4]                                \n\t" 
 1955         "mtc1       %[beta],    %[ftmp5]                                \n\t" 
 1956         "pshufh     %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
 1957         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp8]                \n\t" 
 1958         "packushb   %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
 1959         "packushb   %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 1960         "psubusb    %[ftmp6],   %[ftmp2],       %[ftmp1]                \n\t" 
 1961         "psubusb    %[ftmp7],   %[ftmp1],       %[ftmp2]                \n\t" 
 1962         "por        %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 1963         "psubusb    %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 1964         "psubusb    %[ftmp6],   %[ftmp1],       %[ftmp0]                \n\t" 
 1965         "psubusb    %[ftmp4],   %[ftmp0],       %[ftmp1]                \n\t" 
 1966         "por        %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 1967         "psubusb    %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1968         "por        %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 1969         "psubusb    %[ftmp6],   %[ftmp2],       %[ftmp3]                \n\t" 
 1970         "psubusb    %[ftmp4],   %[ftmp3],       %[ftmp2]                \n\t" 
 1971         "por        %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 1972         "psubusb    %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 1973         "por        %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 1974         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
 1975         "pcmpeqb    %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 1976         MMI_ULWC1(%[ftmp6], %[tc0], 0x00)
 
 1977         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
 1978         "pand       %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 1979         "pcmpeqb    %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
 1980         "pxor       %[ftmp5],   %[ftmp1],       %[ftmp2]                \n\t" 
 1981         "pxor       %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
 1982         "pand       %[ftmp5],   %[ftmp5],       %[ff_pb_1]              \n\t" 
 1983         "pavgb      %[ftmp3],   %[ftmp3],       %[ftmp0]                \n\t" 
 1984         "pxor       %[ftmp4],   %[ftmp4],       %[ftmp1]                \n\t" 
 1985         "pavgb      %[ftmp3],   %[ftmp3],       %[ff_pb_3]              \n\t" 
 1986         "pavgb      %[ftmp4],   %[ftmp4],       %[ftmp2]                \n\t" 
 1987         "pavgb      %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
 1988         "paddusb    %[ftmp3],   %[ftmp3],       %[ftmp4]                \n\t" 
 1989         "psubusb    %[ftmp6],   %[ff_pb_A1],    %[ftmp3]                \n\t" 
 1990         "psubusb    %[ftmp3],   %[ftmp3],       %[ff_pb_A1]             \n\t" 
 1991         "pminub     %[ftmp6],   %[ftmp6],       %[ftmp7]                \n\t" 
 1992         "pminub     %[ftmp3],   %[ftmp3],       %[ftmp7]                \n\t" 
 1993         "psubusb    %[ftmp1],   %[ftmp1],       %[ftmp6]                \n\t" 
 1994         "psubusb    %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 1995         "paddusb    %[ftmp1],   %[ftmp1],       %[ftmp3]                \n\t" 
 1996         "paddusb    %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 1998         "punpckhwd  %[ftmp4],   %[ftmp9],       %[ftmp9]                \n\t" 
 1999         "punpckhwd  %[ftmp5],   %[ftmp1],       %[ftmp1]                \n\t" 
 2000         "punpckhwd  %[ftmp6],   %[ftmp2],       %[ftmp2]                \n\t" 
 2001         "punpcklbh  %[ftmp0],   %[ftmp9],       %[ftmp1]                \n\t" 
 2002         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp10]               \n\t" 
 2003         "punpcklhw  %[ftmp1],   %[ftmp0],       %[ftmp2]                \n\t" 
 2004         "punpckhhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2005         MMI_USWC1(%[ftmp1], %[addr5], 0x00)
 
 2006         PTR_ADDU   "%[addr3],   %[addr5],       %[stride]               \n\t" 
 2007         "punpckhwd  %[ftmp1],   %[ftmp1],       %[ftmp1]                \n\t" 
 2008         MMI_USWC1(%[ftmp1], %[addr3], 0x00)
 
 2009         PTR_ADDU   "%[addr4],   %[addr5],       %[addr0]                \n\t" 
 2010         MMI_USWC1(%[ftmp0], %[addr4], 0x00)
 
 2011         "punpckhwd  %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 2012         "punpckhwd  %[ftmp3],   %[ftmp10],      %[ftmp10]               \n\t" 
 2013         MMI_USWC1(%[ftmp0], %[
pix], 0x00)
 
 2014         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2015         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
 2016         PTR_ADDU   "%[addr3],   %[pix],         %[stride]               \n\t" 
 2017         "punpcklhw  %[ftmp5],   %[ftmp4],       %[ftmp6]                \n\t" 
 2018         "punpckhhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2019         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2020         "punpckhwd  %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 2021         PTR_ADDU   "%[addr3],   %[pix],         %[addr0]                \n\t" 
 2022         PTR_ADDU   "%[addr4],   %[pix],         %[addr1]                \n\t" 
 2023         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2024         MMI_USWC1(%[ftmp4], %[addr4], 0x00)
 
 2025         PTR_ADDU   "%[addr3],   %[pix],         %[addr2]                \n\t" 
 2026         "punpckhwd  %[ftmp9],   %[ftmp4],       %[ftmp4]                \n\t" 
 2027         MMI_USWC1(%[ftmp9], %[addr3], 0x00)
 
 2028         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 2029           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 2030           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 2031           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 2032           [ftmp8]
"=&f"(ftmp[8]),            [ftmp9]
"=&f"(ftmp[9]),
 
 2033           [ftmp10]
"=&f"(ftmp[10]),
 
 2035           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1]),
 
 2036           [addr2]
"=&r"(addr[2]),            [addr3]
"=&r"(addr[3]),
 
 2037           [addr4]
"=&r"(addr[4]),            [addr5]
"=&r"(addr[5]),
 
 2055         "addi       %[alpha],   %[alpha],       -0x01                   \n\t" 
 2056         "addi       %[beta],    %[beta],        -0x01                   \n\t" 
 2057         PTR_ADDU   "%[addr0],   %[stride],      %[stride]               \n\t" 
 2058         PTR_ADDI   "%[pix],     %[pix],         -0x02                   \n\t" 
 2059         PTR_ADDU   "%[addr1],   %[addr0],       %[stride]               \n\t" 
 2060         PTR_ADDU   "%[addr2],   %[addr0],       %[addr0]                \n\t" 
 2061         "or         %[addr5],   $0,             %[pix]                  \n\t" 
 2062         PTR_ADDU   "%[pix],     %[pix],         %[addr1]                \n\t" 
 2063         MMI_ULWC1(%[ftmp0], %[addr5], 0x00)
 
 2064         PTR_ADDU   "%[addr3],   %[addr5],       %[stride]               \n\t" 
 2065         MMI_ULWC1(%[ftmp2], %[addr3], 0x00)
 
 2066         PTR_ADDU   "%[addr4],   %[addr5],       %[addr0]                \n\t" 
 2067         MMI_ULWC1(%[ftmp1], %[addr4], 0x00)
 
 2068         MMI_ULWC1(%[ftmp3], %[
pix], 0x00)
 
 2069         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2070         "punpcklbh  %[ftmp1],   %[ftmp1],       %[ftmp3]                \n\t" 
 2071         PTR_ADDU   "%[addr3],   %[pix],         %[stride]               \n\t" 
 2072         "punpckhhw  %[ftmp2],   %[ftmp0],       %[ftmp1]                \n\t" 
 2073         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2074         MMI_ULWC1(%[ftmp4], %[addr3], 0x00)
 
 2075         PTR_ADDU   "%[addr4],   %[pix],         %[addr0]                \n\t" 
 2076         MMI_ULWC1(%[ftmp6], %[addr4], 0x00)
 
 2077         PTR_ADDU   "%[addr3],   %[pix],         %[addr1]                \n\t" 
 2078         MMI_ULWC1(%[ftmp5], %[addr3], 0x00)
 
 2079         PTR_ADDU   "%[addr4],   %[pix],         %[addr2]                \n\t" 
 2080         MMI_ULWC1(%[ftmp7], %[addr4], 0x00)
 
 2081         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2082         "punpcklbh  %[ftmp5],   %[ftmp5],       %[ftmp7]                \n\t" 
 2083         "mov.d      %[ftmp6],   %[ftmp4]                                \n\t" 
 2084         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2085         "punpckhhw  %[ftmp6],   %[ftmp6],       %[ftmp5]                \n\t" 
 2086         "punpckhwd  %[ftmp1],   %[ftmp0],       %[ftmp4]                \n\t" 
 2087         "punpckhwd  %[ftmp3],   %[ftmp2],       %[ftmp6]                \n\t" 
 2088         "punpcklwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 2089         "punpcklwd  %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 2091         "pxor       %[ftmp8],   %[ftmp8],       %[ftmp8]                \n\t" 
 2092         "mtc1       %[alpha],   %[ftmp4]                                \n\t" 
 2093         "mtc1       %[beta],    %[ftmp5]                                \n\t" 
 2094         "pshufh     %[ftmp4],   %[ftmp4],       %[ftmp8]                \n\t" 
 2095         "pshufh     %[ftmp5],   %[ftmp5],       %[ftmp8]                \n\t" 
 2096         "packushb   %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
 2097         "packushb   %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 2098         "psubusb    %[ftmp6],   %[ftmp2],       %[ftmp1]                \n\t" 
 2099         "psubusb    %[ftmp7],   %[ftmp1],       %[ftmp2]                \n\t" 
 2100         "por        %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 2101         "psubusb    %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 2102         "psubusb    %[ftmp6],   %[ftmp1],       %[ftmp0]                \n\t" 
 2103         "psubusb    %[ftmp4],   %[ftmp0],       %[ftmp1]                \n\t" 
 2104         "por        %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2105         "psubusb    %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2106         "por        %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 2107         "psubusb    %[ftmp6],   %[ftmp2],       %[ftmp3]                \n\t" 
 2108         "psubusb    %[ftmp4],   %[ftmp3],       %[ftmp2]                \n\t" 
 2109         "por        %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2110         "psubusb    %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2111         "por        %[ftmp7],   %[ftmp7],       %[ftmp4]                \n\t" 
 2112         "pxor       %[ftmp6],   %[ftmp6],       %[ftmp6]                \n\t" 
 2113         "pcmpeqb    %[ftmp7],   %[ftmp7],       %[ftmp6]                \n\t" 
 2114         "mov.d      %[ftmp5],   %[ftmp1]                                \n\t" 
 2115         "mov.d      %[ftmp6],   %[ftmp2]                                \n\t" 
 2116         "pxor       %[ftmp4],   %[ftmp1],       %[ftmp3]                \n\t" 
 2117         "pand       %[ftmp4],   %[ftmp4],       %[ff_pb_1]              \n\t" 
 2118         "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp3]                \n\t" 
 2119         "psubusb    %[ftmp1],   %[ftmp1],       %[ftmp4]                \n\t" 
 2120         "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp0]                \n\t" 
 2121         "pxor       %[ftmp4],   %[ftmp2],       %[ftmp0]                \n\t" 
 2122         "pand       %[ftmp4],   %[ftmp4],       %[ff_pb_1]              \n\t" 
 2123         "pavgb      %[ftmp2],   %[ftmp2],       %[ftmp0]                \n\t" 
 2124         "psubusb    %[ftmp2],   %[ftmp2],       %[ftmp4]                \n\t" 
 2125         "pavgb      %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2126         "psubb      %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
 2127         "psubb      %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 2128         "pand       %[ftmp1],   %[ftmp1],       %[ftmp7]                \n\t" 
 2129         "pand       %[ftmp2],   %[ftmp2],       %[ftmp7]                \n\t" 
 2130         "paddb      %[ftmp1],   %[ftmp1],       %[ftmp5]                \n\t" 
 2131         "paddb      %[ftmp2],   %[ftmp2],       %[ftmp6]                \n\t" 
 2133         "punpckhwd  %[ftmp4],   %[ftmp0],       %[ftmp0]                \n\t" 
 2134         "punpckhwd  %[ftmp5],   %[ftmp1],       %[ftmp1]                \n\t" 
 2135         "punpckhwd  %[ftmp6],   %[ftmp2],       %[ftmp2]                \n\t" 
 2136         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2137         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2138         "punpcklhw  %[ftmp1],   %[ftmp0],       %[ftmp2]                \n\t" 
 2139         "punpckhhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2140         MMI_USWC1(%[ftmp1], %[addr5], 0x00)
 
 2141         PTR_ADDU   "%[addr3],   %[addr5],       %[stride]               \n\t" 
 2142         "punpckhwd  %[ftmp1],   %[ftmp1],       %[ftmp1]                \n\t" 
 2143         PTR_ADDU   "%[addr4],   %[addr5],       %[addr0]                \n\t" 
 2144         MMI_USWC1(%[ftmp1], %[addr3], 0x00)
 
 2145         MMI_USWC1(%[ftmp0], %[addr4], 0x00)
 
 2146         "punpckhwd  %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 2147         "punpckhwd  %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
 2148         MMI_USWC1(%[ftmp0], %[
pix], 0x00)
 
 2149         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2150         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
 2151         PTR_ADDU   "%[addr3],   %[pix],         %[stride]               \n\t" 
 2152         "punpcklhw  %[ftmp5],   %[ftmp4],       %[ftmp6]                \n\t" 
 2153         "punpckhhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2154         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2155         "punpckhwd  %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 2156         PTR_ADDU   "%[addr3],   %[pix],         %[addr0]                \n\t" 
 2157         PTR_ADDU   "%[addr4],   %[pix],         %[addr1]                \n\t" 
 2158         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2159         PTR_ADDU   "%[addr3],   %[pix],         %[addr2]                \n\t" 
 2160         MMI_USWC1(%[ftmp4], %[addr4], 0x00)
 
 2161         "punpckhwd  %[ftmp9],   %[ftmp4],       %[ftmp4]                \n\t" 
 2162         MMI_USWC1(%[ftmp9], %[addr3], 0x00)
 
 2163         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 2164           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 2165           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 2166           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 2167           [ftmp8]
"=&f"(ftmp[8]),            [ftmp9]
"=&f"(ftmp[9]),
 
 2168           [ftmp10]
"=&f"(ftmp[10]),
 
 2170           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1]),
 
 2171           [addr2]
"=&r"(addr[2]),            [addr3]
"=&r"(addr[3]),
 
 2172           [addr4]
"=&r"(addr[4]),            [addr5]
"=&r"(addr[5]),
 
 2183     if ((tc0[0] & tc0[1]) >= 0)
 
 2185     if ((tc0[2] & tc0[3]) >= 0)
 
 2206         PTR_ADDU   "%[addr0],   %[stride],      %[stride]               \n\t" 
 2207         PTR_ADDI   "%[addr1],   %[pix],         -0x4                    \n\t" 
 2208         PTR_ADDU   "%[addr2],   %[stride],      %[addr0]                \n\t" 
 2209         MMI_ULDC1(%[ftmp0], %[addr1], 0x00)
 
 2210         PTR_ADDU   "%[addr3],   %[addr1],       %[stride]               \n\t" 
 2211         PTR_ADDU   "%[addr4],   %[addr1],       %[addr2]                \n\t" 
 2212         MMI_ULDC1(%[ftmp1], %[addr3], 0x00)
 
 2213         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2214         MMI_ULDC1(%[ftmp2], %[addr5], 0x00)
 
 2215         MMI_ULDC1(%[ftmp3], %[addr4], 0x00)
 
 2216         PTR_ADDU   "%[addr3],   %[addr4],       %[stride]               \n\t" 
 2217         MMI_ULDC1(%[ftmp4], %[addr3], 0x00)
 
 2218         PTR_ADDU   "%[addr5],   %[addr4],       %[addr0]                \n\t" 
 2219         MMI_ULDC1(%[ftmp5], %[addr5], 0x00)
 
 2220         PTR_ADDU   "%[addr3],   %[addr4],       %[addr2]                \n\t" 
 2221         MMI_ULDC1(%[ftmp6], %[addr3], 0x00)
 
 2222         PTR_ADDU   "%[addr6],   %[addr0],       %[addr0]                \n\t" 
 2223         "punpckhbh  %[ftmp7],   %[ftmp0],       %[ftmp1]                \n\t" 
 2224         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2225         "punpckhbh  %[ftmp1],   %[ftmp2],       %[ftmp3]                \n\t" 
 2226         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2227         "punpckhbh  %[ftmp3],   %[ftmp4],       %[ftmp5]                \n\t" 
 2228         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2229         PTR_ADDU   "%[addr3],   %[addr4],       %[addr6]                \n\t" 
 2230         MMI_SDC1(%[ftmp1], %[stack], 0x10)
 
 2231         MMI_ULDC1(%[ftmp8], %[addr3], 0x00)
 
 2232         PTR_ADDU   "%[addr7],   %[addr6],       %[addr6]                \n\t" 
 2233         "punpckhbh  %[ftmp5],   %[ftmp6],       %[ftmp8]                \n\t" 
 2234         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 2235         "punpckhhw  %[ftmp1],   %[ftmp0],       %[ftmp2]                \n\t" 
 2236         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2237         "punpckhhw  %[ftmp2],   %[ftmp4],       %[ftmp6]                \n\t" 
 2238         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2239         MMI_LDC1(%[ftmp8], %[stack], 0x10)
 
 2240         "punpckhwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 2241         MMI_SDC1(%[ftmp0], %[stack], 0x00)
 
 2242         "punpckhhw  %[ftmp6],   %[ftmp7],       %[ftmp8]                \n\t" 
 2243         "punpcklhw  %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 2244         "punpckhhw  %[ftmp0],   %[ftmp3],       %[ftmp5]                \n\t" 
 2245         "punpcklhw  %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
 2246         "punpcklwd  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
 2247         "punpckhwd  %[ftmp5],   %[ftmp7],       %[ftmp3]                \n\t" 
 2248         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp3]                \n\t" 
 2249         "punpckhwd  %[ftmp3],   %[ftmp1],       %[ftmp2]                \n\t" 
 2250         "punpcklwd  %[ftmp1],   %[ftmp1],       %[ftmp2]                \n\t" 
 2251         MMI_SDC1(%[ftmp1], %[stack], 0x10)
 
 2252         MMI_SDC1(%[ftmp3], %[stack], 0x20)
 
 2253         MMI_SDC1(%[ftmp7], %[stack], 0x30)
 
 2254         MMI_SDC1(%[ftmp5], %[stack], 0x40)
 
 2255         MMI_SDC1(%[ftmp6], %[stack], 0x50)
 
 2256         PTR_ADDU   "%[addr1],   %[addr1],       %[addr7]                \n\t" 
 2257         PTR_ADDU   "%[addr4],   %[addr4],       %[addr7]                \n\t" 
 2258         MMI_ULDC1(%[ftmp0], %[addr1], 0x00)
 
 2259         PTR_ADDU   "%[addr3],   %[addr1],       %[stride]               \n\t" 
 2260         MMI_ULDC1(%[ftmp1], %[addr3], 0x00)
 
 2261         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2262         MMI_ULDC1(%[ftmp2], %[addr5], 0x00)
 
 2263         MMI_ULDC1(%[ftmp3], %[addr4], 0x00)
 
 2264         PTR_ADDU   "%[addr3],   %[addr4],       %[stride]               \n\t" 
 2265         MMI_ULDC1(%[ftmp4], %[addr3], 0x00)
 
 2266         PTR_ADDU   "%[addr5],   %[addr4],       %[addr0]                \n\t" 
 2267         MMI_ULDC1(%[ftmp5], %[addr5], 0x00)
 
 2268         PTR_ADDU   "%[addr3],   %[addr4],       %[addr2]                \n\t" 
 2269         MMI_ULDC1(%[ftmp6], %[addr3], 0x00)
 
 2270         "punpckhbh  %[ftmp7],   %[ftmp0],       %[ftmp1]                \n\t" 
 2271         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2272         "punpckhbh  %[ftmp1],   %[ftmp2],       %[ftmp3]                \n\t" 
 2273         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2274         "punpckhbh  %[ftmp3],   %[ftmp4],       %[ftmp5]                \n\t" 
 2275         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2276         PTR_ADDU   "%[addr3],   %[addr4],       %[addr6]                \n\t" 
 2277         MMI_SDC1(%[ftmp1], %[stack], 0x18)
 
 2278         MMI_ULDC1(%[ftmp8], %[addr3], 0x00)
 
 2279         "punpckhhw  %[ftmp1],   %[ftmp0],       %[ftmp2]                \n\t" 
 2280         "punpckhbh  %[ftmp5],   %[ftmp6],       %[ftmp8]                \n\t" 
 2281         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 2282         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2283         "punpckhhw  %[ftmp2],   %[ftmp4],       %[ftmp6]                \n\t" 
 2284         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2285         "punpckhwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 2286         MMI_LDC1(%[ftmp8], %[stack], 0x18)
 
 2287         MMI_SDC1(%[ftmp0], %[stack], 0x08)
 
 2288         "punpckhhw  %[ftmp6],   %[ftmp7],       %[ftmp8]                \n\t" 
 2289         "punpcklhw  %[ftmp7],   %[ftmp7],       %[ftmp8]                \n\t" 
 2290         "punpckhhw  %[ftmp0],   %[ftmp3],       %[ftmp5]                \n\t" 
 2291         "punpcklhw  %[ftmp3],   %[ftmp3],       %[ftmp5]                \n\t" 
 2292         "punpckhwd  %[ftmp5],   %[ftmp7],       %[ftmp3]                \n\t" 
 2293         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp3]                \n\t" 
 2294         "punpckhwd  %[ftmp3],   %[ftmp1],       %[ftmp2]                \n\t" 
 2295         "punpcklwd  %[ftmp1],   %[ftmp1],       %[ftmp2]                \n\t" 
 2296         "punpcklwd  %[ftmp6],   %[ftmp6],       %[ftmp0]                \n\t" 
 2297         MMI_SDC1(%[ftmp1], %[stack], 0x18)
 
 2298         MMI_SDC1(%[ftmp3], %[stack], 0x28)
 
 2299         MMI_SDC1(%[ftmp7], %[stack], 0x38)
 
 2300         MMI_SDC1(%[ftmp5], %[stack], 0x48)
 
 2301         MMI_SDC1(%[ftmp6], %[stack], 0x58)
 
 2302         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 2303           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 2304           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 2305           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 2306           [ftmp8]
"=&f"(ftmp[8]),
 
 2308           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1]),
 
 2309           [addr2]
"=&r"(addr[2]),            [addr3]
"=&r"(addr[3]),
 
 2310           [addr4]
"=&r"(addr[4]),            [addr5]
"=&r"(addr[5]),
 
 2311           [addr6]
"=&r"(addr[6]),            [addr7]
"=&r"(addr[7])
 
 2320         PTR_ADDU   "%[addr0],   %[stride],      %[stride]               \n\t" 
 2321         PTR_ADDI   "%[addr1],   %[pix],         -0x02                   \n\t" 
 2322         PTR_ADDU   "%[addr6],   %[addr0],       %[addr0]                \n\t" 
 2323         PTR_ADDU   "%[addr2],   %[addr0],       %[stride]               \n\t" 
 2324         PTR_ADDU   "%[addr7],   %[addr6],       %[addr6]                \n\t" 
 2325         PTR_ADDU   "%[addr4],   %[addr1],       %[addr2]                \n\t" 
 2326         MMI_LDC1(%[ftmp0], %[stack], 0x10)
 
 2327         MMI_LDC1(%[ftmp1], %[stack], 0x20)
 
 2328         MMI_LDC1(%[ftmp2], %[stack], 0x30)
 
 2329         MMI_LDC1(%[ftmp3], %[stack], 0x40)
 
 2330         "punpckhwd  %[ftmp4],   %[ftmp0],       %[ftmp0]                \n\t" 
 2331         "punpckhwd  %[ftmp5],   %[ftmp1],       %[ftmp1]                \n\t" 
 2332         "punpckhwd  %[ftmp6],   %[ftmp2],       %[ftmp2]                \n\t" 
 2333         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2334         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2335         "punpcklhw  %[ftmp1],   %[ftmp0],       %[ftmp2]                \n\t" 
 2336         "punpckhhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2337         MMI_USWC1(%[ftmp1], %[addr1], 0x00)
 
 2338         PTR_ADDU   "%[addr3],   %[addr1],       %[stride]               \n\t" 
 2339         "punpckhwd  %[ftmp1],   %[ftmp1],       %[ftmp1]                \n\t" 
 2340         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2341         MMI_USWC1(%[ftmp1], %[addr3], 0x00)
 
 2342         MMI_USWC1(%[ftmp0], %[addr5], 0x00)
 
 2343         "punpckhwd  %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 2344         "punpckhwd  %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
 2345         MMI_USWC1(%[ftmp0], %[addr4], 0x00)
 
 2346         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2347         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
 2348         "punpcklhw  %[ftmp5],   %[ftmp4],       %[ftmp6]                \n\t" 
 2349         PTR_ADDU   "%[addr3],   %[addr4],       %[stride]               \n\t" 
 2350         "punpckhhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2351         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2352         PTR_ADDU   "%[addr3],   %[addr4],       %[addr0]                \n\t" 
 2353         "punpckhwd  %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 2354         PTR_ADDU   "%[addr5],   %[addr4],       %[addr2]                \n\t" 
 2355         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2356         MMI_USWC1(%[ftmp4], %[addr5], 0x00)
 
 2357         PTR_ADDU   "%[addr3],   %[addr4],       %[addr6]                \n\t" 
 2358         "punpckhwd  %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
 2359         PTR_ADDU   "%[addr1],   %[addr1],       %[addr7]                \n\t" 
 2360         MMI_USWC1(%[ftmp4], %[addr3], 0x00)
 
 2361         PTR_ADDU   "%[addr4],   %[addr4],       %[addr7]                \n\t" 
 2362         MMI_LDC1(%[ftmp0], %[stack], 0x18)
 
 2363         MMI_LDC1(%[ftmp1], %[stack], 0x28)
 
 2364         MMI_LDC1(%[ftmp2], %[stack], 0x38)
 
 2365         MMI_LDC1(%[ftmp3], %[stack], 0x48)
 
 2366         PTR_ADDU   "%[addr0],   %[stride],      %[stride]               \n\t" 
 2367         "punpckhwd  %[ftmp4],   %[ftmp0],       %[ftmp0]                \n\t" 
 2368         PTR_ADDU   "%[addr6],   %[addr0],       %[addr0]                \n\t" 
 2369         "punpckhwd  %[ftmp5],   %[ftmp1],       %[ftmp1]                \n\t" 
 2370         "punpckhwd  %[ftmp6],   %[ftmp2],       %[ftmp2]                \n\t" 
 2371         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2372         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2373         PTR_ADDU   "%[addr3],   %[addr1],       %[stride]               \n\t" 
 2374         "punpcklhw  %[ftmp1],   %[ftmp0],       %[ftmp2]                \n\t" 
 2375         "punpckhhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2376         MMI_USWC1(%[ftmp1], %[addr1], 0x00)
 
 2377         "punpckhwd  %[ftmp1],   %[ftmp1],       %[ftmp1]                \n\t" 
 2378         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2379         MMI_USWC1(%[ftmp1], %[addr3], 0x00)
 
 2380         MMI_USWC1(%[ftmp0], %[addr5], 0x00)
 
 2381         "punpckhwd  %[ftmp0],   %[ftmp0],       %[ftmp0]                \n\t" 
 2382         "punpckhwd  %[ftmp3],   %[ftmp3],       %[ftmp3]                \n\t" 
 2383         MMI_USWC1(%[ftmp0], %[addr4], 0x00)
 
 2384         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2385         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp3]                \n\t" 
 2386         PTR_ADDU   "%[addr3],   %[addr4],       %[stride]               \n\t" 
 2387         "punpcklhw  %[ftmp5],   %[ftmp4],       %[ftmp6]                \n\t" 
 2388         "punpckhhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2389         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2390         PTR_ADDU   "%[addr3],   %[addr4],       %[addr0]                \n\t" 
 2391         "punpckhwd  %[ftmp5],   %[ftmp5],       %[ftmp5]                \n\t" 
 2392         PTR_ADDU   "%[addr5],   %[addr4],       %[addr2]                \n\t" 
 2393         MMI_USWC1(%[ftmp5], %[addr3], 0x00)
 
 2394         MMI_USWC1(%[ftmp4], %[addr5], 0x00)
 
 2395         PTR_ADDU   "%[addr3],   %[addr4],       %[addr6]                \n\t" 
 2396         "punpckhwd  %[ftmp4],   %[ftmp4],       %[ftmp4]                \n\t" 
 2397         MMI_USWC1(%[ftmp4], %[addr3], 0x00)
 
 2398         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 2399           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 2400           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 2401           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 2402           [ftmp8]
"=&f"(ftmp[8]),
 
 2405           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1]),
 
 2406           [addr2]
"=&r"(addr[2]),            [addr3]
"=&r"(addr[3]),
 
 2407           [addr4]
"=&r"(addr[4]),            [addr5]
"=&r"(addr[5]),
 
 2408           [addr6]
"=&r"(addr[6]),            [addr7]
"=&r"(addr[7])
 
 2425         PTR_ADDU   "%[addr0],   %[stride],      %[stride]               \n\t" 
 2426         PTR_ADDI   "%[addr1],   %[pix],         -0x04                   \n\t" 
 2427         PTR_ADDU   "%[addr2],   %[addr0],       %[stride]               \n\t" 
 2428         PTR_ADDU   "%[addr3],   %[addr0],       %[addr0]                \n\t" 
 2429         PTR_ADDU   "%[addr4],   %[addr1],       %[addr2]                \n\t" 
 2430         PTR_ADDU   "%[addr5],   %[addr1],       %[stride]               \n\t" 
 2431         MMI_ULDC1(%[ftmp0], %[addr1], 0x00)
 
 2432         PTR_ADDU   "%[addr6],   %[addr1],       %[addr0]                \n\t" 
 2433         MMI_ULDC1(%[ftmp1], %[addr5], 0x00)
 
 2434         MMI_ULDC1(%[ftmp2], %[addr6], 0x00)
 
 2435         PTR_ADDU   "%[addr5],   %[addr4],       %[stride]               \n\t" 
 2436         MMI_ULDC1(%[ftmp3], %[addr4], 0x00)
 
 2437         PTR_ADDU   "%[addr6],   %[addr4],       %[addr0]                \n\t" 
 2438         MMI_ULDC1(%[ftmp4], %[addr5], 0x00)
 
 2439         PTR_ADDU   "%[addr5],   %[addr4],       %[addr2]                \n\t" 
 2440         MMI_ULDC1(%[ftmp5], %[addr6], 0x00)
 
 2441         MMI_ULDC1(%[ftmp6], %[addr5], 0x00)
 
 2442         PTR_ADDU   "%[addr5],   %[addr4],       %[addr3]                \n\t" 
 2443         "punpckhbh  %[ftmp7],   %[ftmp0],       %[ftmp1]                \n\t" 
 2444         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2445         "punpckhbh  %[ftmp1],   %[ftmp2],       %[ftmp3]                \n\t" 
 2446         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2447         "punpckhbh  %[ftmp3],   %[ftmp4],       %[ftmp5]                \n\t" 
 2448         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2449         MMI_ULDC1(%[ftmp8], %[addr5], 0x00)
 
 2450         "punpckhbh  %[ftmp5],   %[ftmp6],       %[ftmp8]                \n\t" 
 2451         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 2452         MMI_SDC1(%[ftmp3], %[ptmp], 0x00)
 
 2453         "punpckhhw  %[ftmp3],   %[ftmp0],       %[ftmp2]                \n\t" 
 2454         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2455         "punpckhhw  %[ftmp2],   %[ftmp4],       %[ftmp6]                \n\t" 
 2456         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2457         "punpckhhw  %[ftmp6],   %[ftmp7],       %[ftmp1]                \n\t" 
 2458         "punpcklhw  %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
 2459         MMI_SDC1(%[ftmp2], %[ptmp], 0x20)
 
 2460         MMI_LDC1(%[ftmp2], %[ptmp], 0x00)
 
 2461         "punpckhhw  %[ftmp1],   %[ftmp2],       %[ftmp5]                \n\t" 
 2462         "punpcklhw  %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
 2463         "punpckhwd  %[ftmp5],   %[ftmp0],       %[ftmp4]                \n\t" 
 2464         "punpcklwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 2465         "punpckhwd  %[ftmp4],   %[ftmp7],       %[ftmp2]                \n\t" 
 2466         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
 2467         MMI_SDC1(%[ftmp0], %[ptmp], 0x00)
 
 2468         MMI_SDC1(%[ftmp5], %[ptmp], 0x10)
 
 2469         MMI_SDC1(%[ftmp7], %[ptmp], 0x40)
 
 2470         MMI_SDC1(%[ftmp4], %[ptmp], 0x50)
 
 2471         MMI_LDC1(%[ftmp8], %[ptmp], 0x20)
 
 2472         "punpckhwd  %[ftmp0],   %[ftmp3],       %[ftmp8]                \n\t" 
 2473         "punpcklwd  %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
 2474         "punpckhwd  %[ftmp5],   %[ftmp6],       %[ftmp1]                \n\t" 
 2475         "punpcklwd  %[ftmp6],   %[ftmp6],       %[ftmp1]                \n\t" 
 2476         PTR_ADDU   "%[addr5],   %[addr3],       %[addr3]                \n\t" 
 2477         MMI_SDC1(%[ftmp3], %[ptmp], 0x20)
 
 2478         MMI_SDC1(%[ftmp0], %[ptmp], 0x30)
 
 2479         MMI_SDC1(%[ftmp6], %[ptmp], 0x60)
 
 2480         MMI_SDC1(%[ftmp5], %[ptmp], 0x70)
 
 2481         PTR_ADDU   "%[addr1],   %[addr1],       %[addr5]                \n\t" 
 2482         PTR_ADDU   "%[addr4],   %[addr4],       %[addr5]                \n\t" 
 2483         PTR_ADDU   "%[addr5],   %[addr1],       %[stride]               \n\t" 
 2484         MMI_ULDC1(%[ftmp0], %[addr1], 0x00)
 
 2485         PTR_ADDU   "%[addr6],   %[addr1],       %[addr0]                \n\t" 
 2486         MMI_ULDC1(%[ftmp1], %[addr5], 0x00)
 
 2487         MMI_ULDC1(%[ftmp2], %[addr6], 0x00)
 
 2488         PTR_ADDU   "%[addr5],   %[addr4],       %[stride]               \n\t" 
 2489         MMI_ULDC1(%[ftmp3], %[addr4], 0x00)
 
 2490         PTR_ADDU   "%[addr6],   %[addr4],       %[addr0]                \n\t" 
 2491         MMI_ULDC1(%[ftmp4], %[addr5], 0x00)
 
 2492         PTR_ADDU   "%[addr5],   %[addr4],       %[addr2]                \n\t" 
 2493         MMI_ULDC1(%[ftmp5], %[addr6], 0x00)
 
 2494         MMI_ULDC1(%[ftmp6], %[addr5], 0x00)
 
 2495         PTR_ADDU   "%[addr5],   %[addr4],       %[addr3]                \n\t" 
 2496         "punpckhbh  %[ftmp7],   %[ftmp0],       %[ftmp1]                \n\t" 
 2497         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2498         "punpckhbh  %[ftmp1],   %[ftmp2],       %[ftmp3]                \n\t" 
 2499         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2500         "punpckhbh  %[ftmp3],   %[ftmp4],       %[ftmp5]                \n\t" 
 2501         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2502         MMI_ULDC1(%[ftmp8], %[addr5], 0x00)
 
 2503         "punpckhbh  %[ftmp5],   %[ftmp6],       %[ftmp8]                \n\t" 
 2504         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 2505         MMI_SDC1(%[ftmp3], %[ptmp], 0x08)
 
 2506         "punpckhhw  %[ftmp3],   %[ftmp0],       %[ftmp2]                \n\t" 
 2507         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2508         "punpckhhw  %[ftmp2],   %[ftmp4],       %[ftmp6]                \n\t" 
 2509         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2510         "punpckhhw  %[ftmp6],   %[ftmp7],       %[ftmp1]                \n\t" 
 2511         "punpcklhw  %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
 2512         MMI_SDC1(%[ftmp2], %[ptmp], 0x28)
 
 2513         MMI_LDC1(%[ftmp2], %[ptmp], 0x08)
 
 2514         "punpckhhw  %[ftmp1],   %[ftmp2],       %[ftmp5]                \n\t" 
 2515         "punpcklhw  %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
 2516         "punpckhwd  %[ftmp5],   %[ftmp0],       %[ftmp4]                \n\t" 
 2517         "punpcklwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 2518         "punpckhwd  %[ftmp4],   %[ftmp7],       %[ftmp2]                \n\t" 
 2519         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
 2520         MMI_SDC1(%[ftmp0], %[ptmp], 0x08)
 
 2521         MMI_SDC1(%[ftmp5], %[ptmp], 0x18)
 
 2522         MMI_SDC1(%[ftmp7], %[ptmp], 0x48)
 
 2523         MMI_SDC1(%[ftmp4], %[ptmp], 0x58)
 
 2524         MMI_LDC1(%[ftmp8], %[ptmp], 0x28)
 
 2525         "punpckhwd  %[ftmp0],   %[ftmp3],       %[ftmp8]                \n\t" 
 2526         "punpcklwd  %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
 2527         "punpckhwd  %[ftmp5],   %[ftmp6],       %[ftmp1]                \n\t" 
 2528         "punpcklwd  %[ftmp6],   %[ftmp6],       %[ftmp1]                \n\t" 
 2529         MMI_SDC1(%[ftmp3], %[ptmp], 0x28)
 
 2530         MMI_SDC1(%[ftmp0], %[ptmp], 0x38)
 
 2531         MMI_SDC1(%[ftmp6], %[ptmp], 0x68)
 
 2532         MMI_SDC1(%[ftmp5], %[ptmp], 0x78)
 
 2533         PTR_S      "%[addr1],   0x00(%[pdat])                           \n\t" 
 2534         PTR_S      "%[addr2],   0x08(%[pdat])                           \n\t" 
 2535         PTR_S      "%[addr0],   0x10(%[pdat])                           \n\t" 
 2536         PTR_S      "%[addr3],   0x18(%[pdat])                           \n\t" 
 2537         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 2538           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 2539           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 2540           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 2541           [ftmp8]
"=&f"(ftmp[8]),
 
 2543           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1]),
 
 2544           [addr2]
"=&r"(addr[2]),            [addr3]
"=&r"(addr[3]),
 
 2545           [addr4]
"=&r"(addr[4]),            [addr5]
"=&r"(addr[5]),
 
 2546           [addr6]
"=&r"(addr[6])
 
 2548           [ptmp]
"r"(ptmp),                  [pdat]
"r"(pdat)
 
 2555         PTR_L      "%[addr1],   0x00(%[pdat])                           \n\t" 
 2556         PTR_L      "%[addr2],   0x08(%[pdat])                           \n\t" 
 2557         PTR_L      "%[addr0],   0x10(%[pdat])                           \n\t" 
 2558         PTR_L      "%[addr3],   0x18(%[pdat])                           \n\t" 
 2559         PTR_ADDU   "%[addr4],   %[addr1],       %[addr2]                \n\t" 
 2560         MMI_LDC1(%[ftmp0], %[ptmp], 0x08)
 
 2561         MMI_LDC1(%[ftmp1], %[ptmp], 0x18)
 
 2562         MMI_LDC1(%[ftmp2], %[ptmp], 0x28)
 
 2563         MMI_LDC1(%[ftmp3], %[ptmp], 0x38)
 
 2564         MMI_LDC1(%[ftmp4], %[ptmp], 0x48)
 
 2565         MMI_LDC1(%[ftmp5], %[ptmp], 0x58)
 
 2566         MMI_LDC1(%[ftmp6], %[ptmp], 0x68)
 
 2567         "punpckhbh  %[ftmp7],   %[ftmp0],       %[ftmp1]                \n\t" 
 2568         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2569         "punpckhbh  %[ftmp1],   %[ftmp2],       %[ftmp3]                \n\t" 
 2570         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2571         "punpckhbh  %[ftmp3],   %[ftmp4],       %[ftmp5]                \n\t" 
 2572         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2573         MMI_LDC1(%[ftmp8], %[ptmp], 0x78)
 
 2574         "punpckhbh  %[ftmp5],   %[ftmp6],       %[ftmp8]                \n\t" 
 2575         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 2576         MMI_USDC1(%[ftmp3], %[addr1], 0x00)
 
 2577         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2578         "punpckhhw  %[ftmp3],   %[ftmp0],       %[ftmp2]                \n\t" 
 2579         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2580         "punpckhhw  %[ftmp2],   %[ftmp4],       %[ftmp6]                \n\t" 
 2581         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2582         "punpckhhw  %[ftmp6],   %[ftmp7],       %[ftmp1]                \n\t" 
 2583         "punpcklhw  %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
 2584         MMI_USDC1(%[ftmp2], %[addr5], 0x00)
 
 2585         MMI_ULDC1(%[ftmp2], %[addr1], 0x00)
 
 2586         "punpckhhw  %[ftmp1],   %[ftmp2],       %[ftmp5]                \n\t" 
 2587         "punpcklhw  %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
 2588         "punpckhwd  %[ftmp5],   %[ftmp0],       %[ftmp4]                \n\t" 
 2589         "punpcklwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 2590         "punpckhwd  %[ftmp4],   %[ftmp7],       %[ftmp2]                \n\t" 
 2591         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
 2592         PTR_ADDU   "%[addr5],   %[addr1],       %[stride]               \n\t" 
 2593         MMI_USDC1(%[ftmp0], %[addr1], 0x00)
 
 2594         PTR_ADDU   "%[addr6],   %[addr4],       %[stride]               \n\t" 
 2595         MMI_USDC1(%[ftmp5], %[addr5], 0x00)
 
 2596         PTR_ADDU   "%[addr5],   %[addr4],       %[addr0]                \n\t" 
 2597         MMI_USDC1(%[ftmp7], %[addr6], 0x00)
 
 2598         PTR_ADDU   "%[addr6],   %[addr1],       %[addr0]                \n\t" 
 2599         MMI_USDC1(%[ftmp4], %[addr5], 0x00)
 
 2600         MMI_ULDC1(%[ftmp8], %[addr6], 0x00)
 
 2601         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2602         "punpckhwd  %[ftmp0],   %[ftmp3],       %[ftmp8]                \n\t" 
 2603         "punpcklwd  %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
 2604         "punpckhwd  %[ftmp5],   %[ftmp6],       %[ftmp1]                \n\t" 
 2605         "punpcklwd  %[ftmp6],   %[ftmp6],       %[ftmp1]                \n\t" 
 2606         MMI_USDC1(%[ftmp3], %[addr5], 0x00)
 
 2607         PTR_ADDU   "%[addr5],   %[addr4],       %[addr2]                \n\t" 
 2608         MMI_USDC1(%[ftmp0], %[addr4], 0x00)
 
 2609         PTR_ADDU   "%[addr6],   %[addr4],       %[addr3]                \n\t" 
 2610         MMI_USDC1(%[ftmp6], %[addr5], 0x00)
 
 2611         PTR_ADDU   "%[addr5],   %[addr3],       %[addr3]                \n\t" 
 2612         MMI_USDC1(%[ftmp5], %[addr6], 0x00)
 
 2613         PTR_SUBU   "%[addr1],   %[addr1],       %[addr5]                \n\t" 
 2614         PTR_SUBU   "%[addr4],   %[addr4],       %[addr5]                \n\t" 
 2615         MMI_LDC1(%[ftmp0], %[ptmp], 0x00)
 
 2616         MMI_LDC1(%[ftmp1], %[ptmp], 0x10)
 
 2617         MMI_LDC1(%[ftmp2], %[ptmp], 0x20)
 
 2618         MMI_LDC1(%[ftmp3], %[ptmp], 0x30)
 
 2619         MMI_LDC1(%[ftmp4], %[ptmp], 0x40)
 
 2620         MMI_LDC1(%[ftmp5], %[ptmp], 0x50)
 
 2621         MMI_LDC1(%[ftmp6], %[ptmp], 0x60)
 
 2622         "punpckhbh  %[ftmp7],   %[ftmp0],       %[ftmp1]                \n\t" 
 2623         "punpcklbh  %[ftmp0],   %[ftmp0],       %[ftmp1]                \n\t" 
 2624         "punpckhbh  %[ftmp1],   %[ftmp2],       %[ftmp3]                \n\t" 
 2625         "punpcklbh  %[ftmp2],   %[ftmp2],       %[ftmp3]                \n\t" 
 2626         "punpckhbh  %[ftmp3],   %[ftmp4],       %[ftmp5]                \n\t" 
 2627         "punpcklbh  %[ftmp4],   %[ftmp4],       %[ftmp5]                \n\t" 
 2628         MMI_LDC1(%[ftmp8], %[ptmp], 0x70)
 
 2629         "punpckhbh  %[ftmp5],   %[ftmp6],       %[ftmp8]                \n\t" 
 2630         "punpcklbh  %[ftmp6],   %[ftmp6],       %[ftmp8]                \n\t" 
 2631         MMI_USDC1(%[ftmp3], %[addr1], 0x00)
 
 2632         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2633         "punpckhhw  %[ftmp3],   %[ftmp0],       %[ftmp2]                \n\t" 
 2634         "punpcklhw  %[ftmp0],   %[ftmp0],       %[ftmp2]                \n\t" 
 2635         "punpckhhw  %[ftmp2],   %[ftmp4],       %[ftmp6]                \n\t" 
 2636         "punpcklhw  %[ftmp4],   %[ftmp4],       %[ftmp6]                \n\t" 
 2637         "punpckhhw  %[ftmp6],   %[ftmp7],       %[ftmp1]                \n\t" 
 2638         "punpcklhw  %[ftmp7],   %[ftmp7],       %[ftmp1]                \n\t" 
 2639         MMI_USDC1(%[ftmp2], %[addr5], 0x00)
 
 2640         MMI_ULDC1(%[ftmp2], %[addr1], 0x00)
 
 2641         "punpckhhw  %[ftmp1],   %[ftmp2],       %[ftmp5]                \n\t" 
 2642         "punpcklhw  %[ftmp2],   %[ftmp2],       %[ftmp5]                \n\t" 
 2643         "punpckhwd  %[ftmp5],   %[ftmp0],       %[ftmp4]                \n\t" 
 2644         "punpcklwd  %[ftmp0],   %[ftmp0],       %[ftmp4]                \n\t" 
 2645         "punpckhwd  %[ftmp4],   %[ftmp7],       %[ftmp2]                \n\t" 
 2646         "punpcklwd  %[ftmp7],   %[ftmp7],       %[ftmp2]                \n\t" 
 2647         PTR_ADDU   "%[addr5],   %[addr1],       %[stride]               \n\t" 
 2648         MMI_USDC1(%[ftmp0], %[addr1], 0x00)
 
 2649         PTR_ADDU   "%[addr6],   %[addr4],       %[stride]               \n\t" 
 2650         MMI_USDC1(%[ftmp5], %[addr5], 0x00)
 
 2651         PTR_ADDU   "%[addr5],   %[addr4],       %[addr0]                \n\t" 
 2652         MMI_USDC1(%[ftmp7], %[addr6], 0x00)
 
 2653         PTR_ADDU   "%[addr6],   %[addr1],       %[addr0]                \n\t" 
 2654         MMI_USDC1(%[ftmp4], %[addr5], 0x00)
 
 2655         MMI_ULDC1(%[ftmp8], %[addr6], 0x00)
 
 2656         PTR_ADDU   "%[addr5],   %[addr1],       %[addr0]                \n\t" 
 2657         "punpckhwd  %[ftmp0],   %[ftmp3],       %[ftmp8]                \n\t" 
 2658         "punpcklwd  %[ftmp3],   %[ftmp3],       %[ftmp8]                \n\t" 
 2659         "punpckhwd  %[ftmp5],   %[ftmp6],       %[ftmp1]                \n\t" 
 2660         "punpcklwd  %[ftmp6],   %[ftmp6],       %[ftmp1]                \n\t" 
 2661         MMI_USDC1(%[ftmp3], %[addr5], 0x00)
 
 2662         PTR_ADDU   "%[addr5],   %[addr4],       %[addr2]                \n\t" 
 2663         MMI_USDC1(%[ftmp0], %[addr4], 0x00)
 
 2664         PTR_ADDU   "%[addr6],   %[addr4],       %[addr3]                \n\t" 
 2665         MMI_USDC1(%[ftmp6], %[addr5], 0x00)
 
 2666         MMI_USDC1(%[ftmp5], %[addr6], 0x00)
 
 2667         : [ftmp0]
"=&f"(ftmp[0]),            [ftmp1]
"=&f"(ftmp[1]),
 
 2668           [ftmp2]
"=&f"(ftmp[2]),            [ftmp3]
"=&f"(ftmp[3]),
 
 2669           [ftmp4]
"=&f"(ftmp[4]),            [ftmp5]
"=&f"(ftmp[5]),
 
 2670           [ftmp6]
"=&f"(ftmp[6]),            [ftmp7]
"=&f"(ftmp[7]),
 
 2671           [ftmp8]
"=&f"(ftmp[8]),
 
 2673           [addr0]
"=&r"(addr[0]),            [addr1]
"=&r"(addr[1]),
 
 2674           [addr2]
"=&r"(addr[2]),            [addr3]
"=&r"(addr[3]),
 
 2675           [addr4]
"=&r"(addr[4]),            [addr5]
"=&r"(addr[5]),
 
 2676           [addr6]
"=&r"(addr[6])
 
 2678           [ptmp]
"r"(ptmp),                  [pdat]
"r"(pdat)