Mercurial > libavcodec.hg
annotate sh4/dsputil_align.c @ 3990:746a60ba3177 libavcodec
enable CMOV_IS_FAST as its faster or equal speed on every cpu (duron, athlon, PM, P3) from which ive seen benchmarks, it might be slower on P4 but noone has posted benchmarks ...
author | michael |
---|---|
date | Wed, 11 Oct 2006 12:23:40 +0000 |
parents | c8c591fe26f8 |
children | d5ba514e3f4a |
rev | line source |
---|---|
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
1 /* |
2967 | 2 * aligned/packed access motion |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
3 * |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
4 * Copyright (c) 2001-2003 BERO <bero@geocities.co.jp> |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
5 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
6 * This file is part of FFmpeg. |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
7 * |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
10 * License as published by the Free Software Foundation; either |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
12 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
16 * Lesser General Public License for more details. |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
17 * |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
18 * You should have received a copy of the GNU Lesser General Public |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
3036
0b546eab515d
Update licensing information: The FSF changed postal address.
diego
parents:
2979
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
21 */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
22 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
23 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
24 #include "../avcodec.h" |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
25 #include "../dsputil.h" |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
26 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
27 |
2979 | 28 #define LP(p) *(uint32_t*)(p) |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
29 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
30 |
2979 | 31 #define UNPACK(ph,pl,tt0,tt1) do { \ |
32 uint32_t t0,t1; t0=tt0;t1=tt1; \ | |
33 ph = ( (t0 & ~BYTE_VEC32(0x03))>>2) + ( (t1 & ~BYTE_VEC32(0x03))>>2); \ | |
34 pl = (t0 & BYTE_VEC32(0x03)) + (t1 & BYTE_VEC32(0x03)); } while(0) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
35 |
2979 | 36 #define rnd_PACK(ph,pl,nph,npl) ph + nph + (((pl + npl + BYTE_VEC32(0x02))>>2) & BYTE_VEC32(0x03)) |
37 #define no_rnd_PACK(ph,pl,nph,npl) ph + nph + (((pl + npl + BYTE_VEC32(0x01))>>2) & BYTE_VEC32(0x03)) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
38 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
39 /* little endian */ |
2979 | 40 #define MERGE1(a,b,ofs) (ofs==0)?a:( ((a)>>(8*ofs))|((b)<<(32-8*ofs)) ) |
41 #define MERGE2(a,b,ofs) (ofs==3)?b:( ((a)>>(8*(ofs+1)))|((b)<<(32-8*(ofs+1))) ) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
42 /* big |
2979 | 43 #define MERGE1(a,b,ofs) (ofs==0)?a:( ((a)<<(8*ofs))|((b)>>(32-8*ofs)) ) |
44 #define MERGE2(a,b,ofs) (ofs==3)?b:( ((a)<<(8+8*ofs))|((b)>>(32-8-8*ofs)) ) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
45 */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
46 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
47 |
2979 | 48 #define put(d,s) d = s |
49 #define avg(d,s) d = rnd_avg32(s,d) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
50 |
2979 | 51 #define OP_C4(ofs) \ |
52 ref-=ofs; \ | |
53 do { \ | |
54 OP(LP(dest),MERGE1(LP(ref),LP(ref+4),ofs)); \ | |
55 ref+=stride; \ | |
56 dest+=stride; \ | |
57 } while(--height) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
58 |
2979 | 59 #define OP_C40() \ |
60 do { \ | |
61 OP(LP(dest),LP(ref)); \ | |
62 ref+=stride; \ | |
63 dest+=stride; \ | |
64 } while(--height) | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
65 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
66 |
2979 | 67 #define OP put |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
68 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
69 static void put_pixels4_c(uint8_t *dest,const uint8_t *ref, const int stride,int height) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
70 { |
2979 | 71 switch((int)ref&3){ |
72 case 0: OP_C40(); return; | |
73 case 1: OP_C4(1); return; | |
74 case 2: OP_C4(2); return; | |
75 case 3: OP_C4(3); return; | |
76 } | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
77 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
78 |
2979 | 79 #undef OP |
80 #define OP avg | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
81 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
82 static void avg_pixels4_c(uint8_t *dest,const uint8_t *ref, const int stride,int height) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
83 { |
2979 | 84 switch((int)ref&3){ |
85 case 0: OP_C40(); return; | |
86 case 1: OP_C4(1); return; | |
87 case 2: OP_C4(2); return; | |
88 case 3: OP_C4(3); return; | |
89 } | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
90 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
91 |
2979 | 92 #undef OP |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
93 |
2979 | 94 #define OP_C(ofs,sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
95 { \ |
2979 | 96 ref-=ofs; \ |
97 do { \ | |
98 uint32_t t0,t1; \ | |
99 t0 = LP(ref+0); \ | |
100 t1 = LP(ref+4); \ | |
101 OP(LP(dest+0), MERGE1(t0,t1,ofs)); \ | |
102 t0 = LP(ref+8); \ | |
103 OP(LP(dest+4), MERGE1(t1,t0,ofs)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
104 if (sz==16) { \ |
2979 | 105 t1 = LP(ref+12); \ |
106 OP(LP(dest+8), MERGE1(t0,t1,ofs)); \ | |
107 t0 = LP(ref+16); \ | |
108 OP(LP(dest+12), MERGE1(t1,t0,ofs)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
109 } \ |
2979 | 110 ref+=stride; \ |
111 dest+= stride; \ | |
112 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
113 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
114 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
115 /* aligned */ |
2979 | 116 #define OP_C0(sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
117 { \ |
2979 | 118 do { \ |
119 OP(LP(dest+0), LP(ref+0)); \ | |
120 OP(LP(dest+4), LP(ref+4)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
121 if (sz==16) { \ |
2979 | 122 OP(LP(dest+8), LP(ref+8)); \ |
123 OP(LP(dest+12), LP(ref+12)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
124 } \ |
2979 | 125 ref+=stride; \ |
126 dest+= stride; \ | |
127 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
128 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
129 |
2979 | 130 #define OP_X(ofs,sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
131 { \ |
2979 | 132 ref-=ofs; \ |
133 do { \ | |
134 uint32_t t0,t1; \ | |
135 t0 = LP(ref+0); \ | |
136 t1 = LP(ref+4); \ | |
137 OP(LP(dest+0), avg2(MERGE1(t0,t1,ofs),MERGE2(t0,t1,ofs))); \ | |
138 t0 = LP(ref+8); \ | |
139 OP(LP(dest+4), avg2(MERGE1(t1,t0,ofs),MERGE2(t1,t0,ofs))); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
140 if (sz==16) { \ |
2979 | 141 t1 = LP(ref+12); \ |
142 OP(LP(dest+8), avg2(MERGE1(t0,t1,ofs),MERGE2(t0,t1,ofs))); \ | |
143 t0 = LP(ref+16); \ | |
144 OP(LP(dest+12), avg2(MERGE1(t1,t0,ofs),MERGE2(t1,t0,ofs))); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
145 } \ |
2979 | 146 ref+=stride; \ |
147 dest+= stride; \ | |
148 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
149 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
150 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
151 /* aligned */ |
2979 | 152 #define OP_Y0(sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
153 { \ |
2979 | 154 uint32_t t0,t1,t2,t3,t; \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
155 \ |
2979 | 156 t0 = LP(ref+0); \ |
157 t1 = LP(ref+4); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
158 if (sz==16) { \ |
2979 | 159 t2 = LP(ref+8); \ |
160 t3 = LP(ref+12); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
161 } \ |
2979 | 162 do { \ |
163 ref += stride; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
164 \ |
2979 | 165 t = LP(ref+0); \ |
166 OP(LP(dest+0), avg2(t0,t)); t0 = t; \ | |
167 t = LP(ref+4); \ | |
168 OP(LP(dest+4), avg2(t1,t)); t1 = t; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
169 if (sz==16) { \ |
2979 | 170 t = LP(ref+8); \ |
171 OP(LP(dest+8), avg2(t2,t)); t2 = t; \ | |
172 t = LP(ref+12); \ | |
173 OP(LP(dest+12), avg2(t3,t)); t3 = t; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
174 } \ |
2979 | 175 dest+= stride; \ |
176 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
177 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
178 |
2979 | 179 #define OP_Y(ofs,sz,avg2) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
180 { \ |
2979 | 181 uint32_t t0,t1,t2,t3,t,w0,w1; \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
182 \ |
2979 | 183 ref-=ofs; \ |
184 w0 = LP(ref+0); \ | |
185 w1 = LP(ref+4); \ | |
186 t0 = MERGE1(w0,w1,ofs); \ | |
187 w0 = LP(ref+8); \ | |
188 t1 = MERGE1(w1,w0,ofs); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
189 if (sz==16) { \ |
2979 | 190 w1 = LP(ref+12); \ |
191 t2 = MERGE1(w0,w1,ofs); \ | |
192 w0 = LP(ref+16); \ | |
193 t3 = MERGE1(w1,w0,ofs); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
194 } \ |
2979 | 195 do { \ |
196 ref += stride; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
197 \ |
2979 | 198 w0 = LP(ref+0); \ |
199 w1 = LP(ref+4); \ | |
200 t = MERGE1(w0,w1,ofs); \ | |
201 OP(LP(dest+0), avg2(t0,t)); t0 = t; \ | |
202 w0 = LP(ref+8); \ | |
203 t = MERGE1(w1,w0,ofs); \ | |
204 OP(LP(dest+4), avg2(t1,t)); t1 = t; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
205 if (sz==16) { \ |
2979 | 206 w1 = LP(ref+12); \ |
207 t = MERGE1(w0,w1,ofs); \ | |
208 OP(LP(dest+8), avg2(t2,t)); t2 = t; \ | |
209 w0 = LP(ref+16); \ | |
210 t = MERGE1(w1,w0,ofs); \ | |
211 OP(LP(dest+12), avg2(t3,t)); t3 = t; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
212 } \ |
2979 | 213 dest+=stride; \ |
214 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
215 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
216 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
217 #define OP_X0(sz,avg2) OP_X(0,sz,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
218 #define OP_XY0(sz,PACK) OP_XY(0,sz,PACK) |
2979 | 219 #define OP_XY(ofs,sz,PACK) \ |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
220 { \ |
2979 | 221 uint32_t t2,t3,w0,w1; \ |
222 uint32_t a0,a1,a2,a3,a4,a5,a6,a7; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
223 \ |
2979 | 224 ref -= ofs; \ |
225 w0 = LP(ref+0); \ | |
226 w1 = LP(ref+4); \ | |
227 UNPACK(a0,a1,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ | |
228 w0 = LP(ref+8); \ | |
229 UNPACK(a2,a3,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
230 if (sz==16) { \ |
2979 | 231 w1 = LP(ref+12); \ |
232 UNPACK(a4,a5,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ | |
233 w0 = LP(ref+16); \ | |
234 UNPACK(a6,a7,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
235 } \ |
2979 | 236 do { \ |
237 ref+=stride; \ | |
238 w0 = LP(ref+0); \ | |
239 w1 = LP(ref+4); \ | |
240 UNPACK(t2,t3,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ | |
241 OP(LP(dest+0),PACK(a0,a1,t2,t3)); \ | |
242 a0 = t2; a1 = t3; \ | |
243 w0 = LP(ref+8); \ | |
244 UNPACK(t2,t3,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ | |
245 OP(LP(dest+4),PACK(a2,a3,t2,t3)); \ | |
246 a2 = t2; a3 = t3; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
247 if (sz==16) { \ |
2979 | 248 w1 = LP(ref+12); \ |
249 UNPACK(t2,t3,MERGE1(w0,w1,ofs),MERGE2(w0,w1,ofs)); \ | |
250 OP(LP(dest+8),PACK(a4,a5,t2,t3)); \ | |
251 a4 = t2; a5 = t3; \ | |
252 w0 = LP(ref+16); \ | |
253 UNPACK(t2,t3,MERGE1(w1,w0,ofs),MERGE2(w1,w0,ofs)); \ | |
254 OP(LP(dest+12),PACK(a6,a7,t2,t3)); \ | |
255 a6 = t2; a7 = t3; \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
256 } \ |
2979 | 257 dest+=stride; \ |
258 } while(--height); \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
259 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
260 |
2979 | 261 #define DEFFUNC(op,rnd,xy,sz,OP_N,avgfunc) \ |
262 static void op##_##rnd##_pixels##sz##_##xy (uint8_t * dest, const uint8_t * ref, \ | |
263 const int stride, int height) \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
264 { \ |
2979 | 265 switch((int)ref&3) { \ |
266 case 0:OP_N##0(sz,rnd##_##avgfunc); return; \ | |
267 case 1:OP_N(1,sz,rnd##_##avgfunc); return; \ | |
268 case 2:OP_N(2,sz,rnd##_##avgfunc); return; \ | |
269 case 3:OP_N(3,sz,rnd##_##avgfunc); return; \ | |
270 } \ | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
271 } |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
272 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
273 #define OP put |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
274 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
275 DEFFUNC(put, rnd,o,8,OP_C,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
276 DEFFUNC(put, rnd,x,8,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
277 DEFFUNC(put,no_rnd,x,8,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
278 DEFFUNC(put, rnd,y,8,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
279 DEFFUNC(put,no_rnd,y,8,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
280 DEFFUNC(put, rnd,xy,8,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
281 DEFFUNC(put,no_rnd,xy,8,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
282 DEFFUNC(put, rnd,o,16,OP_C,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
283 DEFFUNC(put, rnd,x,16,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
284 DEFFUNC(put,no_rnd,x,16,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
285 DEFFUNC(put, rnd,y,16,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
286 DEFFUNC(put,no_rnd,y,16,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
287 DEFFUNC(put, rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
288 DEFFUNC(put,no_rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
289 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
290 #undef OP |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
291 #define OP avg |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
292 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
293 DEFFUNC(avg, rnd,o,8,OP_C,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
294 DEFFUNC(avg, rnd,x,8,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
295 DEFFUNC(avg,no_rnd,x,8,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
296 DEFFUNC(avg, rnd,y,8,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
297 DEFFUNC(avg,no_rnd,y,8,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
298 DEFFUNC(avg, rnd,xy,8,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
299 DEFFUNC(avg,no_rnd,xy,8,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
300 DEFFUNC(avg, rnd,o,16,OP_C,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
301 DEFFUNC(avg, rnd,x,16,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
302 DEFFUNC(avg,no_rnd,x,16,OP_X,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
303 DEFFUNC(avg, rnd,y,16,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
304 DEFFUNC(avg,no_rnd,y,16,OP_Y,avg2) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
305 DEFFUNC(avg, rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
306 DEFFUNC(avg,no_rnd,xy,16,OP_XY,PACK) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
307 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
308 #undef OP |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
309 |
2979 | 310 #define put_no_rnd_pixels8_o put_rnd_pixels8_o |
311 #define put_no_rnd_pixels16_o put_rnd_pixels16_o | |
312 #define avg_no_rnd_pixels8_o avg_rnd_pixels8_o | |
313 #define avg_no_rnd_pixels16_o avg_rnd_pixels16_o | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
314 |
2979 | 315 #define put_pixels8_c put_rnd_pixels8_o |
316 #define put_pixels16_c put_rnd_pixels16_o | |
317 #define avg_pixels8_c avg_rnd_pixels8_o | |
318 #define avg_pixels16_c avg_rnd_pixels16_o | |
319 #define put_no_rnd_pixels8_c put_rnd_pixels8_o | |
320 #define put_no_rnd_pixels16_c put_rnd_pixels16_o | |
321 #define avg_no_rnd_pixels8_c avg_rnd_pixels8_o | |
322 #define avg_no_rnd_pixels16_c avg_rnd_pixels16_o | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
323 |
2979 | 324 #define QPEL |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
325 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
326 #ifdef QPEL |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
327 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
328 #include "qpel.c" |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
329 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
330 #endif |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
331 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
332 void dsputil_init_align(DSPContext* c, AVCodecContext *avctx) |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
333 { |
2979 | 334 c->put_pixels_tab[0][0] = put_rnd_pixels16_o; |
335 c->put_pixels_tab[0][1] = put_rnd_pixels16_x; | |
336 c->put_pixels_tab[0][2] = put_rnd_pixels16_y; | |
337 c->put_pixels_tab[0][3] = put_rnd_pixels16_xy; | |
338 c->put_pixels_tab[1][0] = put_rnd_pixels8_o; | |
339 c->put_pixels_tab[1][1] = put_rnd_pixels8_x; | |
340 c->put_pixels_tab[1][2] = put_rnd_pixels8_y; | |
341 c->put_pixels_tab[1][3] = put_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
342 |
2979 | 343 c->put_no_rnd_pixels_tab[0][0] = put_no_rnd_pixels16_o; |
344 c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x; | |
345 c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y; | |
346 c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy; | |
347 c->put_no_rnd_pixels_tab[1][0] = put_no_rnd_pixels8_o; | |
348 c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x; | |
349 c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y; | |
350 c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
351 |
2979 | 352 c->avg_pixels_tab[0][0] = avg_rnd_pixels16_o; |
353 c->avg_pixels_tab[0][1] = avg_rnd_pixels16_x; | |
354 c->avg_pixels_tab[0][2] = avg_rnd_pixels16_y; | |
355 c->avg_pixels_tab[0][3] = avg_rnd_pixels16_xy; | |
356 c->avg_pixels_tab[1][0] = avg_rnd_pixels8_o; | |
357 c->avg_pixels_tab[1][1] = avg_rnd_pixels8_x; | |
358 c->avg_pixels_tab[1][2] = avg_rnd_pixels8_y; | |
359 c->avg_pixels_tab[1][3] = avg_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
360 |
2979 | 361 c->avg_no_rnd_pixels_tab[0][0] = avg_no_rnd_pixels16_o; |
362 c->avg_no_rnd_pixels_tab[0][1] = avg_no_rnd_pixels16_x; | |
363 c->avg_no_rnd_pixels_tab[0][2] = avg_no_rnd_pixels16_y; | |
364 c->avg_no_rnd_pixels_tab[0][3] = avg_no_rnd_pixels16_xy; | |
365 c->avg_no_rnd_pixels_tab[1][0] = avg_no_rnd_pixels8_o; | |
366 c->avg_no_rnd_pixels_tab[1][1] = avg_no_rnd_pixels8_x; | |
367 c->avg_no_rnd_pixels_tab[1][2] = avg_no_rnd_pixels8_y; | |
368 c->avg_no_rnd_pixels_tab[1][3] = avg_no_rnd_pixels8_xy; | |
1262
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
369 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
370 #ifdef QPEL |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
371 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
372 #define dspfunc(PFX, IDX, NUM) \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
373 c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
374 c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
375 c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
376 c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
377 c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
378 c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
379 c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
380 c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
381 c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
382 c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
383 c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
384 c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
385 c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
386 c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
387 c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_c; \ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
388 c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_c |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
389 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
390 dspfunc(put_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
391 dspfunc(put_no_rnd_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
392 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
393 dspfunc(avg_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
394 /* dspfunc(avg_no_rnd_qpel, 0, 16); */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
395 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
396 dspfunc(put_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
397 dspfunc(put_no_rnd_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
398 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
399 dspfunc(avg_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
400 /* dspfunc(avg_no_rnd_qpel, 1, 8); */ |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
401 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
402 dspfunc(put_h264_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
403 dspfunc(put_h264_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
404 dspfunc(put_h264_qpel, 2, 4); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
405 dspfunc(avg_h264_qpel, 0, 16); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
406 dspfunc(avg_h264_qpel, 1, 8); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
407 dspfunc(avg_h264_qpel, 2, 4); |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
408 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
409 #undef dspfunc |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
410 c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
411 c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
412 c->put_h264_chroma_pixels_tab[2]= put_h264_chroma_mc2_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
413 c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
414 c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
415 c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
416 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
417 c->put_mspel_pixels_tab[0]= put_mspel8_mc00_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
418 c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
419 c->put_mspel_pixels_tab[2]= put_mspel8_mc20_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
420 c->put_mspel_pixels_tab[3]= put_mspel8_mc30_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
421 c->put_mspel_pixels_tab[4]= put_mspel8_mc02_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
422 c->put_mspel_pixels_tab[5]= put_mspel8_mc12_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
423 c->put_mspel_pixels_tab[6]= put_mspel8_mc22_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
424 c->put_mspel_pixels_tab[7]= put_mspel8_mc32_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
425 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
426 c->gmc1 = gmc1_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
427 c->gmc = gmc_c; |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
428 |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
429 #endif |
82e0e1b9c283
aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff
changeset
|
430 } |