32     int A = 64, 
B, 
C, 
D, 
E;
 
   39             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]           \n\t" 
   40             "dli        %[tmp0],    0x06                               \n\t" 
   41             "mtc1       %[tmp0],    %[ftmp4]                           \n\t" 
   44             MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
   45             "addi       %[h],       %[h],           -0x04              \n\t" 
   46             PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
   47             MMI_ULDC1(%[ftmp5], %[src], 0x00)
 
   48             PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
   49             MMI_ULDC1(%[ftmp6], %[src], 0x00)
 
   50             PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
   51             MMI_ULDC1(%[ftmp7], %[src], 0x00)
 
   53             "punpcklbh  %[ftmp2],   %[ftmp1],       %[ftmp0]           \n\t" 
   54             "punpckhbh  %[ftmp3],   %[ftmp1],       %[ftmp0]           \n\t" 
   55             "psllh      %[ftmp1],   %[ftmp2],       %[ftmp4]           \n\t" 
   56             "psllh      %[ftmp2],   %[ftmp3],       %[ftmp4]           \n\t" 
   57             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
   58             "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
   59             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp4]           \n\t" 
   60             "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp4]           \n\t" 
   61             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
   62             MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
   64             "punpcklbh  %[ftmp2],   %[ftmp5],       %[ftmp0]           \n\t" 
   65             "punpckhbh  %[ftmp3],   %[ftmp5],       %[ftmp0]           \n\t" 
   66             "psllh      %[ftmp1],   %[ftmp2],       %[ftmp4]           \n\t" 
   67             "psllh      %[ftmp2],   %[ftmp3],       %[ftmp4]           \n\t" 
   68             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
   69             "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
   70             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp4]           \n\t" 
   71             "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp4]           \n\t" 
   72             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
   73             PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
   74             MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
   76             "punpcklbh  %[ftmp2],   %[ftmp6],       %[ftmp0]           \n\t" 
   77             "punpckhbh  %[ftmp3],   %[ftmp6],       %[ftmp0]           \n\t" 
   78             "psllh      %[ftmp1],   %[ftmp2],       %[ftmp4]           \n\t" 
   79             "psllh      %[ftmp2],   %[ftmp3],       %[ftmp4]           \n\t" 
   80             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
   81             "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
   82             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp4]           \n\t" 
   83             "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp4]           \n\t" 
   84             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
   85             PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
   86             MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
   88             "punpcklbh  %[ftmp2],   %[ftmp7],       %[ftmp0]           \n\t" 
   89             "punpckhbh  %[ftmp3],   %[ftmp7],       %[ftmp0]           \n\t" 
   90             "psllh      %[ftmp1],   %[ftmp2],       %[ftmp4]           \n\t" 
   91             "psllh      %[ftmp2],   %[ftmp3],       %[ftmp4]           \n\t" 
   92             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
   93             "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
   94             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp4]           \n\t" 
   95             "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp4]           \n\t" 
   96             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
   97             PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
   98             MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  100             PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
  101             PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
  103             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  104               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  105               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  106               [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  108               [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  122                 "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]           \n\t" 
  123                 "dli        %[tmp0],    0x06                               \n\t" 
  124                 "pshufh     %[A],       %[A],           %[ftmp0]           \n\t" 
  125                 "pshufh     %[B],       %[B],           %[ftmp0]           \n\t" 
  126                 "mtc1       %[tmp0],    %[ftmp9]                           \n\t" 
  127                 "pshufh     %[C],       %[C],           %[ftmp0]           \n\t" 
  128                 "pshufh     %[D],       %[D],           %[ftmp0]           \n\t" 
  131                 MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  132                 MMI_ULDC1(%[ftmp2], %[src], 0x01)
 
  133                 PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
  134                 MMI_ULDC1(%[ftmp3], %[src], 0x00)
 
  135                 MMI_ULDC1(%[ftmp4], %[src], 0x01)
 
  136                 "addi       %[h],       %[h],           -0x02              \n\t" 
  138                 "punpcklbh  %[ftmp5],   %[ftmp1],       %[ftmp0]           \n\t" 
  139                 "punpckhbh  %[ftmp6],   %[ftmp1],       %[ftmp0]           \n\t" 
  140                 "punpcklbh  %[ftmp7],   %[ftmp2],       %[ftmp0]           \n\t" 
  141                 "punpckhbh  %[ftmp8],   %[ftmp2],       %[ftmp0]           \n\t" 
  142                 "pmullh     %[ftmp5],   %[ftmp5],       %[A]               \n\t" 
  143                 "pmullh     %[ftmp7],   %[ftmp7],       %[B]               \n\t" 
  144                 "paddh      %[ftmp1],   %[ftmp5],       %[ftmp7]           \n\t" 
  145                 "pmullh     %[ftmp6],   %[ftmp6],       %[A]               \n\t" 
  146                 "pmullh     %[ftmp8],   %[ftmp8],       %[B]               \n\t" 
  147                 "paddh      %[ftmp2],   %[ftmp6],       %[ftmp8]           \n\t" 
  149                 "punpcklbh  %[ftmp5],   %[ftmp3],       %[ftmp0]           \n\t" 
  150                 "punpckhbh  %[ftmp6],   %[ftmp3],       %[ftmp0]           \n\t" 
  151                 "punpcklbh  %[ftmp7],   %[ftmp4],       %[ftmp0]           \n\t" 
  152                 "punpckhbh  %[ftmp8],   %[ftmp4],       %[ftmp0]           \n\t" 
  153                 "pmullh     %[ftmp5],   %[ftmp5],       %[C]               \n\t" 
  154                 "pmullh     %[ftmp7],   %[ftmp7],       %[D]               \n\t" 
  155                 "paddh      %[ftmp3],   %[ftmp5],       %[ftmp7]           \n\t" 
  156                 "pmullh     %[ftmp6],   %[ftmp6],       %[C]               \n\t" 
  157                 "pmullh     %[ftmp8],   %[ftmp8],       %[D]               \n\t" 
  158                 "paddh      %[ftmp4],   %[ftmp6],       %[ftmp8]           \n\t" 
  160                 "paddh      %[ftmp1],   %[ftmp1],       %[ftmp3]           \n\t" 
  161                 "paddh      %[ftmp2],   %[ftmp2],       %[ftmp4]           \n\t" 
  162                 "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
  163                 "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
  164                 "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp9]           \n\t" 
  165                 "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp9]           \n\t" 
  166                 "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
  167                 MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  168                 PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
  170                 MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  171                 MMI_ULDC1(%[ftmp2], %[src], 0x01)
 
  172                 PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
  173                 MMI_ULDC1(%[ftmp3], %[src], 0x00)
 
  174                 MMI_ULDC1(%[ftmp4], %[src], 0x01)
 
  176                 "punpcklbh  %[ftmp5],   %[ftmp1],       %[ftmp0]           \n\t" 
  177                 "punpckhbh  %[ftmp6],   %[ftmp1],       %[ftmp0]           \n\t" 
  178                 "punpcklbh  %[ftmp7],   %[ftmp2],       %[ftmp0]           \n\t" 
  179                 "punpckhbh  %[ftmp8],   %[ftmp2],       %[ftmp0]           \n\t" 
  180                 "pmullh     %[ftmp5],   %[ftmp5],       %[A]               \n\t" 
  181                 "pmullh     %[ftmp7],   %[ftmp7],       %[B]               \n\t" 
  182                 "paddh      %[ftmp1],   %[ftmp5],       %[ftmp7]           \n\t" 
  183                 "pmullh     %[ftmp6],   %[ftmp6],       %[A]               \n\t" 
  184                 "pmullh     %[ftmp8],   %[ftmp8],       %[B]               \n\t" 
  185                 "paddh      %[ftmp2],   %[ftmp6],       %[ftmp8]           \n\t" 
  187                 "punpcklbh  %[ftmp5],   %[ftmp3],       %[ftmp0]           \n\t" 
  188                 "punpckhbh  %[ftmp6],   %[ftmp3],       %[ftmp0]           \n\t" 
  189                 "punpcklbh  %[ftmp7],   %[ftmp4],       %[ftmp0]           \n\t" 
  190                 "punpckhbh  %[ftmp8],   %[ftmp4],       %[ftmp0]           \n\t" 
  191                 "pmullh     %[ftmp5],   %[ftmp5],       %[C]               \n\t" 
  192                 "pmullh     %[ftmp7],   %[ftmp7],       %[D]               \n\t" 
  193                 "paddh      %[ftmp3],   %[ftmp5],       %[ftmp7]           \n\t" 
  194                 "pmullh     %[ftmp6],   %[ftmp6],       %[C]               \n\t" 
  195                 "pmullh     %[ftmp8],   %[ftmp8],       %[D]               \n\t" 
  196                 "paddh      %[ftmp4],   %[ftmp6],       %[ftmp8]           \n\t" 
  198                 "paddh      %[ftmp1],   %[ftmp1],       %[ftmp3]           \n\t" 
  199                 "paddh      %[ftmp2],   %[ftmp2],       %[ftmp4]           \n\t" 
  200                 "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
  201                 "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
  202                 "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp9]           \n\t" 
  203                 "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp9]           \n\t" 
  204                 "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
  205                 MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  206                 PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
  209                 : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  210                   [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  211                   [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  212                   [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  213                   [ftmp8]
"=&f"(ftmp[8]),        [ftmp9]
"=&f"(ftmp[9]),
 
  215                   [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  218                   [A]
"f"(A),                    [
B]
"f"(
B),
 
  229                     "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]           \n\t" 
  230                     "dli        %[tmp0],    0x06                               \n\t" 
  231                     "pshufh     %[A],       %[A],           %[ftmp0]           \n\t" 
  232                     "pshufh     %[E],       %[E],           %[ftmp0]           \n\t" 
  233                     "mtc1       %[tmp0],    %[ftmp7]                           \n\t" 
  236                     MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  237                     MMI_ULDC1(%[ftmp2], %[src], 0x01)
 
  238                     "addi       %[h],       %[h],           -0x01              \n\t" 
  239                     PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
  241                     "punpcklbh  %[ftmp3],   %[ftmp1],       %[ftmp0]           \n\t" 
  242                     "punpckhbh  %[ftmp4],   %[ftmp1],       %[ftmp0]           \n\t" 
  243                     "punpcklbh  %[ftmp5],   %[ftmp2],       %[ftmp0]           \n\t" 
  244                     "punpckhbh  %[ftmp6],   %[ftmp2],       %[ftmp0]           \n\t" 
  245                     "pmullh     %[ftmp3],   %[ftmp3],       %[A]               \n\t" 
  246                     "pmullh     %[ftmp5],   %[ftmp5],       %[E]               \n\t" 
  247                     "paddh      %[ftmp1],   %[ftmp3],       %[ftmp5]           \n\t" 
  248                     "pmullh     %[ftmp4],   %[ftmp4],       %[A]               \n\t" 
  249                     "pmullh     %[ftmp6],   %[ftmp6],       %[E]               \n\t" 
  250                     "paddh      %[ftmp2],   %[ftmp4],       %[ftmp6]           \n\t" 
  252                     "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
  253                     "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
  254                     "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp7]           \n\t" 
  255                     "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp7]           \n\t" 
  256                     "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
  257                     MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  258                     PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
  260                     : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  261                       [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  262                       [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  263                       [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  265                       [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  278                     "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]           \n\t" 
  279                     "dli        %[tmp0],    0x06                               \n\t" 
  280                     "pshufh     %[A],       %[A],           %[ftmp0]           \n\t" 
  281                     "pshufh     %[E],       %[E],           %[ftmp0]           \n\t" 
  282                     "mtc1       %[tmp0],    %[ftmp7]                           \n\t" 
  285                     MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  286                     PTR_ADDU   "%[src],     %[src],         %[stride]          \n\t" 
  287                     MMI_ULDC1(%[ftmp2], %[src], 0x00)
 
  288                     "addi       %[h],       %[h],           -0x01              \n\t" 
  290                     "punpcklbh  %[ftmp3],   %[ftmp1],       %[ftmp0]           \n\t" 
  291                     "punpckhbh  %[ftmp4],   %[ftmp1],       %[ftmp0]           \n\t" 
  292                     "punpcklbh  %[ftmp5],   %[ftmp2],       %[ftmp0]           \n\t" 
  293                     "punpckhbh  %[ftmp6],   %[ftmp2],       %[ftmp0]           \n\t" 
  294                     "pmullh     %[ftmp3],   %[ftmp3],       %[A]               \n\t" 
  295                     "pmullh     %[ftmp5],   %[ftmp5],       %[E]               \n\t" 
  296                     "paddh      %[ftmp1],   %[ftmp3],       %[ftmp5]           \n\t" 
  297                     "pmullh     %[ftmp4],   %[ftmp4],       %[A]               \n\t" 
  298                     "pmullh     %[ftmp6],   %[ftmp6],       %[E]               \n\t" 
  299                     "paddh      %[ftmp2],   %[ftmp4],       %[ftmp6]           \n\t" 
  301                     "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]        \n\t" 
  302                     "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]        \n\t" 
  303                     "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp7]           \n\t" 
  304                     "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp7]           \n\t" 
  305                     "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]           \n\t" 
  306                     MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  308                     PTR_ADDU   "%[dst],     %[dst],         %[stride]          \n\t" 
  310                     : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  311                       [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  312                       [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  313                       [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  315                       [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  330     int A = 64, 
B, 
C, 
D, 
E;
 
  337             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
  338             "dli        %[tmp0],    0x06                                \n\t" 
  339             "pshufh     %[A],       %[A],           %[ftmp0]            \n\t" 
  340             "mtc1       %[tmp0],    %[ftmp4]                            \n\t" 
  343             MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  344             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  345             MMI_ULDC1(%[ftmp5], %[src], 0x00)
 
  346             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  348             "punpcklbh  %[ftmp2],   %[ftmp1],       %[ftmp0]            \n\t" 
  349             "punpckhbh  %[ftmp3],   %[ftmp1],       %[ftmp0]            \n\t" 
  350             "pmullh     %[ftmp1],   %[ftmp2],       %[A]                \n\t" 
  351             "pmullh     %[ftmp2],   %[ftmp3],       %[A]                \n\t" 
  352             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  353             "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]         \n\t" 
  354             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp4]            \n\t" 
  355             "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp4]            \n\t" 
  356             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  357             MMI_LDC1(%[ftmp2], %[dst], 0x00)
 
  358             "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  359             MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  360             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  362             "punpcklbh  %[ftmp2],   %[ftmp5],       %[ftmp0]            \n\t" 
  363             "punpckhbh  %[ftmp3],   %[ftmp5],       %[ftmp0]            \n\t" 
  364             "pmullh     %[ftmp1],   %[ftmp2],       %[A]                \n\t" 
  365             "pmullh     %[ftmp2],   %[ftmp3],       %[A]                \n\t" 
  366             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  367             "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]         \n\t" 
  368             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp4]            \n\t" 
  369             "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp4]            \n\t" 
  370             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  371             MMI_LDC1(%[ftmp2], %[dst], 0x00)
 
  372             "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  373             MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  374             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  376             "addi       %[h],       %[h],           -0x02               \n\t" 
  378             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  379               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  380               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  382               [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  396                 "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]       \n\t" 
  397                 "dli        %[tmp0],    0x06                           \n\t" 
  398                 "pshufh     %[A],       %[A],           %[ftmp0]       \n\t" 
  399                 "pshufh     %[B],       %[B],           %[ftmp0]       \n\t" 
  400                 "mtc1       %[tmp0],    %[ftmp9]                       \n\t" 
  401                 "pshufh     %[C],       %[C],           %[ftmp0]       \n\t" 
  402                 "pshufh     %[D],       %[D],           %[ftmp0]       \n\t" 
  405                 MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  406                 MMI_ULDC1(%[ftmp2], %[src], 0x01)
 
  407                 PTR_ADDU   "%[src],     %[src],         %[stride]      \n\t" 
  408                 MMI_ULDC1(%[ftmp3], %[src], 0x00)
 
  409                 MMI_ULDC1(%[ftmp4], %[src], 0x01)
 
  410                 "addi       %[h],       %[h],           -0x01          \n\t" 
  412                 "punpcklbh  %[ftmp5],   %[ftmp1],       %[ftmp0]       \n\t" 
  413                 "punpckhbh  %[ftmp6],   %[ftmp1],       %[ftmp0]       \n\t" 
  414                 "punpcklbh  %[ftmp7],   %[ftmp2],       %[ftmp0]       \n\t" 
  415                 "punpckhbh  %[ftmp8],   %[ftmp2],       %[ftmp0]       \n\t" 
  416                 "pmullh     %[ftmp5],   %[ftmp5],       %[A]           \n\t" 
  417                 "pmullh     %[ftmp7],   %[ftmp7],       %[B]           \n\t" 
  418                 "paddh      %[ftmp1],   %[ftmp5],       %[ftmp7]       \n\t" 
  419                 "pmullh     %[ftmp6],   %[ftmp6],       %[A]           \n\t" 
  420                 "pmullh     %[ftmp8],   %[ftmp8],       %[B]           \n\t" 
  421                 "paddh      %[ftmp2],   %[ftmp6],       %[ftmp8]       \n\t" 
  423                 "punpcklbh  %[ftmp5],   %[ftmp3],       %[ftmp0]       \n\t" 
  424                 "punpckhbh  %[ftmp6],   %[ftmp3],       %[ftmp0]       \n\t" 
  425                 "punpcklbh  %[ftmp7],   %[ftmp4],       %[ftmp0]       \n\t" 
  426                 "punpckhbh  %[ftmp8],   %[ftmp4],       %[ftmp0]       \n\t" 
  427                 "pmullh     %[ftmp5],   %[ftmp5],       %[C]           \n\t" 
  428                 "pmullh     %[ftmp7],   %[ftmp7],       %[D]           \n\t" 
  429                 "paddh      %[ftmp3],   %[ftmp5],       %[ftmp7]       \n\t" 
  430                 "pmullh     %[ftmp6],   %[ftmp6],       %[C]           \n\t" 
  431                 "pmullh     %[ftmp8],   %[ftmp8],       %[D]           \n\t" 
  432                 "paddh      %[ftmp4],   %[ftmp6],       %[ftmp8]       \n\t" 
  434                 "paddh      %[ftmp1],   %[ftmp1],       %[ftmp3]       \n\t" 
  435                 "paddh      %[ftmp2],   %[ftmp2],       %[ftmp4]       \n\t" 
  436                 "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]    \n\t" 
  437                 "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]    \n\t" 
  438                 "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp9]       \n\t" 
  439                 "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp9]       \n\t" 
  440                 "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]       \n\t" 
  441                 MMI_LDC1(%[ftmp2], %[dst], 0x00)
 
  442                 "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]       \n\t" 
  443                 MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  444                 PTR_ADDU   "%[dst],     %[dst],         %[stride]      \n\t" 
  446                 : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  447                   [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  448                   [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  449                   [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  450                   [ftmp8]
"=&f"(ftmp[8]),        [ftmp9]
"=&f"(ftmp[9]),
 
  452                   [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  455                   [A]
"f"(A),                    [
B]
"f"(
B),
 
  465                     "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]       \n\t" 
  466                     "dli        %[tmp0],    0x06                           \n\t" 
  467                     "pshufh     %[A],       %[A],           %[ftmp0]       \n\t" 
  468                     "pshufh     %[E],       %[E],           %[ftmp0]       \n\t" 
  469                     "mtc1       %[tmp0],    %[ftmp7]                       \n\t" 
  472                     MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  473                     MMI_ULDC1(%[ftmp2], %[src], 0x01)
 
  474                     PTR_ADDU   "%[src],     %[src],         %[stride]      \n\t" 
  475                     "addi       %[h],       %[h],           -0x01          \n\t" 
  477                     "punpcklbh  %[ftmp3],   %[ftmp1],       %[ftmp0]       \n\t" 
  478                     "punpckhbh  %[ftmp4],   %[ftmp1],       %[ftmp0]       \n\t" 
  479                     "punpcklbh  %[ftmp5],   %[ftmp2],       %[ftmp0]       \n\t" 
  480                     "punpckhbh  %[ftmp6],   %[ftmp2],       %[ftmp0]       \n\t" 
  481                     "pmullh     %[ftmp3],   %[ftmp3],       %[A]           \n\t" 
  482                     "pmullh     %[ftmp5],   %[ftmp5],       %[E]           \n\t" 
  483                     "paddh      %[ftmp1],   %[ftmp3],       %[ftmp5]       \n\t" 
  484                     "pmullh     %[ftmp4],   %[ftmp4],       %[A]           \n\t" 
  485                     "pmullh     %[ftmp6],   %[ftmp6],       %[E]           \n\t" 
  486                     "paddh      %[ftmp2],   %[ftmp4],       %[ftmp6]       \n\t" 
  488                     "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]    \n\t" 
  489                     "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]    \n\t" 
  490                     "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp7]       \n\t" 
  491                     "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp7]       \n\t" 
  492                     "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]       \n\t" 
  493                     MMI_LDC1(%[ftmp2], %[dst], 0x00)
 
  494                     "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]       \n\t" 
  495                     MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  496                     PTR_ADDU   "%[dst],     %[dst],         %[stride]      \n\t" 
  498                     : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  499                       [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  500                       [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  501                       [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  503                       [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  515                     "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]       \n\t" 
  516                     "dli        %[tmp0],    0x06                           \n\t" 
  517                     "pshufh     %[A],       %[A],           %[ftmp0]       \n\t" 
  518                     "pshufh     %[E],       %[E],           %[ftmp0]       \n\t" 
  519                     "mtc1       %[tmp0],    %[ftmp7]                       \n\t" 
  522                     MMI_ULDC1(%[ftmp1], %[src], 0x00)
 
  523                     PTR_ADDU   "%[src],     %[src],         %[stride]      \n\t" 
  524                     MMI_ULDC1(%[ftmp2], %[src], 0x00)
 
  525                     "addi       %[h],       %[h],           -0x01          \n\t" 
  527                     "punpcklbh  %[ftmp3],   %[ftmp1],       %[ftmp0]       \n\t" 
  528                     "punpckhbh  %[ftmp4],   %[ftmp1],       %[ftmp0]       \n\t" 
  529                     "punpcklbh  %[ftmp5],   %[ftmp2],       %[ftmp0]       \n\t" 
  530                     "punpckhbh  %[ftmp6],   %[ftmp2],       %[ftmp0]       \n\t" 
  531                     "pmullh     %[ftmp3],   %[ftmp3],       %[A]           \n\t" 
  532                     "pmullh     %[ftmp5],   %[ftmp5],       %[E]           \n\t" 
  533                     "paddh      %[ftmp1],   %[ftmp3],       %[ftmp5]       \n\t" 
  534                     "pmullh     %[ftmp4],   %[ftmp4],       %[A]           \n\t" 
  535                     "pmullh     %[ftmp6],   %[ftmp6],       %[E]           \n\t" 
  536                     "paddh      %[ftmp2],   %[ftmp4],       %[ftmp6]       \n\t" 
  538                     "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]    \n\t" 
  539                     "paddh      %[ftmp2],   %[ftmp2],       %[ff_pw_32]    \n\t" 
  540                     "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp7]       \n\t" 
  541                     "psrlh      %[ftmp2],   %[ftmp2],       %[ftmp7]       \n\t" 
  542                     "packushb   %[ftmp1],   %[ftmp1],       %[ftmp2]       \n\t" 
  543                     MMI_LDC1(%[ftmp2], %[dst], 0x00)
 
  544                     "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]       \n\t" 
  545                     MMI_SDC1(%[ftmp1], %[dst], 0x00)
 
  546                     PTR_ADDU   "%[dst],     %[dst],         %[stride]      \n\t" 
  548                     : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  549                       [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  550                       [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  551                       [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  553                       [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  568     const int A = (8 - x) * (8 - y);
 
  569     const int B = x * (8 - y);
 
  570     const int C = (8 - x) *  y;
 
  580             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
  581             "dli        %[tmp0],    0x06                                \n\t" 
  582             "pshufh     %[A],       %[A],           %[ftmp0]            \n\t" 
  583             "pshufh     %[B],       %[B],           %[ftmp0]            \n\t" 
  584             "mtc1       %[tmp0],    %[ftmp7]                            \n\t" 
  585             "pshufh     %[C],       %[C],           %[ftmp0]            \n\t" 
  586             "pshufh     %[D],       %[D],           %[ftmp0]            \n\t" 
  589             PTR_ADDU   "%[addr0],   %[src],         %[stride]           \n\t" 
  590             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  591             MMI_ULWC1(%[ftmp2], %[src], 0x01)
 
  592             MMI_ULWC1(%[ftmp3], %[addr0], 0x00)
 
  593             MMI_ULWC1(%[ftmp4], %[addr0], 0x01)
 
  595             "punpcklbh  %[ftmp5],   %[ftmp1],       %[ftmp0]            \n\t" 
  596             "punpcklbh  %[ftmp6],   %[ftmp2],       %[ftmp0]            \n\t" 
  597             "pmullh     %[ftmp5],   %[ftmp5],       %[A]                \n\t" 
  598             "pmullh     %[ftmp6],   %[ftmp6],       %[B]                \n\t" 
  599             "paddh      %[ftmp1],   %[ftmp5],       %[ftmp6]            \n\t" 
  601             "punpcklbh  %[ftmp5],   %[ftmp3],       %[ftmp0]            \n\t" 
  602             "punpcklbh  %[ftmp6],   %[ftmp4],       %[ftmp0]            \n\t" 
  603             "pmullh     %[ftmp5],   %[ftmp5],       %[C]                \n\t" 
  604             "pmullh     %[ftmp6],   %[ftmp6],       %[D]                \n\t" 
  605             "paddh      %[ftmp2],   %[ftmp5],       %[ftmp6]            \n\t" 
  607             "paddh      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  608             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  609             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp7]            \n\t" 
  610             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  611             "addi       %[h],       %[h],           -0x01               \n\t" 
  612             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  613             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  614             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  616             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  617               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  618               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  619               [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  622               [addr0]
"=&r"(addr[0]),
 
  623               [dst]
"+&r"(dst),              [src]
"+&r"(src),
 
  626               [
A]
"f"(
A),                    [B]
"f"(B),
 
  631         const int step = C ? stride : 1;
 
  634             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
  635             "dli        %[tmp0],    0x06                                \n\t" 
  636             "pshufh     %[A],       %[A],           %[ftmp0]            \n\t" 
  637             "pshufh     %[E],       %[E],           %[ftmp0]            \n\t" 
  638             "mtc1       %[tmp0],    %[ftmp5]                            \n\t" 
  641             PTR_ADDU   "%[addr0],   %[src],         %[step]             \n\t" 
  642             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  643             MMI_ULWC1(%[ftmp2], %[addr0], 0x00)
 
  645             "punpcklbh  %[ftmp3],   %[ftmp1],       %[ftmp0]            \n\t" 
  646             "punpcklbh  %[ftmp4],   %[ftmp2],       %[ftmp0]            \n\t" 
  647             "pmullh     %[ftmp3],   %[ftmp3],       %[A]                \n\t" 
  648             "pmullh     %[ftmp4],   %[ftmp4],       %[E]                \n\t" 
  649             "paddh      %[ftmp1],   %[ftmp3],       %[ftmp4]            \n\t" 
  651             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  652             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
  653             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  654             "addi       %[h],       %[h],           -0x01               \n\t" 
  655             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  656             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  657             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  659             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  660               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  661               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  664               [addr0]
"=&r"(addr[0]),
 
  665               [dst]
"+&r"(dst),              [src]
"+&r"(src),
 
  674             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
  675             "dli        %[tmp0],    0x06                                \n\t" 
  676             "pshufh     %[A],       %[A],           %[ftmp0]            \n\t" 
  677             "mtc1       %[tmp0],    %[ftmp3]                            \n\t" 
  680             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  681             "punpcklbh  %[ftmp2],   %[ftmp1],       %[ftmp0]            \n\t" 
  682             "pmullh     %[ftmp1],   %[ftmp2],       %[A]                \n\t" 
  683             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  684             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
  685             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  686             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  687             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  688             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  690             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  691             "punpcklbh  %[ftmp2],   %[ftmp1],       %[ftmp0]            \n\t" 
  692             "pmullh     %[ftmp1],   %[ftmp2],       %[A]                \n\t" 
  693             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  694             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
  695             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  696             "addi       %[h],       %[h],           -0x02               \n\t" 
  697             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  699             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  700             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  702             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  703               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  706               [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
  718     const int A = (8 - x) *(8 - y);
 
  719     const int B = x * (8 - y);
 
  720     const int C = (8 - x) * y;
 
  730             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
  731             "dli        %[tmp0],    0x06                                \n\t" 
  732             "pshufh     %[A],       %[A],           %[ftmp0]            \n\t" 
  733             "pshufh     %[B],       %[B],           %[ftmp0]            \n\t" 
  734             "mtc1       %[tmp0],    %[ftmp7]                            \n\t" 
  735             "pshufh     %[C],       %[C],           %[ftmp0]            \n\t" 
  736             "pshufh     %[D],       %[D],           %[ftmp0]            \n\t" 
  739             PTR_ADDU   "%[addr0],   %[src],         %[stride]           \n\t" 
  740             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  741             MMI_ULWC1(%[ftmp2], %[src], 0x01)
 
  742             MMI_ULWC1(%[ftmp3], %[addr0], 0x00)
 
  743             MMI_ULWC1(%[ftmp4], %[addr0], 0x01)
 
  745             "punpcklbh  %[ftmp5],   %[ftmp1],       %[ftmp0]            \n\t" 
  746             "punpcklbh  %[ftmp6],   %[ftmp2],       %[ftmp0]            \n\t" 
  747             "pmullh     %[ftmp5],   %[ftmp5],       %[A]                \n\t" 
  748             "pmullh     %[ftmp6],   %[ftmp6],       %[B]                \n\t" 
  749             "paddh      %[ftmp1],   %[ftmp5],       %[ftmp6]            \n\t" 
  751             "punpcklbh  %[ftmp5],   %[ftmp3],       %[ftmp0]            \n\t" 
  752             "punpcklbh  %[ftmp6],   %[ftmp4],       %[ftmp0]            \n\t" 
  753             "pmullh     %[ftmp5],   %[ftmp5],       %[C]                \n\t" 
  754             "pmullh     %[ftmp6],   %[ftmp6],       %[D]                \n\t" 
  755             "paddh      %[ftmp2],   %[ftmp5],       %[ftmp6]            \n\t" 
  757             "paddh      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  758             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  759             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp7]            \n\t" 
  760             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  761             MMI_LWC1(%[ftmp2], %[dst], 0x00)
 
  762             "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  763             "addi       %[h],       %[h],           -0x01               \n\t" 
  764             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  765             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  766             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  768             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  769               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  770               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  771               [ftmp6]
"=&f"(ftmp[6]),        [ftmp7]
"=&f"(ftmp[7]),
 
  774               [addr0]
"=&r"(addr[0]),
 
  775               [dst]
"+&r"(dst),              [src]
"+&r"(src),
 
  778               [
A]
"f"(
A),                    [B]
"f"(B),
 
  783         const int step = C ? stride : 1;
 
  786             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
  787             "dli        %[tmp0],    0x06                                \n\t" 
  788             "pshufh     %[A],       %[A],           %[ftmp0]            \n\t" 
  789             "pshufh     %[E],       %[E],           %[ftmp0]            \n\t" 
  790             "mtc1       %[tmp0],    %[ftmp5]                            \n\t" 
  792             PTR_ADDU   "%[addr0],   %[src],         %[step]             \n\t" 
  793             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  794             MMI_ULWC1(%[ftmp2], %[addr0], 0x00)
 
  796             "punpcklbh  %[ftmp3],   %[ftmp1],       %[ftmp0]            \n\t" 
  797             "punpcklbh  %[ftmp4],   %[ftmp2],       %[ftmp0]            \n\t" 
  798             "pmullh     %[ftmp3],   %[ftmp3],       %[A]                \n\t" 
  799             "pmullh     %[ftmp4],   %[ftmp4],       %[E]                \n\t" 
  800             "paddh      %[ftmp1],   %[ftmp3],       %[ftmp4]            \n\t" 
  802             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  803             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp5]            \n\t" 
  804             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  805             MMI_LWC1(%[ftmp2], %[dst], 0x00)
 
  806             "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  807             "addi       %[h],       %[h],           -0x01               \n\t" 
  808             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  809             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  810             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  812             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  813               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  814               [ftmp4]
"=&f"(ftmp[4]),        [ftmp5]
"=&f"(ftmp[5]),
 
  817               [addr0]
"=&r"(addr[0]),
 
  818               [dst]
"+&r"(dst),              [src]
"+&r"(src),
 
  827             "xor        %[ftmp0],   %[ftmp0],       %[ftmp0]            \n\t" 
  828             "dli        %[tmp0],    0x06                                \n\t" 
  829             "pshufh     %[A],       %[A],           %[ftmp0]            \n\t" 
  830             "mtc1       %[tmp0],    %[ftmp3]                            \n\t" 
  833             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  834             "punpcklbh  %[ftmp2],   %[ftmp1],       %[ftmp0]            \n\t" 
  835             "pmullh     %[ftmp1],   %[ftmp2],       %[A]                \n\t" 
  836             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  837             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
  838             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  839             MMI_LWC1(%[ftmp2], %[dst], 0x00)
 
  840             "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  841             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  842             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  843             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  845             MMI_ULWC1(%[ftmp1], %[src], 0x00)
 
  846             "punpcklbh  %[ftmp2],   %[ftmp1],       %[ftmp0]            \n\t" 
  847             "pmullh     %[ftmp1],   %[ftmp2],       %[A]                \n\t" 
  848             "paddh      %[ftmp1],   %[ftmp1],       %[ff_pw_32]         \n\t" 
  849             "psrlh      %[ftmp1],   %[ftmp1],       %[ftmp3]            \n\t" 
  850             "packushb   %[ftmp1],   %[ftmp1],       %[ftmp0]            \n\t" 
  851             MMI_LWC1(%[ftmp2], %[dst], 0x00)
 
  852             "pavgb      %[ftmp1],   %[ftmp1],       %[ftmp2]            \n\t" 
  853             "addi       %[h],       %[h],           -0x02               \n\t" 
  854             MMI_SWC1(%[ftmp1], %[dst], 0x00)
 
  856             PTR_ADDU   "%[src],     %[src],         %[stride]           \n\t" 
  857             PTR_ADDU   "%[dst],     %[dst],         %[stride]           \n\t" 
  859             : [ftmp0]
"=&f"(ftmp[0]),        [ftmp1]
"=&f"(ftmp[1]),
 
  860               [ftmp2]
"=&f"(ftmp[2]),        [ftmp3]
"=&f"(ftmp[3]),
 
  863               [dst]
"+&r"(dst),              [
src]
"+&r"(
src),
 
void ff_put_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
void ff_avg_h264_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
void ff_avg_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
GLint GLenum GLboolean GLsizei stride
 
void ff_put_h264_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)