]> git.sesse.net Git - vlc/blobdiff - modules/video_chroma/i420_yuy2.h
dtv: fix ISDB-S tuning
[vlc] / modules / video_chroma / i420_yuy2.h
index 6cae0bc14e51d17ba9f30d470b2590d61d0292cd..a950610a839b10867e170f6346b0aa499f219af4 100644 (file)
@@ -1,25 +1,25 @@
 /*****************************************************************************
  * i420_yuy2.h : YUV to YUV conversion module for vlc
  *****************************************************************************
- * Copyright (C) 2000, 2001 the VideoLAN team
+ * Copyright (C) 2000, 2001 VLC authors and VideoLAN
  * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *          Damien Fouilleul <damien@videolan.org>
  *
- * 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
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * 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.
  *****************************************************************************/
 
 #ifdef MODULE_NAME_IS_i420_yuy2_mmx
@@ -39,12 +39,14 @@ movq       (%3), %%mm3  # Load 8 Y            Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0     \n\
 " \
         :                                   \
         : "r" (p_u), "r" (p_v),             \
-          "r" (p_y1), "r" (p_y2) );         \
+          "r" (p_y1), "r" (p_y2)            \
+        : "mm0", "mm1", "mm2", "mm3");      \
     __asm__ __volatile__(                   \
         ".p2align 3 \n\t"                   \
         MMX_INSTRUCTIONS                    \
         :                                   \
-        : "r" (p_line1), "r" (p_line2) );   \
+        : "r" (p_line1), "r" (p_line2)      \
+        : "mm0", "mm1", "mm2", "mm3");      \
         p_line1 += 16; p_line2 += 16;       \
         p_y1 += 8; p_y2 += 8;               \
         p_u += 4; p_v += 4;                 \
@@ -130,7 +132,7 @@ movq      %%mm1, (%1)   # Store YUYV                                      \n\
     } while(0)
 
 #define MMX_END _mm_empty()
-    
 #define MMX_YUV420_YUYV                     \
     mm1 = _mm_cvtsi32_si64(*(int*)p_u);     \
     mm2 = _mm_cvtsi32_si64(*(int*)p_v);     \
@@ -199,13 +201,15 @@ movq        (%0), %%xmm1  # Load 8 Cb         u7 u6 u5 u4 u3 u2 u1 u0     \n\
 movq        (%1), %%xmm2  # Load 8 Cr         v7 06 v5 v4 v3 v2 v1 v0     \n\
 " \
         :                               \
-        : "r" (p_u),  "r" (p_v) );      \
+        : "r" (p_u),  "r" (p_v)         \
+        : "xmm1", "xmm2");              \
     __asm__ __volatile__(               \
         ".p2align 3 \n\t"               \
         SSE2_INSTRUCTIONS               \
         :                               \
         : "r" (p_line1), "r" (p_line2), \
-          "r" (p_y1),  "r" (p_y2) );    \
+          "r" (p_y1),  "r" (p_y2)       \
+        : "xmm0", "xmm1", "xmm2", "xmm3", "xmm4"); \
         p_line1 += 32; p_line2 += 32;   \
         p_y1 += 16; p_y2 += 16;         \
         p_u += 8; p_v += 8;             \