@@ -516,6 +516,13 @@ if test -z "$gcc_have_atomics"; then
fi
AC_MSG_RESULT($gcc_have_atomics)
+dnl check mmx register for pcm_dmix_i386
+
+AC_TRY_LINK([],
+ [__asm__ volatile ("" : : : "mm0");],
+ [AC_DEFINE([HAVE_MMX], "1", [MMX technology is enabled])],
+ [])
+
PCM_PLUGIN_LIST="copy linear route mulaw alaw adpcm rate plug multi shm file null empty share meter hooks lfloat ladspa dmix dshare dsnoop asym iec958 softvol extplug ioplug mmap_emul"
build_pcm_plugin="no"
@@ -237,6 +237,12 @@ static void MIX_AREAS_16_MMX(unsigned int size,
[dst_step] "m" (dst_step), [src_step] "m" (src_step),
[sum_step] "m" (sum_step)
: "esi", "edi", "edx", "ecx", "eax", "memory", "cc"
+#ifdef HAVE_MMX
+ , "mm0"
+#else
+ , "st", "st(1)", "st(2)", "st(3)",
+ "st(4)", "st(5)", "st(6)", "st(7)"
+#endif
);
}
@@ -119,6 +119,12 @@ static void MIX_AREAS_16(unsigned int size,
[dst_step] "m" (dst_step), [src_step] "m" (src_step),
[sum_step] "m" (sum_step)
: "rsi", "rdi", "edx", "ecx", "eax", "memory", "cc"
+#ifdef HAVE_MMX
+ , "mm0"
+#else
+ , "st", "st(1)", "st(2)", "st(3)",
+ "st(4)", "st(5)", "st(6)", "st(7)"
+#endif
);
}