aboutsummaryrefslogtreecommitdiffstats
path: root/codecs/mp3/src/x86intel.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-11-04 02:40:09 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-11-04 02:40:09 +0000
commitf8c39a08f6ff651221ff896f8a174abf635f3a0a (patch)
treeac950750c9c1b65bb563df9c6506858c7f8f30c1 /codecs/mp3/src/x86intel.c
parentad46ab972ccf439d1dd3a533335b54089c53e431 (diff)
Remove really broke MP3 stuff in favor of G.726 in the near future
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1689 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'codecs/mp3/src/x86intel.c')
-rwxr-xr-xcodecs/mp3/src/x86intel.c437
1 files changed, 0 insertions, 437 deletions
diff --git a/codecs/mp3/src/x86intel.c b/codecs/mp3/src/x86intel.c
deleted file mode 100755
index d9f0e6125..000000000
--- a/codecs/mp3/src/x86intel.c
+++ /dev/null
@@ -1,437 +0,0 @@
-/* *************************************************** */
-/* ************ DO NOT EDIT THIS FILE!!!! ************ */
-/* *************************************************** */
-/* This file was automatically generated by gas2intel. */
-/* Edit the original gas version instead. */
-
-
-/* FreeAmp - The Free MP3 Player */
-
-/* Based on MP3 decoder originally Copyright (C) 1995-1997 */
-/* Xing Technology Corp. http://www.xingtech.com */
-
-/* Copyright (C) 1999 Mark H. Weaver <mhw@netris.org> */
-
-/* This program is free software; you can redistribute it and/or modify */
-/* it under the terms of the GNU General Public License as published by */
-/* the Free Software Foundation; either version 2 of the License, or */
-/* (at your option) any later version. */
-
-/* This program is distributed in the hope that it will be useful, */
-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
-/* GNU General Public License for more details. */
-
-/* You should have received a copy of the GNU General Public License */
-/* along with this program; if not, write to the Free Software */
-/* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* $Id$ */
-/* Generated from Id: x86gas.s,v 1.9 1999/03/05 08:58:18 mhw Exp $ */
-
-
-extern float wincoef[264];
-extern float coef32[31];
-
-#define L_tmp 0
-#define L_pcm 4
-void window_dual(float *vbuf, int vb_ptr, short *pcm)
-{
-__asm {
-
- mov esi,vb_ptr
- mov edi,vbuf
- mov ecx,pcm
- push ebp
- sub esp,8
- mov DWORD PTR [esp+L_pcm],ecx
-
- mov ebp,511 ; ebp = 511
- lea ecx,wincoef ; coef = wincoef
- add esi,16 ; si = vb_ptr + 16
- mov ebx,esi
- add ebx,32
- and ebx,ebp ; bx = (si + 32) & 511
-
-; First 16
- mov dh,16 ; i = 16
- align 4
-FirstOuter:
- fldz ; sum = 0.0
- mov dl,2 ; j = 2
- align 4
-FirstInner:
-; REPEAT 4 ; Unrolled loop
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- add ecx,4 ; Advance coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- add ecx,4 ; Advance coef pointer
- and ebx,ebp ; bx &= 511
- fsubp st(1),st ; Subtract from sum
-;--
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- add ecx,4 ; Advance coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- add ecx,4 ; Advance coef pointer
- and ebx,ebp ; bx &= 511
- fsubp st(1),st ; Subtract from sum
-;--
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- add ecx,4 ; Advance coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- add ecx,4 ; Advance coef pointer
- and ebx,ebp ; bx &= 511
- fsubp st(1),st ; Subtract from sum
-;--
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- add ecx,4 ; Advance coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- add ecx,4 ; Advance coef pointer
- and ebx,ebp ; bx &= 511
- fsubp st(1),st ; Subtract from sum
-;--
-; END REPEAT
-
- dec dl ; --j
- jg FirstInner ; Jump back if j > 0
-
- fistp DWORD PTR [esp+L_tmp] ; tmp = (long) round (sum)
- inc esi ; si++
- mov eax,DWORD PTR [esp+L_tmp]
- dec ebx ; bx--
- mov ebp,eax
- sar eax,15
- inc eax
- sar eax,1
- jz FirstInRange ; Jump if in range
-
- sar eax,16 ; Out of range
- mov ebp,32767
- xor ebp,eax
-FirstInRange:
- mov eax,DWORD PTR [esp+L_pcm]
- mov WORD PTR [eax],bp ; Store sample in *pcm
- add eax,4 ; Increment pcm
- mov ebp,511 ; Reload ebp with 511
- mov DWORD PTR [esp+L_pcm],eax
-
- dec dh ; --i
- jg FirstOuter ; Jump back if i > 0
-
-
-; Special case
- fldz ; sum = 0.0
- mov dl,4 ; j = 4
- align 4
-SpecialInner:
-; REPEAT 2 ; Unrolled loop
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- add ecx,4 ; Increment coef pointer
- and ebx,ebp ; bx &= 511
- faddp st(1),st ; Add to sum
-;--
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- add ecx,4 ; Increment coef pointer
- and ebx,ebp ; bx &= 511
- faddp st(1),st ; Add to sum
-;--
-; END REPEAT
-
- dec dl ; --j
- jg SpecialInner ; Jump back if j > 0
-
- fistp DWORD PTR [esp+L_tmp] ; tmp = (long) round (sum)
- dec esi ; si--
- mov eax,DWORD PTR [esp+L_tmp]
- inc ebx ; bx++
- mov ebp,eax
- sar eax,15
- inc eax
- sar eax,1
- jz SpecialInRange ; Jump if within range
-
- sar eax,16 ; Out of range
- mov ebp,32767
- xor ebp,eax
-SpecialInRange:
- mov eax,DWORD PTR [esp+L_pcm]
- sub ecx,36 ; Readjust coef pointer for last round
- mov WORD PTR [eax],bp ; Store sample in *pcm
- add eax,4 ; Increment pcm
- mov ebp,511 ; Reload ebp with 511
- mov DWORD PTR [esp+L_pcm],eax
-
-
-; Last 15
- mov dh,15 ; i = 15
- align 4
-LastOuter:
- fldz ; sum = 0.0
- mov dl,2 ; j = 2
- align 4
-LastInner:
-; REPEAT 4 ; Unrolled loop
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- sub ecx,4 ; Back up coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- sub ecx,4 ; Back up coef pointer
- and ebx,ebp ; bx &= 511
- faddp st(1),st ; Add to sum
-;--
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- sub ecx,4 ; Back up coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- sub ecx,4 ; Back up coef pointer
- and ebx,ebp ; bx &= 511
- faddp st(1),st ; Add to sum
-;--
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- sub ecx,4 ; Back up coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- sub ecx,4 ; Back up coef pointer
- and ebx,ebp ; bx &= 511
- faddp st(1),st ; Add to sum
-;--
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+esi*4] ; Multiply by vbuf[si]
- add esi,64 ; si += 64
- sub ecx,4 ; Back up coef pointer
- and esi,ebp ; si &= 511
- faddp st(1),st ; Add to sum
-
- fld DWORD PTR [ecx] ; Push *coef
- fmul DWORD PTR [edi+ebx*4] ; Multiply by vbuf[bx]
- add ebx,64 ; bx += 64
- sub ecx,4 ; Back up coef pointer
- and ebx,ebp ; bx &= 511
- faddp st(1),st ; Add to sum
-;--
-; END REPEAT
-
- dec dl ; --j
- jg LastInner ; Jump back if j > 0
-
- fistp DWORD PTR [esp+L_tmp] ; tmp = (long) round (sum)
- dec esi ; si--
- mov eax,DWORD PTR [esp+L_tmp]
- inc ebx ; bx++
- mov ebp,eax
- sar eax,15
- inc eax
- sar eax,1
- jz LastInRange ; Jump if in range
-
- sar eax,16 ; Out of range
- mov ebp,32767
- xor ebp,eax
-LastInRange:
- mov eax,DWORD PTR [esp+L_pcm]
- mov WORD PTR [eax],bp ; Store sample in *pcm
- add eax,4 ; Increment pcm
- mov ebp,511 ; Reload ebp with 511
- mov DWORD PTR [esp+L_pcm],eax
-
- dec dh ; --i
- jg LastOuter ; Jump back if i > 0
-
- add esp,8
- pop ebp
-
- }
-}
-
-/*--------------------------------------------------------------------------- */
-
-#define L_mi 0
-#define L_m 4
-#define L_dummy 8
-#define L_in 12
-#define L_out 16
-#define L_buf 20 /* Temporary buffer */
-#define L_locals 148 /* Bytes used for locals */
-void asm_fdct32(float in[], float out[])
-{
-__asm {
-
- mov edi,in ; edi = x
- mov esi,out ; esi = f
- push ebp
- sub esp,L_locals
-
- lea ecx,coef32-128 ; coef = coef32 - (32 * 4)
- mov DWORD PTR [esp+4],1 ; m = 1
- mov ebp,16 ; n = 32 / 2
-
- lea ebx,DWORD PTR [esp+L_buf]
- mov DWORD PTR [esp+L_out],ebx ; From now on, use temp buf instead of orig x
- jmp ForwardLoopStart
-
- align 4
-ForwardOuterLoop:
- mov edi,DWORD PTR [esp+L_in] ; edi = x
- mov esi,DWORD PTR [esp+L_out] ; esi = f
- mov DWORD PTR [esp+L_out],edi ; Exchange mem versions of f/x for next iter
-ForwardLoopStart:
- mov DWORD PTR [esp+L_in],esi
- mov ebx,DWORD PTR [esp+L_m] ; ebx = m (temporarily)
- mov DWORD PTR [esp+L_mi],ebx ; mi = m
- sal ebx,1 ; Double m for next iter
- lea ecx,DWORD PTR [ecx+ebp*8] ; coef += n * 8
- mov DWORD PTR [esp+L_m],ebx ; Store doubled m
- lea ebx,DWORD PTR [esi+ebp*4] ; ebx = f2 = f + n * 4
- sal ebp,3 ; n *= 8
-
- align 4
-ForwardMiddleLoop:
- mov eax,ebp ; q = n
- xor edx,edx ; p = 0
- test eax,8
- jnz ForwardInnerLoop1
-
- align 4
-ForwardInnerLoop:
- sub eax,4 ; q -= 4
- fld DWORD PTR [edi+eax] ; push x[q]
- fld DWORD PTR [edi+edx] ; push x[p]
- fld st(1) ; Duplicate top two stack entries
- fld st(1)
- faddp st(1),st
- fstp DWORD PTR [esi+edx] ; f[p] = x[p] + x[q]
- fsubrp st(1),st
- fmul DWORD PTR [ecx+edx]
- fstp DWORD PTR [ebx+edx] ; f2[p] = coef[p] * (x[p] - x[q])
- add edx,4 ; p += 4
-
-ForwardInnerLoop1:
- sub eax,4 ; q -= 4
- fld DWORD PTR [edi+eax] ; push x[q]
- fld DWORD PTR [edi+edx] ; push x[p]
- fld st(1) ; Duplicate top two stack entries
- fld st(1)
- faddp st(1),st
- fstp DWORD PTR [esi+edx] ; f[p] = x[p] + x[q]
- fsubrp st(1),st
- fmul DWORD PTR [ecx+edx]
- fstp DWORD PTR [ebx+edx] ; f2[p] = coef[p] * (x[p] - x[q])
- add edx,4 ; p += 4
-
- cmp edx,eax
- jb ForwardInnerLoop ; Jump back if (p < q)
-
- add esi,ebp ; f += n
- add ebx,ebp ; f2 += n
- add edi,ebp ; x += n
- dec DWORD PTR [esp+L_mi] ; mi--
- jg ForwardMiddleLoop ; Jump back if mi > 0
-
- sar ebp,4 ; n /= 16
- jg ForwardOuterLoop ; Jump back if n > 0
-
-
-; Setup back loop
- mov ebx,8 ; ebx = m = 8 (temporarily)
- mov ebp,ebx ; n = 4 * 2
-
- align 4
-BackOuterLoop:
- mov esi,DWORD PTR [esp+L_out] ; esi = f
- mov DWORD PTR [esp+L_mi],ebx ; mi = m
- mov edi,DWORD PTR [esp+L_in] ; edi = x
- mov DWORD PTR [esp+L_m],ebx ; Store m
- mov DWORD PTR [esp+L_in],esi ; Exchange mem versions of f/x for next iter
- mov ebx,edi
- mov DWORD PTR [esp+L_out],edi
- sub ebx,ebp ; ebx = x2 = x - n
- sal ebp,1 ; n *= 2
-
- align 4
-BackMiddleLoop:
- mov ecx,DWORD PTR [ebx+ebp-4]
- mov DWORD PTR [esi+ebp-8],ecx ; f[n - 8] = x2[n - 4]
- fld DWORD PTR [edi+ebp-4] ; push x[n - 4]
- fst DWORD PTR [esi+ebp-4] ; f[n - 4] = x[n - 4], without popping
- lea eax,DWORD PTR [ebp-8] ; q = n - 8
- lea edx,DWORD PTR [ebp-16] ; p = n - 16
-
- align 4
-BackInnerLoop:
- mov ecx,DWORD PTR [ebx+eax]
- mov DWORD PTR [esi+edx],ecx ; f[p] = x2[q]
- fld DWORD PTR [edi+eax] ; push x[q]
- fadd st(1),st
- fxch
- fstp DWORD PTR [esi+edx+4] ; f[p + 4] = x[q] + x[q + 4]
- sub eax,4 ; q -= 4
- sub edx,8 ; p -= 8
- jge BackInnerLoop ; Jump back if p >= 0
-
- fstp DWORD PTR [esp+L_dummy] ; Pop (XXX is there a better way to do this?)
- add esi,ebp ; f += n
- add ebx,ebp ; x2 += n
- add edi,ebp ; x += n
- dec DWORD PTR [esp+L_mi] ; mi--
- jg BackMiddleLoop ; Jump back if mi > 0
-
- mov ebx,DWORD PTR [esp+L_m] ; ebx = m (temporarily)
- sar ebx,1 ; Halve m for next iter
- jg BackOuterLoop ; Jump back if m > 0
-
- add esp,L_locals
- pop ebp
-
- }
-}
-