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]!