/*
 *  Copyright (c) 2015 The WebM project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#include "vpx_dsp/mips/common_dspr2.h"

#if HAVE_DSPR2
void vpx_h_predictor_4x4_dspr2(uint8_t *dst, ptrdiff_t stride,
                               const uint8_t *above, const uint8_t *left) {
  int32_t  tmp1, tmp2, tmp3, tmp4;

  __asm__ __volatile__ (
      "lb         %[tmp1],      (%[left])                    \n\t"
      "lb         %[tmp2],      1(%[left])                   \n\t"
      "lb         %[tmp3],      2(%[left])                   \n\t"
      "lb         %[tmp4],      3(%[left])                   \n\t"
      "replv.qb   %[tmp1],      %[tmp1]                      \n\t"
      "replv.qb   %[tmp2],      %[tmp2]                      \n\t"
      "replv.qb   %[tmp3],      %[tmp3]                      \n\t"
      "replv.qb   %[tmp4],      %[tmp4]                      \n\t"
      "sw         %[tmp1],      (%[dst])                     \n\t"
      "add        %[dst],       %[dst],         %[stride]    \n\t"
      "sw         %[tmp2],      (%[dst])                     \n\t"
      "add        %[dst],       %[dst],         %[stride]    \n\t"
      "sw         %[tmp3],      (%[dst])                     \n\t"
      "add        %[dst],       %[dst],         %[stride]    \n\t"
      "sw         %[tmp4],      (%[dst])                     \n\t"

      : [tmp1] "=&r" (tmp1), [tmp2] "=&r" (tmp2),
        [tmp3] "=&r" (tmp3), [tmp4] "=&r" (tmp4)
      : [left] "r" (left), [dst] "r" (dst), [stride] "r" (stride)
  );
}

void vpx_dc_predictor_4x4_dspr2(uint8_t *dst, ptrdiff_t stride,
                                const uint8_t *above, const uint8_t *left) {
  int32_t  expected_dc;
  int32_t  average;
  int32_t  tmp, above_c, above_l, above_r, left_c, left_r, left_l;

  __asm__ __volatile__ (
      "lw              %[above_c],         (%[above])                    \n\t"
      "lw              %[left_c],          (%[left])                     \n\t"

      "preceu.ph.qbl   %[above_l],         %[above_c]                    \n\t"
      "preceu.ph.qbr   %[above_r],         %[above_c]                    \n\t"
      "preceu.ph.qbl   %[left_l],          %[left_c]                     \n\t"
      "preceu.ph.qbr   %[left_r],          %[left_c]                     \n\t"

      "addu.ph         %[average],         %[above_r],       %[above_l]  \n\t"
      "addu.ph         %[average],         %[average],       %[left_l]   \n\t"
      "addu.ph         %[average],         %[average],       %[left_r]   \n\t"
      "addiu           %[average],         %[average],       4           \n\t"
      "srl             %[tmp],             %[average],       16          \n\t"
      "addu.ph         %[average],         %[tmp],           %[average]  \n\t"
      "srl             %[expected_dc],     %[average],       3           \n\t"
      "replv.qb        %[expected_dc],     %[expected_dc]                \n\t"

      "sw              %[expected_dc],     (%[dst])                      \n\t"
      "add             %[dst],              %[dst],          %[stride]   \n\t"
      "sw              %[expected_dc],     (%[dst])                      \n\t"
      "add             %[dst],              %[dst],          %[stride]   \n\t"
      "sw              %[expected_dc],     (%[dst])                      \n\t"
      "add             %[dst],              %[dst],          %[stride]   \n\t"
      "sw              %[expected_dc],     (%[dst])                      \n\t"

      : [above_c] "=&r" (above_c), [above_l] "=&r" (above_l),
        [above_r] "=&r" (above_r), [left_c] "=&r" (left_c),
        [left_l] "=&r" (left_l), [left_r] "=&r" (left_r),
        [average] "=&r" (average), [tmp] "=&r" (tmp),
        [expected_dc] "=&r" (expected_dc)
      : [above] "r" (above), [left] "r" (left),
        [dst] "r" (dst), [stride] "r" (stride)
  );
}

void vpx_tm_predictor_4x4_dspr2(uint8_t *dst, ptrdiff_t stride,
                                const uint8_t *above, const uint8_t *left) {
  int32_t  abovel, abover;
  int32_t  left0, left1, left2, left3;
  int32_t  res0, res1;
  int32_t  resl;
  int32_t  resr;
  int32_t  top_left;
  uint8_t  *cm = vpx_ff_cropTbl;

  __asm__ __volatile__ (
      "ulw             %[resl],       (%[above])                         \n\t"

      "lbu             %[left0],       (%[left])                         \n\t"
      "lbu             %[left1],       1(%[left])                        \n\t"
      "lbu             %[left2],       2(%[left])                        \n\t"
      "lbu             %[left3],       3(%[left])                        \n\t"

      "lbu             %[top_left],    -1(%[above])                      \n\t"

      "preceu.ph.qbl   %[abovel],      %[resl]                           \n\t"
      "preceu.ph.qbr   %[abover],      %[resl]                           \n\t"

      "replv.ph        %[left0],       %[left0]                          \n\t"
      "replv.ph        %[left1],       %[left1]                          \n\t"
      "replv.ph        %[left2],       %[left2]                          \n\t"
      "replv.ph        %[left3],       %[left3]                          \n\t"

      "replv.ph        %[top_left],    %[top_left]                       \n\t"

      "addu.ph         %[resl],        %[abovel],         %[left0]       \n\t"
      "subu.ph         %[resl],        %[resl],           %[top_left]    \n\t"

      "addu.ph         %[resr],        %[abover],         %[left0]       \n\t"
      "subu.ph         %[resr],        %[resr],           %[top_left]    \n\t"

      "sll             %[res0],        %[resr],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"

      "sra             %[res1],        %[resr],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"
      "sb              %[res0],        (%[dst])                          \n\t"

      "sll             %[res0],        %[resl],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"
      "sb              %[res1],        1(%[dst])                         \n\t"

      "sra             %[res1],        %[resl],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"

      "addu.ph         %[resl],        %[abovel],         %[left1]       \n\t"
      "subu.ph         %[resl],        %[resl],           %[top_left]    \n\t"

      "addu.ph         %[resr],        %[abover],         %[left1]       \n\t"
      "subu.ph         %[resr],        %[resr],           %[top_left]    \n\t"

      "sb              %[res0],        2(%[dst])                         \n\t"
      "sb              %[res1],        3(%[dst])                         \n\t"

      "add             %[dst],          %[dst],           %[stride]      \n\t"

      "sll             %[res0],        %[resr],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"

      "sra             %[res1],        %[resr],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"
      "sb              %[res0],        (%[dst])                          \n\t"

      "sll             %[res0],        %[resl],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"

      "sb              %[res1],        1(%[dst])                         \n\t"
      "sra             %[res1],        %[resl],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"

      "addu.ph         %[resl],        %[abovel],         %[left2]       \n\t"
      "subu.ph         %[resl],        %[resl],           %[top_left]    \n\t"

      "addu.ph         %[resr],        %[abover],         %[left2]       \n\t"
      "subu.ph         %[resr],        %[resr],           %[top_left]    \n\t"

      "sb              %[res0],        2(%[dst])                         \n\t"
      "sb              %[res1],        3(%[dst])                         \n\t"

      "add             %[dst],          %[dst],           %[stride]      \n\t"

      "sll             %[res0],        %[resr],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"


      "sra             %[res1],        %[resr],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"
      "sb              %[res0],        (%[dst])                          \n\t"

      "sll             %[res0],        %[resl],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"


      "sb              %[res1],        1(%[dst])                         \n\t"
      "sra             %[res1],        %[resl],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"

      "addu.ph         %[resl],        %[abovel],        %[left3]        \n\t"
      "subu.ph         %[resl],        %[resl],          %[top_left]     \n\t"

      "addu.ph         %[resr],        %[abover],        %[left3]        \n\t"
      "subu.ph         %[resr],        %[resr],          %[top_left]     \n\t"

      "sb              %[res0],        2(%[dst])                         \n\t"
      "sb              %[res1],        3(%[dst])                         \n\t"

      "add             %[dst],          %[dst],          %[stride]       \n\t"

      "sll             %[res0],        %[resr],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"

      "sra             %[res1],        %[resr],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"
      "sb              %[res0],        (%[dst])                          \n\t"

      "sll             %[res0],        %[resl],           16             \n\t"
      "sra             %[res0],        %[res0],           16             \n\t"
      "lbux            %[res0],        %[res0](%[cm])                    \n\t"
      "sb              %[res1],        1(%[dst])                         \n\t"

      "sra             %[res1],        %[resl],           16             \n\t"
      "lbux            %[res1],        %[res1](%[cm])                    \n\t"

      "sb              %[res0],        2(%[dst])                         \n\t"
      "sb              %[res1],        3(%[dst])                         \n\t"

      : [abovel] "=&r" (abovel), [abover] "=&r" (abover),
        [left0] "=&r" (left0), [left1] "=&r" (left1), [left2] "=&r" (left2),
        [res0] "=&r" (res0), [res1] "=&r" (res1), [left3] "=&r" (left3),
        [resl] "=&r" (resl), [resr] "=&r" (resr), [top_left] "=&r" (top_left)
      : [above] "r" (above), [left] "r" (left),
        [dst] "r" (dst), [stride] "r" (stride), [cm] "r" (cm)
  );
}
#endif  // #if HAVE_DSPR2
