mplayer: Upgrade yuv assembly conversion in vo_omapfb
authorGregoire Gentil <gregoire@gentil.com>
Mon, 18 Jan 2010 07:50:51 +0000 (07:50 +0000)
committerKoen Kooi <koen@openembedded.org>
Mon, 8 Mar 2010 09:33:10 +0000 (10:33 +0100)
Signed-off-by: Koen Kooi <koen@openembedded.org>
recipes/mplayer/files/yuv.S
recipes/mplayer/mplayer_svn.bb

index 3eaf284..1cd2c1d 100644 (file)
     DEALINGS IN THE SOFTWARE.
  */
 
+        .macro mov32    rd, val
+        movw            \rd, #:lower16:\val
+        movt            \rd, #:upper16:\val
+        .endm
+
         .fpu neon
         .text
 
@@ -49,8 +54,9 @@
 yuv420_to_yuv422:
         push            {r4-r11,lr}
         add             r4,  sp,  #36
+.Ldo_conv:
         ldm             r4, {r4-r8}
-        dmb
+        push            {r4}
 1:
         mov             tu,   u
         mov             tv,   v
@@ -102,7 +108,7 @@ yuv420_to_yuv422:
         add             v,    tv,   #8
         bgt             1b
 
-        ldr             w,    [sp, #36]
+        ldr             w,    [sp]
         subs            h,    h,    #16
         add             yuv,  yuv,  dw, lsl #4
         sub             yuv,  yuv,  w,  lsl #1
@@ -114,6 +120,51 @@ yuv420_to_yuv422:
         sub             v,    v,    w,  asr #1
         bgt             1b
 
-        pop             {r4-r11,pc}
+        pop             {r3-r11,pc}
+        .endfunc
+
+        .func   neon_open
+neon_open:
+        push            {r4-r8,lr}
+        ldrd            r4,  r5,  [r0, #16]
+        ldrd            r6,  r7,  [r0, #24]
+        lsl             r8,  r4,  #1
+        mov32           r0,  conv_params
+        stm             r0,  {r4-r8}
+        mov             r0,  #0
+        pop             {r4-r8,pc}
+        .endfunc
+
+        .func   neon_convert
+neon_convert:
+        push            {r4-r11,lr}
+        ldr             r0,  [r0]
+        mov32           r4,  conv_params
+        ldm             r1,  {r1-r3}
+        b               .Ldo_conv
+        .endfunc
+
+        .func   neon_nop
+neon_nop:
+        bx              lr
         .endfunc
 
+        .section .bss
+conv_params:
+        .skip           5*4
+        .size           conv_params, . - conv_params
+
+        .section        .rodata
+.Lname: .asciz          "neon"
+ofb_pixconv_neon:
+        .word           .Lname
+        .word           0               @ flags
+        .word           neon_open
+        .word           neon_convert
+        .word           neon_nop        @ finish
+        .word           neon_nop        @ close
+        .size           ofb_pixconv_neon, . - ofb_pixconv_neon
+
+        .section        .ofb_pixconv, "a"
+ofb_pixconv_neon_p:
+        .word           ofb_pixconv_neon
index 6116d8f..1d7f30d 100644 (file)
@@ -39,7 +39,7 @@ RCONFLICTS_${PN} = "mplayer-atty"
 RREPLACES_${PN} = "mplayer-atty"
 
 PV = "0.0+1.0rc3+svnr${SRCPV}"
-PR = "r17"
+PR = "r18"
 DEFAULT_PREFERENCE = "-1"
 DEFAULT_PREFERENCE_angstrom = "1"
 DEFAULT_PREFERENCE_shr = "1"