changeset 4165:204261460ac1

S->C
author nick
date Tue, 15 Jan 2002 09:01:39 +0000
parents 2e3262002acb
children a5ce64929fac
files mp3lib/Makefile mp3lib/dct64_MMX.c mp3lib/dct64_MMX.s
diffstat 3 files changed, 989 insertions(+), 993 deletions(-) [+]
line wrap: on
line diff
--- a/mp3lib/Makefile	Tue Jan 15 08:33:09 2002 +0000
+++ b/mp3lib/Makefile	Tue Jan 15 09:01:39 2002 +0000
@@ -12,7 +12,7 @@
 SRCS += d_cpu.s decode_i586.c
 OBJS += d_cpu.o decode_i586.o
 ifeq ($(TARGET_MMX),yes)
-SRCS += decode_MMX.c dct64_MMX.s tabinit_MMX.c
+SRCS += decode_MMX.c dct64_MMX.c tabinit_MMX.c
 OBJS += decode_MMX.o dct64_MMX.o tabinit_MMX.o
 endif
 #ifeq ($(TARGET_SSE),yes)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mp3lib/dct64_MMX.c	Tue Jan 15 09:01:39 2002 +0000
@@ -0,0 +1,988 @@
+/*
+* This code was taken from http://www.mpg123.org
+* See ChangeLog of mpg123-0.59s-pre.1 for detail
+* Applied to mplayer by Nick Kurshev <nickols_k@mail.ru>
+*/
+#define real float /* ugly - but only way */
+
+void __attribute__ (( __stdcall__ )) dct64_MMX(real *a,real *b,real *c)
+{
+    char tmp[256];
+    __asm __volatile(
+"	movl %2,%%eax\n\t"
+/* Phase 1*/
+"	flds     (%%eax)\n\t"
+"	leal 128+%3,%%edx\n\t"
+"	fadds 124(%%eax)\n\t"
+"	movl %0,%%esi\n\t"
+"	fstps    (%%edx)\n\t"
+"	movl %1,%%edi\n\t"
+
+"	flds    4(%%eax)\n\t"
+"	movl $costab_mmx,%%ebx\n\t"
+"	fadds 120(%%eax)\n\t"
+"	orl %%ecx,%%ecx\n\t"
+"	fstps   4(%%edx)\n\t"
+
+"	flds     (%%eax)\n\t"
+"	leal %3,%%ecx\n\t"
+"	fsubs 124(%%eax)\n\t"
+"	fmuls    (%%ebx)\n\t"
+"	fstps 124(%%edx)\n\t"
+
+"	flds    4(%%eax)\n\t"
+"	fsubs 120(%%eax)\n\t"
+"	fmuls   4(%%ebx)\n\t"
+"	fstps 120(%%edx)\n\t"
+
+"	flds    8(%%eax)\n\t"
+"	fadds 116(%%eax)\n\t"
+"	fstps   8(%%edx)\n\t"
+
+"	flds   12(%%eax)\n\t"
+"	fadds 112(%%eax)\n\t"
+"	fstps  12(%%edx)\n\t"
+
+"	flds    8(%%eax)\n\t"
+"	fsubs 116(%%eax)\n\t"
+"	fmuls   8(%%ebx)\n\t"
+"	fstps 116(%%edx)\n\t"
+
+"	flds   12(%%eax)\n\t"
+"	fsubs 112(%%eax)\n\t"
+"	fmuls  12(%%ebx)\n\t"
+"	fstps 112(%%edx)\n\t"
+
+"	flds   16(%%eax)\n\t"
+"	fadds 108(%%eax)\n\t"
+"	fstps  16(%%edx)\n\t"
+
+"	flds   20(%%eax)\n\t"
+"	fadds 104(%%eax)\n\t"
+"	fstps  20(%%edx)\n\t"
+
+"	flds   16(%%eax)\n\t"
+"	fsubs 108(%%eax)\n\t"
+"	fmuls  16(%%ebx)\n\t"
+"	fstps 108(%%edx)\n\t"
+
+"	flds   20(%%eax)\n\t"
+"	fsubs 104(%%eax)\n\t"
+"	fmuls  20(%%ebx)\n\t"
+"	fstps 104(%%edx)\n\t"
+
+"	flds   24(%%eax)\n\t"
+"	fadds 100(%%eax)\n\t"
+"	fstps  24(%%edx)\n\t"
+
+"	flds   28(%%eax)\n\t"
+"	fadds  96(%%eax)\n\t"
+"	fstps  28(%%edx)\n\t"
+
+"	flds   24(%%eax)\n\t"
+"	fsubs 100(%%eax)\n\t"
+"	fmuls  24(%%ebx)\n\t"
+"	fstps 100(%%edx)\n\t"
+
+"	flds   28(%%eax)\n\t"
+"	fsubs  96(%%eax)\n\t"
+"	fmuls  28(%%ebx)\n\t"
+"	fstps  96(%%edx)\n\t"
+
+"	flds   32(%%eax)\n\t"
+"	fadds  92(%%eax)\n\t"
+"	fstps  32(%%edx)\n\t"
+
+"	flds   36(%%eax)\n\t"
+"	fadds  88(%%eax)\n\t"
+"	fstps  36(%%edx)\n\t"
+
+"	flds   32(%%eax)\n\t"
+"	fsubs  92(%%eax)\n\t"
+"	fmuls  32(%%ebx)\n\t"
+"	fstps  92(%%edx)\n\t"
+
+"	flds   36(%%eax)\n\t"
+"	fsubs  88(%%eax)\n\t"
+"	fmuls  36(%%ebx)\n\t"
+"	fstps  88(%%edx)\n\t"
+
+"	flds   40(%%eax)\n\t"
+"	fadds  84(%%eax)\n\t"
+"	fstps  40(%%edx)\n\t"
+
+"	flds   44(%%eax)\n\t"
+"	fadds  80(%%eax)\n\t"
+"	fstps  44(%%edx)\n\t"
+
+"	flds   40(%%eax)\n\t"
+"	fsubs  84(%%eax)\n\t"
+"	fmuls  40(%%ebx)\n\t"
+"	fstps  84(%%edx)\n\t"
+
+"	flds   44(%%eax)\n\t"
+"	fsubs  80(%%eax)\n\t"
+"	fmuls  44(%%ebx)\n\t"
+"	fstps  80(%%edx)\n\t"
+
+"	flds   48(%%eax)\n\t"
+"	fadds  76(%%eax)\n\t"
+"	fstps  48(%%edx)\n\t"
+
+"	flds   52(%%eax)\n\t"
+"	fadds  72(%%eax)\n\t"
+"	fstps  52(%%edx)\n\t"
+
+"	flds   48(%%eax)\n\t"
+"	fsubs  76(%%eax)\n\t"
+"	fmuls  48(%%ebx)\n\t"
+"	fstps  76(%%edx)\n\t"
+
+"	flds   52(%%eax)\n\t"
+"	fsubs  72(%%eax)\n\t"
+"	fmuls  52(%%ebx)\n\t"
+"	fstps  72(%%edx)\n\t"
+
+"	flds   56(%%eax)\n\t"
+"	fadds  68(%%eax)\n\t"
+"	fstps  56(%%edx)\n\t"
+
+"	flds   60(%%eax)\n\t"
+"	fadds  64(%%eax)\n\t"
+"	fstps  60(%%edx)\n\t"
+
+"	flds   56(%%eax)\n\t"
+"	fsubs  68(%%eax)\n\t"
+"	fmuls  56(%%ebx)\n\t"
+"	fstps  68(%%edx)\n\t"
+
+"	flds   60(%%eax)\n\t"
+"	fsubs  64(%%eax)\n\t"
+"	fmuls  60(%%ebx)\n\t"
+"	fstps  64(%%edx)\n\t"
+
+/* Phase 2*/
+
+"	flds     (%%edx)\n\t"
+"	fadds  60(%%edx)\n\t"
+"	fstps    (%%ecx)\n\t"
+
+"	flds    4(%%edx)\n\t"
+"	fadds  56(%%edx)\n\t"
+"	fstps   4(%%ecx)\n\t"
+
+"	flds     (%%edx)\n\t"
+"	fsubs  60(%%edx)\n\t"
+"	fmuls  64(%%ebx)\n\t"
+"	fstps  60(%%ecx)\n\t"
+
+"	flds    4(%%edx)\n\t"
+"	fsubs  56(%%edx)\n\t"
+"	fmuls  68(%%ebx)\n\t"
+"	fstps  56(%%ecx)\n\t"
+
+"	flds    8(%%edx)\n\t"
+"	fadds  52(%%edx)\n\t"
+"	fstps   8(%%ecx)\n\t"
+
+"	flds   12(%%edx)\n\t"
+"	fadds  48(%%edx)\n\t"
+"	fstps  12(%%ecx)\n\t"
+
+"	flds    8(%%edx)\n\t"
+"	fsubs  52(%%edx)\n\t"
+"	fmuls  72(%%ebx)\n\t"
+"	fstps  52(%%ecx)\n\t"
+
+"	flds   12(%%edx)\n\t"
+"	fsubs  48(%%edx)\n\t"
+"	fmuls  76(%%ebx)\n\t"
+"	fstps  48(%%ecx)\n\t"
+
+"	flds   16(%%edx)\n\t"
+"	fadds  44(%%edx)\n\t"
+"	fstps  16(%%ecx)\n\t"
+
+"	flds   20(%%edx)\n\t"
+"	fadds  40(%%edx)\n\t"
+"	fstps  20(%%ecx)\n\t"
+
+"	flds   16(%%edx)\n\t"
+"	fsubs  44(%%edx)\n\t"
+"	fmuls  80(%%ebx)\n\t"
+"	fstps  44(%%ecx)\n\t"
+
+"	flds   20(%%edx)\n\t"
+"	fsubs  40(%%edx)\n\t"
+"	fmuls  84(%%ebx)\n\t"
+"	fstps  40(%%ecx)\n\t"
+
+"	flds   24(%%edx)\n\t"
+"	fadds  36(%%edx)\n\t"
+"	fstps  24(%%ecx)\n\t"
+
+"	flds   28(%%edx)\n\t"
+"	fadds  32(%%edx)\n\t"
+"	fstps  28(%%ecx)\n\t"
+
+"	flds   24(%%edx)\n\t"
+"	fsubs  36(%%edx)\n\t"
+"	fmuls  88(%%ebx)\n\t"
+"	fstps  36(%%ecx)\n\t"
+
+"	flds   28(%%edx)\n\t"
+"	fsubs  32(%%edx)\n\t"
+"	fmuls  92(%%ebx)\n\t"
+"	fstps  32(%%ecx)\n\t"
+
+/* Phase 3*/
+
+"	flds   64(%%edx)\n\t"
+"	fadds 124(%%edx)\n\t"
+"	fstps  64(%%ecx)\n\t"
+
+"	flds   68(%%edx)\n\t"
+"	fadds 120(%%edx)\n\t"
+"	fstps  68(%%ecx)\n\t"
+
+"	flds  124(%%edx)\n\t"
+"	fsubs  64(%%edx)\n\t"
+"	fmuls  64(%%ebx)\n\t"
+"	fstps 124(%%ecx)\n\t"
+
+"	flds  120(%%edx)\n\t"
+"	fsubs  68(%%edx)\n\t"
+"	fmuls  68(%%ebx)\n\t"
+"	fstps 120(%%ecx)\n\t"
+
+"	flds   72(%%edx)\n\t"
+"	fadds 116(%%edx)\n\t"
+"	fstps  72(%%ecx)\n\t"
+
+"	flds   76(%%edx)\n\t"
+"	fadds 112(%%edx)\n\t"
+"	fstps  76(%%ecx)\n\t"
+
+"	flds  116(%%edx)\n\t"
+"	fsubs  72(%%edx)\n\t"
+"	fmuls  72(%%ebx)\n\t"
+"	fstps 116(%%ecx)\n\t"
+
+"	flds  112(%%edx)\n\t"
+"	fsubs  76(%%edx)\n\t"
+"	fmuls  76(%%ebx)\n\t"
+"	fstps 112(%%ecx)\n\t"
+
+"	flds   80(%%edx)\n\t"
+"	fadds 108(%%edx)\n\t"
+"	fstps  80(%%ecx)\n\t"
+
+"	flds   84(%%edx)\n\t"
+"	fadds 104(%%edx)\n\t"
+"	fstps  84(%%ecx)\n\t"
+
+"	flds  108(%%edx)\n\t"
+"	fsubs  80(%%edx)\n\t"
+"	fmuls  80(%%ebx)\n\t"
+"	fstps 108(%%ecx)\n\t"
+
+"	flds  104(%%edx)\n\t"
+"	fsubs  84(%%edx)\n\t"
+"	fmuls  84(%%ebx)\n\t"
+"	fstps 104(%%ecx)\n\t"
+
+"	flds   88(%%edx)\n\t"
+"	fadds 100(%%edx)\n\t"
+"	fstps  88(%%ecx)\n\t"
+
+"	flds   92(%%edx)\n\t"
+"	fadds  96(%%edx)\n\t"
+"	fstps  92(%%ecx)\n\t"
+
+"	flds  100(%%edx)\n\t"
+"	fsubs  88(%%edx)\n\t"
+"	fmuls  88(%%ebx)\n\t"
+"	fstps 100(%%ecx)\n\t"
+
+"	flds   96(%%edx)\n\t"
+"	fsubs  92(%%edx)\n\t"
+"	fmuls  92(%%ebx)\n\t"
+"	fstps  96(%%ecx)\n\t"
+
+/* Phase 4*/
+
+"	flds     (%%ecx)\n\t"
+"	fadds  28(%%ecx)\n\t"
+"	fstps    (%%edx)\n\t"
+
+"	flds     (%%ecx)\n\t"
+"	fsubs  28(%%ecx)\n\t"
+"	fmuls  96(%%ebx)\n\t"
+"	fstps  28(%%edx)\n\t"
+
+"	flds    4(%%ecx)\n\t"
+"	fadds  24(%%ecx)\n\t"
+"	fstps   4(%%edx)\n\t"
+
+"	flds    4(%%ecx)\n\t"
+"	fsubs  24(%%ecx)\n\t"
+"	fmuls 100(%%ebx)\n\t"
+"	fstps  24(%%edx)\n\t"
+
+"	flds    8(%%ecx)\n\t"
+"	fadds  20(%%ecx)\n\t"
+"	fstps   8(%%edx)\n\t"
+
+"	flds    8(%%ecx)\n\t"
+"	fsubs  20(%%ecx)\n\t"
+"	fmuls 104(%%ebx)\n\t"
+"	fstps  20(%%edx)\n\t"
+
+"	flds   12(%%ecx)\n\t"
+"	fadds  16(%%ecx)\n\t"
+"	fstps  12(%%edx)\n\t"
+
+"	flds   12(%%ecx)\n\t"
+"	fsubs  16(%%ecx)\n\t"
+"	fmuls 108(%%ebx)\n\t"
+"	fstps  16(%%edx)\n\t"
+
+"	flds   32(%%ecx)\n\t"
+"	fadds  60(%%ecx)\n\t"
+"	fstps  32(%%edx)\n\t"
+
+"	flds   60(%%ecx)\n\t"
+"	fsubs  32(%%ecx)\n\t"
+"	fmuls  96(%%ebx)\n\t"
+"	fstps  60(%%edx)\n\t"
+
+"	flds   36(%%ecx)\n\t"
+"	fadds  56(%%ecx)\n\t"
+"	fstps  36(%%edx)\n\t"
+
+"	flds   56(%%ecx)\n\t"
+"	fsubs  36(%%ecx)\n\t"
+"	fmuls 100(%%ebx)\n\t"
+"	fstps  56(%%edx)\n\t"
+
+"	flds   40(%%ecx)\n\t"
+"	fadds  52(%%ecx)\n\t"
+"	fstps  40(%%edx)\n\t"
+
+"	flds   52(%%ecx)\n\t"
+"	fsubs  40(%%ecx)\n\t"
+"	fmuls 104(%%ebx)\n\t"
+"	fstps  52(%%edx)\n\t"
+
+"	flds   44(%%ecx)\n\t"
+"	fadds  48(%%ecx)\n\t"
+"	fstps  44(%%edx)\n\t"
+
+"	flds   48(%%ecx)\n\t"
+"	fsubs  44(%%ecx)\n\t"
+"	fmuls 108(%%ebx)\n\t"
+"	fstps  48(%%edx)\n\t"
+
+"	flds   64(%%ecx)\n\t"
+"	fadds  92(%%ecx)\n\t"
+"	fstps  64(%%edx)\n\t"
+
+"	flds   64(%%ecx)\n\t"
+"	fsubs  92(%%ecx)\n\t"
+"	fmuls  96(%%ebx)\n\t"
+"	fstps  92(%%edx)\n\t"
+
+"	flds   68(%%ecx)\n\t"
+"	fadds  88(%%ecx)\n\t"
+"	fstps  68(%%edx)\n\t"
+
+"	flds   68(%%ecx)\n\t"
+"	fsubs  88(%%ecx)\n\t"
+"	fmuls 100(%%ebx)\n\t"
+"	fstps  88(%%edx)\n\t"
+
+"	flds   72(%%ecx)\n\t"
+"	fadds  84(%%ecx)\n\t"
+"	fstps  72(%%edx)\n\t"
+
+"	flds   72(%%ecx)\n\t"
+"	fsubs  84(%%ecx)\n\t"
+"	fmuls 104(%%ebx)\n\t"
+"	fstps  84(%%edx)\n\t"
+
+"	flds   76(%%ecx)\n\t"
+"	fadds  80(%%ecx)\n\t"
+"	fstps  76(%%edx)\n\t"
+
+"	flds   76(%%ecx)\n\t"
+"	fsubs  80(%%ecx)\n\t"
+"	fmuls 108(%%ebx)\n\t"
+"	fstps  80(%%edx)\n\t"
+
+"	flds   96(%%ecx)\n\t"
+"	fadds 124(%%ecx)\n\t"
+"	fstps  96(%%edx)\n\t"
+
+"	flds  124(%%ecx)\n\t"
+"	fsubs  96(%%ecx)\n\t"
+"	fmuls  96(%%ebx)\n\t"
+"	fstps 124(%%edx)\n\t"
+
+"	flds  100(%%ecx)\n\t"
+"	fadds 120(%%ecx)\n\t"
+"	fstps 100(%%edx)\n\t"
+
+"	flds  120(%%ecx)\n\t"
+"	fsubs 100(%%ecx)\n\t"
+"	fmuls 100(%%ebx)\n\t"
+"	fstps 120(%%edx)\n\t"
+
+"	flds  104(%%ecx)\n\t"
+"	fadds 116(%%ecx)\n\t"
+"	fstps 104(%%edx)\n\t"
+
+"	flds  116(%%ecx)\n\t"
+"	fsubs 104(%%ecx)\n\t"
+"	fmuls 104(%%ebx)\n\t"
+"	fstps 116(%%edx)\n\t"
+
+"	flds  108(%%ecx)\n\t"
+"	fadds 112(%%ecx)\n\t"
+"	fstps 108(%%edx)\n\t"
+
+"	flds  112(%%ecx)\n\t"
+"	fsubs 108(%%ecx)\n\t"
+"	fmuls 108(%%ebx)\n\t"
+"	fstps 112(%%edx)\n\t"
+
+"	flds     (%%edx)\n\t"
+"	fadds  12(%%edx)\n\t"
+"	fstps    (%%ecx)\n\t"
+
+"	flds     (%%edx)\n\t"
+"	fsubs  12(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps  12(%%ecx)\n\t"
+
+"	flds    4(%%edx)\n\t"
+"	fadds   8(%%edx)\n\t"
+"	fstps   4(%%ecx)\n\t"
+
+"	flds    4(%%edx)\n\t"
+"	fsubs   8(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps   8(%%ecx)\n\t"
+
+"	flds   16(%%edx)\n\t"
+"	fadds  28(%%edx)\n\t"
+"	fstps  16(%%ecx)\n\t"
+
+"	flds   28(%%edx)\n\t"
+"	fsubs  16(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps  28(%%ecx)\n\t"
+
+"	flds   20(%%edx)\n\t"
+"	fadds  24(%%edx)\n\t"
+"	fstps  20(%%ecx)\n\t"
+
+"	flds   24(%%edx)\n\t"
+"	fsubs  20(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps  24(%%ecx)\n\t"
+
+"	flds   32(%%edx)\n\t"
+"	fadds  44(%%edx)\n\t"
+"	fstps  32(%%ecx)\n\t"
+
+"	flds   32(%%edx)\n\t"
+"	fsubs  44(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps  44(%%ecx)\n\t"
+
+"	flds   36(%%edx)\n\t"
+"	fadds  40(%%edx)\n\t"
+"	fstps  36(%%ecx)\n\t"
+
+"	flds   36(%%edx)\n\t"
+"	fsubs  40(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps  40(%%ecx)\n\t"
+
+"	flds   48(%%edx)\n\t"
+"	fadds  60(%%edx)\n\t"
+"	fstps  48(%%ecx)\n\t"
+
+"	flds   60(%%edx)\n\t"
+"	fsubs  48(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps  60(%%ecx)\n\t"
+
+"	flds   52(%%edx)\n\t"
+"	fadds  56(%%edx)\n\t"
+"	fstps  52(%%ecx)\n\t"
+
+"	flds   56(%%edx)\n\t"
+"	fsubs  52(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps  56(%%ecx)\n\t"
+
+"	flds   64(%%edx)\n\t"
+"	fadds  76(%%edx)\n\t"
+"	fstps  64(%%ecx)\n\t"
+
+"	flds   64(%%edx)\n\t"
+"	fsubs  76(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps  76(%%ecx)\n\t"
+
+"	flds   68(%%edx)\n\t"
+"	fadds  72(%%edx)\n\t"
+"	fstps  68(%%ecx)\n\t"
+
+"	flds   68(%%edx)\n\t"
+"	fsubs  72(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps  72(%%ecx)\n\t"
+
+"	flds   80(%%edx)\n\t"
+"	fadds  92(%%edx)\n\t"
+"	fstps  80(%%ecx)\n\t"
+
+"	flds   92(%%edx)\n\t"
+"	fsubs  80(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps  92(%%ecx)\n\t"
+
+"	flds   84(%%edx)\n\t"
+"	fadds  88(%%edx)\n\t"
+"	fstps  84(%%ecx)\n\t"
+
+"	flds   88(%%edx)\n\t"
+"	fsubs  84(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps  88(%%ecx)\n\t"
+
+"	flds   96(%%edx)\n\t"
+"	fadds 108(%%edx)\n\t"
+"	fstps  96(%%ecx)\n\t"
+
+"	flds   96(%%edx)\n\t"
+"	fsubs 108(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps 108(%%ecx)\n\t"
+
+"	flds  100(%%edx)\n\t"
+"	fadds 104(%%edx)\n\t"
+"	fstps 100(%%ecx)\n\t"
+
+"	flds  100(%%edx)\n\t"
+"	fsubs 104(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps 104(%%ecx)\n\t"
+
+"	flds  112(%%edx)\n\t"
+"	fadds 124(%%edx)\n\t"
+"	fstps 112(%%ecx)\n\t"
+
+"	flds  124(%%edx)\n\t"
+"	fsubs 112(%%edx)\n\t"
+"	fmuls 112(%%ebx)\n\t"
+"	fstps 124(%%ecx)\n\t"
+
+"	flds  116(%%edx)\n\t"
+"	fadds 120(%%edx)\n\t"
+"	fstps 116(%%ecx)\n\t"
+
+"	flds  120(%%edx)\n\t"
+"	fsubs 116(%%edx)\n\t"
+"	fmuls 116(%%ebx)\n\t"
+"	fstps 120(%%ecx)\n\t"
+
+/* Phase 5*/
+
+"	flds   32(%%ecx)\n\t"
+"	fadds  36(%%ecx)\n\t"
+"	fstps  32(%%edx)\n\t"
+
+"	flds   32(%%ecx)\n\t"
+"	fsubs  36(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fstps  36(%%edx)\n\t"
+
+"	flds   44(%%ecx)\n\t"
+"	fsubs  40(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fsts   44(%%edx)\n\t"
+"	fadds  40(%%ecx)\n\t"
+"	fadds  44(%%ecx)\n\t"
+"	fstps  40(%%edx)\n\t"
+
+"	flds   48(%%ecx)\n\t"
+"	fsubs  52(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+
+"	flds   60(%%ecx)\n\t"
+"	fsubs  56(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  56(%%ecx)\n\t"
+"	fadds  60(%%ecx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  48(%%ecx)\n\t"
+"	fadds  52(%%ecx)\n\t"
+"	fstps  48(%%edx)\n\t"
+"	fadd     %%st(2)\n\t"
+"	fstps  56(%%edx)\n\t"
+"	fsts   60(%%edx)\n\t"
+"	faddp    %%st(1)\n\t"
+"	fstps  52(%%edx)\n\t"
+
+"	flds   64(%%ecx)\n\t"
+"	fadds  68(%%ecx)\n\t"
+"	fstps  64(%%edx)\n\t"
+
+"	flds   64(%%ecx)\n\t"
+"	fsubs  68(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fstps  68(%%edx)\n\t"
+
+"	flds   76(%%ecx)\n\t"
+"	fsubs  72(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fsts   76(%%edx)\n\t"
+"	fadds  72(%%ecx)\n\t"
+"	fadds  76(%%ecx)\n\t"
+"	fstps  72(%%edx)\n\t"
+
+"	flds   92(%%ecx)\n\t"
+"	fsubs  88(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fsts   92(%%edx)\n\t"
+"	fadds  92(%%ecx)\n\t"
+"	fadds  88(%%ecx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  80(%%ecx)\n\t"
+"	fadds  84(%%ecx)\n\t"
+"	fstps  80(%%edx)\n\t"
+
+"	flds   80(%%ecx)\n\t"
+"	fsubs  84(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fadd  %%st(0), %%st(1)\n\t"
+"	fadds 92(%%edx)\n\t"
+"	fstps 84(%%edx)\n\t"
+"	fstps 88(%%edx)\n\t"
+
+"	flds   96(%%ecx)\n\t"
+"	fadds 100(%%ecx)\n\t"
+"	fstps  96(%%edx)\n\t"
+
+"	flds   96(%%ecx)\n\t"
+"	fsubs 100(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fstps 100(%%edx)\n\t"
+
+"	flds  108(%%ecx)\n\t"
+"	fsubs 104(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fsts  108(%%edx)\n\t"
+"	fadds 104(%%ecx)\n\t"
+"	fadds 108(%%ecx)\n\t"
+"	fstps 104(%%edx)\n\t"
+
+"	flds  124(%%ecx)\n\t"
+"	fsubs 120(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fsts  124(%%edx)\n\t"
+"	fadds 120(%%ecx)\n\t"
+"	fadds 124(%%ecx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds 112(%%ecx)\n\t"
+"	fadds 116(%%ecx)\n\t"
+"	fstps 112(%%edx)\n\t"
+
+"	flds  112(%%ecx)\n\t"
+"	fsubs 116(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fadd  %%st(0),%%st(1)\n\t"
+"	fadds 124(%%edx)\n\t"
+"	fstps 116(%%edx)\n\t"
+"	fstps 120(%%edx)\n\t"
+"	jnz .L01\n\t"
+
+/* Phase 6*/
+
+"	flds      (%%ecx)\n\t"
+"	fadds    4(%%ecx)\n\t"
+"	fstps 1024(%%esi)\n\t"
+
+"	flds      (%%ecx)\n\t"
+"	fsubs    4(%%ecx)\n\t"
+"	fmuls  120(%%ebx)\n\t"
+"	fsts      (%%esi)\n\t"
+"	fstps     (%%edi)\n\t"
+
+"	flds   12(%%ecx)\n\t"
+"	fsubs   8(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fsts  512(%%edi)\n\t"
+"	fadds  12(%%ecx)\n\t"
+"	fadds   8(%%ecx)\n\t"
+"	fstps 512(%%esi)\n\t"
+
+"	flds   16(%%ecx)\n\t"
+"	fsubs  20(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+
+"	flds   28(%%ecx)\n\t"
+"	fsubs  24(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fsts  768(%%edi)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  24(%%ecx)\n\t"
+"	fadds  28(%%ecx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  16(%%ecx)\n\t"
+"	fadds  20(%%ecx)\n\t"
+"	fstps 768(%%esi)\n\t"
+"	fadd     %%st(2)\n\t"
+"	fstps 256(%%esi)\n\t"
+"	faddp    %%st(1)\n\t"
+"	fstps 256(%%edi)\n\t"
+
+/* Phase 7*/
+
+"	flds   32(%%edx)\n\t"
+"	fadds  48(%%edx)\n\t"
+"	fstps 896(%%esi)\n\t"
+
+"	flds   48(%%edx)\n\t"
+"	fadds  40(%%edx)\n\t"
+"	fstps 640(%%esi)\n\t"
+
+"	flds   40(%%edx)\n\t"
+"	fadds  56(%%edx)\n\t"
+"	fstps 384(%%esi)\n\t"
+
+"	flds   56(%%edx)\n\t"
+"	fadds  36(%%edx)\n\t"
+"	fstps 128(%%esi)\n\t"
+
+"	flds   36(%%edx)\n\t"
+"	fadds  52(%%edx)\n\t"
+"	fstps 128(%%edi)\n\t"
+
+"	flds   52(%%edx)\n\t"
+"	fadds  44(%%edx)\n\t"
+"	fstps 384(%%edi)\n\t"
+
+"	flds   60(%%edx)\n\t"
+"	fsts  896(%%edi)\n\t"
+"	fadds  44(%%edx)\n\t"
+"	fstps 640(%%edi)\n\t"
+
+"	flds   96(%%edx)\n\t"
+"	fadds 112(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  64(%%edx)\n\t"
+"	fstps 960(%%esi)\n\t"
+"	fadds  80(%%edx)\n\t"
+"	fstps 832(%%esi)\n\t"
+
+"	flds  112(%%edx)\n\t"
+"	fadds 104(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  80(%%edx)\n\t"
+"	fstps 704(%%esi)\n\t"
+"	fadds  72(%%edx)\n\t"
+"	fstps 576(%%esi)\n\t"
+
+"	flds  104(%%edx)\n\t"
+"	fadds 120(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  72(%%edx)\n\t"
+"	fstps 448(%%esi)\n\t"
+"	fadds  88(%%edx)\n\t"
+"	fstps 320(%%esi)\n\t"
+
+"	flds  120(%%edx)\n\t"
+"	fadds 100(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  88(%%edx)\n\t"
+"	fstps 192(%%esi)\n\t"
+"	fadds  68(%%edx)\n\t"
+"	fstps  64(%%esi)\n\t"
+
+"	flds  100(%%edx)\n\t"
+"	fadds 116(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  68(%%edx)\n\t"
+"	fstps  64(%%edi)\n\t"
+"	fadds  84(%%edx)\n\t"
+"	fstps 192(%%edi)\n\t"
+
+"	flds  116(%%edx)\n\t"
+"	fadds 108(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  84(%%edx)\n\t"
+"	fstps 320(%%edi)\n\t"
+"	fadds  76(%%edx)\n\t"
+"	fstps 448(%%edi)\n\t"
+
+"	flds  108(%%edx)\n\t"
+"	fadds 124(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  76(%%edx)\n\t"
+"	fstps 576(%%edi)\n\t"
+"	fadds  92(%%edx)\n\t"
+"	fstps 704(%%edi)\n\t"
+
+"	flds  124(%%edx)\n\t"
+"	fsts  960(%%edi)\n\t"
+"	fadds  92(%%edx)\n\t"
+"	fstps 832(%%edi)\n\t"
+"	addl $256,%%esp\n\t"
+"	popl %%edi\n\t"
+"	popl %%esi\n\t"
+"	popl %%ebx\n\t"
+"	jmp	.L_bye\n\t"
+".L01:\n\t"
+/* Phase 8*/
+
+"	flds      (%%ecx)\n\t"
+"	fadds    4(%%ecx)\n\t"
+"	fistp  512(%%esi)\n\t"
+
+"	flds      (%%ecx)\n\t"
+"	fsubs    4(%%ecx)\n\t"
+"	fmuls  120(%%ebx)\n\t"
+
+"	fistp     (%%esi)\n\t"
+
+
+"	flds    12(%%ecx)\n\t"
+"	fsubs    8(%%ecx)\n\t"
+"	fmuls  120(%%ebx)\n\t"
+"	fist   256(%%edi)\n\t"
+"	fadds   12(%%ecx)\n\t"
+"	fadds    8(%%ecx)\n\t"
+"	fistp  256(%%esi)\n\t"
+
+"	flds   16(%%ecx)\n\t"
+"	fsubs  20(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+
+"	flds   28(%%ecx)\n\t"
+"	fsubs  24(%%ecx)\n\t"
+"	fmuls 120(%%ebx)\n\t"
+"	fist  384(%%edi)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  24(%%ecx)\n\t"
+"	fadds  28(%%ecx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  16(%%ecx)\n\t"
+"	fadds  20(%%ecx)\n\t"
+"	fistp  384(%%esi)\n\t"
+"	fadd     %%st(2)\n\t"
+"	fistp  128(%%esi)\n\t"
+"	faddp    %%st(1)\n\t"
+"	fistp  128(%%edi)\n\t"
+
+/* Phase 9*/
+
+"	flds    32(%%edx)\n\t"
+"	fadds   48(%%edx)\n\t"
+"	fistp  448(%%esi)\n\t"
+
+"	flds   48(%%edx)\n\t"
+"	fadds  40(%%edx)\n\t"
+"	fistp 320(%%esi)\n\t"
+
+"	flds   40(%%edx)\n\t"
+"	fadds  56(%%edx)\n\t"
+"	fistp 192(%%esi)\n\t"
+
+"	flds   56(%%edx)\n\t"
+"	fadds  36(%%edx)\n\t"
+"	fistp  64(%%esi)\n\t"
+
+"	flds   36(%%edx)\n\t"
+"	fadds  52(%%edx)\n\t"
+"	fistp  64(%%edi)\n\t"
+
+"	flds   52(%%edx)\n\t"
+"	fadds  44(%%edx)\n\t"
+"	fistp 192(%%edi)\n\t"
+
+"	flds   60(%%edx)\n\t"
+"	fist   448(%%edi)\n\t"
+"	fadds  44(%%edx)\n\t"
+"	fistp 320(%%edi)\n\t"
+
+"	flds   96(%%edx)\n\t"
+"	fadds 112(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  64(%%edx)\n\t"
+"	fistp 480(%%esi)\n\t"
+"	fadds  80(%%edx)\n\t"
+"	fistp 416(%%esi)\n\t"
+
+"	flds  112(%%edx)\n\t"
+"	fadds 104(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  80(%%edx)\n\t"
+"	fistp 352(%%esi)\n\t"
+"	fadds  72(%%edx)\n\t"
+"	fistp 288(%%esi)\n\t"
+
+"	flds  104(%%edx)\n\t"
+"	fadds 120(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  72(%%edx)\n\t"
+"	fistp 224(%%esi)\n\t"
+"	fadds  88(%%edx)\n\t"
+"	fistp 160(%%esi)\n\t"
+
+"	flds  120(%%edx)\n\t"
+"	fadds 100(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  88(%%edx)\n\t"
+"	fistp  96(%%esi)\n\t"
+"	fadds  68(%%edx)\n\t"
+"	fistp  32(%%esi)\n\t"
+
+"	flds  100(%%edx)\n\t"
+"	fadds 116(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  68(%%edx)\n\t"
+"	fistp  32(%%edi)\n\t"
+"	fadds  84(%%edx)\n\t"
+"	fistp  96(%%edi)\n\t"
+
+"	flds  116(%%edx)\n\t"
+"	fadds 108(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  84(%%edx)\n\t"
+"	fistp 160(%%edi)\n\t"
+"	fadds  76(%%edx)\n\t"
+"	fistp 224(%%edi)\n\t"
+
+"	flds  108(%%edx)\n\t"
+"	fadds 124(%%edx)\n\t"
+"	fld      %%st(0)\n\t"
+"	fadds  76(%%edx)\n\t"
+"	fistp 288(%%edi)\n\t"
+"	fadds  92(%%edx)\n\t"
+"	fistp 352(%%edi)\n\t"
+
+"	flds  124(%%edx)\n\t"
+"	fist  480(%%edi)\n\t"
+"	fadds  92(%%edx)\n\t"
+"	fistp 416(%%edi)\n\t"
+"	movsw\n\t"
+".L_bye:"
+	:
+	:"m"(a),"m"(b),"m"(c),"m"(tmp[0])
+	:"memory","%ebx","%esi","%edi");
+}
--- a/mp3lib/dct64_MMX.s	Tue Jan 15 08:33:09 2002 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,992 +0,0 @@
-# This code was taken from http://www.mpg123.org
-# See ChangeLog of mpg123-0.59s-pre.1 for detail
-# Applied to mplayer by Nick Kurshev <nickols_k@mail.ru>
-#
-
-.text
-
-	.align 16
-
-.globl dct64_MMX
-dct64_MMX:
-	pushl %ebx
-	pushl %esi
-	pushl %edi
-	subl $256,%esp
-	movl 280(%esp),%eax
-/* Phase 1*/
-	flds     (%eax)
-	leal 128(%esp),%edx
-	fadds 124(%eax)
-	movl 272(%esp),%esi
-	fstps    (%edx)
-	movl 276(%esp),%edi
-
-	flds    4(%eax)
-	movl $costab_mmx,%ebx
-	fadds 120(%eax)
-	orl %ecx,%ecx
-	fstps   4(%edx)
-
-	flds     (%eax)
-	movl %esp,%ecx
-	fsubs 124(%eax)
-	fmuls    (%ebx)
-	fstps 124(%edx)
-
-	flds    4(%eax)
-	fsubs 120(%eax)
-	fmuls   4(%ebx)
-	fstps 120(%edx)
-
-	flds    8(%eax)
-	fadds 116(%eax)
-	fstps   8(%edx)
-
-	flds   12(%eax)
-	fadds 112(%eax)
-	fstps  12(%edx)
-
-	flds    8(%eax)
-	fsubs 116(%eax)
-	fmuls   8(%ebx)
-	fstps 116(%edx)
-
-	flds   12(%eax)
-	fsubs 112(%eax)
-	fmuls  12(%ebx)
-	fstps 112(%edx)
-
-	flds   16(%eax)
-	fadds 108(%eax)
-	fstps  16(%edx)
-
-	flds   20(%eax)
-	fadds 104(%eax)
-	fstps  20(%edx)
-
-	flds   16(%eax)
-	fsubs 108(%eax)
-	fmuls  16(%ebx)
-	fstps 108(%edx)
-
-	flds   20(%eax)
-	fsubs 104(%eax)
-	fmuls  20(%ebx)
-	fstps 104(%edx)
-
-	flds   24(%eax)
-	fadds 100(%eax)
-	fstps  24(%edx)
-
-	flds   28(%eax)
-	fadds  96(%eax)
-	fstps  28(%edx)
-
-	flds   24(%eax)
-	fsubs 100(%eax)
-	fmuls  24(%ebx)
-	fstps 100(%edx)
-
-	flds   28(%eax)
-	fsubs  96(%eax)
-	fmuls  28(%ebx)
-	fstps  96(%edx)
-
-	flds   32(%eax)
-	fadds  92(%eax)
-	fstps  32(%edx)
-
-	flds   36(%eax)
-	fadds  88(%eax)
-	fstps  36(%edx)
-
-	flds   32(%eax)
-	fsubs  92(%eax)
-	fmuls  32(%ebx)
-	fstps  92(%edx)
-
-	flds   36(%eax)
-	fsubs  88(%eax)
-	fmuls  36(%ebx)
-	fstps  88(%edx)
-
-	flds   40(%eax)
-	fadds  84(%eax)
-	fstps  40(%edx)
-
-	flds   44(%eax)
-	fadds  80(%eax)
-	fstps  44(%edx)
-
-	flds   40(%eax)
-	fsubs  84(%eax)
-	fmuls  40(%ebx)
-	fstps  84(%edx)
-
-	flds   44(%eax)
-	fsubs  80(%eax)
-	fmuls  44(%ebx)
-	fstps  80(%edx)
-
-	flds   48(%eax)
-	fadds  76(%eax)
-	fstps  48(%edx)
-
-	flds   52(%eax)
-	fadds  72(%eax)
-	fstps  52(%edx)
-
-	flds   48(%eax)
-	fsubs  76(%eax)
-	fmuls  48(%ebx)
-	fstps  76(%edx)
-
-	flds   52(%eax)
-	fsubs  72(%eax)
-	fmuls  52(%ebx)
-	fstps  72(%edx)
-
-	flds   56(%eax)
-	fadds  68(%eax)
-	fstps  56(%edx)
-
-	flds   60(%eax)
-	fadds  64(%eax)
-	fstps  60(%edx)
-
-	flds   56(%eax)
-	fsubs  68(%eax)
-	fmuls  56(%ebx)
-	fstps  68(%edx)
-
-	flds   60(%eax)
-	fsubs  64(%eax)
-	fmuls  60(%ebx)
-	fstps  64(%edx)
-	
-/* Phase 2*/
-
-	flds     (%edx)
-	fadds  60(%edx)
-	fstps    (%ecx)
-
-	flds    4(%edx)
-	fadds  56(%edx)
-	fstps   4(%ecx)
-
-	flds     (%edx)
-	fsubs  60(%edx)
-	fmuls  64(%ebx)
-	fstps  60(%ecx)
-
-	flds    4(%edx)
-	fsubs  56(%edx)
-	fmuls  68(%ebx)
-	fstps  56(%ecx)
-
-	flds    8(%edx)
-	fadds  52(%edx)
-	fstps   8(%ecx)
-
-	flds   12(%edx)
-	fadds  48(%edx)
-	fstps  12(%ecx)
-
-	flds    8(%edx)
-	fsubs  52(%edx)
-	fmuls  72(%ebx)
-	fstps  52(%ecx)
-
-	flds   12(%edx)
-	fsubs  48(%edx)
-	fmuls  76(%ebx)
-	fstps  48(%ecx)
-
-	flds   16(%edx)
-	fadds  44(%edx)
-	fstps  16(%ecx)
-
-	flds   20(%edx)
-	fadds  40(%edx)
-	fstps  20(%ecx)
-
-	flds   16(%edx)
-	fsubs  44(%edx)
-	fmuls  80(%ebx)
-	fstps  44(%ecx)
-
-	flds   20(%edx)
-	fsubs  40(%edx)
-	fmuls  84(%ebx)
-	fstps  40(%ecx)
-
-	flds   24(%edx)
-	fadds  36(%edx)
-	fstps  24(%ecx)
-
-	flds   28(%edx)
-	fadds  32(%edx)
-	fstps  28(%ecx)
-
-	flds   24(%edx)
-	fsubs  36(%edx)
-	fmuls  88(%ebx)
-	fstps  36(%ecx)
-
-	flds   28(%edx)
-	fsubs  32(%edx)
-	fmuls  92(%ebx)
-	fstps  32(%ecx)
-	
-/* Phase 3*/
-
-	flds   64(%edx)
-	fadds 124(%edx)
-	fstps  64(%ecx)
-
-	flds   68(%edx)
-	fadds 120(%edx)
-	fstps  68(%ecx)
-
-	flds  124(%edx)
-	fsubs  64(%edx)
-	fmuls  64(%ebx)
-	fstps 124(%ecx)
-
-	flds  120(%edx)
-	fsubs  68(%edx)
-	fmuls  68(%ebx)
-	fstps 120(%ecx)
-
-	flds   72(%edx)
-	fadds 116(%edx)
-	fstps  72(%ecx)
-
-	flds   76(%edx)
-	fadds 112(%edx)
-	fstps  76(%ecx)
-
-	flds  116(%edx)
-	fsubs  72(%edx)
-	fmuls  72(%ebx)
-	fstps 116(%ecx)
-
-	flds  112(%edx)
-	fsubs  76(%edx)
-	fmuls  76(%ebx)
-	fstps 112(%ecx)
-
-	flds   80(%edx)
-	fadds 108(%edx)
-	fstps  80(%ecx)
-
-	flds   84(%edx)
-	fadds 104(%edx)
-	fstps  84(%ecx)
-
-	flds  108(%edx)
-	fsubs  80(%edx)
-	fmuls  80(%ebx)
-	fstps 108(%ecx)
-
-	flds  104(%edx)
-	fsubs  84(%edx)
-	fmuls  84(%ebx)
-	fstps 104(%ecx)
-
-	flds   88(%edx)
-	fadds 100(%edx)
-	fstps  88(%ecx)
-
-	flds   92(%edx)
-	fadds  96(%edx)
-	fstps  92(%ecx)
-
-	flds  100(%edx)
-	fsubs  88(%edx)
-	fmuls  88(%ebx)
-	fstps 100(%ecx)
-
-	flds   96(%edx)
-	fsubs  92(%edx)
-	fmuls  92(%ebx)
-	fstps  96(%ecx)
-	
-/* Phase 4*/
-
-	flds     (%ecx)
-	fadds  28(%ecx)
-	fstps    (%edx)
-
-	flds     (%ecx)
-	fsubs  28(%ecx)
-	fmuls  96(%ebx)
-	fstps  28(%edx)
-
-	flds    4(%ecx)
-	fadds  24(%ecx)
-	fstps   4(%edx)
-
-	flds    4(%ecx)
-	fsubs  24(%ecx)
-	fmuls 100(%ebx)
-	fstps  24(%edx)
-
-	flds    8(%ecx)
-	fadds  20(%ecx)
-	fstps   8(%edx)
-
-	flds    8(%ecx)
-	fsubs  20(%ecx)
-	fmuls 104(%ebx)
-	fstps  20(%edx)
-
-	flds   12(%ecx)
-	fadds  16(%ecx)
-	fstps  12(%edx)
-
-	flds   12(%ecx)
-	fsubs  16(%ecx)
-	fmuls 108(%ebx)
-	fstps  16(%edx)
-
-	flds   32(%ecx)
-	fadds  60(%ecx)
-	fstps  32(%edx)
-
-	flds   60(%ecx)
-	fsubs  32(%ecx)
-	fmuls  96(%ebx)
-	fstps  60(%edx)
-
-	flds   36(%ecx)
-	fadds  56(%ecx)
-	fstps  36(%edx)
-
-	flds   56(%ecx)
-	fsubs  36(%ecx)
-	fmuls 100(%ebx)
-	fstps  56(%edx)
-
-	flds   40(%ecx)
-	fadds  52(%ecx)
-	fstps  40(%edx)
-
-	flds   52(%ecx)
-	fsubs  40(%ecx)
-	fmuls 104(%ebx)
-	fstps  52(%edx)
-
-	flds   44(%ecx)
-	fadds  48(%ecx)
-	fstps  44(%edx)
-
-	flds   48(%ecx)
-	fsubs  44(%ecx)
-	fmuls 108(%ebx)
-	fstps  48(%edx)
-
-	flds   64(%ecx)
-	fadds  92(%ecx)
-	fstps  64(%edx)
-
-	flds   64(%ecx)
-	fsubs  92(%ecx)
-	fmuls  96(%ebx)
-	fstps  92(%edx)
-
-	flds   68(%ecx)
-	fadds  88(%ecx)
-	fstps  68(%edx)
-
-	flds   68(%ecx)
-	fsubs  88(%ecx)
-	fmuls 100(%ebx)
-	fstps  88(%edx)
-
-	flds   72(%ecx)
-	fadds  84(%ecx)
-	fstps  72(%edx)
-
-	flds   72(%ecx)
-	fsubs  84(%ecx)
-	fmuls 104(%ebx)
-	fstps  84(%edx)
-
-	flds   76(%ecx)
-	fadds  80(%ecx)
-	fstps  76(%edx)
-
-	flds   76(%ecx)
-	fsubs  80(%ecx)
-	fmuls 108(%ebx)
-	fstps  80(%edx)
-
-	flds   96(%ecx)
-	fadds 124(%ecx)
-	fstps  96(%edx)
-
-	flds  124(%ecx)
-	fsubs  96(%ecx)
-	fmuls  96(%ebx)
-	fstps 124(%edx)
-
-	flds  100(%ecx)
-	fadds 120(%ecx)
-	fstps 100(%edx)
-
-	flds  120(%ecx)
-	fsubs 100(%ecx)
-	fmuls 100(%ebx)
-	fstps 120(%edx)
-
-	flds  104(%ecx)
-	fadds 116(%ecx)
-	fstps 104(%edx)
-
-	flds  116(%ecx)
-	fsubs 104(%ecx)
-	fmuls 104(%ebx)
-	fstps 116(%edx)
-
-	flds  108(%ecx)
-	fadds 112(%ecx)
-	fstps 108(%edx)
-
-	flds  112(%ecx)
-	fsubs 108(%ecx)
-	fmuls 108(%ebx)
-	fstps 112(%edx)
-
-	flds     (%edx)
-	fadds  12(%edx)
-	fstps    (%ecx)
-
-	flds     (%edx)
-	fsubs  12(%edx)
-	fmuls 112(%ebx)
-	fstps  12(%ecx)
-
-	flds    4(%edx)
-	fadds   8(%edx)
-	fstps   4(%ecx)
-
-	flds    4(%edx)
-	fsubs   8(%edx)
-	fmuls 116(%ebx)
-	fstps   8(%ecx)
-
-	flds   16(%edx)
-	fadds  28(%edx)
-	fstps  16(%ecx)
-
-	flds   28(%edx)
-	fsubs  16(%edx)
-	fmuls 112(%ebx)
-	fstps  28(%ecx)
-
-	flds   20(%edx)
-	fadds  24(%edx)
-	fstps  20(%ecx)
-
-	flds   24(%edx)
-	fsubs  20(%edx)
-	fmuls 116(%ebx)
-	fstps  24(%ecx)
-
-	flds   32(%edx)
-	fadds  44(%edx)
-	fstps  32(%ecx)
-
-	flds   32(%edx)
-	fsubs  44(%edx)
-	fmuls 112(%ebx)
-	fstps  44(%ecx)
-
-	flds   36(%edx)
-	fadds  40(%edx)
-	fstps  36(%ecx)
-
-	flds   36(%edx)
-	fsubs  40(%edx)
-	fmuls 116(%ebx)
-	fstps  40(%ecx)
-
-	flds   48(%edx)
-	fadds  60(%edx)
-	fstps  48(%ecx)
-
-	flds   60(%edx)
-	fsubs  48(%edx)
-	fmuls 112(%ebx)
-	fstps  60(%ecx)
-
-	flds   52(%edx)
-	fadds  56(%edx)
-	fstps  52(%ecx)
-
-	flds   56(%edx)
-	fsubs  52(%edx)
-	fmuls 116(%ebx)
-	fstps  56(%ecx)
-
-	flds   64(%edx)
-	fadds  76(%edx)
-	fstps  64(%ecx)
-
-	flds   64(%edx)
-	fsubs  76(%edx)
-	fmuls 112(%ebx)
-	fstps  76(%ecx)
-
-	flds   68(%edx)
-	fadds  72(%edx)
-	fstps  68(%ecx)
-
-	flds   68(%edx)
-	fsubs  72(%edx)
-	fmuls 116(%ebx)
-	fstps  72(%ecx)
-
-	flds   80(%edx)
-	fadds  92(%edx)
-	fstps  80(%ecx)
-
-	flds   92(%edx)
-	fsubs  80(%edx)
-	fmuls 112(%ebx)
-	fstps  92(%ecx)
-
-	flds   84(%edx)
-	fadds  88(%edx)
-	fstps  84(%ecx)
-
-	flds   88(%edx)
-	fsubs  84(%edx)
-	fmuls 116(%ebx)
-	fstps  88(%ecx)
-
-	flds   96(%edx)
-	fadds 108(%edx)
-	fstps  96(%ecx)
-
-	flds   96(%edx)
-	fsubs 108(%edx)
-	fmuls 112(%ebx)
-	fstps 108(%ecx)
-
-	flds  100(%edx)
-	fadds 104(%edx)
-	fstps 100(%ecx)
-
-	flds  100(%edx)
-	fsubs 104(%edx)
-	fmuls 116(%ebx)
-	fstps 104(%ecx)
-
-	flds  112(%edx)
-	fadds 124(%edx)
-	fstps 112(%ecx)
-
-	flds  124(%edx)
-	fsubs 112(%edx)
-	fmuls 112(%ebx)
-	fstps 124(%ecx)
-
-	flds  116(%edx)
-	fadds 120(%edx)
-	fstps 116(%ecx)
-
-	flds  120(%edx)
-	fsubs 116(%edx)
-	fmuls 116(%ebx)
-	fstps 120(%ecx)
-	
-/* Phase 5*/
-
-	flds   32(%ecx)
-	fadds  36(%ecx)
-	fstps  32(%edx)
-
-	flds   32(%ecx)
-	fsubs  36(%ecx)
-	fmuls 120(%ebx)
-	fstps  36(%edx)
-
-	flds   44(%ecx)
-	fsubs  40(%ecx)
-	fmuls 120(%ebx)
-	fsts   44(%edx)
-	fadds  40(%ecx)
-	fadds  44(%ecx)
-	fstps  40(%edx)
-
-	flds   48(%ecx)
-	fsubs  52(%ecx)
-	fmuls 120(%ebx)
-
-	flds   60(%ecx)
-	fsubs  56(%ecx)
-	fmuls 120(%ebx)
-	fld      %st(0)
-	fadds  56(%ecx)
-	fadds  60(%ecx)
-	fld      %st(0)
-	fadds  48(%ecx)
-	fadds  52(%ecx)
-	fstps  48(%edx)
-	fadd     %st(2)
-	fstps  56(%edx)
-	fsts   60(%edx)
-	faddp    %st(1)
-	fstps  52(%edx)
-
-	flds   64(%ecx)
-	fadds  68(%ecx)
-	fstps  64(%edx)
-
-	flds   64(%ecx)
-	fsubs  68(%ecx)
-	fmuls 120(%ebx)
-	fstps  68(%edx)
-
-	flds   76(%ecx)
-	fsubs  72(%ecx)
-	fmuls 120(%ebx)
-	fsts   76(%edx)
-	fadds  72(%ecx)
-	fadds  76(%ecx)
-	fstps  72(%edx)
-
-	flds   92(%ecx)
-	fsubs  88(%ecx)
-	fmuls 120(%ebx)
-	fsts   92(%edx)
-	fadds  92(%ecx)
-	fadds  88(%ecx)
-	fld      %st(0)
-	fadds  80(%ecx)
-	fadds  84(%ecx)
-	fstps  80(%edx)
-
-	flds   80(%ecx)
-	fsubs  84(%ecx)
-	fmuls 120(%ebx)
-	fadd  %st(0), %st(1)
-	fadds 92(%edx)
-	fstps 84(%edx)
-	fstps 88(%edx)
-
-	flds   96(%ecx)
-	fadds 100(%ecx)
-	fstps  96(%edx)
-
-	flds   96(%ecx)
-	fsubs 100(%ecx)
-	fmuls 120(%ebx)
-	fstps 100(%edx)
-
-	flds  108(%ecx)
-	fsubs 104(%ecx)
-	fmuls 120(%ebx)
-	fsts  108(%edx)
-	fadds 104(%ecx)
-	fadds 108(%ecx)
-	fstps 104(%edx)
-
-	flds  124(%ecx)
-	fsubs 120(%ecx)
-	fmuls 120(%ebx)
-	fsts  124(%edx)
-	fadds 120(%ecx)
-	fadds 124(%ecx)
-	fld      %st(0)
-	fadds 112(%ecx)
-	fadds 116(%ecx)
-	fstps 112(%edx)
-
-	flds  112(%ecx)
-	fsubs 116(%ecx)
-	fmuls 120(%ebx)
-	fadd  %st(0),%st(1)
-	fadds 124(%edx)
-	fstps 116(%edx)
-	fstps 120(%edx)
-	jnz .L01
-	
-/* Phase 6*/
-
-	flds      (%ecx)
-	fadds    4(%ecx)
-	fstps 1024(%esi)
-
-	flds      (%ecx)
-	fsubs    4(%ecx)
-	fmuls  120(%ebx)
-	fsts      (%esi)
-	fstps     (%edi)
-
-	flds   12(%ecx)
-	fsubs   8(%ecx)
-	fmuls 120(%ebx)
-	fsts  512(%edi)
-	fadds  12(%ecx)
-	fadds   8(%ecx)
-	fstps 512(%esi)
-
-	flds   16(%ecx)
-	fsubs  20(%ecx)
-	fmuls 120(%ebx)
-
-	flds   28(%ecx)
-	fsubs  24(%ecx)
-	fmuls 120(%ebx)
-	fsts  768(%edi)
-	fld      %st(0)
-	fadds  24(%ecx)
-	fadds  28(%ecx)
-	fld      %st(0)
-	fadds  16(%ecx)
-	fadds  20(%ecx)
-	fstps 768(%esi)
-	fadd     %st(2)
-	fstps 256(%esi)
-	faddp    %st(1)
-	fstps 256(%edi)
-	
-/* Phase 7*/
-
-	flds   32(%edx)
-	fadds  48(%edx)
-	fstps 896(%esi)
-
-	flds   48(%edx)
-	fadds  40(%edx)
-	fstps 640(%esi)
-
-	flds   40(%edx)
-	fadds  56(%edx)
-	fstps 384(%esi)
-
-	flds   56(%edx)
-	fadds  36(%edx)
-	fstps 128(%esi)
-
-	flds   36(%edx)
-	fadds  52(%edx)
-	fstps 128(%edi)
-
-	flds   52(%edx)
-	fadds  44(%edx)
-	fstps 384(%edi)
-
-	flds   60(%edx)
-	fsts  896(%edi)
-	fadds  44(%edx)
-	fstps 640(%edi)
-
-	flds   96(%edx)
-	fadds 112(%edx)
-	fld      %st(0)
-	fadds  64(%edx)
-	fstps 960(%esi)
-	fadds  80(%edx)
-	fstps 832(%esi)
-
-	flds  112(%edx)
-	fadds 104(%edx)
-	fld      %st(0)
-	fadds  80(%edx)
-	fstps 704(%esi)
-	fadds  72(%edx)
-	fstps 576(%esi)
-
-	flds  104(%edx)
-	fadds 120(%edx)
-	fld      %st(0)
-	fadds  72(%edx)
-	fstps 448(%esi)
-	fadds  88(%edx)
-	fstps 320(%esi)
-
-	flds  120(%edx)
-	fadds 100(%edx)
-	fld      %st(0)
-	fadds  88(%edx)
-	fstps 192(%esi)
-	fadds  68(%edx)
-	fstps  64(%esi)
-
-	flds  100(%edx)
-	fadds 116(%edx)
-	fld      %st(0)
-	fadds  68(%edx)
-	fstps  64(%edi)
-	fadds  84(%edx)
-	fstps 192(%edi)
-
-	flds  116(%edx)
-	fadds 108(%edx)
-	fld      %st(0)
-	fadds  84(%edx)
-	fstps 320(%edi)
-	fadds  76(%edx)
-	fstps 448(%edi)
-
-	flds  108(%edx)
-	fadds 124(%edx)
-	fld      %st(0)
-	fadds  76(%edx)
-	fstps 576(%edi)
-	fadds  92(%edx)
-	fstps 704(%edi)
-
-	flds  124(%edx)
-	fsts  960(%edi)
-	fadds  92(%edx)
-	fstps 832(%edi)
-	addl $256,%esp
-	popl %edi
-	popl %esi
-	popl %ebx
-	ret
-.L01:	
-/* Phase 8*/
-
-	flds      (%ecx)
-	fadds    4(%ecx)
-	fistp  512(%esi)
-
-	flds      (%ecx)
-	fsubs    4(%ecx)
-	fmuls  120(%ebx)
-
-	fistp     (%esi)
-
-
-	flds    12(%ecx)
-	fsubs    8(%ecx)
-	fmuls  120(%ebx)
-	fist   256(%edi)
-	fadds   12(%ecx)
-	fadds    8(%ecx)
-	fistp  256(%esi)
-
-	flds   16(%ecx)
-	fsubs  20(%ecx)
-	fmuls 120(%ebx)
-
-	flds   28(%ecx)
-	fsubs  24(%ecx)
-	fmuls 120(%ebx)
-	fist  384(%edi)
-	fld      %st(0)
-	fadds  24(%ecx)
-	fadds  28(%ecx)
-	fld      %st(0)
-	fadds  16(%ecx)
-	fadds  20(%ecx)
-	fistp  384(%esi)
-	fadd     %st(2)
-	fistp  128(%esi)
-	faddp    %st(1)
-	fistp  128(%edi)
-	
-/* Phase 9*/
-
-	flds    32(%edx)
-	fadds   48(%edx)
-	fistp  448(%esi)
-
-	flds   48(%edx)
-	fadds  40(%edx)
-	fistp 320(%esi)
-
-	flds   40(%edx)
-	fadds  56(%edx)
-	fistp 192(%esi)
-
-	flds   56(%edx)
-	fadds  36(%edx)
-	fistp  64(%esi)
-
-	flds   36(%edx)
-	fadds  52(%edx)
-	fistp  64(%edi)
-
-	flds   52(%edx)
-	fadds  44(%edx)
-	fistp 192(%edi)
-
-	flds   60(%edx)
-	fist   448(%edi)
-	fadds  44(%edx)
-	fistp 320(%edi)
-
-	flds   96(%edx)
-	fadds 112(%edx)
-	fld      %st(0)
-	fadds  64(%edx)
-	fistp 480(%esi)
-	fadds  80(%edx)
-	fistp 416(%esi)
-
-	flds  112(%edx)
-	fadds 104(%edx)
-	fld      %st(0)
-	fadds  80(%edx)
-	fistp 352(%esi)
-	fadds  72(%edx)
-	fistp 288(%esi)
-
-	flds  104(%edx)
-	fadds 120(%edx)
-	fld      %st(0)
-	fadds  72(%edx)
-	fistp 224(%esi)
-	fadds  88(%edx)
-	fistp 160(%esi)
-
-	flds  120(%edx)
-	fadds 100(%edx)
-	fld      %st(0)
-	fadds  88(%edx)
-	fistp  96(%esi)
-	fadds  68(%edx)
-	fistp  32(%esi)
-
-	flds  100(%edx)
-	fadds 116(%edx)
-	fld      %st(0)
-	fadds  68(%edx)
-	fistp  32(%edi)
-	fadds  84(%edx)
-	fistp  96(%edi)
-
-	flds  116(%edx)
-	fadds 108(%edx)
-	fld      %st(0)
-	fadds  84(%edx)
-	fistp 160(%edi)
-	fadds  76(%edx)
-	fistp 224(%edi)
-
-	flds  108(%edx)
-	fadds 124(%edx)
-	fld      %st(0)
-	fadds  76(%edx)
-	fistp 288(%edi)
-	fadds  92(%edx)
-	fistp 352(%edi)
-
-	flds  124(%edx)
-	fist  480(%edi)
-	fadds  92(%edx)
-	fistp 416(%edi)
-	movsw
-	addl $256,%esp
-	popl %edi
-	popl %esi
-	popl %ebx
-	ret	$12