]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/x86/rnd_template.c
xsubdec: Convert to the new bitstream reader
[ffmpeg] / libavcodec / x86 / rnd_template.c
index e9a5a457993ceb00216beeb7d029399996d95cb0..0c76d9164779f8ae22fb4cd304d75902a4e18075 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * DSP utils mmx functions are compiled twice for rnd/no_rnd
+ * SIMD-optimized halfpel functions are compiled twice for rnd/no_rnd
  * Copyright (c) 2000, 2001 Fabrice Bellard
  * Copyright (c) 2003-2004 Michael Niedermayer <michaelni@gmx.at>
  *
@@ -27,6 +27,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include "inline_asm.h"
+
 // put_pixels
 STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels,
                                   ptrdiff_t line_size, int h)
@@ -44,12 +46,12 @@ STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels,
         "punpckhbw %%mm7, %%mm5         \n\t"
         "paddusw %%mm0, %%mm4           \n\t"
         "paddusw %%mm1, %%mm5           \n\t"
-        "xor    %%"REG_a", %%"REG_a"    \n\t"
+        "xor %%"FF_REG_a", %%"FF_REG_a" \n\t"
         "add    %3, %1                  \n\t"
         ".p2align 3                     \n\t"
         "1:                             \n\t"
-        "movq   (%1, %%"REG_a"), %%mm0  \n\t"
-        "movq   1(%1, %%"REG_a"), %%mm2 \n\t"
+        "movq  (%1, %%"FF_REG_a"), %%mm0\n\t"
+        "movq 1(%1, %%"FF_REG_a"), %%mm2\n\t"
         "movq   %%mm0, %%mm1            \n\t"
         "movq   %%mm2, %%mm3            \n\t"
         "punpcklbw %%mm7, %%mm0         \n\t"
@@ -65,11 +67,11 @@ STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels,
         "psrlw  $2, %%mm4               \n\t"
         "psrlw  $2, %%mm5               \n\t"
         "packuswb  %%mm5, %%mm4         \n\t"
-        "movq   %%mm4, (%2, %%"REG_a")  \n\t"
-        "add    %3, %%"REG_a"           \n\t"
+        "movq %%mm4, (%2, %%"FF_REG_a") \n\t"
+        "add  %3, %%"FF_REG_a"          \n\t"
 
-        "movq   (%1, %%"REG_a"), %%mm2  \n\t" // 0 <-> 2   1 <-> 3
-        "movq   1(%1, %%"REG_a"), %%mm4 \n\t"
+        "movq  (%1, %%"FF_REG_a"), %%mm2\n\t" // 0 <-> 2   1 <-> 3
+        "movq 1(%1, %%"FF_REG_a"), %%mm4\n\t"
         "movq   %%mm2, %%mm3            \n\t"
         "movq   %%mm4, %%mm5            \n\t"
         "punpcklbw %%mm7, %%mm2         \n\t"
@@ -85,14 +87,14 @@ STATIC void DEF(put, pixels8_xy2)(uint8_t *block, const uint8_t *pixels,
         "psrlw  $2, %%mm0               \n\t"
         "psrlw  $2, %%mm1               \n\t"
         "packuswb  %%mm1, %%mm0         \n\t"
-        "movq   %%mm0, (%2, %%"REG_a")  \n\t"
-        "add    %3, %%"REG_a"           \n\t"
+        "movq %%mm0, (%2, %%"FF_REG_a") \n\t"
+        "add  %3, %%"FF_REG_a"          \n\t"
 
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
         :"+g"(h), "+S"(pixels)
         :"D"(block), "r"((x86_reg)line_size)
-        :REG_a, "memory");
+        :FF_REG_a, "memory");
 }
 
 // avg_pixels
@@ -113,12 +115,12 @@ STATIC void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels,
         "punpckhbw %%mm7, %%mm5         \n\t"
         "paddusw %%mm0, %%mm4           \n\t"
         "paddusw %%mm1, %%mm5           \n\t"
-        "xor    %%"REG_a", %%"REG_a"    \n\t"
+        "xor %%"FF_REG_a", %%"FF_REG_a" \n\t"
         "add    %3, %1                  \n\t"
         ".p2align 3                     \n\t"
         "1:                             \n\t"
-        "movq   (%1, %%"REG_a"), %%mm0  \n\t"
-        "movq   1(%1, %%"REG_a"), %%mm2 \n\t"
+        "movq  (%1, %%"FF_REG_a"), %%mm0\n\t"
+        "movq 1(%1, %%"FF_REG_a"), %%mm2\n\t"
         "movq   %%mm0, %%mm1            \n\t"
         "movq   %%mm2, %%mm3            \n\t"
         "punpcklbw %%mm7, %%mm0         \n\t"
@@ -133,16 +135,16 @@ STATIC void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels,
         "paddusw %%mm1, %%mm5           \n\t"
         "psrlw  $2, %%mm4               \n\t"
         "psrlw  $2, %%mm5               \n\t"
-                "movq   (%2, %%"REG_a"), %%mm3  \n\t"
+        "movq (%2, %%"FF_REG_a"), %%mm3 \n\t"
         "packuswb  %%mm5, %%mm4         \n\t"
                 "pcmpeqd %%mm2, %%mm2   \n\t"
                 "paddb %%mm2, %%mm2     \n\t"
                 PAVGB_MMX(%%mm3, %%mm4, %%mm5, %%mm2)
-                "movq   %%mm5, (%2, %%"REG_a")  \n\t"
-        "add    %3, %%"REG_a"                \n\t"
+        "movq %%mm5, (%2, %%"FF_REG_a") \n\t"
+        "add %3, %%"FF_REG_a"           \n\t"
 
-        "movq   (%1, %%"REG_a"), %%mm2  \n\t" // 0 <-> 2   1 <-> 3
-        "movq   1(%1, %%"REG_a"), %%mm4 \n\t"
+        "movq  (%1, %%"FF_REG_a"), %%mm2\n\t" // 0 <-> 2   1 <-> 3
+        "movq 1(%1, %%"FF_REG_a"), %%mm4\n\t"
         "movq   %%mm2, %%mm3            \n\t"
         "movq   %%mm4, %%mm5            \n\t"
         "punpcklbw %%mm7, %%mm2         \n\t"
@@ -157,17 +159,17 @@ STATIC void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels,
         "paddusw %%mm5, %%mm1           \n\t"
         "psrlw  $2, %%mm0               \n\t"
         "psrlw  $2, %%mm1               \n\t"
-                "movq   (%2, %%"REG_a"), %%mm3  \n\t"
+        "movq (%2, %%"FF_REG_a"), %%mm3 \n\t"
         "packuswb  %%mm1, %%mm0         \n\t"
                 "pcmpeqd %%mm2, %%mm2   \n\t"
                 "paddb %%mm2, %%mm2     \n\t"
                 PAVGB_MMX(%%mm3, %%mm0, %%mm1, %%mm2)
-                "movq   %%mm1, (%2, %%"REG_a")  \n\t"
-        "add    %3, %%"REG_a"           \n\t"
+        "movq %%mm1, (%2, %%"FF_REG_a") \n\t"
+        "add  %3, %%"FF_REG_a"          \n\t"
 
         "subl   $2, %0                  \n\t"
         "jnz    1b                      \n\t"
         :"+g"(h), "+S"(pixels)
         :"D"(block), "r"((x86_reg)line_size)
-        :REG_a, "memory");
+        :FF_REG_a, "memory");
 }