summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/vf_divtc.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2009-03-14 23:52:45 +0200
committerUoti Urpala <uau@glyph.nonexistent.invalid>2009-03-14 23:52:45 +0200
commitae2faad6669c313b7a5dd318baeee0bffdd47031 (patch)
tree0b383b5dde56d54be4b144e7e23e96bd8bdd43cf /libmpcodecs/vf_divtc.c
parentb93f4b7bba0e31d157b74685d3166f74a6c244d7 (diff)
parent642162c07460e439d1d81cda4643dc028ed238e0 (diff)
downloadmpv-ae2faad6669c313b7a5dd318baeee0bffdd47031.tar.bz2
mpv-ae2faad6669c313b7a5dd318baeee0bffdd47031.tar.xz
Merge svn changes up to r28951
Diffstat (limited to 'libmpcodecs/vf_divtc.c')
-rw-r--r--libmpcodecs/vf_divtc.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/libmpcodecs/vf_divtc.c b/libmpcodecs/vf_divtc.c
index f70d4802ec..baaeb3ef57 100644
--- a/libmpcodecs/vf_divtc.c
+++ b/libmpcodecs/vf_divtc.c
@@ -33,7 +33,7 @@ struct vf_priv_s
* diff_MMX and diff_C stolen from vf_decimate.c
*/
-#if HAVE_MMX
+#if HAVE_MMX && HAVE_EBX_AVAILABLE
static int diff_MMX(unsigned char *old, unsigned char *new, int os, int ns)
{
volatile short out[4];
@@ -69,7 +69,7 @@ static int diff_MMX(unsigned char *old, unsigned char *new, int os, int ns)
"emms \n\t"
:
: "S" (old), "D" (new), "a" ((long)os), "b" ((long)ns), "d" (out)
- : "memory"
+ : "%ecx", "memory"
);
return out[0]+out[1]+out[2]+out[3];
}
@@ -682,11 +682,10 @@ static int open(vf_instance_t *vf, char* args)
if(!(p->history=calloc(sizeof *p->history, p->window)))
goto nomem;
- diff=
-#if HAVE_MMX
- gCpuCaps.hasMMX?diff_MMX:
+ diff = diff_C;
+#if HAVE_MMX && HAVE_EBX_AVAILABLE
+ if(gCpuCaps.hasMMX) diff = diff_MMX;
#endif
- diff_C;
free(args);
return 1;