]> git.sesse.net Git - vlc/blobdiff - modules/arm_neon/i422_yuyv.S
Puzzle: main filter update
[vlc] / modules / arm_neon / i422_yuyv.S
index 5561e44fd40f8b249b7e88aa1c39293282bef53e..0960267a8ff7039c678cba5a71cbe7e4e312185b 100644 (file)
@@ -1,5 +1,5 @@
  @*****************************************************************************
- @ i422_yuyv_neon.S : ARM NEONv1 I422 to YUYV chroma conversion
+ @ i422_yuyv.S : ARM NEONv1 I422 to YUYV chroma conversion
  @*****************************************************************************
  @ Copyright (C) 2011 Rémi Denis-Courmont
  @
  @ 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.
+ @ GNU Lesser General Public License for more details.
  @
  @ 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
 
@@ -31,7 +32,7 @@
 #define COUNT  ip
 #define YPAD   lr
 
-       .align
+       .align 2
        .global i422_yuyv_neon
        .type   i422_yuyv_neon, %function
 i422_yuyv_neon:
@@ -42,7 +43,7 @@ i422_yuyv_neon:
        sub             OPAD,   OPAD,   WIDTH,  lsl #1
        sub             YPAD,   YPAD,   WIDTH
 1:
-       movgts          COUNT,  WIDTH
+       movsgt          COUNT,  WIDTH
        pople           {r4-r6,pc}
 2:
        pld             [U, #64]
@@ -54,6 +55,7 @@ i422_yuyv_neon:
        subs            COUNT,  COUNT,  #16
        vld1.u8         {q0},           [Y,:128]!
        vzip.u8         q0,     q1
+       @ TODO: unroll (1 cycle stall)
        vst1.u8         {q0-q1},        [O,:128]!
        bgt             2b
 
@@ -74,7 +76,7 @@ i422_uyvy_neon:
        sub             OPAD,   OPAD,   WIDTH,  lsl #1
        sub             YPAD,   YPAD,   WIDTH
 1:
-       movgts          COUNT,  WIDTH
+       movsgt          COUNT,  WIDTH
        pople           {r4-r6,pc}
 2:
        pld             [U, #64]