comparison arm/dsputil_armv6.S @ 11110:45de2da90eaf libavcodec

ARMv6 optimised pix_abs16_x2
author mru
date Tue, 09 Feb 2010 16:13:29 +0000
parents 9f00412b0bc8
children 95b1fd6057d3
comparison
equal deleted inserted replaced
11109:9f00412b0bc8 11110:45de2da90eaf
313 b 1b 313 b 1b
314 2: 314 2:
315 add r0, r12, lr 315 add r0, r12, lr
316 pop {r4-r9, pc} 316 pop {r4-r9, pc}
317 .endfunc 317 .endfunc
318
319 function ff_pix_abs16_x2_armv6, export=1
320 ldr r12, [sp]
321 push {r4-r11, lr}
322 mov r0, #0
323 mov lr, #1
324 orr lr, lr, lr, lsl #8
325 orr lr, lr, lr, lsl #16
326 1:
327 ldr r8, [r2]
328 ldr r9, [r2, #4]
329 lsr r10, r8, #8
330 ldr r4, [r1]
331 lsr r6, r9, #8
332 orr r10, r10, r9, lsl #24
333 ldr r5, [r2, #8]
334 eor r11, r8, r10
335 uhadd8 r7, r8, r10
336 orr r6, r6, r5, lsl #24
337 and r11, r11, lr
338 uadd8 r7, r7, r11
339 ldr r8, [r1, #4]
340 usada8 r0, r4, r7, r0
341 eor r7, r9, r6
342 lsr r10, r5, #8
343 and r7, r7, lr
344 uhadd8 r4, r9, r6
345 ldr r6, [r2, #12]
346 uadd8 r4, r4, r7
347 pld [r1, r3]
348 orr r10, r10, r6, lsl #24
349 usada8 r0, r8, r4, r0
350 ldr r4, [r1, #8]
351 eor r11, r5, r10
352 ldrb r7, [r2, #16]
353 and r11, r11, lr
354 uhadd8 r8, r5, r10
355 ldr r5, [r1, #12]
356 uadd8 r8, r8, r11
357 pld [r2, r3]
358 lsr r10, r6, #8
359 usada8 r0, r4, r8, r0
360 orr r10, r10, r7, lsl #24
361 subs r12, r12, #1
362 eor r11, r6, r10
363 add r1, r1, r3
364 uhadd8 r9, r6, r10
365 and r11, r11, lr
366 uadd8 r9, r9, r11
367 add r2, r2, r3
368 usada8 r0, r5, r9, r0
369 bgt 1b
370
371 pop {r4-r11, pc}
372 .endfunc