annotate sh4/qpel.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 23da44e8fd05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
1 /*
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
2 * This is optimized for sh, which have post increment addressing (*p++).
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
3 * Some CPU may be index (p[n]) faster than post increment (*p++).
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
4 *
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
5 * copyright (c) 2001-2003 BERO <bero@geocities.co.jp>
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
6 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
7 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
8 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
9 * FFmpeg is free software; you can redistribute it and/or
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
10 * modify it under the terms of the GNU Lesser General Public
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
11 * 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: 3699
diff changeset
12 * version 2.1 of the License, or (at your option) any later version.
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
13 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
14 * FFmpeg is distributed in the hope that it will be useful,
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
17 * Lesser General Public License for more details.
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
18 *
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
19 * 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: 3699
diff changeset
20 * License along with FFmpeg; if not, write to the Free Software
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 2979
diff changeset
22 */
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
23
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
24 #define LD(adr) *(uint32_t*)(adr)
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
25
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
26 #define PIXOP2(OPNAME, OP) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
27 /*static inline void OPNAME ## _no_rnd_pixels8_l2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
28 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
29 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
30 OP(LP(dst ),no_rnd_avg32(LD32(src1 ),LD32(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
31 OP(LP(dst+4),no_rnd_avg32(LD32(src1+4),LD32(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
32 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
33 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
34 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
35 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
36 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
37 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
38 static inline void OPNAME ## _pixels8_l2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
39 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
40 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
41 OP(LP(dst ),rnd_avg32(LD32(src1 ),LD32(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
42 OP(LP(dst+4),rnd_avg32(LD32(src1+4),LD32(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
43 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
44 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
45 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
46 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
47 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
48 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
49 static inline void OPNAME ## _pixels4_l2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
50 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
51 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
52 OP(LP(dst ),rnd_avg32(LD32(src1 ),LD32(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
53 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
54 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
55 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
56 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
57 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
58 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
59 static inline void OPNAME ## _no_rnd_pixels16_l2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
60 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
61 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
62 OP(LP(dst ),no_rnd_avg32(LD32(src1 ),LD32(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
63 OP(LP(dst+4),no_rnd_avg32(LD32(src1+4),LD32(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
64 OP(LP(dst+8),no_rnd_avg32(LD32(src1+8),LD32(src2+8)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
65 OP(LP(dst+12),no_rnd_avg32(LD32(src1+12),LD32(src2+12)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
66 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
67 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
68 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
69 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
70 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
71 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
72 static inline void OPNAME ## _pixels16_l2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
73 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
74 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
75 OP(LP(dst ),rnd_avg32(LD32(src1 ),LD32(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
76 OP(LP(dst+4),rnd_avg32(LD32(src1+4),LD32(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
77 OP(LP(dst+8),rnd_avg32(LD32(src1+8),LD32(src2+8)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
78 OP(LP(dst+12),rnd_avg32(LD32(src1+12),LD32(src2+12)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
79 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
80 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
81 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
82 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
83 }*/\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
84 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
85 static inline void OPNAME ## _pixels4_l2_aligned(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
86 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
87 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
88 OP(LP(dst ),rnd_avg32(LP(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
89 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
90 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
91 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
92 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
93 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
94 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
95 static inline void OPNAME ## _pixels4_l2_aligned2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
96 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
97 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
98 OP(LP(dst ),rnd_avg32(LD32(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
99 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
100 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
101 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
102 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
103 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
104 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
105 static inline void OPNAME ## _no_rnd_pixels16_l2_aligned2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
106 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
107 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
108 OP(LP(dst ),no_rnd_avg32(LD32(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
109 OP(LP(dst+4),no_rnd_avg32(LD32(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
110 OP(LP(dst+8),no_rnd_avg32(LD32(src1+8),LP(src2+8)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
111 OP(LP(dst+12),no_rnd_avg32(LD32(src1+12),LP(src2+12)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
112 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
113 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
114 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
115 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
116 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
117 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
118 static inline void OPNAME ## _pixels16_l2_aligned2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
119 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
120 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
121 OP(LP(dst ),rnd_avg32(LD32(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
122 OP(LP(dst+4),rnd_avg32(LD32(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
123 OP(LP(dst+8),rnd_avg32(LD32(src1+8),LP(src2+8)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
124 OP(LP(dst+12),rnd_avg32(LD32(src1+12),LP(src2+12)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
125 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
126 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
127 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
128 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
129 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
130 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
131 static inline void OPNAME ## _no_rnd_pixels8_l2_aligned2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
132 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
133 do { /* onlye src2 aligned */\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
134 OP(LP(dst ),no_rnd_avg32(LD32(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
135 OP(LP(dst+4),no_rnd_avg32(LD32(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
136 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
137 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
138 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
139 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
140 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
141 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
142 static inline void OPNAME ## _pixels8_l2_aligned2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
143 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
144 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
145 OP(LP(dst ),rnd_avg32(LD32(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
146 OP(LP(dst+4),rnd_avg32(LD32(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
147 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
148 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
149 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
150 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
151 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
152 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
153 static inline void OPNAME ## _no_rnd_pixels8_l2_aligned(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
154 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
155 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
156 OP(LP(dst ),no_rnd_avg32(LP(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
157 OP(LP(dst+4),no_rnd_avg32(LP(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
158 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
159 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
160 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
161 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
162 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
163 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
164 static inline void OPNAME ## _pixels8_l2_aligned(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
165 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
166 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
167 OP(LP(dst ),rnd_avg32(LP(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
168 OP(LP(dst+4),rnd_avg32(LP(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
169 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
170 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
171 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
172 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
173 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
174 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
175 static inline void OPNAME ## _no_rnd_pixels16_l2_aligned(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
176 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
177 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
178 OP(LP(dst ),no_rnd_avg32(LP(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
179 OP(LP(dst+4),no_rnd_avg32(LP(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
180 OP(LP(dst+8),no_rnd_avg32(LP(src1+8),LP(src2+8)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
181 OP(LP(dst+12),no_rnd_avg32(LP(src1+12),LP(src2+12)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
182 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
183 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
184 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
185 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
186 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
187 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
188 static inline void OPNAME ## _pixels16_l2_aligned(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
189 {\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
190 do {\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
191 OP(LP(dst ),rnd_avg32(LP(src1 ),LP(src2 )) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
192 OP(LP(dst+4),rnd_avg32(LP(src1+4),LP(src2+4)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
193 OP(LP(dst+8),rnd_avg32(LP(src1+8),LP(src2+8)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
194 OP(LP(dst+12),rnd_avg32(LP(src1+12),LP(src2+12)) ); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
195 src1+=src_stride1; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
196 src2+=src_stride2; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
197 dst+=dst_stride; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
198 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
199 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
200 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
201 static inline void OPNAME ## _no_rnd_pixels16_l2_aligned1(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
202 { OPNAME ## _no_rnd_pixels16_l2_aligned2(dst,src2,src1,dst_stride,src_stride2,src_stride1,h); } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
203 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
204 static inline void OPNAME ## _pixels16_l2_aligned1(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
205 { OPNAME ## _pixels16_l2_aligned2(dst,src2,src1,dst_stride,src_stride2,src_stride1,h); } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
206 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
207 static inline void OPNAME ## _no_rnd_pixels8_l2_aligned1(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
208 { OPNAME ## _no_rnd_pixels8_l2_aligned2(dst,src2,src1,dst_stride,src_stride2,src_stride1,h); } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
209 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
210 static inline void OPNAME ## _pixels8_l2_aligned1(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2, int h) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
211 { OPNAME ## _pixels8_l2_aligned2(dst,src2,src1,dst_stride,src_stride2,src_stride1,h); } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
212 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
213 static inline void OPNAME ## _pixels8_l4_aligned(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
214 do { \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
215 uint32_t a0,a1,a2,a3; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
216 UNPACK(a0,a1,LP(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
217 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
218 OP(LP(dst),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
219 UNPACK(a0,a1,LP(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
220 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
221 OP(LP(dst+4),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
222 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
223 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
224 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
225 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
226 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
227 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
228 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
229 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
230 static inline void OPNAME ## _no_rnd_pixels8_l4_aligned(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
231 do { \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
232 uint32_t a0,a1,a2,a3; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
233 UNPACK(a0,a1,LP(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
234 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
235 OP(LP(dst),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
236 UNPACK(a0,a1,LP(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
237 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
238 OP(LP(dst+4),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
239 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
240 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
241 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
242 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
243 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
244 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
245 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
246 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
247 static inline void OPNAME ## _pixels8_l4_aligned0(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
248 do { \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
249 uint32_t a0,a1,a2,a3; /* src1 only not aligned */\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
250 UNPACK(a0,a1,LD32(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
251 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
252 OP(LP(dst),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
253 UNPACK(a0,a1,LD32(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
254 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
255 OP(LP(dst+4),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
256 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
257 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
258 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
259 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
260 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
261 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
262 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
263 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
264 static inline void OPNAME ## _no_rnd_pixels8_l4_aligned0(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
265 do { \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
266 uint32_t a0,a1,a2,a3; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
267 UNPACK(a0,a1,LD32(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
268 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
269 OP(LP(dst),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
270 UNPACK(a0,a1,LD32(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
271 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
272 OP(LP(dst+4),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
273 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
274 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
275 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
276 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
277 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
278 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
279 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
280 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
281 static inline void OPNAME ## _pixels16_l4_aligned(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
282 do { \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
283 uint32_t a0,a1,a2,a3; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
284 UNPACK(a0,a1,LP(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
285 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
286 OP(LP(dst),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
287 UNPACK(a0,a1,LP(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
288 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
289 OP(LP(dst+8),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
290 UNPACK(a0,a1,LP(src1+8),LP(src2+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
291 UNPACK(a2,a3,LP(src3+8),LP(src4+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
292 OP(LP(dst+8),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
293 UNPACK(a0,a1,LP(src1+12),LP(src2+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
294 UNPACK(a2,a3,LP(src3+12),LP(src4+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
295 OP(LP(dst+12),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
296 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
297 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
298 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
299 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
300 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
301 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
302 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
303 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
304 static inline void OPNAME ## _no_rnd_pixels16_l4_aligned(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
305 do { \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
306 uint32_t a0,a1,a2,a3; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
307 UNPACK(a0,a1,LP(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
308 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
309 OP(LP(dst),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
310 UNPACK(a0,a1,LP(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
311 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
312 OP(LP(dst+4),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
313 UNPACK(a0,a1,LP(src1+8),LP(src2+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
314 UNPACK(a2,a3,LP(src3+8),LP(src4+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
315 OP(LP(dst+8),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
316 UNPACK(a0,a1,LP(src1+12),LP(src2+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
317 UNPACK(a2,a3,LP(src3+12),LP(src4+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
318 OP(LP(dst+12),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
319 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
320 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
321 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
322 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
323 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
324 } while(--h); \
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 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
327 static inline void OPNAME ## _pixels16_l4_aligned0(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
328 do { /* src1 is unaligned */\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
329 uint32_t a0,a1,a2,a3; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
330 UNPACK(a0,a1,LD32(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
331 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
332 OP(LP(dst),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
333 UNPACK(a0,a1,LD32(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
334 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
335 OP(LP(dst+8),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
336 UNPACK(a0,a1,LD32(src1+8),LP(src2+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
337 UNPACK(a2,a3,LP(src3+8),LP(src4+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
338 OP(LP(dst+8),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
339 UNPACK(a0,a1,LD32(src1+12),LP(src2+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
340 UNPACK(a2,a3,LP(src3+12),LP(src4+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
341 OP(LP(dst+12),rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
342 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
343 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
344 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
345 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
346 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
347 } while(--h); \
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
348 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
349 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
350 static inline void OPNAME ## _no_rnd_pixels16_l4_aligned0(uint8_t *dst, const uint8_t *src1, uint8_t *src2, uint8_t *src3, uint8_t *src4,int dst_stride, int src_stride1, int src_stride2,int src_stride3,int src_stride4, int h){\
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
351 do { \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
352 uint32_t a0,a1,a2,a3; \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
353 UNPACK(a0,a1,LD32(src1),LP(src2)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
354 UNPACK(a2,a3,LP(src3),LP(src4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
355 OP(LP(dst),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
356 UNPACK(a0,a1,LD32(src1+4),LP(src2+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
357 UNPACK(a2,a3,LP(src3+4),LP(src4+4)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
358 OP(LP(dst+4),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
359 UNPACK(a0,a1,LD32(src1+8),LP(src2+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
360 UNPACK(a2,a3,LP(src3+8),LP(src4+8)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
361 OP(LP(dst+8),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
362 UNPACK(a0,a1,LD32(src1+12),LP(src2+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
363 UNPACK(a2,a3,LP(src3+12),LP(src4+12)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
364 OP(LP(dst+12),no_rnd_PACK(a0,a1,a2,a3)); \
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
365 src1+=src_stride1;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
366 src2+=src_stride2;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
367 src3+=src_stride3;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
368 src4+=src_stride4;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
369 dst+=dst_stride;\
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
370 } while(--h); \
1262
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 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
373
1264
2fa34e615c76 cleanup
michaelni
parents: 1262
diff changeset
374 #define op_avg(a, b) a = rnd_avg32(a,b)
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
375 #define op_put(a, b) a = b
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
376
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
377 PIXOP2(avg, op_avg)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
378 PIXOP2(put, op_put)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
379 #undef op_avg
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
380 #undef op_put
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
381
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
382 #define avg2(a,b) ((a+b+1)>>1)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
383 #define avg4(a,b,c,d) ((a+b+c+d+2)>>2)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
384
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
385
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
386 static void gmc1_c(uint8_t *dst, uint8_t *src, int stride, int h, int x16, int y16, int rounder)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
387 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
388 const int A=(16-x16)*(16-y16);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
389 const int B=( x16)*(16-y16);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
390 const int C=(16-x16)*( y16);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
391 const int D=( x16)*( y16);
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 do {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
394 int t0,t1,t2,t3;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
395 uint8_t *s0 = src;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
396 uint8_t *s1 = src+stride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
397 t0 = *s0++; t2 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
398 t1 = *s0++; t3 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
399 dst[0]= (A*t0 + B*t1 + C*t2 + D*t3 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
400 t0 = *s0++; t2 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
401 dst[1]= (A*t1 + B*t0 + C*t3 + D*t2 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
402 t1 = *s0++; t3 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
403 dst[2]= (A*t0 + B*t1 + C*t2 + D*t3 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
404 t0 = *s0++; t2 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
405 dst[3]= (A*t1 + B*t0 + C*t3 + D*t2 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
406 t1 = *s0++; t3 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
407 dst[4]= (A*t0 + B*t1 + C*t2 + D*t3 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
408 t0 = *s0++; t2 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
409 dst[5]= (A*t1 + B*t0 + C*t3 + D*t2 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
410 t1 = *s0++; t3 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
411 dst[6]= (A*t0 + B*t1 + C*t2 + D*t3 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
412 t0 = *s0++; t2 = *s1++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
413 dst[7]= (A*t1 + B*t0 + C*t3 + D*t2 + rounder)>>8;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
414 dst+= stride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
415 src+= stride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
416 }while(--h);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
417 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
418
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
419 static void gmc_c(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy,
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
420 int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
421 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
422 int y, vx, vy;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
423 const int s= 1<<shift;
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
424
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
425 width--;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
426 height--;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
427
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
428 for(y=0; y<h; y++){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
429 int x;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
430
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
431 vx= ox;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
432 vy= oy;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
433 for(x=0; x<8; x++){ //XXX FIXME optimize
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
434 int src_x, src_y, frac_x, frac_y, index;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
435
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
436 src_x= vx>>16;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
437 src_y= vy>>16;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
438 frac_x= src_x&(s-1);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
439 frac_y= src_y&(s-1);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
440 src_x>>=shift;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
441 src_y>>=shift;
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
442
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
443 if((unsigned)src_x < width){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
444 if((unsigned)src_y < height){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
445 index= src_x + src_y*stride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
446 dst[y*stride + x]= ( ( src[index ]*(s-frac_x)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
447 + src[index +1]* frac_x )*(s-frac_y)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
448 + ( src[index+stride ]*(s-frac_x)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
449 + src[index+stride+1]* frac_x )* frac_y
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
450 + r)>>(shift*2);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
451 }else{
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
452 index= src_x + clip(src_y, 0, height)*stride;
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
453 dst[y*stride + x]= ( ( src[index ]*(s-frac_x)
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
454 + src[index +1]* frac_x )*s
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
455 + r)>>(shift*2);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
456 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
457 }else{
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
458 if((unsigned)src_y < height){
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
459 index= clip(src_x, 0, width) + src_y*stride;
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
460 dst[y*stride + x]= ( ( src[index ]*(s-frac_y)
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
461 + src[index+stride ]* frac_y )*s
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
462 + r)>>(shift*2);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
463 }else{
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
464 index= clip(src_x, 0, width) + clip(src_y, 0, height)*stride;
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
465 dst[y*stride + x]= src[index ];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
466 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
467 }
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
468
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
469 vx+= dxx;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
470 vy+= dyx;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
471 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
472 ox += dxy;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
473 oy += dyy;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
474 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
475 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
476 #define H264_CHROMA_MC(OPNAME, OP)\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
477 static void OPNAME ## h264_chroma_mc2_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
478 const int A=(8-x)*(8-y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
479 const int B=( x)*(8-y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
480 const int C=(8-x)*( y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
481 const int D=( x)*( y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
482 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
483 assert(x<8 && y<8 && x>=0 && y>=0);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
484 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
485 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
486 int t0,t1,t2,t3; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
487 uint8_t *s0 = src; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
488 uint8_t *s1 = src+stride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
489 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
490 t1 = *s0++; t3 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
491 OP(dst[0], (A*t0 + B*t1 + C*t2 + D*t3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
492 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
493 OP(dst[1], (A*t1 + B*t0 + C*t3 + D*t2));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
494 dst+= stride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
495 src+= stride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
496 }while(--h);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
497 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
498 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
499 static void OPNAME ## h264_chroma_mc4_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
500 const int A=(8-x)*(8-y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
501 const int B=( x)*(8-y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
502 const int C=(8-x)*( y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
503 const int D=( x)*( y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
504 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
505 assert(x<8 && y<8 && x>=0 && y>=0);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
506 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
507 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
508 int t0,t1,t2,t3; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
509 uint8_t *s0 = src; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
510 uint8_t *s1 = src+stride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
511 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
512 t1 = *s0++; t3 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
513 OP(dst[0], (A*t0 + B*t1 + C*t2 + D*t3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
514 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
515 OP(dst[1], (A*t1 + B*t0 + C*t3 + D*t2));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
516 t1 = *s0++; t3 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
517 OP(dst[2], (A*t0 + B*t1 + C*t2 + D*t3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
518 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
519 OP(dst[3], (A*t1 + B*t0 + C*t3 + D*t2));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
520 dst+= stride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
521 src+= stride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
522 }while(--h);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
523 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
524 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
525 static void OPNAME ## h264_chroma_mc8_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
526 const int A=(8-x)*(8-y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
527 const int B=( x)*(8-y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
528 const int C=(8-x)*( y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
529 const int D=( x)*( y);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
530 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
531 assert(x<8 && y<8 && x>=0 && y>=0);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
532 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
533 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
534 int t0,t1,t2,t3; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
535 uint8_t *s0 = src; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
536 uint8_t *s1 = src+stride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
537 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
538 t1 = *s0++; t3 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
539 OP(dst[0], (A*t0 + B*t1 + C*t2 + D*t3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
540 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
541 OP(dst[1], (A*t1 + B*t0 + C*t3 + D*t2));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
542 t1 = *s0++; t3 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
543 OP(dst[2], (A*t0 + B*t1 + C*t2 + D*t3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
544 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
545 OP(dst[3], (A*t1 + B*t0 + C*t3 + D*t2));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
546 t1 = *s0++; t3 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
547 OP(dst[4], (A*t0 + B*t1 + C*t2 + D*t3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
548 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
549 OP(dst[5], (A*t1 + B*t0 + C*t3 + D*t2));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
550 t1 = *s0++; t3 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
551 OP(dst[6], (A*t0 + B*t1 + C*t2 + D*t3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
552 t0 = *s0++; t2 = *s1++; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
553 OP(dst[7], (A*t1 + B*t0 + C*t3 + D*t2));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
554 dst+= stride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
555 src+= stride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
556 }while(--h);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
557 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
558
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
559 #define op_avg(a, b) a = (((a)+(((b) + 32)>>6)+1)>>1)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
560 #define op_put(a, b) a = (((b) + 32)>>6)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
561
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
562 H264_CHROMA_MC(put_ , op_put)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
563 H264_CHROMA_MC(avg_ , op_avg)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
564 #undef op_avg
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
565 #undef op_put
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
566
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
567 /* not yet optimized */
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
568 static inline void copy_block4(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
569 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
570 int i;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
571 for(i=0; i<h; i++)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
572 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
573 ST32(dst , LD32(src ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
574 dst+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
575 src+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
576 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
577 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
578
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
579 static inline void copy_block8(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
580 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
581 int i;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
582 for(i=0; i<h; i++)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
583 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
584 ST32(dst , LD32(src ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
585 ST32(dst+4 , LD32(src+4 ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
586 dst+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
587 src+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
588 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
589 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
590
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
591 static inline void copy_block16(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
592 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
593 int i;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
594 for(i=0; i<h; i++)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
595 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
596 ST32(dst , LD32(src ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
597 ST32(dst+4 , LD32(src+4 ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
598 ST32(dst+8 , LD32(src+8 ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
599 ST32(dst+12, LD32(src+12));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
600 dst+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
601 src+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
602 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
603 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
604
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
605 static inline void copy_block17(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
606 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
607 int i;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
608 for(i=0; i<h; i++)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
609 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
610 ST32(dst , LD32(src ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
611 ST32(dst+4 , LD32(src+4 ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
612 ST32(dst+8 , LD32(src+8 ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
613 ST32(dst+12, LD32(src+12));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
614 dst[16]= src[16];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
615 dst+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
616 src+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
617 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
618 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
619
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
620 static inline void copy_block9(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
621 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
622 int i;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
623 for(i=0; i<h; i++)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
624 {
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
625 ST32(dst , LD32(src ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
626 ST32(dst+4 , LD32(src+4 ));
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
627 dst[8]= src[8];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
628 dst+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
629 src+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
630 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
631 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
632 /* end not optimized */
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
633
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
634 #define QPEL_MC(r, OPNAME, RND, OP) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
635 static void OPNAME ## mpeg4_qpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
636 uint8_t *cm = cropTbl + MAX_NEG_CROP;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
637 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
638 uint8_t *s = src; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
639 int src0,src1,src2,src3,src4,src5,src6,src7,src8;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
640 src0= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
641 src1= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
642 src2= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
643 src3= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
644 src4= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
645 OP(dst[0], (src0+src1)*20 - (src0+src2)*6 + (src1+src3)*3 - (src2+src4));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
646 src5= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
647 OP(dst[1], (src1+src2)*20 - (src0+src3)*6 + (src0+src4)*3 - (src1+src5));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
648 src6= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
649 OP(dst[2], (src2+src3)*20 - (src1+src4)*6 + (src0+src5)*3 - (src0+src6));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
650 src7= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
651 OP(dst[3], (src3+src4)*20 - (src2+src5)*6 + (src1+src6)*3 - (src0+src7));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
652 src8= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
653 OP(dst[4], (src4+src5)*20 - (src3+src6)*6 + (src2+src7)*3 - (src1+src8));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
654 OP(dst[5], (src5+src6)*20 - (src4+src7)*6 + (src3+src8)*3 - (src2+src8));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
655 OP(dst[6], (src6+src7)*20 - (src5+src8)*6 + (src4+src8)*3 - (src3+src7));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
656 OP(dst[7], (src7+src8)*20 - (src6+src8)*6 + (src5+src7)*3 - (src4+src6));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
657 dst+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
658 src+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
659 }while(--h);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
660 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
661 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
662 static void OPNAME ## mpeg4_qpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
663 uint8_t *cm = cropTbl + MAX_NEG_CROP;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
664 int w=8;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
665 do{\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
666 uint8_t *s = src, *d=dst;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
667 int src0,src1,src2,src3,src4,src5,src6,src7,src8;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
668 src0 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
669 src1 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
670 src2 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
671 src3 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
672 src4 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
673 OP(*d, (src0+src1)*20 - (src0+src2)*6 + (src1+src3)*3 - (src2+src4));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
674 src5 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
675 OP(*d, (src1+src2)*20 - (src0+src3)*6 + (src0+src4)*3 - (src1+src5));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
676 src6 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
677 OP(*d, (src2+src3)*20 - (src1+src4)*6 + (src0+src5)*3 - (src0+src6));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
678 src7 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
679 OP(*d, (src3+src4)*20 - (src2+src5)*6 + (src1+src6)*3 - (src0+src7));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
680 src8 = *s; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
681 OP(*d, (src4+src5)*20 - (src3+src6)*6 + (src2+src7)*3 - (src1+src8));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
682 OP(*d, (src5+src6)*20 - (src4+src7)*6 + (src3+src8)*3 - (src2+src8));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
683 OP(*d, (src6+src7)*20 - (src5+src8)*6 + (src4+src8)*3 - (src3+src7));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
684 OP(*d, (src7+src8)*20 - (src6+src8)*6 + (src5+src7)*3 - (src4+src6));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
685 dst++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
686 src++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
687 }while(--w);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
688 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
689 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
690 static void OPNAME ## mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
691 uint8_t *cm = cropTbl + MAX_NEG_CROP;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
692 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
693 uint8_t *s = src;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
694 int src0,src1,src2,src3,src4,src5,src6,src7,src8;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
695 int src9,src10,src11,src12,src13,src14,src15,src16;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
696 src0= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
697 src1= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
698 src2= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
699 src3= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
700 src4= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
701 OP(dst[ 0], (src0 +src1 )*20 - (src0 +src2 )*6 + (src1 +src3 )*3 - (src2 +src4 ));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
702 src5= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
703 OP(dst[ 1], (src1 +src2 )*20 - (src0 +src3 )*6 + (src0 +src4 )*3 - (src1 +src5 ));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
704 src6= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
705 OP(dst[ 2], (src2 +src3 )*20 - (src1 +src4 )*6 + (src0 +src5 )*3 - (src0 +src6 ));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
706 src7= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
707 OP(dst[ 3], (src3 +src4 )*20 - (src2 +src5 )*6 + (src1 +src6 )*3 - (src0 +src7 ));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
708 src8= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
709 OP(dst[ 4], (src4 +src5 )*20 - (src3 +src6 )*6 + (src2 +src7 )*3 - (src1 +src8 ));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
710 src9= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
711 OP(dst[ 5], (src5 +src6 )*20 - (src4 +src7 )*6 + (src3 +src8 )*3 - (src2 +src9 ));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
712 src10= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
713 OP(dst[ 6], (src6 +src7 )*20 - (src5 +src8 )*6 + (src4 +src9 )*3 - (src3 +src10));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
714 src11= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
715 OP(dst[ 7], (src7 +src8 )*20 - (src6 +src9 )*6 + (src5 +src10)*3 - (src4 +src11));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
716 src12= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
717 OP(dst[ 8], (src8 +src9 )*20 - (src7 +src10)*6 + (src6 +src11)*3 - (src5 +src12));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
718 src13= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
719 OP(dst[ 9], (src9 +src10)*20 - (src8 +src11)*6 + (src7 +src12)*3 - (src6 +src13));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
720 src14= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
721 OP(dst[10], (src10+src11)*20 - (src9 +src12)*6 + (src8 +src13)*3 - (src7 +src14));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
722 src15= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
723 OP(dst[11], (src11+src12)*20 - (src10+src13)*6 + (src9 +src14)*3 - (src8 +src15));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
724 src16= *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
725 OP(dst[12], (src12+src13)*20 - (src11+src14)*6 + (src10+src15)*3 - (src9 +src16));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
726 OP(dst[13], (src13+src14)*20 - (src12+src15)*6 + (src11+src16)*3 - (src10+src16));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
727 OP(dst[14], (src14+src15)*20 - (src13+src16)*6 + (src12+src16)*3 - (src11+src15));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
728 OP(dst[15], (src15+src16)*20 - (src14+src16)*6 + (src13+src15)*3 - (src12+src14));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
729 dst+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
730 src+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
731 }while(--h);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
732 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
733 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
734 static void OPNAME ## mpeg4_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
735 uint8_t *cm = cropTbl + MAX_NEG_CROP;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
736 int w=16;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
737 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
738 uint8_t *s = src, *d=dst;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
739 int src0,src1,src2,src3,src4,src5,src6,src7,src8;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
740 int src9,src10,src11,src12,src13,src14,src15,src16;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
741 src0 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
742 src1 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
743 src2 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
744 src3 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
745 src4 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
746 OP(*d, (src0 +src1 )*20 - (src0 +src2 )*6 + (src1 +src3 )*3 - (src2 +src4 ));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
747 src5 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
748 OP(*d, (src1 +src2 )*20 - (src0 +src3 )*6 + (src0 +src4 )*3 - (src1 +src5 ));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
749 src6 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
750 OP(*d, (src2 +src3 )*20 - (src1 +src4 )*6 + (src0 +src5 )*3 - (src0 +src6 ));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
751 src7 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
752 OP(*d, (src3 +src4 )*20 - (src2 +src5 )*6 + (src1 +src6 )*3 - (src0 +src7 ));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
753 src8 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
754 OP(*d, (src4 +src5 )*20 - (src3 +src6 )*6 + (src2 +src7 )*3 - (src1 +src8 ));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
755 src9 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
756 OP(*d, (src5 +src6 )*20 - (src4 +src7 )*6 + (src3 +src8 )*3 - (src2 +src9 ));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
757 src10 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
758 OP(*d, (src6 +src7 )*20 - (src5 +src8 )*6 + (src4 +src9 )*3 - (src3 +src10));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
759 src11 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
760 OP(*d, (src7 +src8 )*20 - (src6 +src9 )*6 + (src5 +src10)*3 - (src4 +src11));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
761 src12 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
762 OP(*d, (src8 +src9 )*20 - (src7 +src10)*6 + (src6 +src11)*3 - (src5 +src12));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
763 src13 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
764 OP(*d, (src9 +src10)*20 - (src8 +src11)*6 + (src7 +src12)*3 - (src6 +src13));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
765 src14 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
766 OP(*d, (src10+src11)*20 - (src9 +src12)*6 + (src8 +src13)*3 - (src7 +src14));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
767 src15 = *s; s+=srcStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
768 OP(*d, (src11+src12)*20 - (src10+src13)*6 + (src9 +src14)*3 - (src8 +src15));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
769 src16 = *s; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
770 OP(*d, (src12+src13)*20 - (src11+src14)*6 + (src10+src15)*3 - (src9 +src16));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
771 OP(*d, (src13+src14)*20 - (src12+src15)*6 + (src11+src16)*3 - (src10+src16));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
772 OP(*d, (src14+src15)*20 - (src13+src16)*6 + (src12+src16)*3 - (src11+src15));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
773 OP(*d, (src15+src16)*20 - (src14+src16)*6 + (src13+src15)*3 - (src12+src14));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
774 dst++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
775 src++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
776 }while(--w);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
777 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
778 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
779 static void OPNAME ## qpel8_mc00_c (uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
780 OPNAME ## pixels8_c(dst, src, stride, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
781 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
782 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
783 static void OPNAME ## qpel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
784 uint8_t half[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
785 put ## RND ## mpeg4_qpel8_h_lowpass(half, src, 8, stride, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
786 OPNAME ## pixels8_l2_aligned2(dst, src, half, stride, stride, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
787 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
788 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
789 static void OPNAME ## qpel8_mc20_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
790 OPNAME ## mpeg4_qpel8_h_lowpass(dst, src, stride, stride, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
791 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
792 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
793 static void OPNAME ## qpel8_mc30_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
794 uint8_t half[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
795 put ## RND ## mpeg4_qpel8_h_lowpass(half, src, 8, stride, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
796 OPNAME ## pixels8_l2_aligned2(dst, src+1, half, stride, stride, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
797 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
798 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
799 static void OPNAME ## qpel8_mc01_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
800 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
801 uint8_t half[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
802 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
803 put ## RND ## mpeg4_qpel8_v_lowpass(half, full, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
804 OPNAME ## pixels8_l2_aligned(dst, full, half, stride, 16, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
805 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
806 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
807 static void OPNAME ## qpel8_mc02_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
808 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
809 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
810 OPNAME ## mpeg4_qpel8_v_lowpass(dst, full, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
811 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
812 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
813 static void OPNAME ## qpel8_mc03_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
814 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
815 uint8_t half[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
816 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
817 put ## RND ## mpeg4_qpel8_v_lowpass(half, full, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
818 OPNAME ## pixels8_l2_aligned(dst, full+16, half, stride, 16, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
819 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
820 static void ff_ ## OPNAME ## qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
821 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
822 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
823 uint8_t halfV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
824 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
825 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
826 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
827 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
828 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
829 OPNAME ## pixels8_l4_aligned(dst, full, halfH, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
830 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
831 static void OPNAME ## qpel8_mc11_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
832 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
833 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
834 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
835 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
836 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
837 put ## RND ## pixels8_l2_aligned(halfH, halfH, full, 8, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
838 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
839 OPNAME ## pixels8_l2_aligned(dst, halfH, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
840 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
841 static void ff_ ## OPNAME ## qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
842 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
843 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
844 uint8_t halfV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
845 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
846 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
847 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
848 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
849 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
850 OPNAME ## pixels8_l4_aligned0(dst, full+1, halfH, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
851 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
852 static void OPNAME ## qpel8_mc31_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
853 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
854 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
855 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
856 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
857 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
858 put ## RND ## pixels8_l2_aligned1(halfH, halfH, full+1, 8, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
859 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
860 OPNAME ## pixels8_l2_aligned(dst, halfH, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
861 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
862 static void ff_ ## OPNAME ## qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
863 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
864 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
865 uint8_t halfV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
866 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
867 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
868 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
869 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
870 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
871 OPNAME ## pixels8_l4_aligned(dst, full+16, halfH+8, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
872 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
873 static void OPNAME ## qpel8_mc13_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
874 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
875 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
876 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
877 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
878 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
879 put ## RND ## pixels8_l2_aligned(halfH, halfH, full, 8, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
880 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
881 OPNAME ## pixels8_l2_aligned(dst, halfH+8, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
882 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
883 static void ff_ ## OPNAME ## qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
884 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
885 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
886 uint8_t halfV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
887 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
888 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
889 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full , 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
890 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
891 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
892 OPNAME ## pixels8_l4_aligned0(dst, full+17, halfH+8, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
893 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
894 static void OPNAME ## qpel8_mc33_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
895 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
896 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
897 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
898 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
899 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
900 put ## RND ## pixels8_l2_aligned1(halfH, halfH, full+1, 8, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
901 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
902 OPNAME ## pixels8_l2_aligned(dst, halfH+8, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
903 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
904 static void OPNAME ## qpel8_mc21_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
905 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
906 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
907 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
908 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
909 OPNAME ## pixels8_l2_aligned(dst, halfH, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
910 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
911 static void OPNAME ## qpel8_mc23_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
912 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
913 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
914 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
915 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
916 OPNAME ## pixels8_l2_aligned(dst, halfH+8, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
917 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
918 static void ff_ ## OPNAME ## qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
919 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
920 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
921 uint8_t halfV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
922 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
923 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
924 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
925 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
926 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
927 OPNAME ## pixels8_l2_aligned(dst, halfV, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
928 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
929 static void OPNAME ## qpel8_mc12_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
930 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
931 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
932 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
933 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
934 put ## RND ## pixels8_l2_aligned(halfH, halfH, full, 8, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
935 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
936 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
937 static void ff_ ## OPNAME ## qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
938 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
939 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
940 uint8_t halfV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
941 uint8_t halfHV[64];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
942 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
943 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
944 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
945 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
946 OPNAME ## pixels8_l2_aligned(dst, halfV, halfHV, stride, 8, 8, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
947 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
948 static void OPNAME ## qpel8_mc32_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
949 uint8_t full[16*9];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
950 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
951 copy_block9(full, src, 16, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
952 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
953 put ## RND ## pixels8_l2_aligned1(halfH, halfH, full+1, 8, 8, 16, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
954 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
955 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
956 static void OPNAME ## qpel8_mc22_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
957 uint8_t halfH[72];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
958 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
959 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
960 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
961 static void OPNAME ## qpel16_mc00_c (uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
962 OPNAME ## pixels16_c(dst, src, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
963 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
964 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
965 static void OPNAME ## qpel16_mc10_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
966 uint8_t half[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
967 put ## RND ## mpeg4_qpel16_h_lowpass(half, src, 16, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
968 OPNAME ## pixels16_l2_aligned2(dst, src, half, stride, stride, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
969 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
970 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
971 static void OPNAME ## qpel16_mc20_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
972 OPNAME ## mpeg4_qpel16_h_lowpass(dst, src, stride, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
973 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
974 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
975 static void OPNAME ## qpel16_mc30_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
976 uint8_t half[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
977 put ## RND ## mpeg4_qpel16_h_lowpass(half, src, 16, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
978 OPNAME ## pixels16_l2_aligned2(dst, src+1, half, stride, stride, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
979 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
980 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
981 static void OPNAME ## qpel16_mc01_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
982 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
983 uint8_t half[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
984 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
985 put ## RND ## mpeg4_qpel16_v_lowpass(half, full, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
986 OPNAME ## pixels16_l2_aligned(dst, full, half, stride, 24, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
987 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
988 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
989 static void OPNAME ## qpel16_mc02_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
990 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
991 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
992 OPNAME ## mpeg4_qpel16_v_lowpass(dst, full, stride, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
993 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
994 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
995 static void OPNAME ## qpel16_mc03_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
996 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
997 uint8_t half[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
998 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
999 put ## RND ## mpeg4_qpel16_v_lowpass(half, full, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1000 OPNAME ## pixels16_l2_aligned(dst, full+24, half, stride, 24, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1001 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1002 static void ff_ ## OPNAME ## qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1003 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1004 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1005 uint8_t halfV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1006 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1007 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1008 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1009 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1010 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1011 OPNAME ## pixels16_l4_aligned(dst, full, halfH, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1012 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1013 static void OPNAME ## qpel16_mc11_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1014 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1015 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1016 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1017 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1018 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1019 put ## RND ## pixels16_l2_aligned(halfH, halfH, full, 16, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1020 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1021 OPNAME ## pixels16_l2_aligned(dst, halfH, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1022 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1023 static void ff_ ## OPNAME ## qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1024 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1025 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1026 uint8_t halfV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1027 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1028 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1029 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1030 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1031 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1032 OPNAME ## pixels16_l4_aligned0(dst, full+1, halfH, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1033 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1034 static void OPNAME ## qpel16_mc31_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1035 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1036 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1037 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1038 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1039 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1040 put ## RND ## pixels16_l2_aligned1(halfH, halfH, full+1, 16, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1041 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1042 OPNAME ## pixels16_l2_aligned(dst, halfH, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1043 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1044 static void ff_ ## OPNAME ## qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1045 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1046 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1047 uint8_t halfV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1048 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1049 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1050 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1051 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1052 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1053 OPNAME ## pixels16_l4_aligned(dst, full+24, halfH+16, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1054 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1055 static void OPNAME ## qpel16_mc13_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1056 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1057 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1058 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1059 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1060 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1061 put ## RND ## pixels16_l2_aligned(halfH, halfH, full, 16, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1062 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1063 OPNAME ## pixels16_l2_aligned(dst, halfH+16, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1064 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1065 static void ff_ ## OPNAME ## qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1066 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1067 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1068 uint8_t halfV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1069 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1070 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1071 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full , 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1072 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1073 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1074 OPNAME ## pixels16_l4_aligned0(dst, full+25, halfH+16, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1075 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1076 static void OPNAME ## qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1077 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1078 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1079 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1080 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1081 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1082 put ## RND ## pixels16_l2_aligned1(halfH, halfH, full+1, 16, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1083 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1084 OPNAME ## pixels16_l2_aligned(dst, halfH+16, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1085 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1086 static void OPNAME ## qpel16_mc21_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1087 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1088 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1089 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1090 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1091 OPNAME ## pixels16_l2_aligned(dst, halfH, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1092 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1093 static void OPNAME ## qpel16_mc23_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1094 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1095 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1096 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1097 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1098 OPNAME ## pixels16_l2_aligned(dst, halfH+16, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1099 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1100 static void ff_ ## OPNAME ## qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1101 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1102 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1103 uint8_t halfV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1104 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1105 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1106 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1107 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1108 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1109 OPNAME ## pixels16_l2_aligned(dst, halfV, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1110 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1111 static void OPNAME ## qpel16_mc12_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1112 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1113 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1114 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1115 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1116 put ## RND ## pixels16_l2_aligned(halfH, halfH, full, 16, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1117 OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1118 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1119 static void ff_ ## OPNAME ## qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1120 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1121 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1122 uint8_t halfV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1123 uint8_t halfHV[256];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1124 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1125 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1126 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1127 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1128 OPNAME ## pixels16_l2_aligned(dst, halfV, halfHV, stride, 16, 16, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1129 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1130 static void OPNAME ## qpel16_mc32_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1131 uint8_t full[24*17];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1132 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1133 copy_block17(full, src, 24, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1134 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1135 put ## RND ## pixels16_l2_aligned1(halfH, halfH, full+1, 16, 16, 24, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1136 OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1137 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1138 static void OPNAME ## qpel16_mc22_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1139 uint8_t halfH[272];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1140 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1141 OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1142 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1143
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1144 #define op_avg(a, b) a = (((a)+cm[((b) + 16)>>5]+1)>>1)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1145 #define op_avg_no_rnd(a, b) a = (((a)+cm[((b) + 15)>>5])>>1)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1146 #define op_put(a, b) a = cm[((b) + 16)>>5]
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1147 #define op_put_no_rnd(a, b) a = cm[((b) + 15)>>5]
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1148
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1149 QPEL_MC(0, put_ , _ , op_put)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1150 QPEL_MC(1, put_no_rnd_, _no_rnd_, op_put_no_rnd)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1151 QPEL_MC(0, avg_ , _ , op_avg)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1152 //QPEL_MC(1, avg_no_rnd , _ , op_avg)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1153 #undef op_avg
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1154 #undef op_avg_no_rnd
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1155 #undef op_put
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1156 #undef op_put_no_rnd
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1157
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1158 #if 1
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1159 #define H264_LOWPASS(OPNAME, OP, OP2) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1160 static inline void OPNAME ## h264_qpel_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride,int w,int h){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1161 uint8_t *cm = cropTbl + MAX_NEG_CROP;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1162 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1163 int srcB,srcA,src0,src1,src2,src3,src4,src5,src6;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1164 uint8_t *s = src-2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1165 srcB = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1166 srcA = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1167 src0 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1168 src1 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1169 src2 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1170 src3 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1171 OP(dst[0], (src0+src1)*20 - (srcA+src2)*5 + (srcB+src3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1172 src4 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1173 OP(dst[1], (src1+src2)*20 - (src0+src3)*5 + (srcA+src4));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1174 src5 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1175 OP(dst[2], (src2+src3)*20 - (src1+src4)*5 + (src0+src5));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1176 src6 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1177 OP(dst[3], (src3+src4)*20 - (src2+src5)*5 + (src1+src6));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1178 if (w>4) { /* it optimized */ \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1179 int src7,src8,src9,src10; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1180 src7 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1181 OP(dst[4], (src4+src5)*20 - (src3+src6)*5 + (src2+src7));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1182 src8 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1183 OP(dst[5], (src5+src6)*20 - (src4+src7)*5 + (src3+src8));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1184 src9 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1185 OP(dst[6], (src6+src7)*20 - (src5+src8)*5 + (src4+src9));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1186 src10 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1187 OP(dst[7], (src7+src8)*20 - (src6+src9)*5 + (src5+src10));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1188 if (w>8) { \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1189 int src11,src12,src13,src14,src15,src16,src17,src18; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1190 src11 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1191 OP(dst[8] , (src8 +src9 )*20 - (src7 +src10)*5 + (src6 +src11));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1192 src12 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1193 OP(dst[9] , (src9 +src10)*20 - (src8 +src11)*5 + (src7 +src12));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1194 src13 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1195 OP(dst[10], (src10+src11)*20 - (src9 +src12)*5 + (src8 +src13));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1196 src14 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1197 OP(dst[11], (src11+src12)*20 - (src10+src13)*5 + (src9 +src14));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1198 src15 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1199 OP(dst[12], (src12+src13)*20 - (src11+src14)*5 + (src10+src15));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1200 src16 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1201 OP(dst[13], (src13+src14)*20 - (src12+src15)*5 + (src11+src16));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1202 src17 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1203 OP(dst[14], (src14+src15)*20 - (src13+src16)*5 + (src12+src17));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1204 src18 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1205 OP(dst[15], (src15+src16)*20 - (src14+src17)*5 + (src13+src18));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1206 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1207 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1208 dst+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1209 src+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1210 }while(--h);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1211 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1212 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1213 static inline void OPNAME ## h264_qpel_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride,int w,int h){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1214 uint8_t *cm = cropTbl + MAX_NEG_CROP;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1215 do{\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1216 int srcB,srcA,src0,src1,src2,src3,src4,src5,src6;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1217 uint8_t *s = src-2*srcStride,*d=dst;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1218 srcB = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1219 srcA = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1220 src0 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1221 src1 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1222 src2 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1223 src3 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1224 OP(*d, (src0+src1)*20 - (srcA+src2)*5 + (srcB+src3));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1225 src4 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1226 OP(*d, (src1+src2)*20 - (src0+src3)*5 + (srcA+src4));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1227 src5 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1228 OP(*d, (src2+src3)*20 - (src1+src4)*5 + (src0+src5));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1229 src6 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1230 OP(*d, (src3+src4)*20 - (src2+src5)*5 + (src1+src6));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1231 if (h>4) { \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1232 int src7,src8,src9,src10; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1233 src7 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1234 OP(*d, (src4+src5)*20 - (src3+src6)*5 + (src2+src7));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1235 src8 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1236 OP(*d, (src5+src6)*20 - (src4+src7)*5 + (src3+src8));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1237 src9 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1238 OP(*d, (src6+src7)*20 - (src5+src8)*5 + (src4+src9));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1239 src10 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1240 OP(*d, (src7+src8)*20 - (src6+src9)*5 + (src5+src10));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1241 if (h>8) { \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1242 int src11,src12,src13,src14,src15,src16,src17,src18; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1243 src11 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1244 OP(*d , (src8 +src9 )*20 - (src7 +src10)*5 + (src6 +src11));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1245 src12 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1246 OP(*d , (src9 +src10)*20 - (src8 +src11)*5 + (src7 +src12));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1247 src13 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1248 OP(*d, (src10+src11)*20 - (src9 +src12)*5 + (src8 +src13));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1249 src14 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1250 OP(*d, (src11+src12)*20 - (src10+src13)*5 + (src9 +src14));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1251 src15 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1252 OP(*d, (src12+src13)*20 - (src11+src14)*5 + (src10+src15));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1253 src16 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1254 OP(*d, (src13+src14)*20 - (src12+src15)*5 + (src11+src16));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1255 src17 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1256 OP(*d, (src14+src15)*20 - (src13+src16)*5 + (src12+src17));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1257 src18 = *s; s+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1258 OP(*d, (src15+src16)*20 - (src14+src17)*5 + (src13+src18));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1259 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1260 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1261 dst++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1262 src++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1263 }while(--w);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1264 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1265 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1266 static inline void OPNAME ## h264_qpel_hv_lowpass(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride,int w,int h){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1267 uint8_t *cm = cropTbl + MAX_NEG_CROP;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1268 int i;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1269 src -= 2*srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1270 i= h+5; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1271 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1272 int srcB,srcA,src0,src1,src2,src3,src4,src5,src6;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1273 uint8_t *s = src-2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1274 srcB = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1275 srcA = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1276 src0 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1277 src1 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1278 src2 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1279 src3 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1280 tmp[0] = ((src0+src1)*20 - (srcA+src2)*5 + (srcB+src3));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1281 src4 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1282 tmp[1] = ((src1+src2)*20 - (src0+src3)*5 + (srcA+src4));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1283 src5 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1284 tmp[2] = ((src2+src3)*20 - (src1+src4)*5 + (src0+src5));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1285 src6 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1286 tmp[3] = ((src3+src4)*20 - (src2+src5)*5 + (src1+src6));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1287 if (w>4) { /* it optimized */ \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1288 int src7,src8,src9,src10; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1289 src7 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1290 tmp[4] = ((src4+src5)*20 - (src3+src6)*5 + (src2+src7));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1291 src8 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1292 tmp[5] = ((src5+src6)*20 - (src4+src7)*5 + (src3+src8));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1293 src9 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1294 tmp[6] = ((src6+src7)*20 - (src5+src8)*5 + (src4+src9));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1295 src10 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1296 tmp[7] = ((src7+src8)*20 - (src6+src9)*5 + (src5+src10));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1297 if (w>8) { \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1298 int src11,src12,src13,src14,src15,src16,src17,src18; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1299 src11 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1300 tmp[8] = ((src8 +src9 )*20 - (src7 +src10)*5 + (src6 +src11));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1301 src12 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1302 tmp[9] = ((src9 +src10)*20 - (src8 +src11)*5 + (src7 +src12));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1303 src13 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1304 tmp[10] = ((src10+src11)*20 - (src9 +src12)*5 + (src8 +src13));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1305 src14 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1306 tmp[11] = ((src11+src12)*20 - (src10+src13)*5 + (src9 +src14));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1307 src15 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1308 tmp[12] = ((src12+src13)*20 - (src11+src14)*5 + (src10+src15));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1309 src16 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1310 tmp[13] = ((src13+src14)*20 - (src12+src15)*5 + (src11+src16));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1311 src17 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1312 tmp[14] = ((src14+src15)*20 - (src13+src16)*5 + (src12+src17));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1313 src18 = *s++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1314 tmp[15] = ((src15+src16)*20 - (src14+src17)*5 + (src13+src18));\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1315 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1316 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1317 tmp+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1318 src+=srcStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1319 }while(--i);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1320 tmp -= tmpStride*(h+5-2);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1321 i = w; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1322 do {\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1323 int tmpB,tmpA,tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1324 int16_t *s = tmp-2*tmpStride; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1325 uint8_t *d=dst;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1326 tmpB = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1327 tmpA = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1328 tmp0 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1329 tmp1 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1330 tmp2 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1331 tmp3 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1332 OP2(*d, (tmp0+tmp1)*20 - (tmpA+tmp2)*5 + (tmpB+tmp3));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1333 tmp4 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1334 OP2(*d, (tmp1+tmp2)*20 - (tmp0+tmp3)*5 + (tmpA+tmp4));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1335 tmp5 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1336 OP2(*d, (tmp2+tmp3)*20 - (tmp1+tmp4)*5 + (tmp0+tmp5));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1337 tmp6 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1338 OP2(*d, (tmp3+tmp4)*20 - (tmp2+tmp5)*5 + (tmp1+tmp6));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1339 if (h>4) { \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1340 int tmp7,tmp8,tmp9,tmp10; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1341 tmp7 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1342 OP2(*d, (tmp4+tmp5)*20 - (tmp3+tmp6)*5 + (tmp2+tmp7));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1343 tmp8 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1344 OP2(*d, (tmp5+tmp6)*20 - (tmp4+tmp7)*5 + (tmp3+tmp8));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1345 tmp9 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1346 OP2(*d, (tmp6+tmp7)*20 - (tmp5+tmp8)*5 + (tmp4+tmp9));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1347 tmp10 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1348 OP2(*d, (tmp7+tmp8)*20 - (tmp6+tmp9)*5 + (tmp5+tmp10));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1349 if (h>8) { \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1350 int tmp11,tmp12,tmp13,tmp14,tmp15,tmp16,tmp17,tmp18; \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1351 tmp11 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1352 OP2(*d , (tmp8 +tmp9 )*20 - (tmp7 +tmp10)*5 + (tmp6 +tmp11));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1353 tmp12 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1354 OP2(*d , (tmp9 +tmp10)*20 - (tmp8 +tmp11)*5 + (tmp7 +tmp12));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1355 tmp13 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1356 OP2(*d, (tmp10+tmp11)*20 - (tmp9 +tmp12)*5 + (tmp8 +tmp13));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1357 tmp14 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1358 OP2(*d, (tmp11+tmp12)*20 - (tmp10+tmp13)*5 + (tmp9 +tmp14));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1359 tmp15 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1360 OP2(*d, (tmp12+tmp13)*20 - (tmp11+tmp14)*5 + (tmp10+tmp15));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1361 tmp16 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1362 OP2(*d, (tmp13+tmp14)*20 - (tmp12+tmp15)*5 + (tmp11+tmp16));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1363 tmp17 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1364 OP2(*d, (tmp14+tmp15)*20 - (tmp13+tmp16)*5 + (tmp12+tmp17));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1365 tmp18 = *s; s+=tmpStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1366 OP2(*d, (tmp15+tmp16)*20 - (tmp14+tmp17)*5 + (tmp13+tmp18));d+=dstStride;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1367 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1368 } \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1369 dst++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1370 tmp++;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1371 }while(--i);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1372 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1373 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1374 static void OPNAME ## h264_qpel4_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1375 OPNAME ## h264_qpel_h_lowpass(dst,src,dstStride,srcStride,4,4); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1376 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1377 static void OPNAME ## h264_qpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1378 OPNAME ## h264_qpel_h_lowpass(dst,src,dstStride,srcStride,8,8); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1379 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1380 static void OPNAME ## h264_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1381 OPNAME ## h264_qpel_h_lowpass(dst,src,dstStride,srcStride,16,16); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1382 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1383 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1384 static void OPNAME ## h264_qpel4_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1385 OPNAME ## h264_qpel_v_lowpass(dst,src,dstStride,srcStride,4,4); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1386 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1387 static void OPNAME ## h264_qpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1388 OPNAME ## h264_qpel_v_lowpass(dst,src,dstStride,srcStride,8,8); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1389 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1390 static void OPNAME ## h264_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1391 OPNAME ## h264_qpel_v_lowpass(dst,src,dstStride,srcStride,16,16); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1392 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1393 static void OPNAME ## h264_qpel4_hv_lowpass(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1394 OPNAME ## h264_qpel_hv_lowpass(dst,tmp,src,dstStride,tmpStride,srcStride,4,4); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1395 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1396 static void OPNAME ## h264_qpel8_hv_lowpass(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1397 OPNAME ## h264_qpel_hv_lowpass(dst,tmp,src,dstStride,tmpStride,srcStride,8,8); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1398 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1399 static void OPNAME ## h264_qpel16_hv_lowpass(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1400 OPNAME ## h264_qpel_hv_lowpass(dst,tmp,src,dstStride,tmpStride,srcStride,16,16); \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1401 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1402
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1403 #define H264_MC(OPNAME, SIZE) \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1404 static void OPNAME ## h264_qpel ## SIZE ## _mc00_c (uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1405 OPNAME ## pixels ## SIZE ## _c(dst, src, stride, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1406 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1407 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1408 static void OPNAME ## h264_qpel ## SIZE ## _mc10_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1409 uint8_t half[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1410 put_h264_qpel ## SIZE ## _h_lowpass(half, src, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1411 OPNAME ## pixels ## SIZE ## _l2_aligned2(dst, src, half, stride, stride, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1412 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1413 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1414 static void OPNAME ## h264_qpel ## SIZE ## _mc20_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1415 OPNAME ## h264_qpel ## SIZE ## _h_lowpass(dst, src, stride, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1416 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1417 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1418 static void OPNAME ## h264_qpel ## SIZE ## _mc30_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1419 uint8_t half[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1420 put_h264_qpel ## SIZE ## _h_lowpass(half, src, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1421 OPNAME ## pixels ## SIZE ## _l2_aligned2(dst, src+1, half, stride, stride, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1422 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1423 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1424 static void OPNAME ## h264_qpel ## SIZE ## _mc01_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1425 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1426 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1427 uint8_t half[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1428 copy_block ## SIZE (full, src - stride*2, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1429 put_h264_qpel ## SIZE ## _v_lowpass(half, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1430 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, full_mid, half, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1431 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1432 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1433 static void OPNAME ## h264_qpel ## SIZE ## _mc02_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1434 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1435 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1436 copy_block ## SIZE (full, src - stride*2, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1437 OPNAME ## h264_qpel ## SIZE ## _v_lowpass(dst, full_mid, stride, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1438 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1439 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1440 static void OPNAME ## h264_qpel ## SIZE ## _mc03_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1441 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1442 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1443 uint8_t half[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1444 copy_block ## SIZE (full, src - stride*2, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1445 put_h264_qpel ## SIZE ## _v_lowpass(half, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1446 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, full_mid+SIZE, half, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1447 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1448 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1449 static void OPNAME ## h264_qpel ## SIZE ## _mc11_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1450 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1451 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1452 uint8_t halfH[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1453 uint8_t halfV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1454 put_h264_qpel ## SIZE ## _h_lowpass(halfH, src, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1455 copy_block ## SIZE (full, src - stride*2, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1456 put_h264_qpel ## SIZE ## _v_lowpass(halfV, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1457 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfH, halfV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1458 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1459 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1460 static void OPNAME ## h264_qpel ## SIZE ## _mc31_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1461 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1462 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1463 uint8_t halfH[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1464 uint8_t halfV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1465 put_h264_qpel ## SIZE ## _h_lowpass(halfH, src, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1466 copy_block ## SIZE (full, src - stride*2 + 1, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1467 put_h264_qpel ## SIZE ## _v_lowpass(halfV, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1468 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfH, halfV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1469 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1470 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1471 static void OPNAME ## h264_qpel ## SIZE ## _mc13_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1472 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1473 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1474 uint8_t halfH[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1475 uint8_t halfV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1476 put_h264_qpel ## SIZE ## _h_lowpass(halfH, src + stride, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1477 copy_block ## SIZE (full, src - stride*2, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1478 put_h264_qpel ## SIZE ## _v_lowpass(halfV, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1479 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfH, halfV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1480 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1481 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1482 static void OPNAME ## h264_qpel ## SIZE ## _mc33_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1483 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1484 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1485 uint8_t halfH[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1486 uint8_t halfV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1487 put_h264_qpel ## SIZE ## _h_lowpass(halfH, src + stride, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1488 copy_block ## SIZE (full, src - stride*2 + 1, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1489 put_h264_qpel ## SIZE ## _v_lowpass(halfV, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1490 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfH, halfV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1491 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1492 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1493 static void OPNAME ## h264_qpel ## SIZE ## _mc22_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1494 int16_t tmp[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1495 OPNAME ## h264_qpel ## SIZE ## _hv_lowpass(dst, tmp, src, stride, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1496 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1497 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1498 static void OPNAME ## h264_qpel ## SIZE ## _mc21_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1499 int16_t tmp[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1500 uint8_t halfH[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1501 uint8_t halfHV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1502 put_h264_qpel ## SIZE ## _h_lowpass(halfH, src, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1503 put_h264_qpel ## SIZE ## _hv_lowpass(halfHV, tmp, src, SIZE, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1504 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfH, halfHV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1505 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1506 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1507 static void OPNAME ## h264_qpel ## SIZE ## _mc23_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1508 int16_t tmp[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1509 uint8_t halfH[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1510 uint8_t halfHV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1511 put_h264_qpel ## SIZE ## _h_lowpass(halfH, src + stride, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1512 put_h264_qpel ## SIZE ## _hv_lowpass(halfHV, tmp, src, SIZE, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1513 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfH, halfHV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1514 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1515 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1516 static void OPNAME ## h264_qpel ## SIZE ## _mc12_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1517 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1518 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1519 int16_t tmp[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1520 uint8_t halfV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1521 uint8_t halfHV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1522 copy_block ## SIZE (full, src - stride*2, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1523 put_h264_qpel ## SIZE ## _v_lowpass(halfV, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1524 put_h264_qpel ## SIZE ## _hv_lowpass(halfHV, tmp, src, SIZE, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1525 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfV, halfHV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1526 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1527 \
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1528 static void OPNAME ## h264_qpel ## SIZE ## _mc32_c(uint8_t *dst, uint8_t *src, int stride){\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1529 uint8_t full[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1530 uint8_t * const full_mid= full + SIZE*2;\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1531 int16_t tmp[SIZE*(SIZE+5)];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1532 uint8_t halfV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1533 uint8_t halfHV[SIZE*SIZE];\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1534 copy_block ## SIZE (full, src - stride*2 + 1, SIZE, stride, SIZE + 5);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1535 put_h264_qpel ## SIZE ## _v_lowpass(halfV, full_mid, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1536 put_h264_qpel ## SIZE ## _hv_lowpass(halfHV, tmp, src, SIZE, SIZE, stride);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1537 OPNAME ## pixels ## SIZE ## _l2_aligned(dst, halfV, halfHV, stride, SIZE, SIZE, SIZE);\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1538 }\
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1539
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1540 #define op_avg(a, b) a = (((a)+cm[((b) + 16)>>5]+1)>>1)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1541 //#define op_avg2(a, b) a = (((a)*w1+cm[((b) + 16)>>5]*w2 + o + 64)>>7)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1542 #define op_put(a, b) a = cm[((b) + 16)>>5]
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1543 #define op2_avg(a, b) a = (((a)+cm[((b) + 512)>>10]+1)>>1)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1544 #define op2_put(a, b) a = cm[((b) + 512)>>10]
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1545
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1546 H264_LOWPASS(put_ , op_put, op2_put)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1547 H264_LOWPASS(avg_ , op_avg, op2_avg)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1548 H264_MC(put_, 4)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1549 H264_MC(put_, 8)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1550 H264_MC(put_, 16)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1551 H264_MC(avg_, 4)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1552 H264_MC(avg_, 8)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1553 H264_MC(avg_, 16)
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1554
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1555 #undef op_avg
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1556 #undef op_put
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1557 #undef op2_avg
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1558 #undef op2_put
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1559 #endif
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1560
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1561 static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1562 uint8_t *cm = cropTbl + MAX_NEG_CROP;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1563
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1564 do{
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1565 int src_1,src0,src1,src2,src3,src4,src5,src6,src7,src8,src9;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1566 uint8_t *s = src;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1567 src_1 = s[-1];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1568 src0 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1569 src1 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1570 src2 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1571 dst[0]= cm[(9*(src0 + src1) - (src_1 + src2) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1572 src3 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1573 dst[1]= cm[(9*(src1 + src2) - (src0 + src3) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1574 src4 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1575 dst[2]= cm[(9*(src2 + src3) - (src1 + src4) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1576 src5 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1577 dst[3]= cm[(9*(src3 + src4) - (src2 + src5) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1578 src6 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1579 dst[4]= cm[(9*(src4 + src5) - (src3 + src6) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1580 src7 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1581 dst[5]= cm[(9*(src5 + src6) - (src4 + src7) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1582 src8 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1583 dst[6]= cm[(9*(src6 + src7) - (src5 + src8) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1584 src9 = *s++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1585 dst[7]= cm[(9*(src7 + src8) - (src6 + src9) + 8)>>4];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1586 dst+=dstStride;
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 1264
diff changeset
1587 src+=srcStride;
1262
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1588 }while(--h);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1589 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1590
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1591 static void wmv2_mspel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int w){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1592 uint8_t *cm = cropTbl + MAX_NEG_CROP;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1593
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1594 do{
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1595 int src_1,src0,src1,src2,src3,src4,src5,src6,src7,src8,src9;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1596 uint8_t *s = src,*d = dst;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1597 src_1 = *(s-srcStride);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1598 src0 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1599 src1 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1600 src2 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1601 *d= cm[(9*(src0 + src1) - (src_1 + src2) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1602 src3 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1603 *d= cm[(9*(src1 + src2) - (src0 + src3) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1604 src4 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1605 *d= cm[(9*(src2 + src3) - (src1 + src4) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1606 src5 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1607 *d= cm[(9*(src3 + src4) - (src2 + src5) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1608 src6 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1609 *d= cm[(9*(src4 + src5) - (src3 + src6) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1610 src7 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1611 *d= cm[(9*(src5 + src6) - (src4 + src7) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1612 src8 = *s; s+=srcStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1613 *d= cm[(9*(src6 + src7) - (src5 + src8) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1614 src9 = *s;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1615 *d= cm[(9*(src7 + src8) - (src6 + src9) + 8)>>4]; d+=dstStride;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1616 src++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1617 dst++;
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1618 }while(--w);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1619 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1620
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1621 static void put_mspel8_mc00_c (uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1622 put_pixels8_c(dst, src, stride, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1623 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1624
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1625 static void put_mspel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1626 uint8_t half[64];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1627 wmv2_mspel8_h_lowpass(half, src, 8, stride, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1628 put_pixels8_l2_aligned2(dst, src, half, stride, stride, 8, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1629 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1630
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1631 static void put_mspel8_mc20_c(uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1632 wmv2_mspel8_h_lowpass(dst, src, stride, stride, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1633 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1634
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1635 static void put_mspel8_mc30_c(uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1636 uint8_t half[64];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1637 wmv2_mspel8_h_lowpass(half, src, 8, stride, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1638 put_pixels8_l2_aligned2(dst, src+1, half, stride, stride, 8, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1639 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1640
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1641 static void put_mspel8_mc02_c(uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1642 wmv2_mspel8_v_lowpass(dst, src, stride, stride, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1643 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1644
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1645 static void put_mspel8_mc12_c(uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1646 uint8_t halfH[88];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1647 uint8_t halfV[64];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1648 uint8_t halfHV[64];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1649 wmv2_mspel8_h_lowpass(halfH, src-stride, 8, stride, 11);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1650 wmv2_mspel8_v_lowpass(halfV, src, 8, stride, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1651 wmv2_mspel8_v_lowpass(halfHV, halfH+8, 8, 8, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1652 put_pixels8_l2_aligned(dst, halfV, halfHV, stride, 8, 8, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1653 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1654 static void put_mspel8_mc32_c(uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1655 uint8_t halfH[88];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1656 uint8_t halfV[64];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1657 uint8_t halfHV[64];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1658 wmv2_mspel8_h_lowpass(halfH, src-stride, 8, stride, 11);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1659 wmv2_mspel8_v_lowpass(halfV, src+1, 8, stride, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1660 wmv2_mspel8_v_lowpass(halfHV, halfH+8, 8, 8, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1661 put_pixels8_l2_aligned(dst, halfV, halfHV, stride, 8, 8, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1662 }
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1663 static void put_mspel8_mc22_c(uint8_t *dst, uint8_t *src, int stride){
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1664 uint8_t halfH[88];
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1665 wmv2_mspel8_h_lowpass(halfH, src-stride, 8, stride, 11);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1666 wmv2_mspel8_v_lowpass(dst, halfH+8, stride, 8, 8);
82e0e1b9c283 aligned dsputil (for sh4) patch by (BERO <bero at geocities dot co dot jp>)
michaelni
parents:
diff changeset
1667 }