summaryrefslogtreecommitdiffstats
path: root/mp3lib/decode_i586.c
diff options
context:
space:
mode:
Diffstat (limited to 'mp3lib/decode_i586.c')
-rw-r--r--mp3lib/decode_i586.c318
1 files changed, 0 insertions, 318 deletions
diff --git a/mp3lib/decode_i586.c b/mp3lib/decode_i586.c
deleted file mode 100644
index 83933d7ad4..0000000000
--- a/mp3lib/decode_i586.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
-* mpg123_synth_1to1 works the same way as the c version of this
-* file. only two types of changes have been made:
-* - reordered floating point instructions to
-* prevent pipline stalls
-* - made WRITE_SAMPLE use integer instead of
-* (slower) floating point
-* all kinds of x86 processors should benefit from these
-* modifications.
-*
-* useful sources of information on optimizing x86 code include:
-*
-* Intel Architecture Optimization Manual
-* http://www.intel.com/design/pentium/manuals/242816.htm
-*
-* Cyrix 6x86 Instruction Set Summary
-* ftp://ftp.cyrix.com/6x86/6x-dbch6.pdf
-*
-* AMD-K5 Processor Software Development
-* http://www.amd.com/products/cpg/techdocs/appnotes/20007e.pdf
-*
-* Stefan Bieschewski <stb@acm.org>
-*
-* $Id$
-*/
-#include "config.h"
-#include "mangle.h"
-#include "mpg123.h"
-
-static int attribute_used buffs[1088]={0};
-static int attribute_used bo=1;
-static int attribute_used saved_ebp=0;
-
-int synth_1to1_pent(real *bandPtr, int channel, short *samples)
-{
- real tmp[3];
- register int retval;
- __asm__ volatile(
-" movl %%ebp,"MANGLE(saved_ebp)"\n\t"
-" movl %1,%%eax\n\t"/*bandPtr*/
-" movl %3,%%esi\n\t"
-" xorl %%edi,%%edi\n\t"
-" movl "MANGLE(bo)",%%ebp\n\t"
-" cmpl %%edi,%2\n\t"
-" jne .L48\n\t"
-" decl %%ebp\n\t"
-" andl $15,%%ebp\n\t"
-" movl %%ebp,"MANGLE(bo)"\n\t"
-" movl $"MANGLE(buffs)",%%ecx\n\t"
-" jmp .L49\n\t"
-".L48:\n\t"
-" addl $2,%%esi\n\t"
-" movl $"MANGLE(buffs)"+2176,%%ecx\n\t"
-".L49:\n\t"
-" testl $1,%%ebp\n\t"
-" je .L50\n\t"
-" movl %%ecx,%%ebx\n\t"
-" movl %%ebp,%4\n\t"
-" pushl %%eax\n\t"
-" movl 4+%4,%%edx\n\t"
-" leal (%%ebx,%%edx,4),%%eax\n\t"
-" pushl %%eax\n\t"
-" movl 8+%4,%%eax\n\t"
-" incl %%eax\n\t"
-" andl $15,%%eax\n\t"
-" leal 1088(,%%eax,4),%%eax\n\t"
-" addl %%ebx,%%eax\n\t"
-" jmp .L74\n\t"
-".L50:\n\t"
-" leal 1088(%%ecx),%%ebx\n\t"
-" leal 1(%%ebp),%%edx\n\t"
-" movl %%edx,%4\n\t"
-" pushl %%eax\n\t"
-" leal 1092(%%ecx,%%ebp,4),%%eax\n\t"
-" pushl %%eax\n\t"
-" leal (%%ecx,%%ebp,4),%%eax\n\t"
-".L74:\n\t"
-" pushl %%eax\n\t"
-" call "MANGLE(mp3lib_dct64)"\n\t"
-" addl $12,%%esp\n\t"
-" movl %4,%%edx\n\t"
-" leal 0(,%%edx,4),%%edx\n\t"
-" movl $"MANGLE(mp3lib_decwin)"+64,%%eax\n\t"
-" movl %%eax,%%ecx\n\t"
-" subl %%edx,%%ecx\n\t"
-" movl $16,%%ebp\n\t"
-".L55:\n\t"
-" flds (%%ecx)\n\t"
-" fmuls (%%ebx)\n\t"
-" flds 4(%%ecx)\n\t"
-" fmuls 4(%%ebx)\n\t"
-" fxch %%st(1)\n\t"
-" flds 8(%%ecx)\n\t"
-" fmuls 8(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds 12(%%ecx)\n\t"
-" fmuls 12(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 16(%%ecx)\n\t"
-" fmuls 16(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds 20(%%ecx)\n\t"
-" fmuls 20(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 24(%%ecx)\n\t"
-" fmuls 24(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds 28(%%ecx)\n\t"
-" fmuls 28(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 32(%%ecx)\n\t"
-" fmuls 32(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds 36(%%ecx)\n\t"
-" fmuls 36(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 40(%%ecx)\n\t"
-" fmuls 40(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds 44(%%ecx)\n\t"
-" fmuls 44(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 48(%%ecx)\n\t"
-" fmuls 48(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds 52(%%ecx)\n\t"
-" fmuls 52(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 56(%%ecx)\n\t"
-" fmuls 56(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds 60(%%ecx)\n\t"
-" fmuls 60(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" subl $4,%%esp\n\t"
-" faddp %%st,%%st(1)\n\t"
-" fxch %%st(1)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" fistpl (%%esp)\n\t"
-" popl %%eax\n\t"
-" cmpl $32767,%%eax\n\t"
-" jg 1f\n\t"
-" cmpl $-32768,%%eax\n\t"
-" jl 2f\n\t"
-" movw %%ax,(%%esi)\n\t"
-" jmp 4f\n\t"
-"1: movw $32767,(%%esi)\n\t"
-" jmp 3f\n\t"
-"2: movw $-32768,(%%esi)\n\t"
-"3: incl %%edi\n\t"
-"4:\n\t"
-".L54:\n\t"
-" addl $64,%%ebx\n\t"
-" subl $-128,%%ecx\n\t"
-" addl $4,%%esi\n\t"
-" decl %%ebp\n\t"
-" jnz .L55\n\t"
-" flds (%%ecx)\n\t"
-" fmuls (%%ebx)\n\t"
-" flds 8(%%ecx)\n\t"
-" fmuls 8(%%ebx)\n\t"
-" flds 16(%%ecx)\n\t"
-" fmuls 16(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 24(%%ecx)\n\t"
-" fmuls 24(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 32(%%ecx)\n\t"
-" fmuls 32(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 40(%%ecx)\n\t"
-" fmuls 40(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 48(%%ecx)\n\t"
-" fmuls 48(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" flds 56(%%ecx)\n\t"
-" fmuls 56(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" subl $4,%%esp\n\t"
-" faddp %%st,%%st(1)\n\t"
-" fxch %%st(1)\n\t"
-" faddp %%st,%%st(1)\n\t"
-" fistpl (%%esp)\n\t"
-" popl %%eax\n\t"
-" cmpl $32767,%%eax\n\t"
-" jg 1f\n\t"
-" cmpl $-32768,%%eax\n\t"
-" jl 2f\n\t"
-" movw %%ax,(%%esi)\n\t"
-" jmp 4f\n\t"
-"1: movw $32767,(%%esi)\n\t"
-" jmp 3f\n\t"
-"2: movw $-32768,(%%esi)\n\t"
-"3: incl %%edi\n\t"
-"4:\n\t"
-".L62:\n\t"
-" addl $-64,%%ebx\n\t"
-" addl $4,%%esi\n\t"
-" movl %4,%%edx\n\t"
-" leal -128(%%ecx,%%edx,8),%%ecx\n\t"
-" movl $15,%%ebp\n\t"
-".L68:\n\t"
-" flds -4(%%ecx)\n\t"
-" fchs\n\t"
-" fmuls (%%ebx)\n\t"
-" flds -8(%%ecx)\n\t"
-" fmuls 4(%%ebx)\n\t"
-" fxch %%st(1)\n\t"
-" flds -12(%%ecx)\n\t"
-" fmuls 8(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -16(%%ecx)\n\t"
-" fmuls 12(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -20(%%ecx)\n\t"
-" fmuls 16(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -24(%%ecx)\n\t"
-" fmuls 20(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -28(%%ecx)\n\t"
-" fmuls 24(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -32(%%ecx)\n\t"
-" fmuls 28(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -36(%%ecx)\n\t"
-" fmuls 32(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -40(%%ecx)\n\t"
-" fmuls 36(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -44(%%ecx)\n\t"
-" fmuls 40(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -48(%%ecx)\n\t"
-" fmuls 44(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -52(%%ecx)\n\t"
-" fmuls 48(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -56(%%ecx)\n\t"
-" fmuls 52(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds -60(%%ecx)\n\t"
-" fmuls 56(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" flds (%%ecx)\n\t"
-" fmuls 60(%%ebx)\n\t"
-" fxch %%st(2)\n\t"
-" subl $4,%%esp\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" fxch %%st(1)\n\t"
-" fsubrp %%st,%%st(1)\n\t"
-" fistpl (%%esp)\n\t"
-" popl %%eax\n\t"
-" cmpl $32767,%%eax\n\t"
-" jg 1f\n\t"
-" cmpl $-32768,%%eax\n\t"
-" jl 2f\n\t"
-" movw %%ax,(%%esi)\n\t"
-" jmp 4f\n\t"
-"1: movw $32767,(%%esi)\n\t"
-" jmp 3f\n\t"
-"2: movw $-32768,(%%esi)\n\t"
-"3: incl %%edi\n\t"
-"4:\n\t"
-".L67:\n\t"
-" addl $-64,%%ebx\n\t"
-" addl $-128,%%ecx\n\t"
-" addl $4,%%esi\n\t"
-" decl %%ebp\n\t"
-" jnz .L68\n\t"
-" movl %%edi,%%eax\n\t"
-" movl "MANGLE(saved_ebp)",%%ebp\n\t"
- :"=a"(retval)
- :"m"(bandPtr),"m"(channel),"m"(samples),"m"(tmp[0])
- :"memory","%edi","%esi","%ebx","%ecx","%edx");
- return retval;
-}