summaryrefslogtreecommitdiffstats
path: root/mp3lib/dct64_sse.c
diff options
context:
space:
mode:
Diffstat (limited to 'mp3lib/dct64_sse.c')
-rw-r--r--mp3lib/dct64_sse.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/mp3lib/dct64_sse.c b/mp3lib/dct64_sse.c
index 5fb8839dbe..65a6e5469b 100644
--- a/mp3lib/dct64_sse.c
+++ b/mp3lib/dct64_sse.c
@@ -298,6 +298,13 @@ void dct64_sse(real *a,real *b,real *c)
To do saturation efficiently in x86 we can use fist(t)(p),
pf2iw, or packssdw. We use fist(p) here.
*/
+
+#ifdef SYS_DARWIN
+#define FFREEP "fstp %%st(0)\n\t"
+#else
+#define FFREEP "ffreep %%st(0)\n\t"
+#endif /* SYS_DARWIN */
+
asm(
"flds %0\n\t"
"flds (%2)\n\t"
@@ -426,7 +433,7 @@ void dct64_sse(real *a,real *b,real *c)
"fist 480(%4)\n\t"
"fadds 92(%1)\n\t"
"fistp 416(%4)\n\t"
- "ffreep %%st(0)\n\t"
+ FFREEP
:
:"m"(costab_mmx[30]), "r"(b1), "r"(b2), "r"(a), "r"(b)
:"memory"