Mercurial > libavcodec.hg
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 |