]> git.sesse.net Git - vlc/blobdiff - modules/arm_neon/nv12_rgb.S
Add i420->rv16 neon converter
[vlc] / modules / arm_neon / nv12_rgb.S
index f4bb510ca8a3dc164570cc325fb3cb82b6a493dc..f514c4328eb2c746b40dec8c524e4364ee54e2b2 100644 (file)
@@ -4,21 +4,22 @@
  @ Copyright (C) 2011 Sébastien Toque
  @                    Rémi Denis-Courmont
  @
- @ This program is free software; you can redistribute it and/or modify
- @ it under the terms of the GNU General Public License as published by
- @ the Free Software Foundation; either version 2 of the License, or
+ @ This program is free software; you can redistribute it and/or modify it
+ @ under the terms of the GNU Lesser General Public License as published by
+ @ the Free Software Foundation; either version 2.1 of the License, or
  @ (at your option) any later version.
  @
  @ This program is distributed in the hope that it will be useful,
  @ but WITHOUT ANY WARRANTY; without even the implied warranty of
- @ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- @ GNU General Public License for more details.
+ @ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ @ GNU Lesser General Public License for more details.
  @
- @ You should have received a copy of the GNU General Public License
+ @ You should have received a copy of the GNU Lesser General Public License
  @ along with this program; if not, write to the Free Software Foundation,
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
+       .syntax unified
        .fpu neon
        .text
 
@@ -74,7 +75,7 @@ coefficients:
     .short    4992
     .short  -18432
 
-       .align
+       .align 2
        .global nv12_rgb_neon
        .type   nv12_rgb_neon, %function
 nv12_rgb_neon:
@@ -108,7 +109,7 @@ nv12_rgb_neon:
        sub                     YPAD,   YPITCH, WIDTH
 
 loop_row:
-       movgts  COUNT,  WIDTH
+       movsgt  COUNT,  WIDTH
        add             O2,     O1,     OPITCH
        add             Y2,     Y1,     YPITCH
        /* exit if all rows have been processed */
@@ -130,7 +131,7 @@ loop_col:
        vsub.s16        chro_g, Gc, chro_g
        vadd.s16        chro_b, Bc, chro_b
 
-       PLD     [U]
+       pld     [U]
 
        /* Y Top Row */
        vld2.u8 {y1,y2}, [Y1,:128]!
@@ -153,7 +154,7 @@ loop_col:
        vqrshrun.s16    green2, green, #6
        vqrshrun.s16    blue2, blue, #6
 
-       PLD     [Y1]
+       pld     [Y1]
 
        vmov.u8 alpha2, #255
        vzip.u8 red1, red2
@@ -184,7 +185,7 @@ loop_col:
        vqrshrun.s16    green2, green, #6
        vqrshrun.s16    blue2, blue, #6
 
-       PLD     [Y2]
+       pld     [Y2]
 
        vmov.u8 alpha2, #255
        vzip.u8 red1, red2