Revision 77c45373

View differences:

libavcodec/arm/h264dsp_neon.S
56 56
        .endm
57 57

  
58 58
/* chroma_mc8(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */
59
        .macro  h264_chroma_mc8 avg=0
59
        .macro  h264_chroma_mc8 type
60
function ff_\type\()_h264_chroma_mc8_neon, export=1
60 61
        push            {r4-r7, lr}
61 62
        ldrd            r4,  [sp, #20]
62
.if \avg
63
.ifc \type,avg
63 64
        mov             lr,  r0
64 65
.endif
65 66
        pld             [r1]
......
103 104
        vld1.64         {d6, d7}, [r5], r4
104 105
        pld             [r1]
105 106
        vrshrn.u16      d17, q9,  #6
106
.if \avg
107
.ifc \type,avg
107 108
        vld1.64         {d20}, [lr,:64], r2
108 109
        vld1.64         {d21}, [lr,:64], r2
109 110
        vrhadd.u8       q8,  q8,  q10
......
136 137
        vld1.64         {d6}, [r5], r4
137 138
        vrshrn.u16      d16, q8,  #6
138 139
        vrshrn.u16      d17, q9,  #6
139
.if \avg
140
.ifc \type,avg
140 141
        vld1.64         {d20}, [lr,:64], r2
141 142
        vld1.64         {d21}, [lr,:64], r2
142 143
        vrhadd.u8       q8,  q8,  q10
......
165 166
        vext.8          d5,  d4,  d5,  #1
166 167
        vrshrn.u16      d16, q8,  #6
167 168
        vrshrn.u16      d17, q9,  #6
168
.if \avg
169
.ifc \type,avg
169 170
        vld1.64         {d20}, [lr,:64], r2
170 171
        vld1.64         {d21}, [lr,:64], r2
171 172
        vrhadd.u8       q8,  q8,  q10
......
177 178
        bgt             5b
178 179

  
179 180
        pop             {r4-r7, pc}
181
        .endfunc
180 182
        .endm
181 183

  
182 184
/* chroma_mc4(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */
183
        .macro  h264_chroma_mc4 avg=0
185
        .macro  h264_chroma_mc4 type
186
function ff_\type\()_h264_chroma_mc4_neon, export=1
184 187
        push            {r4-r7, lr}
185 188
        ldrd            r4,  [sp, #20]
186
.if \avg
189
.ifc \type,avg
187 190
        mov             lr,  r0
188 191
.endif
189 192
        pld             [r1]
......
230 233
        vrshrn.u16      d16, q8,  #6
231 234
        subs            r3,  r3,  #2
232 235
        pld             [r1]
233
.if \avg
236
.ifc \type,avg
234 237
        vld1.32         {d20[0]}, [lr,:32], r2
235 238
        vld1.32         {d20[1]}, [lr,:32], r2
236 239
        vrhadd.u8       d16, d16, d20
......
265 268
        vadd.i16        d16, d16, d17
266 269
        vadd.i16        d17, d18, d19
267 270
        vrshrn.u16      d16, q8,  #6
268
.if \avg
271
.ifc \type,avg
269 272
        vld1.32         {d20[0]}, [lr,:32], r2
270 273
        vld1.32         {d20[1]}, [lr,:32], r2
271 274
        vrhadd.u8       d16, d16, d20
......
295 298
        vadd.i16        d17, d18, d19
296 299
        pld             [r1]
297 300
        vrshrn.u16      d16, q8,  #6
298
.if \avg
301
.ifc \type,avg
299 302
        vld1.32         {d20[0]}, [lr,:32], r2
300 303
        vld1.32         {d20[1]}, [lr,:32], r2
301 304
        vrhadd.u8       d16, d16, d20
......
309 312
        bgt             5b
310 313

  
311 314
        pop             {r4-r7, pc}
315
        .endfunc
312 316
        .endm
313 317

  
314 318
        .text
315 319
        .align
316 320

  
317
function ff_put_h264_chroma_mc8_neon, export=1
318
        h264_chroma_mc8
319
        .endfunc
320

  
321
function ff_avg_h264_chroma_mc8_neon, export=1
322
        h264_chroma_mc8 avg=1
323
        .endfunc
324

  
325
function ff_put_h264_chroma_mc4_neon, export=1
326
        h264_chroma_mc4
327
        .endfunc
328

  
329
function ff_avg_h264_chroma_mc4_neon, export=1
330
        h264_chroma_mc4 avg=1
331
        .endfunc
321
        h264_chroma_mc8 put
322
        h264_chroma_mc8 avg
323
        h264_chroma_mc4 put
324
        h264_chroma_mc4 avg
332 325

  
333 326
        /* H.264 loop filter */
334 327

  

Also available in: Unified diff