Mercurial > libavcodec.hg
comparison arm/dsputil_neon.S @ 10375:199949177888 libavcodec
ARM: NEON avg_pixels8 and avg_h264_qpel8_mc00
author | mru |
---|---|
date | Wed, 07 Oct 2009 21:35:19 +0000 |
parents | b72bb442a775 |
children | 5c5b864d66e1 |
comparison
equal
deleted
inserted
replaced
10374:a6ff6fb10ff5 | 10375:199949177888 |
---|---|
137 vst1.64 {d30,d31}, [r0,:128], r2 | 137 vst1.64 {d30,d31}, [r0,:128], r2 |
138 bgt 1b | 138 bgt 1b |
139 bx lr | 139 bx lr |
140 .endm | 140 .endm |
141 | 141 |
142 .macro pixels8 | 142 .macro pixels8 avg=0 |
143 1: vld1.64 {d0}, [r1], r2 | 143 1: vld1.64 {d0}, [r1], r2 |
144 vld1.64 {d1}, [r1], r2 | 144 vld1.64 {d1}, [r1], r2 |
145 vld1.64 {d2}, [r1], r2 | 145 vld1.64 {d2}, [r1], r2 |
146 pld [r1, r2, lsl #2] | 146 pld [r1, r2, lsl #2] |
147 vld1.64 {d3}, [r1], r2 | 147 vld1.64 {d3}, [r1], r2 |
148 pld [r1] | 148 pld [r1] |
149 pld [r1, r2] | 149 pld [r1, r2] |
150 pld [r1, r2, lsl #1] | 150 pld [r1, r2, lsl #1] |
151 .if \avg | |
152 vld1.64 {d4}, [r0,:64], r2 | |
153 vrhadd.u8 d0, d0, d4 | |
154 vld1.64 {d5}, [r0,:64], r2 | |
155 vrhadd.u8 d1, d1, d5 | |
156 vld1.64 {d6}, [r0,:64], r2 | |
157 vrhadd.u8 d2, d2, d6 | |
158 vld1.64 {d7}, [r0,:64], r2 | |
159 vrhadd.u8 d3, d3, d7 | |
160 sub r0, r0, r2, lsl #2 | |
161 .endif | |
151 subs r3, r3, #4 | 162 subs r3, r3, #4 |
152 vst1.64 {d0}, [r0,:64], r2 | 163 vst1.64 {d0}, [r0,:64], r2 |
153 vst1.64 {d1}, [r0,:64], r2 | 164 vst1.64 {d1}, [r0,:64], r2 |
154 vst1.64 {d2}, [r0,:64], r2 | 165 vst1.64 {d2}, [r0,:64], r2 |
155 vst1.64 {d3}, [r0,:64], r2 | 166 vst1.64 {d3}, [r0,:64], r2 |
258 | 269 |
259 pixfunc put_ pixels8 | 270 pixfunc put_ pixels8 |
260 pixfunc2 put_ pixels8_x2, _no_rnd, vhadd.u8 | 271 pixfunc2 put_ pixels8_x2, _no_rnd, vhadd.u8 |
261 pixfunc2 put_ pixels8_y2, _no_rnd, vhadd.u8 | 272 pixfunc2 put_ pixels8_y2, _no_rnd, vhadd.u8 |
262 pixfunc2 put_ pixels8_xy2, _no_rnd, vshrn.u16, 1 | 273 pixfunc2 put_ pixels8_xy2, _no_rnd, vshrn.u16, 1 |
274 | |
275 function ff_avg_h264_qpel8_mc00_neon, export=1 | |
276 mov r3, #8 | |
277 .endfunc | |
278 | |
279 pixfunc avg_ pixels8,, 1 | |
263 | 280 |
264 function ff_put_pixels_clamped_neon, export=1 | 281 function ff_put_pixels_clamped_neon, export=1 |
265 vld1.64 {d16-d19}, [r0,:128]! | 282 vld1.64 {d16-d19}, [r0,:128]! |
266 vqmovun.s16 d0, q8 | 283 vqmovun.s16 d0, q8 |
267 vld1.64 {d20-d23}, [r0,:128]! | 284 vld1.64 {d20-d23}, [r0,:128]! |