1d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org/*
2d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org *  Copyright (c) 2013 The WebM project authors. All Rights Reserved.
3d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org *
4d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org *  Use of this source code is governed by a BSD-style license
5d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org *  that can be found in the LICENSE file in the root of the source
6d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org *  tree. An additional intellectual property rights grant can be found
7d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org *  in the file PATENTS.  All contributing project authors may
8d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org *  be found in the AUTHORS file in the root of the source tree.
9d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org */
10d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include <stdlib.h>
11d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
12d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "./vp9_rtcd.h"
13d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/vp9_common.h"
14d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/mips/dspr2/vp9_common_dspr2.h"
15d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
16d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#if HAVE_DSPR2
17d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.orgvoid vp9_h_predictor_16x16_dspr2(uint8_t *dst, ptrdiff_t stride,
18d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org                                 const uint8_t *above, const uint8_t *left) {
19d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  int32_t  tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8;
20d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  int32_t  tmp9, tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
21d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
22d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  __asm__ __volatile__ (
23d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp1],      (%[left])                    \n\t"
24d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp2],      1(%[left])                   \n\t"
25d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp3],      2(%[left])                   \n\t"
26d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp4],      3(%[left])                   \n\t"
27d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp5],      4(%[left])                   \n\t"
28d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp6],      5(%[left])                   \n\t"
29d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp7],      6(%[left])                   \n\t"
30d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp8],      7(%[left])                   \n\t"
31d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp9],      8(%[left])                   \n\t"
32d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp10],     9(%[left])                   \n\t"
33d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp11],     10(%[left])                  \n\t"
34d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp12],     11(%[left])                  \n\t"
35d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp13],     12(%[left])                  \n\t"
36d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp14],     13(%[left])                  \n\t"
37d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp15],     14(%[left])                  \n\t"
38d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lb         %[tmp16],     15(%[left])                  \n\t"
39d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
40d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp1],      %[tmp1]                      \n\t"
41d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp2],      %[tmp2]                      \n\t"
42d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp3],      %[tmp3]                      \n\t"
43d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp4],      %[tmp4]                      \n\t"
44d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp5],      %[tmp5]                      \n\t"
45d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp6],      %[tmp6]                      \n\t"
46d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp7],      %[tmp7]                      \n\t"
47d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp8],      %[tmp8]                      \n\t"
48d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp9],      %[tmp9]                      \n\t"
49d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp10],     %[tmp10]                     \n\t"
50d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp11],     %[tmp11]                     \n\t"
51d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp12],     %[tmp12]                     \n\t"
52d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp13],     %[tmp13]                     \n\t"
53d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp14],     %[tmp14]                     \n\t"
54d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp15],     %[tmp15]                     \n\t"
55d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb   %[tmp16],     %[tmp16]                     \n\t"
56d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
57d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp1],      (%[dst])                     \n\t"
58d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp1],      4(%[dst])                    \n\t"
59d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp1],      8(%[dst])                    \n\t"
60d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp1],      12(%[dst])                   \n\t"
61d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
62d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
63d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp2],      (%[dst])                     \n\t"
64d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp2],      4(%[dst])                    \n\t"
65d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp2],      8(%[dst])                    \n\t"
66d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp2],      12(%[dst])                   \n\t"
67d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
68d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
69d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp3],      (%[dst])                     \n\t"
70d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp3],      4(%[dst])                    \n\t"
71d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp3],      8(%[dst])                    \n\t"
72d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp3],      12(%[dst])                   \n\t"
73d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
74d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
75d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp4],      (%[dst])                     \n\t"
76d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp4],      4(%[dst])                    \n\t"
77d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp4],      8(%[dst])                    \n\t"
78d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp4],      12(%[dst])                   \n\t"
79d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
80d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
81d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp5],      (%[dst])                     \n\t"
82d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp5],      4(%[dst])                    \n\t"
83d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp5],      8(%[dst])                    \n\t"
84d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp5],      12(%[dst])                   \n\t"
85d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
86d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
87d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp6],      (%[dst])                     \n\t"
88d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp6],      4(%[dst])                    \n\t"
89d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp6],      8(%[dst])                    \n\t"
90d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp6],      12(%[dst])                   \n\t"
91d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
92d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
93d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp7],      (%[dst])                     \n\t"
94d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp7],      4(%[dst])                    \n\t"
95d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp7],      8(%[dst])                    \n\t"
96d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp7],      12(%[dst])                   \n\t"
97d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
98d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
99d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp8],      (%[dst])                     \n\t"
100d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp8],      4(%[dst])                    \n\t"
101d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp8],      8(%[dst])                    \n\t"
102d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp8],      12(%[dst])                   \n\t"
103d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
104d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
105d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp9],      (%[dst])                     \n\t"
106d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp9],      4(%[dst])                    \n\t"
107d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp9],      8(%[dst])                    \n\t"
108d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp9],      12(%[dst])                   \n\t"
109d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
110d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
111d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp10],     (%[dst])                     \n\t"
112d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp10],     4(%[dst])                    \n\t"
113d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp10],     8(%[dst])                    \n\t"
114d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp10],     12(%[dst])                   \n\t"
115d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
116d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
117d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp11],     (%[dst])                     \n\t"
118d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp11],     4(%[dst])                    \n\t"
119d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp11],     8(%[dst])                    \n\t"
120d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp11],     12(%[dst])                   \n\t"
121d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
122d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
123d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp12],     (%[dst])                     \n\t"
124d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp12],     4(%[dst])                    \n\t"
125d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp12],     8(%[dst])                    \n\t"
126d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp12],     12(%[dst])                   \n\t"
127d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
128d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
129d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp13],     (%[dst])                     \n\t"
130d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp13],     4(%[dst])                    \n\t"
131d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp13],     8(%[dst])                    \n\t"
132d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp13],     12(%[dst])                   \n\t"
133d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
134d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
135d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp14],     (%[dst])                     \n\t"
136d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp14],     4(%[dst])                    \n\t"
137d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp14],     8(%[dst])                    \n\t"
138d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp14],     12(%[dst])                   \n\t"
139d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
140d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
141d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp15],     (%[dst])                     \n\t"
142d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp15],     4(%[dst])                    \n\t"
143d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp15],     8(%[dst])                    \n\t"
144d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp15],     12(%[dst])                   \n\t"
145d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
146d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add        %[dst],       %[dst],         %[stride]    \n\t"
147d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp16],     (%[dst])                     \n\t"
148d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp16],     4(%[dst])                    \n\t"
149d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp16],     8(%[dst])                    \n\t"
150d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw         %[tmp16],     12(%[dst])                   \n\t"
151d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
152d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      : [tmp1] "=&r" (tmp1),   [tmp2] "=&r" (tmp2),
153d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [tmp3] "=&r" (tmp3),   [tmp4] "=&r" (tmp4),
154d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [tmp5] "=&r" (tmp5),   [tmp7] "=&r" (tmp7),
155d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [tmp6] "=&r" (tmp6),   [tmp8] "=&r" (tmp8),
156d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [tmp9] "=&r" (tmp9),   [tmp10] "=&r" (tmp10),
157d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [tmp11] "=&r" (tmp11), [tmp12] "=&r" (tmp12),
158d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [tmp13] "=&r" (tmp13), [tmp14] "=&r" (tmp14),
159d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [tmp15] "=&r" (tmp15), [tmp16] "=&r" (tmp16)
160d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      : [left] "r" (left), [dst] "r" (dst), [stride] "r" (stride)
161d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  );
162d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org}
163d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
164d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.orgvoid vp9_dc_predictor_16x16_dspr2(uint8_t *dst, ptrdiff_t stride,
165d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org                                  const uint8_t *above, const uint8_t *left) {
166d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  int32_t  expected_dc;
167d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  int32_t  average;
168d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  int32_t  tmp, above1, above_l1, above_r1, left1, left_r1, left_l1;
169d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  int32_t  above2, left2;
170d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
171d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  __asm__ __volatile__ (
172d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[above1],           (%[above])                    \n\t"
173d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[above2],           4(%[above])                   \n\t"
174d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[left1],            (%[left])                     \n\t"
175d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[left2],            4(%[left])                    \n\t"
176d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
177d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[above_l1],         %[above1]                     \n\t"
178d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[above_r1],         %[above1]                     \n\t"
179d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[left_l1],          %[left1]                      \n\t"
180d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[left_r1],          %[left1]                      \n\t"
181d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
182d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[above_r1],     %[above_l1]  \n\t"
183d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_l1]   \n\t"
184d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_r1]   \n\t"
185d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
186d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[above_l1],         %[above2]                     \n\t"
187d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[above_r1],         %[above2]                     \n\t"
188d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[left_l1],          %[left2]                      \n\t"
189d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[left_r1],          %[left2]                      \n\t"
190d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
191d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[above_l1]  \n\t"
192d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[above_r1]  \n\t"
193d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_l1]   \n\t"
194d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_r1]   \n\t"
195d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
196d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[above1],           8(%[above])                   \n\t"
197d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[above2],           12(%[above])                  \n\t"
198d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[left1],            8(%[left])                    \n\t"
199d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "lw              %[left2],            12(%[left])                   \n\t"
200d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
201d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[above_l1],         %[above1]                     \n\t"
202d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[above_r1],         %[above1]                     \n\t"
203d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[left_l1],          %[left1]                      \n\t"
204d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[left_r1],          %[left1]                      \n\t"
205d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
206d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[above_l1]  \n\t"
207d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[above_r1]  \n\t"
208d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_l1]   \n\t"
209d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_r1]   \n\t"
210d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
211d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[above_l1],         %[above2]                     \n\t"
212d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[above_r1],         %[above2]                     \n\t"
213d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbl   %[left_l1],          %[left2]                      \n\t"
214d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "preceu.ph.qbr   %[left_r1],          %[left2]                      \n\t"
215d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
216d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[above_l1]  \n\t"
217d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[above_r1]  \n\t"
218d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_l1]   \n\t"
219d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[average],      %[left_r1]   \n\t"
220d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
221d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addiu           %[average],          %[average],      16           \n\t"
222d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "srl             %[tmp],              %[average],      16           \n\t"
223d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "addu.ph         %[average],          %[tmp],          %[average]   \n\t"
224d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "srl             %[expected_dc],      %[average],      5            \n\t"
225d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "replv.qb        %[expected_dc],      %[expected_dc]                \n\t"
226d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
227d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
228d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
229d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
230d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
231d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
232d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
233d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
234d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
235d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
236d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
237d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
238d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
239d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
240d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
241d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
242d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
243d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
244d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
245d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
246d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
247d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
248d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
249d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
250d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
251d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
252d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
253d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
254d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
255d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
256d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
257d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
258d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
259d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
260d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
261d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
262d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
263d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
264d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
265d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
266d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
267d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
268d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
269d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
270d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
271d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
272d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
273d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
274d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
275d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
276d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
277d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
278d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
279d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
280d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
281d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
282d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
283d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
284d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
285d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
286d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
287d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
288d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
289d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
290d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
291d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
292d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
293d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
294d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
295d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
296d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
297d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
298d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
299d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
300d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
301d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
302d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
303d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
304d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
305d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
306d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
307d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
308d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
309d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
310d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
311d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
312d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
313d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
314d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
315d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
316d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "add             %[dst],              %[dst],          %[stride]    \n\t"
317d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      (%[dst])                      \n\t"
318d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      4(%[dst])                     \n\t"
319d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      8(%[dst])                     \n\t"
320d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      "sw              %[expected_dc],      12(%[dst])                    \n\t"
321d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
322d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      : [left1] "=&r" (left1), [above1] "=&r" (above1),
323d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [left_l1] "=&r" (left_l1), [above_l1] "=&r" (above_l1),
324d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [left_r1] "=&r" (left_r1), [above_r1] "=&r" (above_r1),
325d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [above2] "=&r" (above2), [left2] "=&r" (left2),
326d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [average] "=&r" (average), [tmp] "=&r" (tmp),
327d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [expected_dc] "=&r" (expected_dc)
328d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org      : [above] "r" (above), [left] "r" (left),
329d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org        [dst] "r" (dst), [stride] "r" (stride)
330d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org  );
331d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org}
332d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#endif  // #if HAVE_DSPR2
333