| Index: source/libvpx/third_party/libyuv/source/row_mips.cc
 | 
| diff --git a/source/libvpx/third_party/libyuv/source/row_mips.cc b/source/libvpx/third_party/libyuv/source/row_mips.cc
 | 
| index ae9370c1b021d2fc96f0fe74c9d539a27742f64b..cfc9ffe0368c071238cd769ab5bffe440ba05aa9 100644
 | 
| --- a/source/libvpx/third_party/libyuv/source/row_mips.cc
 | 
| +++ b/source/libvpx/third_party/libyuv/source/row_mips.cc
 | 
| @@ -378,7 +378,7 @@ void CopyRow_MIPS(const uint8* src, uint8* dst, int count) {
 | 
|  // MIPS DSPR2 functions
 | 
|  #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips_dsp) && \
 | 
|      (__mips_dsp_rev >= 2) && \
 | 
| -    (_MIPS_SIM == _MIPS_SIM_ABI32)
 | 
| +    (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6)
 | 
|  
 | 
|  void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v,
 | 
|                             int width) {
 | 
| @@ -447,89 +447,6 @@ void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v,
 | 
|    );
 | 
|  }
 | 
|  
 | 
| -void SplitUVRow_Unaligned_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u,
 | 
| -                                     uint8* dst_v, int width) {
 | 
| -  __asm__ __volatile__ (
 | 
| -    ".set push                                     \n"
 | 
| -    ".set noreorder                                \n"
 | 
| -    "srl             $t4, %[width], 4              \n"  // multiplies of 16
 | 
| -    "blez            $t4, 2f                       \n"
 | 
| -    " andi           %[width], %[width], 0xf       \n"  // residual
 | 
| -
 | 
| -    ".p2align        2                             \n"
 | 
| -  "1:                                              \n"
 | 
| -    "addiu           $t4, $t4, -1                  \n"
 | 
| -    "lwr             $t0, 0(%[src_uv])             \n"
 | 
| -    "lwl             $t0, 3(%[src_uv])             \n"  // V1 | U1 | V0 | U0
 | 
| -    "lwr             $t1, 4(%[src_uv])             \n"
 | 
| -    "lwl             $t1, 7(%[src_uv])             \n"  // V3 | U3 | V2 | U2
 | 
| -    "lwr             $t2, 8(%[src_uv])             \n"
 | 
| -    "lwl             $t2, 11(%[src_uv])            \n"  // V5 | U5 | V4 | U4
 | 
| -    "lwr             $t3, 12(%[src_uv])            \n"
 | 
| -    "lwl             $t3, 15(%[src_uv])            \n"  // V7 | U7 | V6 | U6
 | 
| -    "lwr             $t5, 16(%[src_uv])            \n"
 | 
| -    "lwl             $t5, 19(%[src_uv])            \n"  // V9 | U9 | V8 | U8
 | 
| -    "lwr             $t6, 20(%[src_uv])            \n"
 | 
| -    "lwl             $t6, 23(%[src_uv])            \n"  // V11 | U11 | V10 | U10
 | 
| -    "lwr             $t7, 24(%[src_uv])            \n"
 | 
| -    "lwl             $t7, 27(%[src_uv])            \n"  // V13 | U13 | V12 | U12
 | 
| -    "lwr             $t8, 28(%[src_uv])            \n"
 | 
| -    "lwl             $t8, 31(%[src_uv])            \n"  // V15 | U15 | V14 | U14
 | 
| -    "precrq.qb.ph    $t9, $t1, $t0                 \n"  // V3 | V2 | V1 | V0
 | 
| -    "precr.qb.ph     $t0, $t1, $t0                 \n"  // U3 | U2 | U1 | U0
 | 
| -    "precrq.qb.ph    $t1, $t3, $t2                 \n"  // V7 | V6 | V5 | V4
 | 
| -    "precr.qb.ph     $t2, $t3, $t2                 \n"  // U7 | U6 | U5 | U4
 | 
| -    "precrq.qb.ph    $t3, $t6, $t5                 \n"  // V11 | V10 | V9 | V8
 | 
| -    "precr.qb.ph     $t5, $t6, $t5                 \n"  // U11 | U10 | U9 | U8
 | 
| -    "precrq.qb.ph    $t6, $t8, $t7                 \n"  // V15 | V14 | V13 | V12
 | 
| -    "precr.qb.ph     $t7, $t8, $t7                 \n"  // U15 | U14 | U13 | U12
 | 
| -    "addiu           %[src_uv], %[src_uv], 32      \n"
 | 
| -    "swr             $t9, 0(%[dst_v])              \n"
 | 
| -    "swl             $t9, 3(%[dst_v])              \n"
 | 
| -    "swr             $t0, 0(%[dst_u])              \n"
 | 
| -    "swl             $t0, 3(%[dst_u])              \n"
 | 
| -    "swr             $t1, 4(%[dst_v])              \n"
 | 
| -    "swl             $t1, 7(%[dst_v])              \n"
 | 
| -    "swr             $t2, 4(%[dst_u])              \n"
 | 
| -    "swl             $t2, 7(%[dst_u])              \n"
 | 
| -    "swr             $t3, 8(%[dst_v])              \n"
 | 
| -    "swl             $t3, 11(%[dst_v])             \n"
 | 
| -    "swr             $t5, 8(%[dst_u])              \n"
 | 
| -    "swl             $t5, 11(%[dst_u])             \n"
 | 
| -    "swr             $t6, 12(%[dst_v])             \n"
 | 
| -    "swl             $t6, 15(%[dst_v])             \n"
 | 
| -    "swr             $t7, 12(%[dst_u])             \n"
 | 
| -    "swl             $t7, 15(%[dst_u])             \n"
 | 
| -    "addiu           %[dst_u], %[dst_u], 16        \n"
 | 
| -    "bgtz            $t4, 1b                       \n"
 | 
| -    " addiu          %[dst_v], %[dst_v], 16        \n"
 | 
| -
 | 
| -    "beqz            %[width], 3f                  \n"
 | 
| -    " nop                                          \n"
 | 
| -
 | 
| -  "2:                                              \n"
 | 
| -    "lbu             $t0, 0(%[src_uv])             \n"
 | 
| -    "lbu             $t1, 1(%[src_uv])             \n"
 | 
| -    "addiu           %[src_uv], %[src_uv], 2       \n"
 | 
| -    "addiu           %[width], %[width], -1        \n"
 | 
| -    "sb              $t0, 0(%[dst_u])              \n"
 | 
| -    "sb              $t1, 0(%[dst_v])              \n"
 | 
| -    "addiu           %[dst_u], %[dst_u], 1         \n"
 | 
| -    "bgtz            %[width], 2b                  \n"
 | 
| -    " addiu          %[dst_v], %[dst_v], 1         \n"
 | 
| -
 | 
| -  "3:                                              \n"
 | 
| -    ".set pop                                      \n"
 | 
| -     : [src_uv] "+r" (src_uv),
 | 
| -       [width] "+r" (width),
 | 
| -       [dst_u] "+r" (dst_u),
 | 
| -       [dst_v] "+r" (dst_v)
 | 
| -     :
 | 
| -     : "t0", "t1", "t2", "t3",
 | 
| -     "t4", "t5", "t6", "t7", "t8", "t9"
 | 
| -  );
 | 
| -}
 | 
| -
 | 
|  void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width) {
 | 
|    __asm__ __volatile__ (
 | 
|      ".set push                             \n"
 | 
| @@ -927,9 +844,9 @@ void I422ToBGRARow_MIPS_DSPR2(const uint8* y_buf,
 | 
|  }
 | 
|  
 | 
|  // Bilinear filter 8x2 -> 8x1
 | 
| -void InterpolateRows_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr,
 | 
| -                                ptrdiff_t src_stride, int dst_width,
 | 
| -                                int source_y_fraction) {
 | 
| +void InterpolateRow_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr,
 | 
| +                               ptrdiff_t src_stride, int dst_width,
 | 
| +                               int source_y_fraction) {
 | 
|      int y0_fraction = 256 - source_y_fraction;
 | 
|      const uint8* src_ptr1 = src_ptr + src_stride;
 | 
|  
 | 
| 
 |