changeset 35165:b924f0df5a1d

Remove our internal mp3lib copy. We have FFmpeg as integrated decoder, and the external mpg123 library should include all important improvements from our mp3lib and is actually properly maintained.
author reimar
date Sun, 21 Oct 2012 12:10:38 +0000
parents bc0898c7399b
children 3b50a42ee737
files Makefile configure etc/codecs.conf libmpcodecs/ad.c libmpcodecs/ad_mp3lib.c libmpcodecs/ad_mp3lib.h mp3lib/dct12.c mp3lib/dct36.c mp3lib/dct36_3dnow.c mp3lib/dct36_k7.c mp3lib/dct64.c mp3lib/dct64_3dnow.c mp3lib/dct64_altivec.c mp3lib/dct64_i386.c mp3lib/dct64_k7.c mp3lib/dct64_mmx.c mp3lib/dct64_sse.c mp3lib/decod386.c mp3lib/decode_i586.c mp3lib/decode_mmx.c mp3lib/equalizer.c mp3lib/huffman.h mp3lib/l2tables.h mp3lib/layer1.c mp3lib/layer2.c mp3lib/layer3.c mp3lib/mp3.h mp3lib/mpg123.h mp3lib/sr1.c mp3lib/tabinit.c mp3lib/test.c mp3lib/test2.c
diffstat 32 files changed, 3 insertions(+), 9792 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Sun Oct 21 11:14:13 2012 +0000
+++ b/Makefile	Sun Oct 21 12:10:38 2012 +0000
@@ -164,21 +164,6 @@
 SRCS_COMMON-$(MNG)                   += libmpdemux/demux_mng.c
 SRCS_COMMON-$(MPG123)                += libmpcodecs/ad_mpg123.c
 
-SRCS_MP3LIB-X86-$(HAVE_AMD3DNOW)     += mp3lib/dct36_3dnow.c \
-                                        mp3lib/dct64_3dnow.c
-SRCS_MP3LIB-X86-$(HAVE_AMD3DNOWEXT)  += mp3lib/dct36_k7.c \
-                                        mp3lib/dct64_k7.c
-SRCS_MP3LIB-X86-$(HAVE_MMX)          += mp3lib/dct64_mmx.c
-SRCS_MP3LIB-$(ARCH_X86_32)           += mp3lib/decode_i586.c \
-                                        $(SRCS_MP3LIB-X86-yes)
-SRCS_MP3LIB-$(HAVE_ALTIVEC)          += mp3lib/dct64_altivec.c
-SRCS_MP3LIB-$(HAVE_MMX)              += mp3lib/decode_mmx.c
-SRCS_MP3LIB-$(HAVE_SSE)              += mp3lib/dct64_sse.c
-SRCS_MP3LIB                          += mp3lib/sr1.c \
-                                        $(SRCS_MP3LIB-yes)
-SRCS_COMMON-$(MP3LIB)                += libmpcodecs/ad_mp3lib.c \
-                                        $(SRCS_MP3LIB)
-
 SRCS_COMMON-$(MUSEPACK)              += libmpcodecs/ad_mpc.c \
                                         libmpdemux/demux_mpc.c
 SRCS_COMMON-$(NATIVE_RTSP)           += stream/stream_rtsp.c \
@@ -1035,9 +1020,7 @@
 loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): CFLAGS += -g
 loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): $(LOADER_TEST_OBJS)
 
-mp3lib/test$(EXESUF) mp3lib/test2$(EXESUF): $(SRCS_MP3LIB:.c=.o) libvo/aclib.o cpudetect.o $(TEST_OBJS)
-
-TESTS = codecs2html codec-cfg-test libvo/aspecttest mp3lib/test mp3lib/test2
+TESTS = codecs2html codec-cfg-test libvo/aspecttest
 
 ifdef ARCH_X86_32
 TESTS += loader/qtx/list loader/qtx/qtxload
--- a/configure	Sun Oct 21 11:14:13 2012 +0000
+++ b/configure	Sun Oct 21 12:10:38 2012 +0000
@@ -449,7 +449,6 @@
   --disable-twolame         disable Twolame (MPEG layer 2) encoding [autodetect]
   --enable-xmms             enable XMMS input plugin support [disabled]
   --enable-libdca           enable libdca support [autodetect]
-  --disable-mp3lib          disable builtin mp3lib [autodetect]
   --disable-liba52          disable liba52 [autodetect]
   --disable-libmpeg2        disable libmpeg2 [autodetect]
   --disable-libmpeg2-internal disable builtin libmpeg2 [autodetect]
@@ -757,7 +756,6 @@
 _libgsm=auto
 _theora=auto
 _mpg123=auto
-_mp3lib=auto
 _liba52=auto
 _libdca=auto
 _libmpeg2=auto
@@ -1156,8 +1154,6 @@
   --disable-theora)     _theora=no      ;;
   --enable-mpg123)      _mpg123=yes     ;;
   --disable-mpg123)     _mpg123=no      ;;
-  --enable-mp3lib)      _mp3lib=yes     ;;
-  --disable-mp3lib)     _mp3lib=no      ;;
   --enable-liba52)      _liba52=yes     ;;
   --disable-liba52)     _liba52=no      ;;
   --enable-libdca)      _libdca=yes     ;;
@@ -6410,19 +6406,6 @@
 fi
 echores "$_theora"
 
-echocheck "mp3lib support"
-if test "$_mp3lib" = auto ; then
-  test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
-fi
-if test "$_mp3lib" = yes ; then
-  def_mp3lib='#define CONFIG_MP3LIB 1'
-  codecmodules="mp3lib(internal) $codecmodules"
-else
-  def_mp3lib='#undef CONFIG_MP3LIB'
-  nocodecmodules="mp3lib(internal) $nocodecmodules"
-fi
-echores "$_mp3lib"
-
 # Any version of libmpg123 that knows MPG123_RESYNC_LIMIT shall be fine.
 # That is, 1.2.0 onwards. Recommened is 1.14 onwards, though.
 echocheck "mpg123 support"
@@ -8251,7 +8234,6 @@
 MGA = $_mga
 MNG = $_mng
 MP3LAME = $_mp3lame
-MP3LIB = $_mp3lib
 MPG123 = $_mpg123
 MUSEPACK = $_musepack
 NAS = $_nas
@@ -8636,7 +8618,6 @@
 $def_mp3lame
 $def_mp3lame_preset
 $def_mp3lame_preset_medium
-$def_mp3lib
 $def_mpg123
 $def_musepack
 $def_speex
--- a/etc/codecs.conf	Sun Oct 21 11:14:13 2012 +0000
+++ b/etc/codecs.conf	Sun Oct 21 12:10:38 2012 +0000
@@ -5048,25 +5048,10 @@
   driver ffmpeg
   dll "sonic"
 
-audiocodec mp3
-  ; this is preferred over ffmp2/ffmp3 since it is faster due to using
-  ; floating point and there are even broken mkv files where the audio
-  ; needs to be parsed, making this codec work more reliably
-  info "mp3lib MPEG layer-2, layer-3"
-  status buggy
-  comment "Barely maintained, miscompiles with newer gcc versions"
-  format 0x50        ; layer-1 && layer-2
-  format 0x55        ; layer-3
-  format 0x5500736d  ; "ms\0\x55" older mp3 fcc (MOV files)
-  format 0x5000736d  ; "ms\0\x50" older mp2 fcc (MOV files)
-  format 0x55005354  ;  broken file
-  fourcc ".mp3"      ; CBR/VBR MP3 (MOV files)
-  fourcc "MP3 "      ; used in .nsv files
-  fourcc "LAME"      ; used in mythtv .nuv files
-  driver mp3lib
-
 audiocodec mpg123
   ; this is preferred over ffmp2/ffmp3 since it is faster, generally
+  ; and there are even broken mkv files where the audio
+  ; needs to be parsed, making this codec work more reliably
   info "MPEG 1.0/2.0/2.5 layers I, II, III"
   status working
   comment "High-performance decoder using libmpg123."
--- a/libmpcodecs/ad.c	Sun Oct 21 11:14:13 2012 +0000
+++ b/libmpcodecs/ad.c	Sun Oct 21 12:10:38 2012 +0000
@@ -66,9 +66,6 @@
 #ifdef CONFIG_MPG123
   &mpcodecs_ad_mpg123,
 #endif
-#ifdef CONFIG_MP3LIB
-  &mpcodecs_ad_mp3lib,
-#endif
 #ifdef CONFIG_LIBA52
   &mpcodecs_ad_liba52,
 #endif
--- a/libmpcodecs/ad_mp3lib.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer 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.
- *
- * MPlayer 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 MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "config.h"
-
-#include "ad_internal.h"
-#include "dec_audio.h"
-#include "ad_mp3lib.h"
-
-static const ad_info_t info =
-{
-	"MPEG layer-2, layer-3",
-	"mp3lib",
-	"Nick Kurshev",
-	"mpg123",
-	"Optimized to MMX/SSE/3Dnow!"
-};
-
-LIBAD_EXTERN(mp3lib)
-
-#include "mp3lib/mp3.h"
-
-static sh_audio_t* dec_audio_sh=NULL;
-
-// MP3 decoder buffer callback:
-int mplayer_audio_read(char *buf,int size){
-  return demux_read_data(dec_audio_sh->ds,buf,size);
-}
-
-static int preinit(sh_audio_t *sh)
-{
-  sh->audio_out_minsize=32*36*2*2; //4608;
-  return 1;
-}
-
-static int init(sh_audio_t *sh)
-{
-  // MPEG Audio:
-  dec_audio_sh=sh; // save sh_audio for the callback:
-//  MP3_Init(fakemono,mplayer_accel,&mplayer_audio_read); // TODO!!!
-#ifdef CONFIG_FAKE_MONO
-  MP3_Init(fakemono);
-#else
-  MP3_Init();
-#endif
-  MP3_samplerate=MP3_channels=0;
-  sh->a_buffer_len=MP3_DecodeFrame(sh->a_buffer,-1);
-  if(!sh->a_buffer_len) return 0; // unsupported layer/format
-  sh->channels=2; // hack
-  sh->samplesize=2;
-  sh->samplerate=MP3_samplerate;
-  sh->i_bps=MP3_bitrate*(1000/8);
-  MP3_PrintHeader();
-  return 1;
-}
-
-static void uninit(sh_audio_t *sh)
-{
-}
-
-static int control(sh_audio_t *sh,int cmd,void* arg, ...)
-{
-    switch(cmd)
-    {
-      case ADCTRL_RESYNC_STREAM:
-          MP3_DecodeFrame(NULL,-2); // resync
-          MP3_DecodeFrame(NULL,-2); // resync
-          MP3_DecodeFrame(NULL,-2); // resync
-	  return CONTROL_TRUE;
-      case ADCTRL_SKIP_FRAME:
-	  MP3_DecodeFrame(NULL,-2); // skip MPEG frame
-	  return CONTROL_TRUE;
-    }
-  return CONTROL_UNKNOWN;
-}
-
-static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen)
-{
-   return MP3_DecodeFrame(buf,-1);
-}
--- a/libmpcodecs/ad_mp3lib.h	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer 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.
- *
- * MPlayer 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 MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef MPLAYER_AD_MP3LIB_H
-#define MPLAYER_AD_MP3LIB_H
-
-int mplayer_audio_read(char *buf, int size);
-
-#endif /* MPLAYER_AD_MP3LIB_H */
--- a/mp3lib/dct12.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * new DCT12
- */
-static void dct12(real *in,real *rawout1,real *rawout2,register real *wi,register real *ts)
-{
-#define DCT12_PART1 \
-             in5 = in[5*3];  \
-     in5 += (in4 = in[4*3]); \
-     in4 += (in3 = in[3*3]); \
-     in3 += (in2 = in[2*3]); \
-     in2 += (in1 = in[1*3]); \
-     in1 += (in0 = in[0*3]); \
-                             \
-     in5 += in3; in3 += in1; \
-                             \
-     in2 *= COS6_1; \
-     in3 *= COS6_1; \
-
-#define DCT12_PART2 \
-     in0 += in4 * COS6_2; \
-                          \
-     in4 = in0 + in2;     \
-     in0 -= in2;          \
-                          \
-     in1 += in5 * COS6_2; \
-                          \
-     in5 = (in1 + in3) * tfcos12[0]; \
-     in1 = (in1 - in3) * tfcos12[2]; \
-                         \
-     in3 = in4 + in5;    \
-     in4 -= in5;         \
-                         \
-     in2 = in0 + in1;    \
-     in0 -= in1;
-
-
-   {
-     real in0,in1,in2,in3,in4,in5;
-     register real *out1 = rawout1;
-     ts[SBLIMIT*0] = out1[0]; ts[SBLIMIT*1] = out1[1]; ts[SBLIMIT*2] = out1[2];
-     ts[SBLIMIT*3] = out1[3]; ts[SBLIMIT*4] = out1[4]; ts[SBLIMIT*5] = out1[5];
-
-     DCT12_PART1
-
-     {
-       real tmp0,tmp1 = (in0 - in4);
-       {
-         real tmp2 = (in1 - in5) * tfcos12[1];
-         tmp0 = tmp1 + tmp2;
-         tmp1 -= tmp2;
-       }
-       ts[(17-1)*SBLIMIT] = out1[17-1] + tmp0 * wi[11-1];
-       ts[(12+1)*SBLIMIT] = out1[12+1] + tmp0 * wi[6+1];
-       ts[(6 +1)*SBLIMIT] = out1[6 +1] + tmp1 * wi[1];
-       ts[(11-1)*SBLIMIT] = out1[11-1] + tmp1 * wi[5-1];
-     }
-
-     DCT12_PART2
-
-     ts[(17-0)*SBLIMIT] = out1[17-0] + in2 * wi[11-0];
-     ts[(12+0)*SBLIMIT] = out1[12+0] + in2 * wi[6+0];
-     ts[(12+2)*SBLIMIT] = out1[12+2] + in3 * wi[6+2];
-     ts[(17-2)*SBLIMIT] = out1[17-2] + in3 * wi[11-2];
-
-     ts[(6+0)*SBLIMIT]  = out1[6+0] + in0 * wi[0];
-     ts[(11-0)*SBLIMIT] = out1[11-0] + in0 * wi[5-0];
-     ts[(6+2)*SBLIMIT]  = out1[6+2] + in4 * wi[2];
-     ts[(11-2)*SBLIMIT] = out1[11-2] + in4 * wi[5-2];
-  }
-
-  in++;
-
-  {
-     real in0,in1,in2,in3,in4,in5;
-     register real *out2 = rawout2;
-
-     DCT12_PART1
-
-     {
-       real tmp0,tmp1 = (in0 - in4);
-       {
-         real tmp2 = (in1 - in5) * tfcos12[1];
-         tmp0 = tmp1 + tmp2;
-         tmp1 -= tmp2;
-       }
-       out2[5-1] = tmp0 * wi[11-1];
-       out2[0+1] = tmp0 * wi[6+1];
-       ts[(12+1)*SBLIMIT] += tmp1 * wi[1];
-       ts[(17-1)*SBLIMIT] += tmp1 * wi[5-1];
-     }
-
-     DCT12_PART2
-
-     out2[5-0] = in2 * wi[11-0];
-     out2[0+0] = in2 * wi[6+0];
-     out2[0+2] = in3 * wi[6+2];
-     out2[5-2] = in3 * wi[11-2];
-
-     ts[(12+0)*SBLIMIT] += in0 * wi[0];
-     ts[(17-0)*SBLIMIT] += in0 * wi[5-0];
-     ts[(12+2)*SBLIMIT] += in4 * wi[2];
-     ts[(17-2)*SBLIMIT] += in4 * wi[5-2];
-  }
-
-  in++;
-
-  {
-     real in0,in1,in2,in3,in4,in5;
-     register real *out2 = rawout2;
-     out2[12]=out2[13]=out2[14]=out2[15]=out2[16]=out2[17]=0.0;
-
-     DCT12_PART1
-
-     {
-       real tmp0,tmp1 = (in0 - in4);
-       {
-         real tmp2 = (in1 - in5) * tfcos12[1];
-         tmp0 = tmp1 + tmp2;
-         tmp1 -= tmp2;
-       }
-       out2[11-1] = tmp0 * wi[11-1];
-       out2[6 +1] = tmp0 * wi[6+1];
-       out2[0+1] += tmp1 * wi[1];
-       out2[5-1] += tmp1 * wi[5-1];
-     }
-
-     DCT12_PART2
-
-     out2[11-0] = in2 * wi[11-0];
-     out2[6 +0] = in2 * wi[6+0];
-     out2[6 +2] = in3 * wi[6+2];
-     out2[11-2] = in3 * wi[11-2];
-
-     out2[0+0] += in0 * wi[0];
-     out2[5-0] += in0 * wi[5-0];
-     out2[0+2] += in4 * wi[2];
-     out2[5-2] += in4 * wi[5-2];
-  }
-}
--- a/mp3lib/dct36.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
-// This is an optimized DCT from Jeff Tsay's maplay 1.2+ package.
-// Saved one multiplication by doing the 'twiddle factor' stuff
-// together with the window mul. (MH)
-//
-// This uses Byeong Gi Lee's Fast Cosine Transform algorithm, but the
-// 9 point IDCT needs to be reduced further. Unfortunately, I don't
-// know how to do that, because 9 is not an even number. - Jeff.
-//
-//////////////////////////////////////////////////////////////////
-//
-// 9 Point Inverse Discrete Cosine Transform
-//
-// This piece of code is Copyright 1997 Mikko Tommila and is freely usable
-// by anybody. The algorithm itself is of course in the public domain.
-//
-// Again derived heuristically from the 9-point WFTA.
-//
-// The algorithm is optimized (?) for speed, not for small rounding errors or
-// good readability.
-//
-// 36 additions, 11 multiplications
-//
-// Again this is very likely sub-optimal.
-//
-// The code is optimized to use a minimum number of temporary variables,
-// so it should compile quite well even on 8-register Intel x86 processors.
-// This makes the code quite obfuscated and very difficult to understand.
-//
-// References:
-// [1] S. Winograd: "On Computing the Discrete Fourier Transform",
-//     Mathematics of Computation, Volume 32, Number 141, January 1978,
-//     Pages 175-199
-*/
-
-/*------------------------------------------------------------------*/
-/*                                                                  */
-/*    Function: Calculation of the inverse MDCT                     */
-/*                                                                  */
-/*------------------------------------------------------------------*/
-
-static void dct36(real *inbuf,real *o1,real *o2,real *wintab,real *tsbuf)
-{
-#ifdef NEW_DCT9
-  real tmp[18];
-#endif
-
-  {
-    register real *in = inbuf;
-
-    in[17]+=in[16]; in[16]+=in[15]; in[15]+=in[14];
-    in[14]+=in[13]; in[13]+=in[12]; in[12]+=in[11];
-    in[11]+=in[10]; in[10]+=in[9];  in[9] +=in[8];
-    in[8] +=in[7];  in[7] +=in[6];  in[6] +=in[5];
-    in[5] +=in[4];  in[4] +=in[3];  in[3] +=in[2];
-    in[2] +=in[1];  in[1] +=in[0];
-
-    in[17]+=in[15]; in[15]+=in[13]; in[13]+=in[11]; in[11]+=in[9];
-    in[9] +=in[7];  in[7] +=in[5];  in[5] +=in[3];  in[3] +=in[1];
-
-
-#ifdef NEW_DCT9
-    {
-      real t0, t1, t2, t3, t4, t5, t6, t7;
-
-      t1 = COS6_2 * in[12];
-      t2 = COS6_2 * (in[8] + in[16] - in[4]);
-
-      t3 = in[0] + t1;
-      t4 = in[0] - t1 - t1;
-      t5 = t4 - t2;
-
-      t0 = cos9[0] * (in[4] + in[8]);
-      t1 = cos9[1] * (in[8] - in[16]);
-
-      tmp[4] = t4 + t2 + t2;
-      t2 = cos9[2] * (in[4] + in[16]);
-
-      t6 = t3 - t0 - t2;
-      t0 += t3 + t1;
-      t3 += t2 - t1;
-
-      t2 = cos18[0] * (in[2]  + in[10]);
-      t4 = cos18[1] * (in[10] - in[14]);
-      t7 = COS6_1 * in[6];
-
-      t1 = t2 + t4 + t7;
-      tmp[0] = t0 + t1;
-      tmp[8] = t0 - t1;
-      t1 = cos18[2] * (in[2] + in[14]);
-      t2 += t1 - t7;
-
-      tmp[3] = t3 + t2;
-      t0 = COS6_1 * (in[10] + in[14] - in[2]);
-      tmp[5] = t3 - t2;
-
-      t4 -= t1 + t7;
-
-      tmp[1] = t5 - t0;
-      tmp[7] = t5 + t0;
-      tmp[2] = t6 + t4;
-      tmp[6] = t6 - t4;
-    }
-
-    {
-      real t0, t1, t2, t3, t4, t5, t6, t7;
-
-      t1 = COS6_2 * in[13];
-      t2 = COS6_2 * (in[9] + in[17] - in[5]);
-
-      t3 = in[1] + t1;
-      t4 = in[1] - t1 - t1;
-      t5 = t4 - t2;
-
-      t0 = cos9[0] * (in[5] + in[9]);
-      t1 = cos9[1] * (in[9] - in[17]);
-
-      tmp[13] = (t4 + t2 + t2) * tfcos36[17-13];
-      t2 = cos9[2] * (in[5] + in[17]);
-
-      t6 = t3 - t0 - t2;
-      t0 += t3 + t1;
-      t3 += t2 - t1;
-
-      t2 = cos18[0] * (in[3]  + in[11]);
-      t4 = cos18[1] * (in[11] - in[15]);
-      t7 = COS6_1 * in[7];
-
-      t1 = t2 + t4 + t7;
-      tmp[17] = (t0 + t1) * tfcos36[17-17];
-      tmp[9]  = (t0 - t1) * tfcos36[17-9];
-      t1 = cos18[2] * (in[3] + in[15]);
-      t2 += t1 - t7;
-
-      tmp[14] = (t3 + t2) * tfcos36[17-14];
-      t0 = COS6_1 * (in[11] + in[15] - in[3]);
-      tmp[12] = (t3 - t2) * tfcos36[17-12];
-
-      t4 -= t1 + t7;
-
-      tmp[16] = (t5 - t0) * tfcos36[17-16];
-      tmp[10] = (t5 + t0) * tfcos36[17-10];
-      tmp[15] = (t6 + t4) * tfcos36[17-15];
-      tmp[11] = (t6 - t4) * tfcos36[17-11];
-   }
-
-#define MACRO(v) { \
-    real tmpval; \
-    real sum0 = tmp[(v)]; \
-    real sum1 = tmp[17-(v)]; \
-    out2[9+(v)] = (tmpval = sum0 + sum1) * w[27+(v)]; \
-    out2[8-(v)] = tmpval * w[26-(v)]; \
-    sum0 -= sum1; \
-    ts[SBLIMIT*(8-(v))] = out1[8-(v)] + sum0 * w[8-(v)]; \
-    ts[SBLIMIT*(9+(v))] = out1[9+(v)] + sum0 * w[9+(v)]; }
-
-{
-   register real *out2 = o2;
-   register real *w = wintab;
-   register real *out1 = o1;
-   register real *ts = tsbuf;
-
-   MACRO(0);
-   MACRO(1);
-   MACRO(2);
-   MACRO(3);
-   MACRO(4);
-   MACRO(5);
-   MACRO(6);
-   MACRO(7);
-   MACRO(8);
-}
-
-#else
-
-  {
-
-#define MACRO0(v) { \
-    real tmp; \
-    out2[9+(v)] = (tmp = sum0 + sum1) * w[27+(v)]; \
-    out2[8-(v)] = tmp * w[26-(v)];  } \
-    sum0 -= sum1; \
-    ts[SBLIMIT*(8-(v))] = out1[8-(v)] + sum0 * w[8-(v)]; \
-    ts[SBLIMIT*(9+(v))] = out1[9+(v)] + sum0 * w[9+(v)];
-#define MACRO1(v) { \
-    real sum0, sum1; \
-    sum0 = tmp1a + tmp2a; \
-    sum1 = (tmp1b + tmp2b) * tfcos36[(v)]; \
-    MACRO0(v); }
-#define MACRO2(v) { \
-    real sum0, sum1; \
-    sum0 = tmp2a - tmp1a; \
-    sum1 = (tmp2b - tmp1b) * tfcos36[(v)]; \
-    MACRO0(v); }
-
-    register const real *c = COS9;
-    register real *out2 = o2;
-    register real *w    = wintab;
-    register real *out1 = o1;
-    register real *ts   = tsbuf;
-
-    real ta33,ta66,tb33,tb66;
-
-    ta33 = in[2*3+0] * c[3];
-    ta66 = in[2*6+0] * c[6];
-    tb33 = in[2*3+1] * c[3];
-    tb66 = in[2*6+1] * c[6];
-
-    {
-      real tmp1a,tmp2a,tmp1b,tmp2b;
-      tmp1a =             in[2*1+0] * c[1] + ta33 + in[2*5+0] * c[5] + in[2*7+0] * c[7];
-      tmp1b =             in[2*1+1] * c[1] + tb33 + in[2*5+1] * c[5] + in[2*7+1] * c[7];
-      tmp2a = in[2*0+0] + in[2*2+0] * c[2] + in[2*4+0] * c[4] + ta66 + in[2*8+0] * c[8];
-      tmp2b = in[2*0+1] + in[2*2+1] * c[2] + in[2*4+1] * c[4] + tb66 + in[2*8+1] * c[8];
-
-      MACRO1(0);
-      MACRO2(8);
-    }
-
-    {
-      real tmp1a,tmp2a,tmp1b,tmp2b;
-      tmp1a = ( in[2*1+0] - in[2*5+0] - in[2*7+0] ) * c[3];
-      tmp1b = ( in[2*1+1] - in[2*5+1] - in[2*7+1] ) * c[3];
-      tmp2a = ( in[2*2+0] - in[2*4+0] - in[2*8+0] ) * c[6] - in[2*6+0] + in[2*0+0];
-      tmp2b = ( in[2*2+1] - in[2*4+1] - in[2*8+1] ) * c[6] - in[2*6+1] + in[2*0+1];
-
-      MACRO1(1);
-      MACRO2(7);
-    }
-
-    {
-      real tmp1a,tmp2a,tmp1b,tmp2b;
-      tmp1a =             in[2*1+0] * c[5] - ta33 - in[2*5+0] * c[7] + in[2*7+0] * c[1];
-      tmp1b =             in[2*1+1] * c[5] - tb33 - in[2*5+1] * c[7] + in[2*7+1] * c[1];
-      tmp2a = in[2*0+0] - in[2*2+0] * c[8] - in[2*4+0] * c[2] + ta66 + in[2*8+0] * c[4];
-      tmp2b = in[2*0+1] - in[2*2+1] * c[8] - in[2*4+1] * c[2] + tb66 + in[2*8+1] * c[4];
-
-      MACRO1(2);
-      MACRO2(6);
-    }
-
-    {
-      real tmp1a,tmp2a,tmp1b,tmp2b;
-      tmp1a =             in[2*1+0] * c[7] - ta33 + in[2*5+0] * c[1] - in[2*7+0] * c[5];
-      tmp1b =             in[2*1+1] * c[7] - tb33 + in[2*5+1] * c[1] - in[2*7+1] * c[5];
-      tmp2a = in[2*0+0] - in[2*2+0] * c[4] + in[2*4+0] * c[8] + ta66 - in[2*8+0] * c[2];
-      tmp2b = in[2*0+1] - in[2*2+1] * c[4] + in[2*4+1] * c[8] + tb66 - in[2*8+1] * c[2];
-
-      MACRO1(3);
-      MACRO2(5);
-    }
-
-    {
-      real sum0,sum1;
-      sum0 =  in[2*0+0] - in[2*2+0] + in[2*4+0] - in[2*6+0] + in[2*8+0];
-      sum1 = (in[2*0+1] - in[2*2+1] + in[2*4+1] - in[2*6+1] + in[2*8+1] ) * tfcos36[4];
-      MACRO0(4);
-    }
-  }
-#endif
-
-  }
-}
--- a/mp3lib/dct36_3dnow.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,502 +0,0 @@
-/*
- * dct36_3dnow.c - 3DNow! optimized dct36()
- *
- * This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
- * <squash@mb.kcom.ne.jp>, only two types of changes have been made:
- *
- * - removed PREFETCH instruction for speedup
- * - changed function name for support 3DNow! automatic detection
- *
- * You can find Kashiyama's original 3dnow! support patch
- * (for mpg123-0.59o) at
- * http://user.ecc.u-tokyo.ac.jp/~g810370/linux-simd/ (Japanese).
- *
- * by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> - until 31.Mar.1999
- *                    <kim@comtec.co.jp>               - after  1.Apr.1999
- *
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- *
- * Original disclaimer:
- *  The author of this program disclaim whole expressed or implied
- *  warranties with regard to this program, and in no event shall the
- *  author of this program liable to whatever resulted from the use of
- *  this program. Use it at your own risk.
- *
- * 2003/06/21: Moved to GCC inline assembly - Alex Beregszaszi
- */
-
-#include "config.h"
-#include "mangle.h"
-#include "mpg123.h"
-#include "libavutil/x86_cpu.h"
-
-#ifdef DCT36_OPTIMIZE_FOR_K7
-void dct36_3dnowex(real *inbuf, real *o1,
-    real *o2, real *wintab, real *tsbuf)
-#else
-void dct36_3dnow(real *inbuf, real *o1,
-    real *o2, real *wintab, real *tsbuf)
-#endif
-{
-    __asm__ volatile(
-        "movq (%%"REG_a"),%%mm0\n\t"
-        "movq 4(%%"REG_a"),%%mm1\n\t"
-        "pfadd %%mm1,%%mm0\n\t"
-        "movq %%mm0,4(%%"REG_a")\n\t"
-        "psrlq $32,%%mm1\n\t"
-        "movq 12(%%"REG_a"),%%mm2\n\t"
-        "punpckldq %%mm2,%%mm1\n\t"
-        "pfadd %%mm2,%%mm1\n\t"
-        "movq %%mm1,12(%%"REG_a")\n\t"
-        "psrlq $32,%%mm2\n\t"
-        "movq 20(%%"REG_a"),%%mm3\n\t"
-        "punpckldq %%mm3,%%mm2\n\t"
-        "pfadd %%mm3,%%mm2\n\t"
-        "movq %%mm2,20(%%"REG_a")\n\t"
-        "psrlq $32,%%mm3\n\t"
-        "movq 28(%%"REG_a"),%%mm4\n\t"
-        "punpckldq %%mm4,%%mm3\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "movq %%mm3,28(%%"REG_a")\n\t"
-        "psrlq $32,%%mm4\n\t"
-        "movq 36(%%"REG_a"),%%mm5\n\t"
-        "punpckldq %%mm5,%%mm4\n\t"
-        "pfadd %%mm5,%%mm4\n\t"
-        "movq %%mm4,36(%%"REG_a")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movq 44(%%"REG_a"),%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movq %%mm5,44(%%"REG_a")\n\t"
-        "psrlq $32,%%mm6\n\t"
-        "movq 52(%%"REG_a"),%%mm7\n\t"
-        "punpckldq %%mm7,%%mm6\n\t"
-        "pfadd %%mm7,%%mm6\n\t"
-        "movq %%mm6,52(%%"REG_a")\n\t"
-        "psrlq $32,%%mm7\n\t"
-        "movq 60(%%"REG_a"),%%mm0\n\t"
-        "punpckldq %%mm0,%%mm7\n\t"
-        "pfadd %%mm0,%%mm7\n\t"
-        "movq %%mm7,60(%%"REG_a")\n\t"
-        "psrlq $32,%%mm0\n\t"
-        "movd 68(%%"REG_a"),%%mm1\n\t"
-        "pfadd %%mm1,%%mm0\n\t"
-        "movd %%mm0,68(%%"REG_a")\n\t"
-        "movd 4(%%"REG_a"),%%mm0\n\t"
-        "movd 12(%%"REG_a"),%%mm1\n\t"
-        "punpckldq %%mm1,%%mm0\n\t"
-        "punpckldq 20(%%"REG_a"),%%mm1\n\t"
-        "pfadd %%mm1,%%mm0\n\t"
-        "movd %%mm0,12(%%"REG_a")\n\t"
-        "psrlq $32,%%mm0\n\t"
-        "movd %%mm0,20(%%"REG_a")\n\t"
-        "psrlq $32,%%mm1\n\t"
-        "movd 28(%%"REG_a"),%%mm2\n\t"
-        "punpckldq %%mm2,%%mm1\n\t"
-        "punpckldq 36(%%"REG_a"),%%mm2\n\t"
-        "pfadd %%mm2,%%mm1\n\t"
-        "movd %%mm1,28(%%"REG_a")\n\t"
-        "psrlq $32,%%mm1\n\t"
-        "movd %%mm1,36(%%"REG_a")\n\t"
-        "psrlq $32,%%mm2\n\t"
-        "movd 44(%%"REG_a"),%%mm3\n\t"
-        "punpckldq %%mm3,%%mm2\n\t"
-        "punpckldq 52(%%"REG_a"),%%mm3\n\t"
-        "pfadd %%mm3,%%mm2\n\t"
-        "movd %%mm2,44(%%"REG_a")\n\t"
-        "psrlq $32,%%mm2\n\t"
-        "movd %%mm2,52(%%"REG_a")\n\t"
-        "psrlq $32,%%mm3\n\t"
-        "movd 60(%%"REG_a"),%%mm4\n\t"
-        "punpckldq %%mm4,%%mm3\n\t"
-        "punpckldq 68(%%"REG_a"),%%mm4\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "movd %%mm3,60(%%"REG_a")\n\t"
-        "psrlq $32,%%mm3\n\t"
-        "movd %%mm3,68(%%"REG_a")\n\t"
-
-        "movq 24(%%"REG_a"),%%mm0\n\t"
-        "movq 48(%%"REG_a"),%%mm1\n\t"
-        "movd "MANGLE(COS9)"+12,%%mm2\n\t"
-        "punpckldq %%mm2,%%mm2\n\t"
-        "movd "MANGLE(COS9)"+24,%%mm3\n\t"
-        "punpckldq %%mm3,%%mm3\n\t"
-        "pfmul %%mm2,%%mm0\n\t"
-        "pfmul %%mm3,%%mm1\n\t"
-        "push %%"REG_a"\n\t"
-        "movl $1,%%eax\n\t"
-        "movd %%eax,%%mm7\n\t"
-        "pi2fd %%mm7,%%mm7\n\t"
-        "pop %%"REG_a"\n\t"
-        "movq 8(%%"REG_a"),%%mm2\n\t"
-        "movd "MANGLE(COS9)"+4,%%mm3\n\t"
-        "punpckldq %%mm3,%%mm3\n\t"
-        "pfmul %%mm3,%%mm2\n\t"
-        "pfadd %%mm0,%%mm2\n\t"
-        "movq 40(%%"REG_a"),%%mm3\n\t"
-        "movd "MANGLE(COS9)"+20,%%mm4\n\t"
-        "punpckldq %%mm4,%%mm4\n\t"
-        "pfmul %%mm4,%%mm3\n\t"
-        "pfadd %%mm3,%%mm2\n\t"
-        "movq 56(%%"REG_a"),%%mm3\n\t"
-        "movd "MANGLE(COS9)"+28,%%mm4\n\t"
-        "punpckldq %%mm4,%%mm4\n\t"
-        "pfmul %%mm4,%%mm3\n\t"
-        "pfadd %%mm3,%%mm2\n\t"
-        "movq (%%"REG_a"),%%mm3\n\t"
-        "movq 16(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+8,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "movq 32(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+16,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "pfadd %%mm1,%%mm3\n\t"
-        "movq 64(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+32,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "movq %%mm2,%%mm4\n\t"
-        "pfadd %%mm3,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+0,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 108(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 104(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-#ifdef DCT36_OPTIMIZE_FOR_K7
-        "pswapd %%mm5,%%mm5\n\t"
-        "movq %%mm5,32(%%"REG_c")\n\t"
-#else
-        "movd %%mm5,36(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,32(%%"REG_c")\n\t"
-#endif
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 32(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 36(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 32(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 36(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,1024(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,1152(%%"REG_D")\n\t"
-        "movq %%mm3,%%mm4\n\t"
-        "pfsub %%mm2,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+32,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 140(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 72(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,68(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,0(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 0(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 68(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 0(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 68(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,0(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,2176(%%"REG_D")\n\t"
-        "movq 8(%%"REG_a"),%%mm2\n\t"
-        "movq 40(%%"REG_a"),%%mm3\n\t"
-        "pfsub %%mm3,%%mm2\n\t"
-        "movq 56(%%"REG_a"),%%mm3\n\t"
-        "pfsub %%mm3,%%mm2\n\t"
-        "movd "MANGLE(COS9)"+12,%%mm3\n\t"
-        "punpckldq %%mm3,%%mm3\n\t"
-        "pfmul %%mm3,%%mm2\n\t"
-        "movq 16(%%"REG_a"),%%mm3\n\t"
-        "movq 32(%%"REG_a"),%%mm4\n\t"
-        "pfsub %%mm4,%%mm3\n\t"
-        "movq 64(%%"REG_a"),%%mm4\n\t"
-        "pfsub %%mm4,%%mm3\n\t"
-        "movd "MANGLE(COS9)"+24,%%mm4\n\t"
-        "punpckldq %%mm4,%%mm4\n\t"
-        "pfmul %%mm4,%%mm3\n\t"
-        "movq 48(%%"REG_a"),%%mm4\n\t"
-        "pfsub %%mm4,%%mm3\n\t"
-        "movq (%%"REG_a"),%%mm4\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "movq %%mm2,%%mm4\n\t"
-        "pfadd %%mm3,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+4,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 112(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 100(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,40(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,28(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 28(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 40(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 28(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 40(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,896(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,1280(%%"REG_D")\n\t"
-        "movq %%mm3,%%mm4\n\t"
-        "pfsub %%mm2,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+28,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 136(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 76(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,64(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,4(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 4(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 64(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 4(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 64(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,128(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,2048(%%"REG_D")\n\t"
-
-        "movq 8(%%"REG_a"),%%mm2\n\t"
-        "movd "MANGLE(COS9)"+20,%%mm3\n\t"
-        "punpckldq %%mm3,%%mm3\n\t"
-        "pfmul %%mm3,%%mm2\n\t"
-        "pfsub %%mm0,%%mm2\n\t"
-        "movq 40(%%"REG_a"),%%mm3\n\t"
-        "movd "MANGLE(COS9)"+28,%%mm4\n\t"
-        "punpckldq %%mm4,%%mm4\n\t"
-        "pfmul %%mm4,%%mm3\n\t"
-        "pfsub %%mm3,%%mm2\n\t"
-        "movq 56(%%"REG_a"),%%mm3\n\t"
-        "movd "MANGLE(COS9)"+4,%%mm4\n\t"
-        "punpckldq %%mm4,%%mm4\n\t"
-        "pfmul %%mm4,%%mm3\n\t"
-        "pfadd %%mm3,%%mm2\n\t"
-        "movq (%%"REG_a"),%%mm3\n\t"
-        "movq 16(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+32,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfsub %%mm4,%%mm3\n\t"
-        "movq 32(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+8,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfsub %%mm4,%%mm3\n\t"
-        "pfadd %%mm1,%%mm3\n\t"
-        "movq 64(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+16,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "movq %%mm2,%%mm4\n\t"
-        "pfadd %%mm3,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+8,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 116(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 96(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,44(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,24(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 24(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 44(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 24(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 44(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,768(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,1408(%%"REG_D")\n\t"
-        "movq %%mm3,%%mm4\n\t"
-        "pfsub %%mm2,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+24,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 132(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 80(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,60(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,8(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 8(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 60(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 8(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 60(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,256(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,1920(%%"REG_D")\n\t"
-        "movq 8(%%"REG_a"),%%mm2\n\t"
-        "movd "MANGLE(COS9)"+28,%%mm3\n\t"
-        "punpckldq %%mm3,%%mm3\n\t"
-        "pfmul %%mm3,%%mm2\n\t"
-        "pfsub %%mm0,%%mm2\n\t"
-        "movq 40(%%"REG_a"),%%mm3\n\t"
-        "movd "MANGLE(COS9)"+4,%%mm4\n\t"
-        "punpckldq %%mm4,%%mm4\n\t"
-        "pfmul %%mm4,%%mm3\n\t"
-        "pfadd %%mm3,%%mm2\n\t"
-        "movq 56(%%"REG_a"),%%mm3\n\t"
-        "movd "MANGLE(COS9)"+20,%%mm4\n\t"
-        "punpckldq %%mm4,%%mm4\n\t"
-        "pfmul %%mm4,%%mm3\n\t"
-        "pfsub %%mm3,%%mm2\n\t"
-        "movq (%%"REG_a"),%%mm3\n\t"
-        "movq 16(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+16,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfsub %%mm4,%%mm3\n\t"
-        "movq 32(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+32,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfadd %%mm4,%%mm3\n\t"
-        "pfadd %%mm1,%%mm3\n\t"
-        "movq 64(%%"REG_a"),%%mm4\n\t"
-        "movd "MANGLE(COS9)"+8,%%mm5\n\t"
-        "punpckldq %%mm5,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "pfsub %%mm4,%%mm3\n\t"
-        "movq %%mm2,%%mm4\n\t"
-        "pfadd %%mm3,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+12,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 120(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 92(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,48(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,20(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 20(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 48(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 20(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 48(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,640(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,1536(%%"REG_D")\n\t"
-        "movq %%mm3,%%mm4\n\t"
-        "pfsub %%mm2,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+20,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 128(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 84(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,56(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,12(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 12(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 56(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 12(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 56(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,384(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,1792(%%"REG_D")\n\t"
-
-        "movq (%%"REG_a"),%%mm4\n\t"
-        "movq 16(%%"REG_a"),%%mm3\n\t"
-        "pfsub %%mm3,%%mm4\n\t"
-        "movq 32(%%"REG_a"),%%mm3\n\t"
-        "pfadd %%mm3,%%mm4\n\t"
-        "movq 48(%%"REG_a"),%%mm3\n\t"
-        "pfsub %%mm3,%%mm4\n\t"
-        "movq 64(%%"REG_a"),%%mm3\n\t"
-        "pfadd %%mm3,%%mm4\n\t"
-        "movq %%mm7,%%mm5\n\t"
-        "punpckldq "MANGLE(tfcos36)"+16,%%mm5\n\t"
-        "pfmul %%mm5,%%mm4\n\t"
-        "movq %%mm4,%%mm5\n\t"
-        "pfacc %%mm5,%%mm5\n\t"
-        "movd 124(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 88(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd %%mm5,52(%%"REG_c")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,16(%%"REG_c")\n\t"
-        "movq %%mm4,%%mm6\n\t"
-        "punpckldq %%mm6,%%mm5\n\t"
-        "pfsub %%mm6,%%mm5\n\t"
-        "punpckhdq %%mm5,%%mm5\n\t"
-        "movd 16(%%"REG_d"),%%mm6\n\t"
-        "punpckldq 52(%%"REG_d"),%%mm6\n\t"
-        "pfmul %%mm6,%%mm5\n\t"
-        "movd 16(%%"REG_S"),%%mm6\n\t"
-        "punpckldq 52(%%"REG_S"),%%mm6\n\t"
-        "pfadd %%mm6,%%mm5\n\t"
-        "movd %%mm5,512(%%"REG_D")\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "movd %%mm5,1664(%%"REG_D")\n\t"
-
-        "femms\n\t"
-        :
-        : "a" (inbuf), "S" (o1), "c" (o2), "d" (wintab), "D" (tsbuf)
-        : "memory");
-}
--- a/mp3lib/dct36_k7.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * dct36_k7.c - 3DNowEx(DSP)! optimized dct36()
- *
- * This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
- * <squash@mb.kcom.ne.jp>, only two types of changes have been made:
- *
- * - added new opcode PSWAPD
- * - removed PREFETCH instruction for speedup
- * - changed function name for support 3DNowEx! automatic detection
- *
- * note: because K7 processors are an aggresive out-of-order three-way
- *       superscalar ones instruction order is not significand for them.
- *
- * You can find Kashiyama's original 3dnow! support patch
- * (for mpg123-0.59o) at
- * http://user.ecc.u-tokyo.ac.jp/~g810370/linux-simd/ (Japanese).
- *
- * by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> - until 31.Mar.1999
- *                    <kim@comtec.co.jp>               - after  1.Apr.1999
- *
- * Original disclaimer:
- *  The author of this program disclaim whole expressed or implied
- *  warranties with regard to this program, and in no event shall the
- *  author of this program liable to whatever resulted from the use of
- *  this program. Use it at your own risk.
- *
- * Modified by Nick Kurshev <nickols_k@mail.ru>
- *
- * 2003/06/21: Moved to GCC inline assembly - Alex Beregszaszi
- */
-
-#define DCT36_OPTIMIZE_FOR_K7
-
-#include "dct36_3dnow.c"
--- a/mp3lib/dct64.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,323 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
- * Discrete Cosine Tansform (DCT) for subband synthesis
- * optimized for machines with no auto-increment.
- * The performance is highly compiler dependend. Maybe
- * the dct64.c version for 'normal' processor may be faster
- * even for Intel processors.
- */
-
-static void dct64_1(real *out0,real *out1,real *b1,real *b2,real *samples)
-{
-
- {
-  register real *costab = mp3lib_pnts[0];
-
-  b1[0x00] = samples[0x00] + samples[0x1F];
-  b1[0x1F] = (samples[0x00] - samples[0x1F]) * costab[0x0];
-
-  b1[0x01] = samples[0x01] + samples[0x1E];
-  b1[0x1E] = (samples[0x01] - samples[0x1E]) * costab[0x1];
-
-  b1[0x02] = samples[0x02] + samples[0x1D];
-  b1[0x1D] = (samples[0x02] - samples[0x1D]) * costab[0x2];
-
-  b1[0x03] = samples[0x03] + samples[0x1C];
-  b1[0x1C] = (samples[0x03] - samples[0x1C]) * costab[0x3];
-
-  b1[0x04] = samples[0x04] + samples[0x1B];
-  b1[0x1B] = (samples[0x04] - samples[0x1B]) * costab[0x4];
-
-  b1[0x05] = samples[0x05] + samples[0x1A];
-  b1[0x1A] = (samples[0x05] - samples[0x1A]) * costab[0x5];
-
-  b1[0x06] = samples[0x06] + samples[0x19];
-  b1[0x19] = (samples[0x06] - samples[0x19]) * costab[0x6];
-
-  b1[0x07] = samples[0x07] + samples[0x18];
-  b1[0x18] = (samples[0x07] - samples[0x18]) * costab[0x7];
-
-  b1[0x08] = samples[0x08] + samples[0x17];
-  b1[0x17] = (samples[0x08] - samples[0x17]) * costab[0x8];
-
-  b1[0x09] = samples[0x09] + samples[0x16];
-  b1[0x16] = (samples[0x09] - samples[0x16]) * costab[0x9];
-
-  b1[0x0A] = samples[0x0A] + samples[0x15];
-  b1[0x15] = (samples[0x0A] - samples[0x15]) * costab[0xA];
-
-  b1[0x0B] = samples[0x0B] + samples[0x14];
-  b1[0x14] = (samples[0x0B] - samples[0x14]) * costab[0xB];
-
-  b1[0x0C] = samples[0x0C] + samples[0x13];
-  b1[0x13] = (samples[0x0C] - samples[0x13]) * costab[0xC];
-
-  b1[0x0D] = samples[0x0D] + samples[0x12];
-  b1[0x12] = (samples[0x0D] - samples[0x12]) * costab[0xD];
-
-  b1[0x0E] = samples[0x0E] + samples[0x11];
-  b1[0x11] = (samples[0x0E] - samples[0x11]) * costab[0xE];
-
-  b1[0x0F] = samples[0x0F] + samples[0x10];
-  b1[0x10] = (samples[0x0F] - samples[0x10]) * costab[0xF];
- }
-
-
- {
-  register real *costab = mp3lib_pnts[1];
-
-  b2[0x00] = b1[0x00] + b1[0x0F];
-  b2[0x0F] = (b1[0x00] - b1[0x0F]) * costab[0];
-  b2[0x01] = b1[0x01] + b1[0x0E];
-  b2[0x0E] = (b1[0x01] - b1[0x0E]) * costab[1];
-  b2[0x02] = b1[0x02] + b1[0x0D];
-  b2[0x0D] = (b1[0x02] - b1[0x0D]) * costab[2];
-  b2[0x03] = b1[0x03] + b1[0x0C];
-  b2[0x0C] = (b1[0x03] - b1[0x0C]) * costab[3];
-  b2[0x04] = b1[0x04] + b1[0x0B];
-  b2[0x0B] = (b1[0x04] - b1[0x0B]) * costab[4];
-  b2[0x05] = b1[0x05] + b1[0x0A];
-  b2[0x0A] = (b1[0x05] - b1[0x0A]) * costab[5];
-  b2[0x06] = b1[0x06] + b1[0x09];
-  b2[0x09] = (b1[0x06] - b1[0x09]) * costab[6];
-  b2[0x07] = b1[0x07] + b1[0x08];
-  b2[0x08] = (b1[0x07] - b1[0x08]) * costab[7];
-
-  b2[0x10] = b1[0x10] + b1[0x1F];
-  b2[0x1F] = (b1[0x1F] - b1[0x10]) * costab[0];
-  b2[0x11] = b1[0x11] + b1[0x1E];
-  b2[0x1E] = (b1[0x1E] - b1[0x11]) * costab[1];
-  b2[0x12] = b1[0x12] + b1[0x1D];
-  b2[0x1D] = (b1[0x1D] - b1[0x12]) * costab[2];
-  b2[0x13] = b1[0x13] + b1[0x1C];
-  b2[0x1C] = (b1[0x1C] - b1[0x13]) * costab[3];
-  b2[0x14] = b1[0x14] + b1[0x1B];
-  b2[0x1B] = (b1[0x1B] - b1[0x14]) * costab[4];
-  b2[0x15] = b1[0x15] + b1[0x1A];
-  b2[0x1A] = (b1[0x1A] - b1[0x15]) * costab[5];
-  b2[0x16] = b1[0x16] + b1[0x19];
-  b2[0x19] = (b1[0x19] - b1[0x16]) * costab[6];
-  b2[0x17] = b1[0x17] + b1[0x18];
-  b2[0x18] = (b1[0x18] - b1[0x17]) * costab[7];
- }
-
- {
-  register real *costab = mp3lib_pnts[2];
-
-  b1[0x00] = b2[0x00] + b2[0x07];
-  b1[0x07] = (b2[0x00] - b2[0x07]) * costab[0];
-  b1[0x01] = b2[0x01] + b2[0x06];
-  b1[0x06] = (b2[0x01] - b2[0x06]) * costab[1];
-  b1[0x02] = b2[0x02] + b2[0x05];
-  b1[0x05] = (b2[0x02] - b2[0x05]) * costab[2];
-  b1[0x03] = b2[0x03] + b2[0x04];
-  b1[0x04] = (b2[0x03] - b2[0x04]) * costab[3];
-
-  b1[0x08] = b2[0x08] + b2[0x0F];
-  b1[0x0F] = (b2[0x0F] - b2[0x08]) * costab[0];
-  b1[0x09] = b2[0x09] + b2[0x0E];
-  b1[0x0E] = (b2[0x0E] - b2[0x09]) * costab[1];
-  b1[0x0A] = b2[0x0A] + b2[0x0D];
-  b1[0x0D] = (b2[0x0D] - b2[0x0A]) * costab[2];
-  b1[0x0B] = b2[0x0B] + b2[0x0C];
-  b1[0x0C] = (b2[0x0C] - b2[0x0B]) * costab[3];
-
-  b1[0x10] = b2[0x10] + b2[0x17];
-  b1[0x17] = (b2[0x10] - b2[0x17]) * costab[0];
-  b1[0x11] = b2[0x11] + b2[0x16];
-  b1[0x16] = (b2[0x11] - b2[0x16]) * costab[1];
-  b1[0x12] = b2[0x12] + b2[0x15];
-  b1[0x15] = (b2[0x12] - b2[0x15]) * costab[2];
-  b1[0x13] = b2[0x13] + b2[0x14];
-  b1[0x14] = (b2[0x13] - b2[0x14]) * costab[3];
-
-  b1[0x18] = b2[0x18] + b2[0x1F];
-  b1[0x1F] = (b2[0x1F] - b2[0x18]) * costab[0];
-  b1[0x19] = b2[0x19] + b2[0x1E];
-  b1[0x1E] = (b2[0x1E] - b2[0x19]) * costab[1];
-  b1[0x1A] = b2[0x1A] + b2[0x1D];
-  b1[0x1D] = (b2[0x1D] - b2[0x1A]) * costab[2];
-  b1[0x1B] = b2[0x1B] + b2[0x1C];
-  b1[0x1C] = (b2[0x1C] - b2[0x1B]) * costab[3];
- }
-
- {
-  register real const cos0 = mp3lib_pnts[3][0];
-  register real const cos1 = mp3lib_pnts[3][1];
-
-  b2[0x00] = b1[0x00] + b1[0x03];
-  b2[0x03] = (b1[0x00] - b1[0x03]) * cos0;
-  b2[0x01] = b1[0x01] + b1[0x02];
-  b2[0x02] = (b1[0x01] - b1[0x02]) * cos1;
-
-  b2[0x04] = b1[0x04] + b1[0x07];
-  b2[0x07] = (b1[0x07] - b1[0x04]) * cos0;
-  b2[0x05] = b1[0x05] + b1[0x06];
-  b2[0x06] = (b1[0x06] - b1[0x05]) * cos1;
-
-  b2[0x08] = b1[0x08] + b1[0x0B];
-  b2[0x0B] = (b1[0x08] - b1[0x0B]) * cos0;
-  b2[0x09] = b1[0x09] + b1[0x0A];
-  b2[0x0A] = (b1[0x09] - b1[0x0A]) * cos1;
-
-  b2[0x0C] = b1[0x0C] + b1[0x0F];
-  b2[0x0F] = (b1[0x0F] - b1[0x0C]) * cos0;
-  b2[0x0D] = b1[0x0D] + b1[0x0E];
-  b2[0x0E] = (b1[0x0E] - b1[0x0D]) * cos1;
-
-  b2[0x10] = b1[0x10] + b1[0x13];
-  b2[0x13] = (b1[0x10] - b1[0x13]) * cos0;
-  b2[0x11] = b1[0x11] + b1[0x12];
-  b2[0x12] = (b1[0x11] - b1[0x12]) * cos1;
-
-  b2[0x14] = b1[0x14] + b1[0x17];
-  b2[0x17] = (b1[0x17] - b1[0x14]) * cos0;
-  b2[0x15] = b1[0x15] + b1[0x16];
-  b2[0x16] = (b1[0x16] - b1[0x15]) * cos1;
-
-  b2[0x18] = b1[0x18] + b1[0x1B];
-  b2[0x1B] = (b1[0x18] - b1[0x1B]) * cos0;
-  b2[0x19] = b1[0x19] + b1[0x1A];
-  b2[0x1A] = (b1[0x19] - b1[0x1A]) * cos1;
-
-  b2[0x1C] = b1[0x1C] + b1[0x1F];
-  b2[0x1F] = (b1[0x1F] - b1[0x1C]) * cos0;
-  b2[0x1D] = b1[0x1D] + b1[0x1E];
-  b2[0x1E] = (b1[0x1E] - b1[0x1D]) * cos1;
- }
-
- {
-  register real const cos0 = mp3lib_pnts[4][0];
-
-  b1[0x00] = b2[0x00] + b2[0x01];
-  b1[0x01] = (b2[0x00] - b2[0x01]) * cos0;
-  b1[0x02] = b2[0x02] + b2[0x03];
-  b1[0x03] = (b2[0x03] - b2[0x02]) * cos0;
-  b1[0x02] += b1[0x03];
-
-  b1[0x04] = b2[0x04] + b2[0x05];
-  b1[0x05] = (b2[0x04] - b2[0x05]) * cos0;
-  b1[0x06] = b2[0x06] + b2[0x07];
-  b1[0x07] = (b2[0x07] - b2[0x06]) * cos0;
-  b1[0x06] += b1[0x07];
-  b1[0x04] += b1[0x06];
-  b1[0x06] += b1[0x05];
-  b1[0x05] += b1[0x07];
-
-  b1[0x08] = b2[0x08] + b2[0x09];
-  b1[0x09] = (b2[0x08] - b2[0x09]) * cos0;
-  b1[0x0A] = b2[0x0A] + b2[0x0B];
-  b1[0x0B] = (b2[0x0B] - b2[0x0A]) * cos0;
-  b1[0x0A] += b1[0x0B];
-
-  b1[0x0C] = b2[0x0C] + b2[0x0D];
-  b1[0x0D] = (b2[0x0C] - b2[0x0D]) * cos0;
-  b1[0x0E] = b2[0x0E] + b2[0x0F];
-  b1[0x0F] = (b2[0x0F] - b2[0x0E]) * cos0;
-  b1[0x0E] += b1[0x0F];
-  b1[0x0C] += b1[0x0E];
-  b1[0x0E] += b1[0x0D];
-  b1[0x0D] += b1[0x0F];
-
-  b1[0x10] = b2[0x10] + b2[0x11];
-  b1[0x11] = (b2[0x10] - b2[0x11]) * cos0;
-  b1[0x12] = b2[0x12] + b2[0x13];
-  b1[0x13] = (b2[0x13] - b2[0x12]) * cos0;
-  b1[0x12] += b1[0x13];
-
-  b1[0x14] = b2[0x14] + b2[0x15];
-  b1[0x15] = (b2[0x14] - b2[0x15]) * cos0;
-  b1[0x16] = b2[0x16] + b2[0x17];
-  b1[0x17] = (b2[0x17] - b2[0x16]) * cos0;
-  b1[0x16] += b1[0x17];
-  b1[0x14] += b1[0x16];
-  b1[0x16] += b1[0x15];
-  b1[0x15] += b1[0x17];
-
-  b1[0x18] = b2[0x18] + b2[0x19];
-  b1[0x19] = (b2[0x18] - b2[0x19]) * cos0;
-  b1[0x1A] = b2[0x1A] + b2[0x1B];
-  b1[0x1B] = (b2[0x1B] - b2[0x1A]) * cos0;
-  b1[0x1A] += b1[0x1B];
-
-  b1[0x1C] = b2[0x1C] + b2[0x1D];
-  b1[0x1D] = (b2[0x1C] - b2[0x1D]) * cos0;
-  b1[0x1E] = b2[0x1E] + b2[0x1F];
-  b1[0x1F] = (b2[0x1F] - b2[0x1E]) * cos0;
-  b1[0x1E] += b1[0x1F];
-  b1[0x1C] += b1[0x1E];
-  b1[0x1E] += b1[0x1D];
-  b1[0x1D] += b1[0x1F];
- }
-
- out0[0x10*16] = b1[0x00];
- out0[0x10*12] = b1[0x04];
- out0[0x10* 8] = b1[0x02];
- out0[0x10* 4] = b1[0x06];
- out0[0x10* 0] = b1[0x01];
- out1[0x10* 0] = b1[0x01];
- out1[0x10* 4] = b1[0x05];
- out1[0x10* 8] = b1[0x03];
- out1[0x10*12] = b1[0x07];
-
- b1[0x08] += b1[0x0C];
- out0[0x10*14] = b1[0x08];
- b1[0x0C] += b1[0x0a];
- out0[0x10*10] = b1[0x0C];
- b1[0x0A] += b1[0x0E];
- out0[0x10* 6] = b1[0x0A];
- b1[0x0E] += b1[0x09];
- out0[0x10* 2] = b1[0x0E];
- b1[0x09] += b1[0x0D];
- out1[0x10* 2] = b1[0x09];
- b1[0x0D] += b1[0x0B];
- out1[0x10* 6] = b1[0x0D];
- b1[0x0B] += b1[0x0F];
- out1[0x10*10] = b1[0x0B];
- out1[0x10*14] = b1[0x0F];
-
- b1[0x18] += b1[0x1C];
- out0[0x10*15] = b1[0x10] + b1[0x18];
- out0[0x10*13] = b1[0x18] + b1[0x14];
- b1[0x1C] += b1[0x1a];
- out0[0x10*11] = b1[0x14] + b1[0x1C];
- out0[0x10* 9] = b1[0x1C] + b1[0x12];
- b1[0x1A] += b1[0x1E];
- out0[0x10* 7] = b1[0x12] + b1[0x1A];
- out0[0x10* 5] = b1[0x1A] + b1[0x16];
- b1[0x1E] += b1[0x19];
- out0[0x10* 3] = b1[0x16] + b1[0x1E];
- out0[0x10* 1] = b1[0x1E] + b1[0x11];
- b1[0x19] += b1[0x1D];
- out1[0x10* 1] = b1[0x11] + b1[0x19];
- out1[0x10* 3] = b1[0x19] + b1[0x15];
- b1[0x1D] += b1[0x1B];
- out1[0x10* 5] = b1[0x15] + b1[0x1D];
- out1[0x10* 7] = b1[0x1D] + b1[0x13];
- b1[0x1B] += b1[0x1F];
- out1[0x10* 9] = b1[0x13] + b1[0x1B];
- out1[0x10*11] = b1[0x1B] + b1[0x17];
- out1[0x10*13] = b1[0x17] + b1[0x1F];
- out1[0x10*15] = b1[0x1F];
-}
-
-/*
- * the call via dct64 is a trick to force GCC to use
- * (new) registers for the b1,b2 pointer to the bufs[xx] field
- */
-static void dct64(real *a,real *b,real *c)
-{
-  real bufs[0x40];
-  dct64_1(a,b,bufs,bufs+0x20,c);
-}
-
-void mp3lib_dct64(real *a,real *b,real *c)
-{
-  real bufs[0x40];
-  dct64_1(a,b,bufs,bufs+0x20,c);
-}
--- a/mp3lib/dct64_3dnow.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,929 +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>
-* Partial 3dnow! optimization by Nick Kurshev
-*
-* TODO: optimize scalar 3dnow! code
-* Warning: Phases 7 & 8 are not tested
-*/
-
-#include "config.h"
-#include "mangle.h"
-#include "mpg123.h"
-#include "libavutil/x86_cpu.h"
-
-static unsigned long long int attribute_used __attribute__((aligned(8))) x_plus_minus_3dnow = 0x8000000000000000ULL;
-static float attribute_used plus_1f = 1.0;
-
-void dct64_MMX_3dnow(short *a,short *b,real *c)
-{
-  char tmp[256];
-    __asm__ volatile(
-"       mov %2,%%"REG_a"\n\t"
-
-"       lea 128+%3,%%"REG_d"\n\t"
-"       mov %0,%%"REG_S"\n\t"
-"       mov %1,%%"REG_D"\n\t"
-"       mov $"MANGLE(costab_mmx)",%%"REG_b"\n\t"
-"       lea %3,%%"REG_c"\n\t"
-
-/* Phase 1*/
-"       movq    (%%"REG_a"), %%mm0\n\t"
-"       movq    8(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    120(%%"REG_a"), %%mm1\n\t"
-"       movq    112(%%"REG_a"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_d")\n\t"
-"       movq    %%mm4, 8(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   (%%"REG_b"), %%mm3\n\t"
-"       pfmul   8(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 124(%%"REG_d")\n\t"
-"       movd    %%mm7, 116(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 120(%%"REG_d")\n\t"
-"       movd    %%mm7, 112(%%"REG_d")\n\t"
-
-"       movq    16(%%"REG_a"), %%mm0\n\t"
-"       movq    24(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    104(%%"REG_a"), %%mm1\n\t"
-"       movq    96(%%"REG_a"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 16(%%"REG_d")\n\t"
-"       movq    %%mm4, 24(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   16(%%"REG_b"), %%mm3\n\t"
-"       pfmul   24(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 108(%%"REG_d")\n\t"
-"       movd    %%mm7, 100(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 104(%%"REG_d")\n\t"
-"       movd    %%mm7, 96(%%"REG_d")\n\t"
-
-"       movq    32(%%"REG_a"), %%mm0\n\t"
-"       movq    40(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    88(%%"REG_a"), %%mm1\n\t"
-"       movq    80(%%"REG_a"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 32(%%"REG_d")\n\t"
-"       movq    %%mm4, 40(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   32(%%"REG_b"), %%mm3\n\t"
-"       pfmul   40(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 92(%%"REG_d")\n\t"
-"       movd    %%mm7, 84(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 88(%%"REG_d")\n\t"
-"       movd    %%mm7, 80(%%"REG_d")\n\t"
-
-"       movq    48(%%"REG_a"), %%mm0\n\t"
-"       movq    56(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    72(%%"REG_a"), %%mm1\n\t"
-"       movq    64(%%"REG_a"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 48(%%"REG_d")\n\t"
-"       movq    %%mm4, 56(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   48(%%"REG_b"), %%mm3\n\t"
-"       pfmul   56(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 76(%%"REG_d")\n\t"
-"       movd    %%mm7, 68(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 72(%%"REG_d")\n\t"
-"       movd    %%mm7, 64(%%"REG_d")\n\t"
-
-/* Phase 2*/
-
-"       movq    (%%"REG_d"), %%mm0\n\t"
-"       movq    8(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    56(%%"REG_d"), %%mm1\n\t"
-"       movq    48(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_c")\n\t"
-"       movq    %%mm4, 8(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   64(%%"REG_b"), %%mm3\n\t"
-"       pfmul   72(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 60(%%"REG_c")\n\t"
-"       movd    %%mm7, 52(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 56(%%"REG_c")\n\t"
-"       movd    %%mm7, 48(%%"REG_c")\n\t"
-
-"       movq    16(%%"REG_d"), %%mm0\n\t"
-"       movq    24(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    40(%%"REG_d"), %%mm1\n\t"
-"       movq    32(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 16(%%"REG_c")\n\t"
-"       movq    %%mm4, 24(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   80(%%"REG_b"), %%mm3\n\t"
-"       pfmul   88(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 44(%%"REG_c")\n\t"
-"       movd    %%mm7, 36(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 40(%%"REG_c")\n\t"
-"       movd    %%mm7, 32(%%"REG_c")\n\t"
-
-/* Phase 3*/
-
-"       movq    64(%%"REG_d"), %%mm0\n\t"
-"       movq    72(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    120(%%"REG_d"), %%mm1\n\t"
-"       movq    112(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 64(%%"REG_c")\n\t"
-"       movq    %%mm4, 72(%%"REG_c")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   64(%%"REG_b"), %%mm3\n\t"
-"       pfmul   72(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 124(%%"REG_c")\n\t"
-"       movd    %%mm7, 116(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 120(%%"REG_c")\n\t"
-"       movd    %%mm7, 112(%%"REG_c")\n\t"
-
-"       movq    80(%%"REG_d"), %%mm0\n\t"
-"       movq    88(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    104(%%"REG_d"), %%mm1\n\t"
-"       movq    96(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 80(%%"REG_c")\n\t"
-"       movq    %%mm4, 88(%%"REG_c")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   80(%%"REG_b"), %%mm3\n\t"
-"       pfmul   88(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 108(%%"REG_c")\n\t"
-"       movd    %%mm7, 100(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 104(%%"REG_c")\n\t"
-"       movd    %%mm7, 96(%%"REG_c")\n\t"
-
-/* Phase 4*/
-
-"       movq    (%%"REG_c"), %%mm0\n\t"
-"       movq    8(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    24(%%"REG_c"), %%mm1\n\t"
-"       movq    16(%%"REG_c"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_d")\n\t"
-"       movq    %%mm4, 8(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   96(%%"REG_b"), %%mm3\n\t"
-"       pfmul   104(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 28(%%"REG_d")\n\t"
-"       movd    %%mm7, 20(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 24(%%"REG_d")\n\t"
-"       movd    %%mm7, 16(%%"REG_d")\n\t"
-
-"       movq    32(%%"REG_c"), %%mm0\n\t"
-"       movq    40(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    56(%%"REG_c"), %%mm1\n\t"
-"       movq    48(%%"REG_c"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 32(%%"REG_d")\n\t"
-"       movq    %%mm4, 40(%%"REG_d")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   96(%%"REG_b"), %%mm3\n\t"
-"       pfmul   104(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 60(%%"REG_d")\n\t"
-"       movd    %%mm7, 52(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 56(%%"REG_d")\n\t"
-"       movd    %%mm7, 48(%%"REG_d")\n\t"
-
-"       movq    64(%%"REG_c"), %%mm0\n\t"
-"       movq    72(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    88(%%"REG_c"), %%mm1\n\t"
-"       movq    80(%%"REG_c"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 64(%%"REG_d")\n\t"
-"       movq    %%mm4, 72(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   96(%%"REG_b"), %%mm3\n\t"
-"       pfmul   104(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 92(%%"REG_d")\n\t"
-"       movd    %%mm7, 84(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 88(%%"REG_d")\n\t"
-"       movd    %%mm7, 80(%%"REG_d")\n\t"
-
-"       movq    96(%%"REG_c"), %%mm0\n\t"
-"       movq    104(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    120(%%"REG_c"), %%mm1\n\t"
-"       movq    112(%%"REG_c"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 96(%%"REG_d")\n\t"
-"       movq    %%mm4, 104(%%"REG_d")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   96(%%"REG_b"), %%mm3\n\t"
-"       pfmul   104(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 124(%%"REG_d")\n\t"
-"       movd    %%mm7, 116(%%"REG_d")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 120(%%"REG_d")\n\t"
-"       movd    %%mm7, 112(%%"REG_d")\n\t"
-
-/* Phase 5 */
-
-"       movq    (%%"REG_d"), %%mm0\n\t"
-"       movq    16(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    8(%%"REG_d"), %%mm1\n\t"
-"       movq    24(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_c")\n\t"
-"       movq    %%mm4, 16(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   112(%%"REG_b"), %%mm3\n\t"
-"       pfmul   112(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 12(%%"REG_c")\n\t"
-"       movd    %%mm7, 28(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 8(%%"REG_c")\n\t"
-"       movd    %%mm7, 24(%%"REG_c")\n\t"
-
-"       movq    32(%%"REG_d"), %%mm0\n\t"
-"       movq    48(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    40(%%"REG_d"), %%mm1\n\t"
-"       movq    56(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 32(%%"REG_c")\n\t"
-"       movq    %%mm4, 48(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   112(%%"REG_b"), %%mm3\n\t"
-"       pfmul   112(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 44(%%"REG_c")\n\t"
-"       movd    %%mm7, 60(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 40(%%"REG_c")\n\t"
-"       movd    %%mm7, 56(%%"REG_c")\n\t"
-
-"       movq    64(%%"REG_d"), %%mm0\n\t"
-"       movq    80(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    72(%%"REG_d"), %%mm1\n\t"
-"       movq    88(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 64(%%"REG_c")\n\t"
-"       movq    %%mm4, 80(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   112(%%"REG_b"), %%mm3\n\t"
-"       pfmul   112(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 76(%%"REG_c")\n\t"
-"       movd    %%mm7, 92(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 72(%%"REG_c")\n\t"
-"       movd    %%mm7, 88(%%"REG_c")\n\t"
-
-"       movq    96(%%"REG_d"), %%mm0\n\t"
-"       movq    112(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       movq    104(%%"REG_d"), %%mm1\n\t"
-"       movq    120(%%"REG_d"), %%mm5\n\t"
-/* n.b.: pswapd*/
-"       movq    %%mm1, %%mm2\n\t"
-"       movq    %%mm5, %%mm6\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       psrlq   $32, %%mm5\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       punpckldq %%mm6, %%mm5\n\t"
-/**/
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 96(%%"REG_c")\n\t"
-"       movq    %%mm4, 112(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   112(%%"REG_b"), %%mm3\n\t"
-"       pfmul   112(%%"REG_b"), %%mm7\n\t"
-"       movd    %%mm3, 108(%%"REG_c")\n\t"
-"       movd    %%mm7, 124(%%"REG_c")\n\t"
-"       psrlq   $32, %%mm3\n\t"
-"       psrlq   $32, %%mm7\n\t"
-"       movd    %%mm3, 104(%%"REG_c")\n\t"
-"       movd    %%mm7, 120(%%"REG_c")\n\t"
-
-/* Phase 6. This is the end of easy road. */
-/* Code below is coded in scalar mode. Should be optimized */
-
-"       movd    "MANGLE(plus_1f)", %%mm6\n\t"
-"       punpckldq 120(%%"REG_b"), %%mm6\n\t"      /* mm6 = 1.0 | 120(%%"REG_b")*/
-"       movq    "MANGLE(x_plus_minus_3dnow)", %%mm7\n\t" /* mm7 = +1 | -1 */
-
-"       movq    32(%%"REG_c"), %%mm0\n\t"
-"       movq    64(%%"REG_c"), %%mm2\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       movq    %%mm2, %%mm3\n\t"
-"       pxor    %%mm7, %%mm1\n\t"
-"       pxor    %%mm7, %%mm3\n\t"
-"       pfacc   %%mm1, %%mm0\n\t"
-"       pfacc   %%mm3, %%mm2\n\t"
-"       pfmul   %%mm6, %%mm0\n\t"
-"       pfmul   %%mm6, %%mm2\n\t"
-"       movq    %%mm0, 32(%%"REG_d")\n\t"
-"       movq    %%mm2, 64(%%"REG_d")\n\t"
-
-"       movd    44(%%"REG_c"), %%mm0\n\t"
-"       movd    40(%%"REG_c"), %%mm2\n\t"
-"       movd    120(%%"REG_b"), %%mm3\n\t"
-"       punpckldq 76(%%"REG_c"), %%mm0\n\t"
-"       punpckldq 72(%%"REG_c"), %%mm2\n\t"
-"       punpckldq %%mm3, %%mm3\n\t"
-"       movq    %%mm0, %%mm4\n\t"
-"       movq    %%mm2, %%mm5\n\t"
-"       pfsub   %%mm2, %%mm0\n\t"
-"       pfmul   %%mm3, %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       pfadd   %%mm5, %%mm0\n\t"
-"       pfadd   %%mm4, %%mm0\n\t"
-"       movq    %%mm0, %%mm2\n\t"
-"       punpckldq %%mm1, %%mm0\n\t"
-"       punpckhdq %%mm1, %%mm2\n\t"
-"       movq    %%mm0, 40(%%"REG_d")\n\t"
-"       movq    %%mm2, 72(%%"REG_d")\n\t"
-
-"       movd   48(%%"REG_c"), %%mm3\n\t"
-"       movd   60(%%"REG_c"), %%mm2\n\t"
-"       pfsub  52(%%"REG_c"), %%mm3\n\t"
-"       pfsub  56(%%"REG_c"), %%mm2\n\t"
-"       pfmul 120(%%"REG_b"), %%mm3\n\t"
-"       pfmul 120(%%"REG_b"), %%mm2\n\t"
-"       movq    %%mm2, %%mm1\n\t"
-
-"       pfadd  56(%%"REG_c"), %%mm1\n\t"
-"       pfadd  60(%%"REG_c"), %%mm1\n\t"
-"       movq    %%mm1, %%mm0\n\t"
-
-"       pfadd  48(%%"REG_c"), %%mm0\n\t"
-"       pfadd  52(%%"REG_c"), %%mm0\n\t"
-"       pfadd   %%mm3, %%mm1\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       pfadd   %%mm3, %%mm2\n\t"
-"       punpckldq %%mm2, %%mm0\n\t"
-"       movq    %%mm1, 56(%%"REG_d")\n\t"
-"       movq    %%mm0, 48(%%"REG_d")\n\t"
-
-/*---*/
-
-"       movd   92(%%"REG_c"), %%mm1\n\t"
-"       pfsub  88(%%"REG_c"), %%mm1\n\t"
-"       pfmul 120(%%"REG_b"), %%mm1\n\t"
-"       movd   %%mm1, 92(%%"REG_d")\n\t"
-"       pfadd  92(%%"REG_c"), %%mm1\n\t"
-"       pfadd  88(%%"REG_c"), %%mm1\n\t"
-"       movq   %%mm1, %%mm0\n\t"
-
-"       pfadd  80(%%"REG_c"), %%mm0\n\t"
-"       pfadd  84(%%"REG_c"), %%mm0\n\t"
-"       movd   %%mm0, 80(%%"REG_d")\n\t"
-
-"       movd   80(%%"REG_c"), %%mm0\n\t"
-"       pfsub  84(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       pfadd  %%mm0, %%mm1\n\t"
-"       pfadd  92(%%"REG_d"), %%mm0\n\t"
-"       punpckldq %%mm1, %%mm0\n\t"
-"       movq   %%mm0, 84(%%"REG_d")\n\t"
-
-"       movq    96(%%"REG_c"), %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       pxor    %%mm7, %%mm1\n\t"
-"       pfacc   %%mm1, %%mm0\n\t"
-"       pfmul   %%mm6, %%mm0\n\t"
-"       movq    %%mm0, 96(%%"REG_d")\n\t"
-
-"       movd  108(%%"REG_c"), %%mm0\n\t"
-"       pfsub 104(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movd  %%mm0, 108(%%"REG_d")\n\t"
-"       pfadd 104(%%"REG_c"), %%mm0\n\t"
-"       pfadd 108(%%"REG_c"), %%mm0\n\t"
-"       movd  %%mm0, 104(%%"REG_d")\n\t"
-
-"       movd  124(%%"REG_c"), %%mm1\n\t"
-"       pfsub 120(%%"REG_c"), %%mm1\n\t"
-"       pfmul 120(%%"REG_b"), %%mm1\n\t"
-"       movd  %%mm1, 124(%%"REG_d")\n\t"
-"       pfadd 120(%%"REG_c"), %%mm1\n\t"
-"       pfadd 124(%%"REG_c"), %%mm1\n\t"
-"       movq  %%mm1, %%mm0\n\t"
-
-"       pfadd 112(%%"REG_c"), %%mm0\n\t"
-"       pfadd 116(%%"REG_c"), %%mm0\n\t"
-"       movd  %%mm0, 112(%%"REG_d")\n\t"
-
-"       movd  112(%%"REG_c"), %%mm0\n\t"
-"       pfsub 116(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       pfadd %%mm0,%%mm1\n\t"
-"       pfadd 124(%%"REG_d"), %%mm0\n\t"
-"       punpckldq %%mm1, %%mm0\n\t"
-"       movq  %%mm0, 116(%%"REG_d")\n\t"
-
-// this code is broken, there is nothing modifying the z flag above.
-#if 0
-"       jnz .L01\n\t"
-
-/* Phase 7*/
-/* Code below is coded in scalar mode. Should be optimized */
-
-"       movd      (%%"REG_c"), %%mm0\n\t"
-"       pfadd    4(%%"REG_c"), %%mm0\n\t"
-"       movd     %%mm0, 1024(%%"REG_S")\n\t"
-
-"       movd      (%%"REG_c"), %%mm0\n\t"
-"       pfsub    4(%%"REG_c"), %%mm0\n\t"
-"       pfmul  120(%%"REG_b"), %%mm0\n\t"
-"       movd      %%mm0, (%%"REG_S")\n\t"
-"       movd      %%mm0, (%%"REG_D")\n\t"
-
-"       movd   12(%%"REG_c"), %%mm0\n\t"
-"       pfsub   8(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movd    %%mm0, 512(%%"REG_D")\n\t"
-"       pfadd   12(%%"REG_c"), %%mm0\n\t"
-"       pfadd   8(%%"REG_c"), %%mm0\n\t"
-"       movd    %%mm0, 512(%%"REG_S")\n\t"
-
-"       movd   16(%%"REG_c"), %%mm0\n\t"
-"       pfsub  20(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-
-"       movd   28(%%"REG_c"), %%mm0\n\t"
-"       pfsub  24(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movd    %%mm0, 768(%%"REG_D")\n\t"
-"       movq    %%mm0, %%mm2\n\t"
-
-"       pfadd  24(%%"REG_c"), %%mm0\n\t"
-"       pfadd  28(%%"REG_c"), %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-
-"       pfadd  16(%%"REG_c"), %%mm0\n\t"
-"       pfadd  20(%%"REG_c"), %%mm0\n\t"
-"       movd   %%mm0, 768(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm1\n\t"
-"       movd   %%mm1, 256(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm2\n\t"
-"       movd   %%mm2, 256(%%"REG_D")\n\t"
-
-/* Phase 8*/
-
-"       movq   32(%%"REG_d"), %%mm0\n\t"
-"       movq   48(%%"REG_d"), %%mm1\n\t"
-"       pfadd  48(%%"REG_d"), %%mm0\n\t"
-"       pfadd  40(%%"REG_d"), %%mm1\n\t"
-"       movd   %%mm0, 896(%%"REG_S")\n\t"
-"       movd   %%mm1, 640(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm0\n\t"
-"       psrlq  $32, %%mm1\n\t"
-"       movd   %%mm0, 128(%%"REG_D")\n\t"
-"       movd   %%mm1, 384(%%"REG_D")\n\t"
-
-"       movd   40(%%"REG_d"), %%mm0\n\t"
-"       pfadd  56(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 384(%%"REG_S")\n\t"
-
-"       movd   56(%%"REG_d"), %%mm0\n\t"
-"       pfadd  36(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 128(%%"REG_S")\n\t"
-
-"       movd   60(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 896(%%"REG_D")\n\t"
-"       pfadd  44(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 640(%%"REG_D")\n\t"
-
-"       movq   96(%%"REG_d"), %%mm0\n\t"
-"       movq   112(%%"REG_d"), %%mm2\n\t"
-"       movq   104(%%"REG_d"), %%mm4\n\t"
-"       pfadd  112(%%"REG_d"), %%mm0\n\t"
-"       pfadd  104(%%"REG_d"), %%mm2\n\t"
-"       pfadd  120(%%"REG_d"), %%mm4\n\t"
-"       movq   %%mm0, %%mm1\n\t"
-"       movq   %%mm2, %%mm3\n\t"
-"       movq   %%mm4, %%mm5\n\t"
-"       pfadd  64(%%"REG_d"), %%mm0\n\t"
-"       pfadd  80(%%"REG_d"), %%mm2\n\t"
-"       pfadd  72(%%"REG_d"), %%mm4\n\t"
-"       movd   %%mm0, 960(%%"REG_S")\n\t"
-"       movd   %%mm2, 704(%%"REG_S")\n\t"
-"       movd   %%mm4, 448(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm0\n\t"
-"       psrlq  $32, %%mm2\n\t"
-"       psrlq  $32, %%mm4\n\t"
-"       movd   %%mm0, 64(%%"REG_D")\n\t"
-"       movd   %%mm2, 320(%%"REG_D")\n\t"
-"       movd   %%mm4, 576(%%"REG_D")\n\t"
-"       pfadd  80(%%"REG_d"), %%mm1\n\t"
-"       pfadd  72(%%"REG_d"), %%mm3\n\t"
-"       pfadd  88(%%"REG_d"), %%mm5\n\t"
-"       movd   %%mm1, 832(%%"REG_S")\n\t"
-"       movd   %%mm3, 576(%%"REG_S")\n\t"
-"       movd   %%mm5, 320(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm1\n\t"
-"       psrlq  $32, %%mm3\n\t"
-"       psrlq  $32, %%mm5\n\t"
-"       movd   %%mm1, 192(%%"REG_D")\n\t"
-"       movd   %%mm3, 448(%%"REG_D")\n\t"
-"       movd   %%mm5, 704(%%"REG_D")\n\t"
-
-"       movd   120(%%"REG_d"), %%mm0\n\t"
-"       pfadd  100(%%"REG_d"), %%mm0\n\t"
-"       movq   %%mm0, %%mm1\n\t"
-"       pfadd  88(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 192(%%"REG_S")\n\t"
-"       pfadd  68(%%"REG_d"), %%mm1\n\t"
-"       movd   %%mm1, 64(%%"REG_S")\n\t"
-
-"       movd  124(%%"REG_d"), %%mm0\n\t"
-"       movd  %%mm0, 960(%%"REG_D")\n\t"
-"       pfadd  92(%%"REG_d"), %%mm0\n\t"
-"       movd  %%mm0, 832(%%"REG_D")\n\t"
-
-"       jmp     .L_bye\n\t"
-".L01:\n\t"
-#endif
-/* Phase 9*/
-
-"       movq    (%%"REG_c"), %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       pxor    %%mm7, %%mm1\n\t"
-"       pfacc   %%mm1, %%mm0\n\t"
-"       pfmul   %%mm6, %%mm0\n\t"
-"       pf2id   %%mm0, %%mm0\n\t"
-"       packssdw %%mm0, %%mm0\n\t"
-"       movd    %%mm0, %%"REG_a"\n\t"
-"       movw    %%ax, 512(%%"REG_S")\n\t"
-"       shr    $16, %%"REG_a"\n\t"
-"       movw    %%ax, (%%"REG_S")\n\t"
-
-"       movd    12(%%"REG_c"), %%mm0\n\t"
-"       pfsub    8(%%"REG_c"), %%mm0\n\t"
-"       pfmul  120(%%"REG_b"), %%mm0\n\t"
-"       pf2id    %%mm0, %%mm7\n\t"
-"       packssdw %%mm7, %%mm7\n\t"
-"       movd     %%mm7, %%"REG_a"\n\t"
-"       movw     %%ax, 256(%%"REG_D")\n\t"
-"       pfadd   12(%%"REG_c"), %%mm0\n\t"
-"       pfadd    8(%%"REG_c"), %%mm0\n\t"
-"       pf2id    %%mm0, %%mm0\n\t"
-"       packssdw %%mm0, %%mm0\n\t"
-"       movd     %%mm0, %%"REG_a"\n\t"
-"       movw     %%ax, 256(%%"REG_S")\n\t"
-
-"       movd   16(%%"REG_c"), %%mm3\n\t"
-"       pfsub  20(%%"REG_c"), %%mm3\n\t"
-"       pfmul  120(%%"REG_b"), %%mm3\n\t"
-"       movq   %%mm3, %%mm2\n\t"
-
-"       movd   28(%%"REG_c"), %%mm2\n\t"
-"       pfsub  24(%%"REG_c"), %%mm2\n\t"
-"       pfmul 120(%%"REG_b"), %%mm2\n\t"
-"       movq   %%mm2, %%mm1\n\t"
-
-"       pf2id  %%mm2, %%mm7\n\t"
-"       packssdw %%mm7, %%mm7\n\t"
-"       movd   %%mm7, %%"REG_a"\n\t"
-"       movw   %%ax, 384(%%"REG_D")\n\t"
-
-"       pfadd  24(%%"REG_c"), %%mm1\n\t"
-"       pfadd  28(%%"REG_c"), %%mm1\n\t"
-"       movq   %%mm1, %%mm0\n\t"
-
-"       pfadd  16(%%"REG_c"), %%mm0\n\t"
-"       pfadd  20(%%"REG_c"), %%mm0\n\t"
-"       pf2id  %%mm0, %%mm0\n\t"
-"       packssdw %%mm0, %%mm0\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       movw   %%ax, 384(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm1\n\t"
-"       pf2id  %%mm1, %%mm1\n\t"
-"       packssdw %%mm1, %%mm1\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movw   %%ax, 128(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm2\n\t"
-"       pf2id  %%mm2, %%mm2\n\t"
-"       packssdw %%mm2, %%mm2\n\t"
-"       movd   %%mm2, %%"REG_a"\n\t"
-"       movw   %%ax, 128(%%"REG_D")\n\t"
-
-/* Phase 10*/
-
-"       movq    32(%%"REG_d"), %%mm0\n\t"
-"       movq    48(%%"REG_d"), %%mm1\n\t"
-"       pfadd   48(%%"REG_d"), %%mm0\n\t"
-"       pfadd   40(%%"REG_d"), %%mm1\n\t"
-"       pf2id   %%mm0, %%mm0\n\t"
-"       pf2id   %%mm1, %%mm1\n\t"
-"       packssdw %%mm0, %%mm0\n\t"
-"       packssdw %%mm1, %%mm1\n\t"
-"       movd    %%mm0, %%"REG_a"\n\t"
-"       movd    %%mm1, %%"REG_c"\n\t"
-"       movw    %%ax, 448(%%"REG_S")\n\t"
-"       movw    %%cx, 320(%%"REG_S")\n\t"
-"       shr    $16, %%"REG_a"\n\t"
-"       shr    $16, %%"REG_c"\n\t"
-"       movw    %%ax, 64(%%"REG_D")\n\t"
-"       movw    %%cx, 192(%%"REG_D")\n\t"
-
-"       movd   40(%%"REG_d"), %%mm3\n\t"
-"       movd   56(%%"REG_d"), %%mm4\n\t"
-"       movd   60(%%"REG_d"), %%mm0\n\t"
-"       movd   44(%%"REG_d"), %%mm2\n\t"
-"       movd  120(%%"REG_d"), %%mm5\n\t"
-"       punpckldq %%mm4, %%mm3\n\t"
-"       punpckldq 124(%%"REG_d"), %%mm0\n\t"
-"       pfadd 100(%%"REG_d"), %%mm5\n\t"
-"       punpckldq 36(%%"REG_d"), %%mm4\n\t"
-"       punpckldq 92(%%"REG_d"), %%mm2\n\t"
-"       movq  %%mm5, %%mm6\n\t"
-"       pfadd  %%mm4, %%mm3\n\t"
-"       pf2id  %%mm0, %%mm1\n\t"
-"       pf2id  %%mm3, %%mm3\n\t"
-"       packssdw %%mm1, %%mm1\n\t"
-"       packssdw %%mm3, %%mm3\n\t"
-"       pfadd  88(%%"REG_d"), %%mm5\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movd   %%mm3, %%"REG_c"\n\t"
-"       movw   %%ax, 448(%%"REG_D")\n\t"
-"       movw   %%cx, 192(%%"REG_S")\n\t"
-"       pf2id  %%mm5, %%mm5\n\t"
-"       packssdw %%mm5, %%mm5\n\t"
-"       shr   $16, %%"REG_a"\n\t"
-"       shr   $16, %%"REG_c"\n\t"
-"       movd   %%mm5, %%"REG_b"\n\t"
-"       movw   %%bx, 96(%%"REG_S")\n\t"
-"       movw   %%ax, 480(%%"REG_D")\n\t"
-"       movw   %%cx, 64(%%"REG_S")\n\t"
-"       pfadd  %%mm2, %%mm0\n\t"
-"       pf2id  %%mm0, %%mm0\n\t"
-"       packssdw %%mm0, %%mm0\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       pfadd  68(%%"REG_d"), %%mm6\n\t"
-"       movw   %%ax, 320(%%"REG_D")\n\t"
-"       shr    $16, %%"REG_a"\n\t"
-"       pf2id  %%mm6, %%mm6\n\t"
-"       packssdw %%mm6, %%mm6\n\t"
-"       movd   %%mm6, %%"REG_b"\n\t"
-"       movw   %%ax, 416(%%"REG_D")\n\t"
-"       movw   %%bx, 32(%%"REG_S")\n\t"
-
-"       movq   96(%%"REG_d"), %%mm0\n\t"
-"       movq  112(%%"REG_d"), %%mm2\n\t"
-"       movq  104(%%"REG_d"), %%mm4\n\t"
-"       pfadd %%mm2, %%mm0\n\t"
-"       pfadd %%mm4, %%mm2\n\t"
-"       pfadd 120(%%"REG_d"), %%mm4\n\t"
-"       movq  %%mm0, %%mm1\n\t"
-"       movq  %%mm2, %%mm3\n\t"
-"       movq  %%mm4, %%mm5\n\t"
-"       pfadd  64(%%"REG_d"), %%mm0\n\t"
-"       pfadd  80(%%"REG_d"), %%mm2\n\t"
-"       pfadd  72(%%"REG_d"), %%mm4\n\t"
-"       pf2id  %%mm0, %%mm0\n\t"
-"       pf2id  %%mm2, %%mm2\n\t"
-"       pf2id  %%mm4, %%mm4\n\t"
-"       packssdw %%mm0, %%mm0\n\t"
-"       packssdw %%mm2, %%mm2\n\t"
-"       packssdw %%mm4, %%mm4\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       movd   %%mm2, %%"REG_c"\n\t"
-"       movd   %%mm4, %%"REG_b"\n\t"
-"       movw   %%ax, 480(%%"REG_S")\n\t"
-"       movw   %%cx, 352(%%"REG_S")\n\t"
-"       movw   %%bx, 224(%%"REG_S")\n\t"
-"       shr   $16, %%"REG_a"\n\t"
-"       shr   $16, %%"REG_c"\n\t"
-"       shr   $16, %%"REG_b"\n\t"
-"       movw   %%ax, 32(%%"REG_D")\n\t"
-"       movw   %%cx, 160(%%"REG_D")\n\t"
-"       movw   %%bx, 288(%%"REG_D")\n\t"
-"       pfadd  80(%%"REG_d"), %%mm1\n\t"
-"       pfadd  72(%%"REG_d"), %%mm3\n\t"
-"       pfadd  88(%%"REG_d"), %%mm5\n\t"
-"       pf2id  %%mm1, %%mm1\n\t"
-"       pf2id  %%mm3, %%mm3\n\t"
-"       pf2id  %%mm5, %%mm5\n\t"
-"       packssdw %%mm1, %%mm1\n\t"
-"       packssdw %%mm3, %%mm3\n\t"
-"       packssdw %%mm5, %%mm5\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movd   %%mm3, %%"REG_c"\n\t"
-"       movd   %%mm5, %%"REG_b"\n\t"
-"       movw   %%ax, 416(%%"REG_S")\n\t"
-"       movw   %%cx, 288(%%"REG_S")\n\t"
-"       movw   %%bx, 160(%%"REG_S")\n\t"
-"       shr   $16, %%"REG_a"\n\t"
-"       shr   $16, %%"REG_c"\n\t"
-"       shr   $16, %%"REG_b"\n\t"
-"       movw   %%ax, 96(%%"REG_D")\n\t"
-"       movw   %%cx, 224(%%"REG_D")\n\t"
-"       movw   %%bx, 352(%%"REG_D")\n\t"
-
-"       movsw\n\t"
-
-".L_bye:\n\t"
-"       femms\n\t"
-        :
-        :"m"(a),"m"(b),"m"(c),"m"(tmp[0])
-        :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi");
-}
--- a/mp3lib/dct64_altivec.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,524 +0,0 @@
-
-/*
- * Discrete Cosine Tansform (DCT) for Altivec
- * Copyright (c) 2004 Romain Dolbeau <romain@dolbeau.org>
- * based upon code from "mp3lib/dct64.c"
- * This file is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- */
-
-#include <stdio.h>
-#include "mpg123.h"
-
-#ifdef HAVE_ALTIVEC_H
-#include <altivec.h>
-#endif
-
-// used to build registers permutation vectors (vcprm)
-// the 's' are for words in the _s_econd vector
-#define WORD_0 0x00,0x01,0x02,0x03
-#define WORD_1 0x04,0x05,0x06,0x07
-#define WORD_2 0x08,0x09,0x0a,0x0b
-#define WORD_3 0x0c,0x0d,0x0e,0x0f
-#define WORD_s0 0x10,0x11,0x12,0x13
-#define WORD_s1 0x14,0x15,0x16,0x17
-#define WORD_s2 0x18,0x19,0x1a,0x1b
-#define WORD_s3 0x1c,0x1d,0x1e,0x1f
-
-#define vcprm(a,b,c,d) (const vector unsigned char){WORD_ ## a, WORD_ ## b, WORD_ ## c, WORD_ ## d}
-#define vcii(a,b,c,d) (const vector float){FLOAT_ ## a, FLOAT_ ## b, FLOAT_ ## c, FLOAT_ ## d}
-
-#define FOUROF(a) {a,a,a,a}
-
-// vcprmle is used to keep the same index as in the SSE version.
-// it's the same as vcprm, with the index inversed
-// ('le' is Little Endian)
-#define vcprmle(a,b,c,d) vcprm(d,c,b,a)
-
-// used to build inverse/identity vectors (vcii)
-// n is _n_egative, p is _p_ositive
-#define FLOAT_n -1.
-#define FLOAT_p 1.
-
-void dct64_altivec(real *a,real *b,real *c)
-{
-  real __attribute__ ((aligned(16))) b1[0x20];
-  real __attribute__ ((aligned(16))) b2[0x20];
-
-  real *out0 = a;
-  real *out1 = b;
-  real *samples = c;
-
-  const vector float vczero = (const vector float)FOUROF(0.);
-  const vector unsigned char reverse = (const vector unsigned char)vcprm(3,2,1,0);
-
-
-  if (((unsigned long)b1 & 0x0000000F) ||
-      ((unsigned long)b2 & 0x0000000F))
-
-  {
-    printf("MISALIGNED:\t%p\t%p\t%p\t%p\t%p\n",
-           b1, b2, a, b, samples);
-  }
-
-
-#ifdef ALTIVEC_USE_REFERENCE_C_CODE
-
-  {
-    register real *costab = mp3lib_pnts[0];
-
-    b1[0x00] = samples[0x00] + samples[0x1F];
-    b1[0x01] = samples[0x01] + samples[0x1E];
-    b1[0x02] = samples[0x02] + samples[0x1D];
-    b1[0x03] = samples[0x03] + samples[0x1C];
-    b1[0x04] = samples[0x04] + samples[0x1B];
-    b1[0x05] = samples[0x05] + samples[0x1A];
-    b1[0x06] = samples[0x06] + samples[0x19];
-    b1[0x07] = samples[0x07] + samples[0x18];
-    b1[0x08] = samples[0x08] + samples[0x17];
-    b1[0x09] = samples[0x09] + samples[0x16];
-    b1[0x0A] = samples[0x0A] + samples[0x15];
-    b1[0x0B] = samples[0x0B] + samples[0x14];
-    b1[0x0C] = samples[0x0C] + samples[0x13];
-    b1[0x0D] = samples[0x0D] + samples[0x12];
-    b1[0x0E] = samples[0x0E] + samples[0x11];
-    b1[0x0F] = samples[0x0F] + samples[0x10];
-    b1[0x10] = (samples[0x0F] - samples[0x10]) * costab[0xF];
-    b1[0x11] = (samples[0x0E] - samples[0x11]) * costab[0xE];
-    b1[0x12] = (samples[0x0D] - samples[0x12]) * costab[0xD];
-    b1[0x13] = (samples[0x0C] - samples[0x13]) * costab[0xC];
-    b1[0x14] = (samples[0x0B] - samples[0x14]) * costab[0xB];
-    b1[0x15] = (samples[0x0A] - samples[0x15]) * costab[0xA];
-    b1[0x16] = (samples[0x09] - samples[0x16]) * costab[0x9];
-    b1[0x17] = (samples[0x08] - samples[0x17]) * costab[0x8];
-    b1[0x18] = (samples[0x07] - samples[0x18]) * costab[0x7];
-    b1[0x19] = (samples[0x06] - samples[0x19]) * costab[0x6];
-    b1[0x1A] = (samples[0x05] - samples[0x1A]) * costab[0x5];
-    b1[0x1B] = (samples[0x04] - samples[0x1B]) * costab[0x4];
-    b1[0x1C] = (samples[0x03] - samples[0x1C]) * costab[0x3];
-    b1[0x1D] = (samples[0x02] - samples[0x1D]) * costab[0x2];
-    b1[0x1E] = (samples[0x01] - samples[0x1E]) * costab[0x1];
-    b1[0x1F] = (samples[0x00] - samples[0x1F]) * costab[0x0];
-
-  }
-  {
-    register real *costab = mp3lib_pnts[1];
-
-    b2[0x00] = b1[0x00] + b1[0x0F];
-    b2[0x01] = b1[0x01] + b1[0x0E];
-    b2[0x02] = b1[0x02] + b1[0x0D];
-    b2[0x03] = b1[0x03] + b1[0x0C];
-    b2[0x04] = b1[0x04] + b1[0x0B];
-    b2[0x05] = b1[0x05] + b1[0x0A];
-    b2[0x06] = b1[0x06] + b1[0x09];
-    b2[0x07] = b1[0x07] + b1[0x08];
-    b2[0x08] = (b1[0x07] - b1[0x08]) * costab[7];
-    b2[0x09] = (b1[0x06] - b1[0x09]) * costab[6];
-    b2[0x0A] = (b1[0x05] - b1[0x0A]) * costab[5];
-    b2[0x0B] = (b1[0x04] - b1[0x0B]) * costab[4];
-    b2[0x0C] = (b1[0x03] - b1[0x0C]) * costab[3];
-    b2[0x0D] = (b1[0x02] - b1[0x0D]) * costab[2];
-    b2[0x0E] = (b1[0x01] - b1[0x0E]) * costab[1];
-    b2[0x0F] = (b1[0x00] - b1[0x0F]) * costab[0];
-    b2[0x10] = b1[0x10] + b1[0x1F];
-    b2[0x11] = b1[0x11] + b1[0x1E];
-    b2[0x12] = b1[0x12] + b1[0x1D];
-    b2[0x13] = b1[0x13] + b1[0x1C];
-    b2[0x14] = b1[0x14] + b1[0x1B];
-    b2[0x15] = b1[0x15] + b1[0x1A];
-    b2[0x16] = b1[0x16] + b1[0x19];
-    b2[0x17] = b1[0x17] + b1[0x18];
-    b2[0x18] = (b1[0x18] - b1[0x17]) * costab[7];
-    b2[0x19] = (b1[0x19] - b1[0x16]) * costab[6];
-    b2[0x1A] = (b1[0x1A] - b1[0x15]) * costab[5];
-    b2[0x1B] = (b1[0x1B] - b1[0x14]) * costab[4];
-    b2[0x1C] = (b1[0x1C] - b1[0x13]) * costab[3];
-    b2[0x1D] = (b1[0x1D] - b1[0x12]) * costab[2];
-    b2[0x1E] = (b1[0x1E] - b1[0x11]) * costab[1];
-    b2[0x1F] = (b1[0x1F] - b1[0x10]) * costab[0];
-
-  }
-
-  {
-    register real *costab = mp3lib_pnts[2];
-
-    b1[0x00] = b2[0x00] + b2[0x07];
-    b1[0x01] = b2[0x01] + b2[0x06];
-    b1[0x02] = b2[0x02] + b2[0x05];
-    b1[0x03] = b2[0x03] + b2[0x04];
-    b1[0x04] = (b2[0x03] - b2[0x04]) * costab[3];
-    b1[0x05] = (b2[0x02] - b2[0x05]) * costab[2];
-    b1[0x06] = (b2[0x01] - b2[0x06]) * costab[1];
-    b1[0x07] = (b2[0x00] - b2[0x07]) * costab[0];
-    b1[0x08] = b2[0x08] + b2[0x0F];
-    b1[0x09] = b2[0x09] + b2[0x0E];
-    b1[0x0A] = b2[0x0A] + b2[0x0D];
-    b1[0x0B] = b2[0x0B] + b2[0x0C];
-    b1[0x0C] = (b2[0x0C] - b2[0x0B]) * costab[3];
-    b1[0x0D] = (b2[0x0D] - b2[0x0A]) * costab[2];
-    b1[0x0E] = (b2[0x0E] - b2[0x09]) * costab[1];
-    b1[0x0F] = (b2[0x0F] - b2[0x08]) * costab[0];
-    b1[0x10] = b2[0x10] + b2[0x17];
-    b1[0x11] = b2[0x11] + b2[0x16];
-    b1[0x12] = b2[0x12] + b2[0x15];
-    b1[0x13] = b2[0x13] + b2[0x14];
-    b1[0x14] = (b2[0x13] - b2[0x14]) * costab[3];
-    b1[0x15] = (b2[0x12] - b2[0x15]) * costab[2];
-    b1[0x16] = (b2[0x11] - b2[0x16]) * costab[1];
-    b1[0x17] = (b2[0x10] - b2[0x17]) * costab[0];
-    b1[0x18] = b2[0x18] + b2[0x1F];
-    b1[0x19] = b2[0x19] + b2[0x1E];
-    b1[0x1A] = b2[0x1A] + b2[0x1D];
-    b1[0x1B] = b2[0x1B] + b2[0x1C];
-    b1[0x1C] = (b2[0x1C] - b2[0x1B]) * costab[3];
-    b1[0x1D] = (b2[0x1D] - b2[0x1A]) * costab[2];
-    b1[0x1E] = (b2[0x1E] - b2[0x19]) * costab[1];
-    b1[0x1F] = (b2[0x1F] - b2[0x18]) * costab[0];
-  }
-
-#else /* ALTIVEC_USE_REFERENCE_C_CODE */
-
-  // How does it work ?
-  // the first three passes are reproducted in the three block below
-  // all computations are done on a 4 elements vector
-  // 'reverse' is a special perumtation vector used to reverse
-  // the order of the elements inside a vector.
-  // note that all loads/stores to b1 (b2) between passes 1 and 2 (2 and 3)
-  // have been removed, all elements are stored inside b1vX (b2vX)
-  {
-    register vector float
-      b1v0, b1v1, b1v2, b1v3,
-      b1v4, b1v5, b1v6, b1v7;
-    register vector float
-      temp1, temp2;
-
-    {
-      register real *costab = mp3lib_pnts[0];
-
-      register vector float
-        samplesv1, samplesv2, samplesv3, samplesv4,
-        samplesv5, samplesv6, samplesv7, samplesv8,
-        samplesv9;
-      register vector unsigned char samples_perm = vec_lvsl(0, samples);
-      register vector float costabv1, costabv2, costabv3, costabv4, costabv5;
-      register vector unsigned char costab_perm = vec_lvsl(0, costab);
-
-      samplesv1 = vec_ld(0, samples);
-      samplesv2 = vec_ld(16, samples);
-      samplesv1 = vec_perm(samplesv1, samplesv2, samples_perm);
-      samplesv3 = vec_ld(32, samples);
-      samplesv2 = vec_perm(samplesv2, samplesv3, samples_perm);
-      samplesv4 = vec_ld(48, samples);
-      samplesv3 = vec_perm(samplesv3, samplesv4, samples_perm);
-      samplesv5 = vec_ld(64, samples);
-      samplesv4 = vec_perm(samplesv4, samplesv5, samples_perm);
-      samplesv6 = vec_ld(80, samples);
-      samplesv5 = vec_perm(samplesv5, samplesv6, samples_perm);
-      samplesv7 = vec_ld(96, samples);
-      samplesv6 = vec_perm(samplesv6, samplesv7, samples_perm);
-      samplesv8 = vec_ld(112, samples);
-      samplesv7 = vec_perm(samplesv7, samplesv8, samples_perm);
-      samplesv9 = vec_ld(128, samples);
-      samplesv8 = vec_perm(samplesv8, samplesv9, samples_perm);
-
-      temp1 = vec_add(samplesv1,
-                      vec_perm(samplesv8, samplesv8, reverse));
-      //vec_st(temp1, 0, b1);
-      b1v0 = temp1;
-      temp1 = vec_add(samplesv2,
-                      vec_perm(samplesv7, samplesv7, reverse));
-      //vec_st(temp1, 16, b1);
-      b1v1 = temp1;
-      temp1 = vec_add(samplesv3,
-                      vec_perm(samplesv6, samplesv6, reverse));
-      //vec_st(temp1, 32, b1);
-      b1v2 = temp1;
-      temp1 = vec_add(samplesv4,
-                      vec_perm(samplesv5, samplesv5, reverse));
-      //vec_st(temp1, 48, b1);
-      b1v3 = temp1;
-
-      costabv1 = vec_ld(0, costab);
-      costabv2 = vec_ld(16, costab);
-      costabv1 = vec_perm(costabv1, costabv2, costab_perm);
-      costabv3 = vec_ld(32, costab);
-      costabv2 = vec_perm(costabv2, costabv3, costab_perm);
-      costabv4 = vec_ld(48, costab);
-      costabv3 = vec_perm(costabv3, costabv4, costab_perm);
-      costabv5 = vec_ld(64, costab);
-      costabv4 = vec_perm(costabv4, costabv5, costab_perm);
-
-      temp1 = vec_sub(vec_perm(samplesv4, samplesv4, reverse),
-                      samplesv5);
-      temp2 = vec_madd(temp1,
-                       vec_perm(costabv4, costabv4, reverse),
-                       vczero);
-      //vec_st(temp2, 64, b1);
-      b1v4 = temp2;
-
-      temp1 = vec_sub(vec_perm(samplesv3, samplesv3, reverse),
-                      samplesv6);
-      temp2 = vec_madd(temp1,
-                       vec_perm(costabv3, costabv3, reverse),
-                       vczero);
-      //vec_st(temp2, 80, b1);
-      b1v5 = temp2;
-      temp1 = vec_sub(vec_perm(samplesv2, samplesv2, reverse),
-                      samplesv7);
-      temp2 = vec_madd(temp1,
-                       vec_perm(costabv2, costabv2, reverse),
-                       vczero);
-      //vec_st(temp2, 96, b1);
-      b1v6 = temp2;
-
-      temp1 = vec_sub(vec_perm(samplesv1, samplesv1, reverse),
-                      samplesv8);
-      temp2 = vec_madd(temp1,
-                       vec_perm(costabv1, costabv1, reverse),
-                       vczero);
-      //vec_st(temp2, 112, b1);
-      b1v7 = temp2;
-
-    }
-
-    {
-      register vector float
-        b2v0, b2v1, b2v2, b2v3,
-        b2v4, b2v5, b2v6, b2v7;
-      {
-        register real *costab = mp3lib_pnts[1];
-        register vector float costabv1r, costabv2r, costabv1, costabv2, costabv3;
-        register vector unsigned char costab_perm = vec_lvsl(0, costab);
-
-        costabv1 = vec_ld(0, costab);
-        costabv2 = vec_ld(16, costab);
-        costabv1 = vec_perm(costabv1, costabv2, costab_perm);
-        costabv3  = vec_ld(32, costab);
-        costabv2 = vec_perm(costabv2, costabv3 , costab_perm);
-        costabv1r = vec_perm(costabv1, costabv1, reverse);
-        costabv2r = vec_perm(costabv2, costabv2, reverse);
-
-        temp1 = vec_add(b1v0, vec_perm(b1v3, b1v3, reverse));
-        //vec_st(temp1, 0, b2);
-        b2v0 = temp1;
-        temp1 = vec_add(b1v1, vec_perm(b1v2, b1v2, reverse));
-        //vec_st(temp1, 16, b2);
-        b2v1 = temp1;
-        temp2 = vec_sub(vec_perm(b1v1, b1v1, reverse), b1v2);
-        temp1 = vec_madd(temp2, costabv2r, vczero);
-        //vec_st(temp1, 32, b2);
-        b2v2 = temp1;
-        temp2 = vec_sub(vec_perm(b1v0, b1v0, reverse), b1v3);
-        temp1 = vec_madd(temp2, costabv1r, vczero);
-        //vec_st(temp1, 48, b2);
-        b2v3 = temp1;
-        temp1 = vec_add(b1v4, vec_perm(b1v7, b1v7, reverse));
-        //vec_st(temp1, 64, b2);
-        b2v4 = temp1;
-        temp1 = vec_add(b1v5, vec_perm(b1v6, b1v6, reverse));
-        //vec_st(temp1, 80, b2);
-        b2v5 = temp1;
-        temp2 = vec_sub(b1v6, vec_perm(b1v5, b1v5, reverse));
-        temp1 = vec_madd(temp2, costabv2r, vczero);
-        //vec_st(temp1, 96, b2);
-        b2v6 = temp1;
-        temp2 = vec_sub(b1v7, vec_perm(b1v4, b1v4, reverse));
-        temp1 = vec_madd(temp2, costabv1r, vczero);
-        //vec_st(temp1, 112, b2);
-        b2v7 = temp1;
-      }
-
-      {
-        register real *costab = mp3lib_pnts[2];
-
-
-        vector float costabv1r, costabv1, costabv2;
-        vector unsigned char costab_perm = vec_lvsl(0, costab);
-
-        costabv1 = vec_ld(0, costab);
-        costabv2 = vec_ld(16, costab);
-        costabv1 = vec_perm(costabv1, costabv2, costab_perm);
-        costabv1r = vec_perm(costabv1, costabv1, reverse);
-
-        temp1 = vec_add(b2v0, vec_perm(b2v1, b2v1, reverse));
-        vec_st(temp1, 0, b1);
-        temp2 = vec_sub(vec_perm(b2v0, b2v0, reverse), b2v1);
-        temp1 = vec_madd(temp2, costabv1r, vczero);
-        vec_st(temp1, 16, b1);
-
-        temp1 = vec_add(b2v2, vec_perm(b2v3, b2v3, reverse));
-        vec_st(temp1, 32, b1);
-        temp2 = vec_sub(b2v3, vec_perm(b2v2, b2v2, reverse));
-        temp1 = vec_madd(temp2, costabv1r, vczero);
-        vec_st(temp1, 48, b1);
-
-        temp1 = vec_add(b2v4, vec_perm(b2v5, b2v5, reverse));
-        vec_st(temp1, 64, b1);
-        temp2 = vec_sub(vec_perm(b2v4, b2v4, reverse), b2v5);
-        temp1 = vec_madd(temp2, costabv1r, vczero);
-        vec_st(temp1, 80, b1);
-
-        temp1 = vec_add(b2v6, vec_perm(b2v7, b2v7, reverse));
-        vec_st(temp1, 96, b1);
-        temp2 = vec_sub(b2v7, vec_perm(b2v6, b2v6, reverse));
-        temp1 = vec_madd(temp2, costabv1r, vczero);
-        vec_st(temp1, 112, b1);
-
-      }
-    }
-  }
-
-#endif /* ALTIVEC_USE_REFERENCE_C_CODE */
-
-  {
-    register real const cos0 = mp3lib_pnts[3][0];
-    register real const cos1 = mp3lib_pnts[3][1];
-
-    b2[0x00] = b1[0x00] + b1[0x03];
-    b2[0x01] = b1[0x01] + b1[0x02];
-    b2[0x02] = (b1[0x01] - b1[0x02]) * cos1;
-    b2[0x03] = (b1[0x00] - b1[0x03]) * cos0;
-    b2[0x04] = b1[0x04] + b1[0x07];
-    b2[0x05] = b1[0x05] + b1[0x06];
-    b2[0x06] = (b1[0x06] - b1[0x05]) * cos1;
-    b2[0x07] = (b1[0x07] - b1[0x04]) * cos0;
-    b2[0x08] = b1[0x08] + b1[0x0B];
-    b2[0x09] = b1[0x09] + b1[0x0A];
-    b2[0x0A] = (b1[0x09] - b1[0x0A]) * cos1;
-    b2[0x0B] = (b1[0x08] - b1[0x0B]) * cos0;
-    b2[0x0C] = b1[0x0C] + b1[0x0F];
-    b2[0x0D] = b1[0x0D] + b1[0x0E];
-    b2[0x0E] = (b1[0x0E] - b1[0x0D]) * cos1;
-    b2[0x0F] = (b1[0x0F] - b1[0x0C]) * cos0;
-    b2[0x10] = b1[0x10] + b1[0x13];
-    b2[0x11] = b1[0x11] + b1[0x12];
-    b2[0x12] = (b1[0x11] - b1[0x12]) * cos1;
-    b2[0x13] = (b1[0x10] - b1[0x13]) * cos0;
-    b2[0x14] = b1[0x14] + b1[0x17];
-    b2[0x15] = b1[0x15] + b1[0x16];
-    b2[0x16] = (b1[0x16] - b1[0x15]) * cos1;
-    b2[0x17] = (b1[0x17] - b1[0x14]) * cos0;
-    b2[0x18] = b1[0x18] + b1[0x1B];
-    b2[0x19] = b1[0x19] + b1[0x1A];
-    b2[0x1A] = (b1[0x19] - b1[0x1A]) * cos1;
-    b2[0x1B] = (b1[0x18] - b1[0x1B]) * cos0;
-    b2[0x1C] = b1[0x1C] + b1[0x1F];
-    b2[0x1D] = b1[0x1D] + b1[0x1E];
-    b2[0x1E] = (b1[0x1E] - b1[0x1D]) * cos1;
-    b2[0x1F] = (b1[0x1F] - b1[0x1C]) * cos0;
-  }
-
-  {
-    register real const cos0 = mp3lib_pnts[4][0];
-
-    b1[0x00] = b2[0x00] + b2[0x01];
-    b1[0x01] = (b2[0x00] - b2[0x01]) * cos0;
-    b1[0x02] = b2[0x02] + b2[0x03];
-    b1[0x03] = (b2[0x03] - b2[0x02]) * cos0;
-    b1[0x02] += b1[0x03];
-
-    b1[0x04] = b2[0x04] + b2[0x05];
-    b1[0x05] = (b2[0x04] - b2[0x05]) * cos0;
-    b1[0x06] = b2[0x06] + b2[0x07];
-    b1[0x07] = (b2[0x07] - b2[0x06]) * cos0;
-    b1[0x06] += b1[0x07];
-    b1[0x04] += b1[0x06];
-    b1[0x06] += b1[0x05];
-    b1[0x05] += b1[0x07];
-
-    b1[0x08] = b2[0x08] + b2[0x09];
-    b1[0x09] = (b2[0x08] - b2[0x09]) * cos0;
-    b1[0x0A] = b2[0x0A] + b2[0x0B];
-    b1[0x0B] = (b2[0x0B] - b2[0x0A]) * cos0;
-    b1[0x0A] += b1[0x0B];
-
-    b1[0x0C] = b2[0x0C] + b2[0x0D];
-    b1[0x0D] = (b2[0x0C] - b2[0x0D]) * cos0;
-    b1[0x0E] = b2[0x0E] + b2[0x0F];
-    b1[0x0F] = (b2[0x0F] - b2[0x0E]) * cos0;
-    b1[0x0E] += b1[0x0F];
-    b1[0x0C] += b1[0x0E];
-    b1[0x0E] += b1[0x0D];
-    b1[0x0D] += b1[0x0F];
-
-    b1[0x10] = b2[0x10] + b2[0x11];
-    b1[0x11] = (b2[0x10] - b2[0x11]) * cos0;
-    b1[0x12] = b2[0x12] + b2[0x13];
-    b1[0x13] = (b2[0x13] - b2[0x12]) * cos0;
-    b1[0x12] += b1[0x13];
-
-    b1[0x14] = b2[0x14] + b2[0x15];
-    b1[0x15] = (b2[0x14] - b2[0x15]) * cos0;
-    b1[0x16] = b2[0x16] + b2[0x17];
-    b1[0x17] = (b2[0x17] - b2[0x16]) * cos0;
-    b1[0x16] += b1[0x17];
-    b1[0x14] += b1[0x16];
-    b1[0x16] += b1[0x15];
-    b1[0x15] += b1[0x17];
-
-    b1[0x18] = b2[0x18] + b2[0x19];
-    b1[0x19] = (b2[0x18] - b2[0x19]) * cos0;
-    b1[0x1A] = b2[0x1A] + b2[0x1B];
-    b1[0x1B] = (b2[0x1B] - b2[0x1A]) * cos0;
-    b1[0x1A] += b1[0x1B];
-
-    b1[0x1C] = b2[0x1C] + b2[0x1D];
-    b1[0x1D] = (b2[0x1C] - b2[0x1D]) * cos0;
-    b1[0x1E] = b2[0x1E] + b2[0x1F];
-    b1[0x1F] = (b2[0x1F] - b2[0x1E]) * cos0;
-    b1[0x1E] += b1[0x1F];
-    b1[0x1C] += b1[0x1E];
-    b1[0x1E] += b1[0x1D];
-    b1[0x1D] += b1[0x1F];
-  }
-
-  out0[0x10*16] = b1[0x00];
-  out0[0x10*12] = b1[0x04];
-  out0[0x10* 8] = b1[0x02];
-  out0[0x10* 4] = b1[0x06];
-  out0[0x10* 0] = b1[0x01];
-  out1[0x10* 0] = b1[0x01];
-  out1[0x10* 4] = b1[0x05];
-  out1[0x10* 8] = b1[0x03];
-  out1[0x10*12] = b1[0x07];
-
-  b1[0x08] += b1[0x0C];
-  out0[0x10*14] = b1[0x08];
-  b1[0x0C] += b1[0x0a];
-  out0[0x10*10] = b1[0x0C];
-  b1[0x0A] += b1[0x0E];
-  out0[0x10* 6] = b1[0x0A];
-  b1[0x0E] += b1[0x09];
-  out0[0x10* 2] = b1[0x0E];
-  b1[0x09] += b1[0x0D];
-  out1[0x10* 2] = b1[0x09];
-  b1[0x0D] += b1[0x0B];
-  out1[0x10* 6] = b1[0x0D];
-  b1[0x0B] += b1[0x0F];
-  out1[0x10*10] = b1[0x0B];
-  out1[0x10*14] = b1[0x0F];
-
-  b1[0x18] += b1[0x1C];
-  out0[0x10*15] = b1[0x10] + b1[0x18];
-  out0[0x10*13] = b1[0x18] + b1[0x14];
-  b1[0x1C] += b1[0x1a];
-  out0[0x10*11] = b1[0x14] + b1[0x1C];
-  out0[0x10* 9] = b1[0x1C] + b1[0x12];
-  b1[0x1A] += b1[0x1E];
-  out0[0x10* 7] = b1[0x12] + b1[0x1A];
-  out0[0x10* 5] = b1[0x1A] + b1[0x16];
-  b1[0x1E] += b1[0x19];
-  out0[0x10* 3] = b1[0x16] + b1[0x1E];
-  out0[0x10* 1] = b1[0x1E] + b1[0x11];
-  b1[0x19] += b1[0x1D];
-  out1[0x10* 1] = b1[0x11] + b1[0x19];
-  out1[0x10* 3] = b1[0x19] + b1[0x15];
-  b1[0x1D] += b1[0x1B];
-  out1[0x10* 5] = b1[0x15] + b1[0x1D];
-  out1[0x10* 7] = b1[0x1D] + b1[0x13];
-  b1[0x1B] += b1[0x1F];
-  out1[0x10* 9] = b1[0x13] + b1[0x1B];
-  out1[0x10*11] = b1[0x1B] + b1[0x17];
-  out1[0x10*13] = b1[0x17] + b1[0x1F];
-  out1[0x10*15] = b1[0x1F];
-}
--- a/mp3lib/dct64_i386.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
- * Discrete Cosine Tansform (DCT) for subband synthesis
- * optimized for machines with no auto-increment.
- * The performance is highly compiler dependend. Maybe
- * the mpg123_dct64.c version for 'normal' processor may be faster
- * even for Intel processors.
- */
-
-#include "mpg123.h"
-
-static void mpg123_dct64_1(real * out0, real * out1, real * b1, real * b2, real * samples)
-{
-
-        {
-                register real *costab = mp3lib_pnts[0];
-
-                b1[0x00] = samples[0x00] + samples[0x1F];
-                b1[0x1F] = (samples[0x00] - samples[0x1F]) * costab[0x0];
-
-                b1[0x01] = samples[0x01] + samples[0x1E];
-                b1[0x1E] = (samples[0x01] - samples[0x1E]) * costab[0x1];
-
-                b1[0x02] = samples[0x02] + samples[0x1D];
-                b1[0x1D] = (samples[0x02] - samples[0x1D]) * costab[0x2];
-
-                b1[0x03] = samples[0x03] + samples[0x1C];
-                b1[0x1C] = (samples[0x03] - samples[0x1C]) * costab[0x3];
-
-                b1[0x04] = samples[0x04] + samples[0x1B];
-                b1[0x1B] = (samples[0x04] - samples[0x1B]) * costab[0x4];
-
-                b1[0x05] = samples[0x05] + samples[0x1A];
-                b1[0x1A] = (samples[0x05] - samples[0x1A]) * costab[0x5];
-
-                b1[0x06] = samples[0x06] + samples[0x19];
-                b1[0x19] = (samples[0x06] - samples[0x19]) * costab[0x6];
-
-                b1[0x07] = samples[0x07] + samples[0x18];
-                b1[0x18] = (samples[0x07] - samples[0x18]) * costab[0x7];
-
-                b1[0x08] = samples[0x08] + samples[0x17];
-                b1[0x17] = (samples[0x08] - samples[0x17]) * costab[0x8];
-
-                b1[0x09] = samples[0x09] + samples[0x16];
-                b1[0x16] = (samples[0x09] - samples[0x16]) * costab[0x9];
-
-                b1[0x0A] = samples[0x0A] + samples[0x15];
-                b1[0x15] = (samples[0x0A] - samples[0x15]) * costab[0xA];
-
-                b1[0x0B] = samples[0x0B] + samples[0x14];
-                b1[0x14] = (samples[0x0B] - samples[0x14]) * costab[0xB];
-
-                b1[0x0C] = samples[0x0C] + samples[0x13];
-                b1[0x13] = (samples[0x0C] - samples[0x13]) * costab[0xC];
-
-                b1[0x0D] = samples[0x0D] + samples[0x12];
-                b1[0x12] = (samples[0x0D] - samples[0x12]) * costab[0xD];
-
-                b1[0x0E] = samples[0x0E] + samples[0x11];
-                b1[0x11] = (samples[0x0E] - samples[0x11]) * costab[0xE];
-
-                b1[0x0F] = samples[0x0F] + samples[0x10];
-                b1[0x10] = (samples[0x0F] - samples[0x10]) * costab[0xF];
-        }
-
-        {
-                register real *costab = mp3lib_pnts[1];
-
-                b2[0x00] = b1[0x00] + b1[0x0F];
-                b2[0x0F] = (b1[0x00] - b1[0x0F]) * costab[0];
-                b2[0x01] = b1[0x01] + b1[0x0E];
-                b2[0x0E] = (b1[0x01] - b1[0x0E]) * costab[1];
-                b2[0x02] = b1[0x02] + b1[0x0D];
-                b2[0x0D] = (b1[0x02] - b1[0x0D]) * costab[2];
-                b2[0x03] = b1[0x03] + b1[0x0C];
-                b2[0x0C] = (b1[0x03] - b1[0x0C]) * costab[3];
-                b2[0x04] = b1[0x04] + b1[0x0B];
-                b2[0x0B] = (b1[0x04] - b1[0x0B]) * costab[4];
-                b2[0x05] = b1[0x05] + b1[0x0A];
-                b2[0x0A] = (b1[0x05] - b1[0x0A]) * costab[5];
-                b2[0x06] = b1[0x06] + b1[0x09];
-                b2[0x09] = (b1[0x06] - b1[0x09]) * costab[6];
-                b2[0x07] = b1[0x07] + b1[0x08];
-                b2[0x08] = (b1[0x07] - b1[0x08]) * costab[7];
-
-                b2[0x10] = b1[0x10] + b1[0x1F];
-                b2[0x1F] = (b1[0x1F] - b1[0x10]) * costab[0];
-                b2[0x11] = b1[0x11] + b1[0x1E];
-                b2[0x1E] = (b1[0x1E] - b1[0x11]) * costab[1];
-                b2[0x12] = b1[0x12] + b1[0x1D];
-                b2[0x1D] = (b1[0x1D] - b1[0x12]) * costab[2];
-                b2[0x13] = b1[0x13] + b1[0x1C];
-                b2[0x1C] = (b1[0x1C] - b1[0x13]) * costab[3];
-                b2[0x14] = b1[0x14] + b1[0x1B];
-                b2[0x1B] = (b1[0x1B] - b1[0x14]) * costab[4];
-                b2[0x15] = b1[0x15] + b1[0x1A];
-                b2[0x1A] = (b1[0x1A] - b1[0x15]) * costab[5];
-                b2[0x16] = b1[0x16] + b1[0x19];
-                b2[0x19] = (b1[0x19] - b1[0x16]) * costab[6];
-                b2[0x17] = b1[0x17] + b1[0x18];
-                b2[0x18] = (b1[0x18] - b1[0x17]) * costab[7];
-        }
-
-        {
-                register real *costab = mp3lib_pnts[2];
-
-                b1[0x00] = b2[0x00] + b2[0x07];
-                b1[0x07] = (b2[0x00] - b2[0x07]) * costab[0];
-                b1[0x01] = b2[0x01] + b2[0x06];
-                b1[0x06] = (b2[0x01] - b2[0x06]) * costab[1];
-                b1[0x02] = b2[0x02] + b2[0x05];
-                b1[0x05] = (b2[0x02] - b2[0x05]) * costab[2];
-                b1[0x03] = b2[0x03] + b2[0x04];
-                b1[0x04] = (b2[0x03] - b2[0x04]) * costab[3];
-
-                b1[0x08] = b2[0x08] + b2[0x0F];
-                b1[0x0F] = (b2[0x0F] - b2[0x08]) * costab[0];
-                b1[0x09] = b2[0x09] + b2[0x0E];
-                b1[0x0E] = (b2[0x0E] - b2[0x09]) * costab[1];
-                b1[0x0A] = b2[0x0A] + b2[0x0D];
-                b1[0x0D] = (b2[0x0D] - b2[0x0A]) * costab[2];
-                b1[0x0B] = b2[0x0B] + b2[0x0C];
-                b1[0x0C] = (b2[0x0C] - b2[0x0B]) * costab[3];
-
-                b1[0x10] = b2[0x10] + b2[0x17];
-                b1[0x17] = (b2[0x10] - b2[0x17]) * costab[0];
-                b1[0x11] = b2[0x11] + b2[0x16];
-                b1[0x16] = (b2[0x11] - b2[0x16]) * costab[1];
-                b1[0x12] = b2[0x12] + b2[0x15];
-                b1[0x15] = (b2[0x12] - b2[0x15]) * costab[2];
-                b1[0x13] = b2[0x13] + b2[0x14];
-                b1[0x14] = (b2[0x13] - b2[0x14]) * costab[3];
-
-                b1[0x18] = b2[0x18] + b2[0x1F];
-                b1[0x1F] = (b2[0x1F] - b2[0x18]) * costab[0];
-                b1[0x19] = b2[0x19] + b2[0x1E];
-                b1[0x1E] = (b2[0x1E] - b2[0x19]) * costab[1];
-                b1[0x1A] = b2[0x1A] + b2[0x1D];
-                b1[0x1D] = (b2[0x1D] - b2[0x1A]) * costab[2];
-                b1[0x1B] = b2[0x1B] + b2[0x1C];
-                b1[0x1C] = (b2[0x1C] - b2[0x1B]) * costab[3];
-        }
-
-        {
-                register real const cos0 = mp3lib_pnts[3][0];
-                register real const cos1 = mp3lib_pnts[3][1];
-
-                b2[0x00] = b1[0x00] + b1[0x03];
-                b2[0x03] = (b1[0x00] - b1[0x03]) * cos0;
-                b2[0x01] = b1[0x01] + b1[0x02];
-                b2[0x02] = (b1[0x01] - b1[0x02]) * cos1;
-
-                b2[0x04] = b1[0x04] + b1[0x07];
-                b2[0x07] = (b1[0x07] - b1[0x04]) * cos0;
-                b2[0x05] = b1[0x05] + b1[0x06];
-                b2[0x06] = (b1[0x06] - b1[0x05]) * cos1;
-
-                b2[0x08] = b1[0x08] + b1[0x0B];
-                b2[0x0B] = (b1[0x08] - b1[0x0B]) * cos0;
-                b2[0x09] = b1[0x09] + b1[0x0A];
-                b2[0x0A] = (b1[0x09] - b1[0x0A]) * cos1;
-
-                b2[0x0C] = b1[0x0C] + b1[0x0F];
-                b2[0x0F] = (b1[0x0F] - b1[0x0C]) * cos0;
-                b2[0x0D] = b1[0x0D] + b1[0x0E];
-                b2[0x0E] = (b1[0x0E] - b1[0x0D]) * cos1;
-
-                b2[0x10] = b1[0x10] + b1[0x13];
-                b2[0x13] = (b1[0x10] - b1[0x13]) * cos0;
-                b2[0x11] = b1[0x11] + b1[0x12];
-                b2[0x12] = (b1[0x11] - b1[0x12]) * cos1;
-
-                b2[0x14] = b1[0x14] + b1[0x17];
-                b2[0x17] = (b1[0x17] - b1[0x14]) * cos0;
-                b2[0x15] = b1[0x15] + b1[0x16];
-                b2[0x16] = (b1[0x16] - b1[0x15]) * cos1;
-
-                b2[0x18] = b1[0x18] + b1[0x1B];
-                b2[0x1B] = (b1[0x18] - b1[0x1B]) * cos0;
-                b2[0x19] = b1[0x19] + b1[0x1A];
-                b2[0x1A] = (b1[0x19] - b1[0x1A]) * cos1;
-
-                b2[0x1C] = b1[0x1C] + b1[0x1F];
-                b2[0x1F] = (b1[0x1F] - b1[0x1C]) * cos0;
-                b2[0x1D] = b1[0x1D] + b1[0x1E];
-                b2[0x1E] = (b1[0x1E] - b1[0x1D]) * cos1;
-        }
-
-        {
-                register real const cos0 = mp3lib_pnts[4][0];
-
-                b1[0x00] = b2[0x00] + b2[0x01];
-                b1[0x01] = (b2[0x00] - b2[0x01]) * cos0;
-                b1[0x02] = b2[0x02] + b2[0x03];
-                b1[0x03] = (b2[0x03] - b2[0x02]) * cos0;
-                b1[0x02] += b1[0x03];
-
-                b1[0x04] = b2[0x04] + b2[0x05];
-                b1[0x05] = (b2[0x04] - b2[0x05]) * cos0;
-                b1[0x06] = b2[0x06] + b2[0x07];
-                b1[0x07] = (b2[0x07] - b2[0x06]) * cos0;
-                b1[0x06] += b1[0x07];
-                b1[0x04] += b1[0x06];
-                b1[0x06] += b1[0x05];
-                b1[0x05] += b1[0x07];
-
-                b1[0x08] = b2[0x08] + b2[0x09];
-                b1[0x09] = (b2[0x08] - b2[0x09]) * cos0;
-                b1[0x0A] = b2[0x0A] + b2[0x0B];
-                b1[0x0B] = (b2[0x0B] - b2[0x0A]) * cos0;
-                b1[0x0A] += b1[0x0B];
-
-                b1[0x0C] = b2[0x0C] + b2[0x0D];
-                b1[0x0D] = (b2[0x0C] - b2[0x0D]) * cos0;
-                b1[0x0E] = b2[0x0E] + b2[0x0F];
-                b1[0x0F] = (b2[0x0F] - b2[0x0E]) * cos0;
-                b1[0x0E] += b1[0x0F];
-                b1[0x0C] += b1[0x0E];
-                b1[0x0E] += b1[0x0D];
-                b1[0x0D] += b1[0x0F];
-
-                b1[0x10] = b2[0x10] + b2[0x11];
-                b1[0x11] = (b2[0x10] - b2[0x11]) * cos0;
-                b1[0x12] = b2[0x12] + b2[0x13];
-                b1[0x13] = (b2[0x13] - b2[0x12]) * cos0;
-                b1[0x12] += b1[0x13];
-
-                b1[0x14] = b2[0x14] + b2[0x15];
-                b1[0x15] = (b2[0x14] - b2[0x15]) * cos0;
-                b1[0x16] = b2[0x16] + b2[0x17];
-                b1[0x17] = (b2[0x17] - b2[0x16]) * cos0;
-                b1[0x16] += b1[0x17];
-                b1[0x14] += b1[0x16];
-                b1[0x16] += b1[0x15];
-                b1[0x15] += b1[0x17];
-
-                b1[0x18] = b2[0x18] + b2[0x19];
-                b1[0x19] = (b2[0x18] - b2[0x19]) * cos0;
-                b1[0x1A] = b2[0x1A] + b2[0x1B];
-                b1[0x1B] = (b2[0x1B] - b2[0x1A]) * cos0;
-                b1[0x1A] += b1[0x1B];
-
-                b1[0x1C] = b2[0x1C] + b2[0x1D];
-                b1[0x1D] = (b2[0x1C] - b2[0x1D]) * cos0;
-                b1[0x1E] = b2[0x1E] + b2[0x1F];
-                b1[0x1F] = (b2[0x1F] - b2[0x1E]) * cos0;
-                b1[0x1E] += b1[0x1F];
-                b1[0x1C] += b1[0x1E];
-                b1[0x1E] += b1[0x1D];
-                b1[0x1D] += b1[0x1F];
-        }
-
-        out0[0x10 * 16] = b1[0x00];
-        out0[0x10 * 12] = b1[0x04];
-        out0[0x10 * 8] = b1[0x02];
-        out0[0x10 * 4] = b1[0x06];
-        out0[0x10 * 0] = b1[0x01];
-        out1[0x10 * 0] = b1[0x01];
-        out1[0x10 * 4] = b1[0x05];
-        out1[0x10 * 8] = b1[0x03];
-        out1[0x10 * 12] = b1[0x07];
-
-        b1[0x08] += b1[0x0C];
-        out0[0x10 * 14] = b1[0x08];
-        b1[0x0C] += b1[0x0a];
-        out0[0x10 * 10] = b1[0x0C];
-        b1[0x0A] += b1[0x0E];
-        out0[0x10 * 6] = b1[0x0A];
-        b1[0x0E] += b1[0x09];
-        out0[0x10 * 2] = b1[0x0E];
-        b1[0x09] += b1[0x0D];
-        out1[0x10 * 2] = b1[0x09];
-        b1[0x0D] += b1[0x0B];
-        out1[0x10 * 6] = b1[0x0D];
-        b1[0x0B] += b1[0x0F];
-        out1[0x10 * 10] = b1[0x0B];
-        out1[0x10 * 14] = b1[0x0F];
-
-        b1[0x18] += b1[0x1C];
-        out0[0x10 * 15] = b1[0x10] + b1[0x18];
-        out0[0x10 * 13] = b1[0x18] + b1[0x14];
-        b1[0x1C] += b1[0x1a];
-        out0[0x10 * 11] = b1[0x14] + b1[0x1C];
-        out0[0x10 * 9] = b1[0x1C] + b1[0x12];
-        b1[0x1A] += b1[0x1E];
-        out0[0x10 * 7] = b1[0x12] + b1[0x1A];
-        out0[0x10 * 5] = b1[0x1A] + b1[0x16];
-        b1[0x1E] += b1[0x19];
-        out0[0x10 * 3] = b1[0x16] + b1[0x1E];
-        out0[0x10 * 1] = b1[0x1E] + b1[0x11];
-        b1[0x19] += b1[0x1D];
-        out1[0x10 * 1] = b1[0x11] + b1[0x19];
-        out1[0x10 * 3] = b1[0x19] + b1[0x15];
-        b1[0x1D] += b1[0x1B];
-        out1[0x10 * 5] = b1[0x15] + b1[0x1D];
-        out1[0x10 * 7] = b1[0x1D] + b1[0x13];
-        b1[0x1B] += b1[0x1F];
-        out1[0x10 * 9] = b1[0x13] + b1[0x1B];
-        out1[0x10 * 11] = b1[0x1B] + b1[0x17];
-        out1[0x10 * 13] = b1[0x17] + b1[0x1F];
-        out1[0x10 * 15] = b1[0x1F];
-}
-
-/*
- * the call via mpg123_dct64 is a trick to force GCC to use
- * (new) registers for the b1,b2 pointer to the bufs[xx] field
- */
-void mpg123_dct64(real * a, real * b, real * c)
-{
-        real bufs[0x40];
-
-        mpg123_dct64_1(a, b, bufs, bufs + 0x20, c);
-}
--- a/mp3lib/dct64_k7.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,767 +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>
-* Partial 3dnowex-DSP! optimization by Nick Kurshev
-*
-* TODO: optimize scalar 3dnow! code
-* Warning: Phases 7 & 8 are not tested
-*/
-
-#include "config.h"
-#include "mangle.h"
-#include "mpg123.h"
-#include "libavutil/x86_cpu.h"
-
-static unsigned long long int attribute_used __attribute__((aligned(8))) x_plus_minus_3dnow = 0x8000000000000000ULL;
-static float attribute_used plus_1f = 1.0;
-
-void dct64_MMX_3dnowex(short *a,short *b,real *c)
-{
-  char tmp[256];
-    __asm__ volatile(
-"       mov %2,%%"REG_a"\n\t"
-
-"       lea 128+%3,%%"REG_d"\n\t"
-"       mov %0,%%"REG_S"\n\t"
-"       mov %1,%%"REG_D"\n\t"
-"       mov $"MANGLE(costab_mmx)",%%"REG_b"\n\t"
-"       lea %3,%%"REG_c"\n\t"
-
-/* Phase 1*/
-"       movq    (%%"REG_a"), %%mm0\n\t"
-"       movq    8(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  120(%%"REG_a"), %%mm1\n\t"
-"       pswapd  112(%%"REG_a"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_d")\n\t"
-"       movq    %%mm4, 8(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   (%%"REG_b"), %%mm3\n\t"
-"       pfmul   8(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 120(%%"REG_d")\n\t"
-"       movq    %%mm7, 112(%%"REG_d")\n\t"
-
-"       movq    16(%%"REG_a"), %%mm0\n\t"
-"       movq    24(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  104(%%"REG_a"), %%mm1\n\t"
-"       pswapd  96(%%"REG_a"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 16(%%"REG_d")\n\t"
-"       movq    %%mm4, 24(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   16(%%"REG_b"), %%mm3\n\t"
-"       pfmul   24(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 104(%%"REG_d")\n\t"
-"       movq    %%mm7, 96(%%"REG_d")\n\t"
-
-"       movq    32(%%"REG_a"), %%mm0\n\t"
-"       movq    40(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  88(%%"REG_a"), %%mm1\n\t"
-"       pswapd  80(%%"REG_a"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 32(%%"REG_d")\n\t"
-"       movq    %%mm4, 40(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   32(%%"REG_b"), %%mm3\n\t"
-"       pfmul   40(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 88(%%"REG_d")\n\t"
-"       movq    %%mm7, 80(%%"REG_d")\n\t"
-
-"       movq    48(%%"REG_a"), %%mm0\n\t"
-"       movq    56(%%"REG_a"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  72(%%"REG_a"), %%mm1\n\t"
-"       pswapd  64(%%"REG_a"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 48(%%"REG_d")\n\t"
-"       movq    %%mm4, 56(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   48(%%"REG_b"), %%mm3\n\t"
-"       pfmul   56(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 72(%%"REG_d")\n\t"
-"       movq    %%mm7, 64(%%"REG_d")\n\t"
-
-/* Phase 2*/
-
-"       movq    (%%"REG_d"), %%mm0\n\t"
-"       movq    8(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  56(%%"REG_d"), %%mm1\n\t"
-"       pswapd  48(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_c")\n\t"
-"       movq    %%mm4, 8(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   64(%%"REG_b"), %%mm3\n\t"
-"       pfmul   72(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 56(%%"REG_c")\n\t"
-"       movq    %%mm7, 48(%%"REG_c")\n\t"
-
-"       movq    16(%%"REG_d"), %%mm0\n\t"
-"       movq    24(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  40(%%"REG_d"), %%mm1\n\t"
-"       pswapd  32(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 16(%%"REG_c")\n\t"
-"       movq    %%mm4, 24(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   80(%%"REG_b"), %%mm3\n\t"
-"       pfmul   88(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 40(%%"REG_c")\n\t"
-"       movq    %%mm7, 32(%%"REG_c")\n\t"
-
-/* Phase 3*/
-
-"       movq    64(%%"REG_d"), %%mm0\n\t"
-"       movq    72(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  120(%%"REG_d"), %%mm1\n\t"
-"       pswapd  112(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 64(%%"REG_c")\n\t"
-"       movq    %%mm4, 72(%%"REG_c")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   64(%%"REG_b"), %%mm3\n\t"
-"       pfmul   72(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 120(%%"REG_c")\n\t"
-"       movq    %%mm7, 112(%%"REG_c")\n\t"
-
-"       movq    80(%%"REG_d"), %%mm0\n\t"
-"       movq    88(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  104(%%"REG_d"), %%mm1\n\t"
-"       pswapd  96(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 80(%%"REG_c")\n\t"
-"       movq    %%mm4, 88(%%"REG_c")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   80(%%"REG_b"), %%mm3\n\t"
-"       pfmul   88(%%"REG_b"), %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 104(%%"REG_c")\n\t"
-"       movq    %%mm7, 96(%%"REG_c")\n\t"
-
-/* Phase 4*/
-
-"       movq    96(%%"REG_b"), %%mm2\n\t"
-"       movq    104(%%"REG_b"), %%mm6\n\t"
-
-"       movq    (%%"REG_c"), %%mm0\n\t"
-"       movq    8(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  24(%%"REG_c"), %%mm1\n\t"
-"       pswapd  16(%%"REG_c"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_d")\n\t"
-"       movq    %%mm4, 8(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm6, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 24(%%"REG_d")\n\t"
-"       movq    %%mm7, 16(%%"REG_d")\n\t"
-
-"       movq    32(%%"REG_c"), %%mm0\n\t"
-"       movq    40(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  56(%%"REG_c"), %%mm1\n\t"
-"       pswapd  48(%%"REG_c"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 32(%%"REG_d")\n\t"
-"       movq    %%mm4, 40(%%"REG_d")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm6, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 56(%%"REG_d")\n\t"
-"       movq    %%mm7, 48(%%"REG_d")\n\t"
-
-"       movq    64(%%"REG_c"), %%mm0\n\t"
-"       movq    72(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  88(%%"REG_c"), %%mm1\n\t"
-"       pswapd  80(%%"REG_c"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 64(%%"REG_d")\n\t"
-"       movq    %%mm4, 72(%%"REG_d")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsub   %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm6, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 88(%%"REG_d")\n\t"
-"       movq    %%mm7, 80(%%"REG_d")\n\t"
-
-"       movq    96(%%"REG_c"), %%mm0\n\t"
-"       movq    104(%%"REG_c"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  120(%%"REG_c"), %%mm1\n\t"
-"       pswapd  112(%%"REG_c"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 96(%%"REG_d")\n\t"
-"       movq    %%mm4, 104(%%"REG_d")\n\t"
-"       pfsubr  %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm6, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 120(%%"REG_d")\n\t"
-"       movq    %%mm7, 112(%%"REG_d")\n\t"
-
-/* Phase 5 */
-
-"       movq    112(%%"REG_b"), %%mm2\n\t"
-
-"       movq    (%%"REG_d"), %%mm0\n\t"
-"       movq    16(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  8(%%"REG_d"), %%mm1\n\t"
-"       pswapd  24(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, (%%"REG_c")\n\t"
-"       movq    %%mm4, 16(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm2, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 8(%%"REG_c")\n\t"
-"       movq    %%mm7, 24(%%"REG_c")\n\t"
-
-"       movq    32(%%"REG_d"), %%mm0\n\t"
-"       movq    48(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  40(%%"REG_d"), %%mm1\n\t"
-"       pswapd  56(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 32(%%"REG_c")\n\t"
-"       movq    %%mm4, 48(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm2, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 40(%%"REG_c")\n\t"
-"       movq    %%mm7, 56(%%"REG_c")\n\t"
-
-"       movq    64(%%"REG_d"), %%mm0\n\t"
-"       movq    80(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  72(%%"REG_d"), %%mm1\n\t"
-"       pswapd  88(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 64(%%"REG_c")\n\t"
-"       movq    %%mm4, 80(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm2, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 72(%%"REG_c")\n\t"
-"       movq    %%mm7, 88(%%"REG_c")\n\t"
-
-"       movq    96(%%"REG_d"), %%mm0\n\t"
-"       movq    112(%%"REG_d"), %%mm4\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-"       movq    %%mm4, %%mm7\n\t"
-"       pswapd  104(%%"REG_d"), %%mm1\n\t"
-"       pswapd  120(%%"REG_d"), %%mm5\n\t"
-"       pfadd   %%mm1, %%mm0\n\t"
-"       pfadd   %%mm5, %%mm4\n\t"
-"       movq    %%mm0, 96(%%"REG_c")\n\t"
-"       movq    %%mm4, 112(%%"REG_c")\n\t"
-"       pfsub   %%mm1, %%mm3\n\t"
-"       pfsubr  %%mm5, %%mm7\n\t"
-"       pfmul   %%mm2, %%mm3\n\t"
-"       pfmul   %%mm2, %%mm7\n\t"
-"       pswapd  %%mm3, %%mm3\n\t"
-"       pswapd  %%mm7, %%mm7\n\t"
-"       movq    %%mm3, 104(%%"REG_c")\n\t"
-"       movq    %%mm7, 120(%%"REG_c")\n\t"
-
-
-/* Phase 6. This is the end of easy road. */
-/* Code below is coded in scalar mode. Should be optimized */
-
-"       movd    "MANGLE(plus_1f)", %%mm6\n\t"
-"       punpckldq 120(%%"REG_b"), %%mm6\n\t"      /* mm6 = 1.0 | 120(%%"REG_b")*/
-"       movq    "MANGLE(x_plus_minus_3dnow)", %%mm7\n\t" /* mm7 = +1 | -1 */
-
-"       movq    32(%%"REG_c"), %%mm0\n\t"
-"       movq    64(%%"REG_c"), %%mm2\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       movq    %%mm2, %%mm3\n\t"
-"       pxor    %%mm7, %%mm1\n\t"
-"       pxor    %%mm7, %%mm3\n\t"
-"       pfacc   %%mm1, %%mm0\n\t"
-"       pfacc   %%mm3, %%mm2\n\t"
-"       pfmul   %%mm6, %%mm0\n\t"
-"       pfmul   %%mm6, %%mm2\n\t"
-"       movq    %%mm0, 32(%%"REG_d")\n\t"
-"       movq    %%mm2, 64(%%"REG_d")\n\t"
-
-"       movd    44(%%"REG_c"), %%mm0\n\t"
-"       movd    40(%%"REG_c"), %%mm2\n\t"
-"       movd    120(%%"REG_b"), %%mm3\n\t"
-"       punpckldq 76(%%"REG_c"), %%mm0\n\t"
-"       punpckldq 72(%%"REG_c"), %%mm2\n\t"
-"       punpckldq %%mm3, %%mm3\n\t"
-"       movq    %%mm0, %%mm4\n\t"
-"       movq    %%mm2, %%mm5\n\t"
-"       pfsub   %%mm2, %%mm0\n\t"
-"       pfmul   %%mm3, %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       pfadd   %%mm5, %%mm0\n\t"
-"       pfadd   %%mm4, %%mm0\n\t"
-"       movq    %%mm0, %%mm2\n\t"
-"       punpckldq %%mm1, %%mm0\n\t"
-"       punpckhdq %%mm1, %%mm2\n\t"
-"       movq    %%mm0, 40(%%"REG_d")\n\t"
-"       movq    %%mm2, 72(%%"REG_d")\n\t"
-
-"       movd   48(%%"REG_c"), %%mm3\n\t"
-"       movd   60(%%"REG_c"), %%mm2\n\t"
-"       pfsub  52(%%"REG_c"), %%mm3\n\t"
-"       pfsub  56(%%"REG_c"), %%mm2\n\t"
-"       pfmul 120(%%"REG_b"), %%mm3\n\t"
-"       pfmul 120(%%"REG_b"), %%mm2\n\t"
-"       movq    %%mm2, %%mm1\n\t"
-
-"       pfadd  56(%%"REG_c"), %%mm1\n\t"
-"       pfadd  60(%%"REG_c"), %%mm1\n\t"
-"       movq    %%mm1, %%mm0\n\t"
-
-"       pfadd  48(%%"REG_c"), %%mm0\n\t"
-"       pfadd  52(%%"REG_c"), %%mm0\n\t"
-"       pfadd   %%mm3, %%mm1\n\t"
-"       punpckldq %%mm2, %%mm1\n\t"
-"       pfadd   %%mm3, %%mm2\n\t"
-"       punpckldq %%mm2, %%mm0\n\t"
-"       movq    %%mm1, 56(%%"REG_d")\n\t"
-"       movq    %%mm0, 48(%%"REG_d")\n\t"
-
-/*---*/
-
-"       movd   92(%%"REG_c"), %%mm1\n\t"
-"       pfsub  88(%%"REG_c"), %%mm1\n\t"
-"       pfmul 120(%%"REG_b"), %%mm1\n\t"
-"       movd   %%mm1, 92(%%"REG_d")\n\t"
-"       pfadd  92(%%"REG_c"), %%mm1\n\t"
-"       pfadd  88(%%"REG_c"), %%mm1\n\t"
-"       movq   %%mm1, %%mm0\n\t"
-
-"       pfadd  80(%%"REG_c"), %%mm0\n\t"
-"       pfadd  84(%%"REG_c"), %%mm0\n\t"
-"       movd   %%mm0, 80(%%"REG_d")\n\t"
-
-"       movd   80(%%"REG_c"), %%mm0\n\t"
-"       pfsub  84(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       pfadd  %%mm0, %%mm1\n\t"
-"       pfadd  92(%%"REG_d"), %%mm0\n\t"
-"       punpckldq %%mm1, %%mm0\n\t"
-"       movq   %%mm0, 84(%%"REG_d")\n\t"
-
-"       movq    96(%%"REG_c"), %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       pxor    %%mm7, %%mm1\n\t"
-"       pfacc   %%mm1, %%mm0\n\t"
-"       pfmul   %%mm6, %%mm0\n\t"
-"       movq    %%mm0, 96(%%"REG_d")\n\t"
-
-"       movd  108(%%"REG_c"), %%mm0\n\t"
-"       pfsub 104(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movd  %%mm0, 108(%%"REG_d")\n\t"
-"       pfadd 104(%%"REG_c"), %%mm0\n\t"
-"       pfadd 108(%%"REG_c"), %%mm0\n\t"
-"       movd  %%mm0, 104(%%"REG_d")\n\t"
-
-"       movd  124(%%"REG_c"), %%mm1\n\t"
-"       pfsub 120(%%"REG_c"), %%mm1\n\t"
-"       pfmul 120(%%"REG_b"), %%mm1\n\t"
-"       movd  %%mm1, 124(%%"REG_d")\n\t"
-"       pfadd 120(%%"REG_c"), %%mm1\n\t"
-"       pfadd 124(%%"REG_c"), %%mm1\n\t"
-"       movq  %%mm1, %%mm0\n\t"
-
-"       pfadd 112(%%"REG_c"), %%mm0\n\t"
-"       pfadd 116(%%"REG_c"), %%mm0\n\t"
-"       movd  %%mm0, 112(%%"REG_d")\n\t"
-
-"       movd  112(%%"REG_c"), %%mm0\n\t"
-"       pfsub 116(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       pfadd %%mm0,%%mm1\n\t"
-"       pfadd 124(%%"REG_d"), %%mm0\n\t"
-"       punpckldq %%mm1, %%mm0\n\t"
-"       movq  %%mm0, 116(%%"REG_d")\n\t"
-
-// this code is broken, there is nothing modifying the z flag above.
-#if 0
-"       jnz .L01\n\t"
-
-/* Phase 7*/
-/* Code below is coded in scalar mode. Should be optimized */
-
-"       movd      (%%"REG_c"), %%mm0\n\t"
-"       pfadd    4(%%"REG_c"), %%mm0\n\t"
-"       movd     %%mm0, 1024(%%"REG_S")\n\t"
-
-"       movd      (%%"REG_c"), %%mm0\n\t"
-"       pfsub    4(%%"REG_c"), %%mm0\n\t"
-"       pfmul  120(%%"REG_b"), %%mm0\n\t"
-"       movd      %%mm0, (%%"REG_S")\n\t"
-"       movd      %%mm0, (%%"REG_D")\n\t"
-
-"       movd   12(%%"REG_c"), %%mm0\n\t"
-"       pfsub   8(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movd    %%mm0, 512(%%"REG_D")\n\t"
-"       pfadd   12(%%"REG_c"), %%mm0\n\t"
-"       pfadd   8(%%"REG_c"), %%mm0\n\t"
-"       movd    %%mm0, 512(%%"REG_S")\n\t"
-
-"       movd   16(%%"REG_c"), %%mm0\n\t"
-"       pfsub  20(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movq    %%mm0, %%mm3\n\t"
-
-"       movd   28(%%"REG_c"), %%mm0\n\t"
-"       pfsub  24(%%"REG_c"), %%mm0\n\t"
-"       pfmul 120(%%"REG_b"), %%mm0\n\t"
-"       movd    %%mm0, 768(%%"REG_D")\n\t"
-"       movq    %%mm0, %%mm2\n\t"
-
-"       pfadd  24(%%"REG_c"), %%mm0\n\t"
-"       pfadd  28(%%"REG_c"), %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-
-"       pfadd  16(%%"REG_c"), %%mm0\n\t"
-"       pfadd  20(%%"REG_c"), %%mm0\n\t"
-"       movd   %%mm0, 768(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm1\n\t"
-"       movd   %%mm1, 256(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm2\n\t"
-"       movd   %%mm2, 256(%%"REG_D")\n\t"
-
-/* Phase 8*/
-
-"       movq   32(%%"REG_d"), %%mm0\n\t"
-"       movq   48(%%"REG_d"), %%mm1\n\t"
-"       pfadd  48(%%"REG_d"), %%mm0\n\t"
-"       pfadd  40(%%"REG_d"), %%mm1\n\t"
-"       movd   %%mm0, 896(%%"REG_S")\n\t"
-"       movd   %%mm1, 640(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm0\n\t"
-"       psrlq  $32, %%mm1\n\t"
-"       movd   %%mm0, 128(%%"REG_D")\n\t"
-"       movd   %%mm1, 384(%%"REG_D")\n\t"
-
-"       movd   40(%%"REG_d"), %%mm0\n\t"
-"       pfadd  56(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 384(%%"REG_S")\n\t"
-
-"       movd   56(%%"REG_d"), %%mm0\n\t"
-"       pfadd  36(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 128(%%"REG_S")\n\t"
-
-"       movd   60(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 896(%%"REG_D")\n\t"
-"       pfadd  44(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 640(%%"REG_D")\n\t"
-
-"       movq   96(%%"REG_d"), %%mm0\n\t"
-"       movq   112(%%"REG_d"), %%mm2\n\t"
-"       movq   104(%%"REG_d"), %%mm4\n\t"
-"       pfadd  112(%%"REG_d"), %%mm0\n\t"
-"       pfadd  104(%%"REG_d"), %%mm2\n\t"
-"       pfadd  120(%%"REG_d"), %%mm4\n\t"
-"       movq   %%mm0, %%mm1\n\t"
-"       movq   %%mm2, %%mm3\n\t"
-"       movq   %%mm4, %%mm5\n\t"
-"       pfadd  64(%%"REG_d"), %%mm0\n\t"
-"       pfadd  80(%%"REG_d"), %%mm2\n\t"
-"       pfadd  72(%%"REG_d"), %%mm4\n\t"
-"       movd   %%mm0, 960(%%"REG_S")\n\t"
-"       movd   %%mm2, 704(%%"REG_S")\n\t"
-"       movd   %%mm4, 448(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm0\n\t"
-"       psrlq  $32, %%mm2\n\t"
-"       psrlq  $32, %%mm4\n\t"
-"       movd   %%mm0, 64(%%"REG_D")\n\t"
-"       movd   %%mm2, 320(%%"REG_D")\n\t"
-"       movd   %%mm4, 576(%%"REG_D")\n\t"
-"       pfadd  80(%%"REG_d"), %%mm1\n\t"
-"       pfadd  72(%%"REG_d"), %%mm3\n\t"
-"       pfadd  88(%%"REG_d"), %%mm5\n\t"
-"       movd   %%mm1, 832(%%"REG_S")\n\t"
-"       movd   %%mm3, 576(%%"REG_S")\n\t"
-"       movd   %%mm5, 320(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm1\n\t"
-"       psrlq  $32, %%mm3\n\t"
-"       psrlq  $32, %%mm5\n\t"
-"       movd   %%mm1, 192(%%"REG_D")\n\t"
-"       movd   %%mm3, 448(%%"REG_D")\n\t"
-"       movd   %%mm5, 704(%%"REG_D")\n\t"
-
-"       movd   120(%%"REG_d"), %%mm0\n\t"
-"       pfadd  100(%%"REG_d"), %%mm0\n\t"
-"       movq   %%mm0, %%mm1\n\t"
-"       pfadd  88(%%"REG_d"), %%mm0\n\t"
-"       movd   %%mm0, 192(%%"REG_S")\n\t"
-"       pfadd  68(%%"REG_d"), %%mm1\n\t"
-"       movd   %%mm1, 64(%%"REG_S")\n\t"
-
-"       movd  124(%%"REG_d"), %%mm0\n\t"
-"       movd  %%mm0, 960(%%"REG_D")\n\t"
-"       pfadd  92(%%"REG_d"), %%mm0\n\t"
-"       movd  %%mm0, 832(%%"REG_D")\n\t"
-
-"       jmp     .L_bye\n\t"
-".L01:  \n\t"
-#endif
-/* Phase 9*/
-
-"       movq    (%%"REG_c"), %%mm0\n\t"
-"       movq    %%mm0, %%mm1\n\t"
-"       pxor    %%mm7, %%mm1\n\t"
-"       pfacc   %%mm1, %%mm0\n\t"
-"       pfmul   %%mm6, %%mm0\n\t"
-"       pf2iw   %%mm0, %%mm0\n\t"
-"       movd    %%mm0, %%"REG_a"\n\t"
-"       movw    %%ax, 512(%%"REG_S")\n\t"
-"       psrlq   $32, %%mm0\n\t"
-"       movd    %%mm0, %%"REG_a"\n\t"
-"       movw    %%ax, (%%"REG_S")\n\t"
-
-"       movd    12(%%"REG_c"), %%mm0\n\t"
-"       pfsub    8(%%"REG_c"), %%mm0\n\t"
-"       pfmul  120(%%"REG_b"), %%mm0\n\t"
-"       pf2iw    %%mm0, %%mm7\n\t"
-"       movd     %%mm7, %%"REG_a"\n\t"
-"       movw     %%ax, 256(%%"REG_D")\n\t"
-"       pfadd   12(%%"REG_c"), %%mm0\n\t"
-"       pfadd    8(%%"REG_c"), %%mm0\n\t"
-"       pf2iw    %%mm0, %%mm0\n\t"
-"       movd     %%mm0, %%"REG_a"\n\t"
-"       movw     %%ax, 256(%%"REG_S")\n\t"
-
-"       movd   16(%%"REG_c"), %%mm3\n\t"
-"       pfsub  20(%%"REG_c"), %%mm3\n\t"
-"       pfmul  120(%%"REG_b"), %%mm3\n\t"
-"       movq   %%mm3, %%mm2\n\t"
-
-"       movd   28(%%"REG_c"), %%mm2\n\t"
-"       pfsub  24(%%"REG_c"), %%mm2\n\t"
-"       pfmul 120(%%"REG_b"), %%mm2\n\t"
-"       movq   %%mm2, %%mm1\n\t"
-
-"       pf2iw  %%mm2, %%mm7\n\t"
-"       movd   %%mm7, %%"REG_a"\n\t"
-"       movw   %%ax, 384(%%"REG_D")\n\t"
-
-"       pfadd  24(%%"REG_c"), %%mm1\n\t"
-"       pfadd  28(%%"REG_c"), %%mm1\n\t"
-"       movq   %%mm1, %%mm0\n\t"
-
-"       pfadd  16(%%"REG_c"), %%mm0\n\t"
-"       pfadd  20(%%"REG_c"), %%mm0\n\t"
-"       pf2iw  %%mm0, %%mm0\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       movw   %%ax, 384(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm1\n\t"
-"       pf2iw  %%mm1, %%mm1\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movw   %%ax, 128(%%"REG_S")\n\t"
-"       pfadd  %%mm3, %%mm2\n\t"
-"       pf2iw  %%mm2, %%mm2\n\t"
-"       movd   %%mm2, %%"REG_a"\n\t"
-"       movw   %%ax, 128(%%"REG_D")\n\t"
-
-/* Phase 10*/
-
-"       movq    32(%%"REG_d"), %%mm0\n\t"
-"       movq    48(%%"REG_d"), %%mm1\n\t"
-"       pfadd   48(%%"REG_d"), %%mm0\n\t"
-"       pfadd   40(%%"REG_d"), %%mm1\n\t"
-"       pf2iw   %%mm0, %%mm0\n\t"
-"       pf2iw   %%mm1, %%mm1\n\t"
-"       movd    %%mm0, %%"REG_a"\n\t"
-"       movd    %%mm1, %%"REG_c"\n\t"
-"       movw    %%ax, 448(%%"REG_S")\n\t"
-"       movw    %%cx, 320(%%"REG_S")\n\t"
-"       psrlq   $32, %%mm0\n\t"
-"       psrlq   $32, %%mm1\n\t"
-"       movd    %%mm0, %%"REG_a"\n\t"
-"       movd    %%mm1, %%"REG_c"\n\t"
-"       movw    %%ax, 64(%%"REG_D")\n\t"
-"       movw    %%cx, 192(%%"REG_D")\n\t"
-
-"       movd   40(%%"REG_d"), %%mm3\n\t"
-"       movd   56(%%"REG_d"), %%mm4\n\t"
-"       movd   60(%%"REG_d"), %%mm0\n\t"
-"       movd   44(%%"REG_d"), %%mm2\n\t"
-"       movd  120(%%"REG_d"), %%mm5\n\t"
-"       punpckldq %%mm4, %%mm3\n\t"
-"       punpckldq 124(%%"REG_d"), %%mm0\n\t"
-"       pfadd 100(%%"REG_d"), %%mm5\n\t"
-"       punpckldq 36(%%"REG_d"), %%mm4\n\t"
-"       punpckldq 92(%%"REG_d"), %%mm2\n\t"
-"       movq  %%mm5, %%mm6\n\t"
-"       pfadd  %%mm4, %%mm3\n\t"
-"       pf2iw  %%mm0, %%mm1\n\t"
-"       pf2iw  %%mm3, %%mm3\n\t"
-"       pfadd  88(%%"REG_d"), %%mm5\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movd   %%mm3, %%"REG_c"\n\t"
-"       movw   %%ax, 448(%%"REG_D")\n\t"
-"       movw   %%cx, 192(%%"REG_S")\n\t"
-"       pf2iw  %%mm5, %%mm5\n\t"
-"       psrlq  $32, %%mm1\n\t"
-"       psrlq  $32, %%mm3\n\t"
-"       movd   %%mm5, %%"REG_b"\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movd   %%mm3, %%"REG_c"\n\t"
-"       movw   %%bx, 96(%%"REG_S")\n\t"
-"       movw   %%ax, 480(%%"REG_D")\n\t"
-"       movw   %%cx, 64(%%"REG_S")\n\t"
-"       pfadd  %%mm2, %%mm0\n\t"
-"       pf2iw  %%mm0, %%mm0\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       pfadd  68(%%"REG_d"), %%mm6\n\t"
-"       movw   %%ax, 320(%%"REG_D")\n\t"
-"       psrlq  $32, %%mm0\n\t"
-"       pf2iw  %%mm6, %%mm6\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       movd   %%mm6, %%"REG_b"\n\t"
-"       movw   %%ax, 416(%%"REG_D")\n\t"
-"       movw   %%bx, 32(%%"REG_S")\n\t"
-
-"       movq   96(%%"REG_d"), %%mm0\n\t"
-"       movq  112(%%"REG_d"), %%mm2\n\t"
-"       movq  104(%%"REG_d"), %%mm4\n\t"
-"       pfadd %%mm2, %%mm0\n\t"
-"       pfadd %%mm4, %%mm2\n\t"
-"       pfadd 120(%%"REG_d"), %%mm4\n\t"
-"       movq  %%mm0, %%mm1\n\t"
-"       movq  %%mm2, %%mm3\n\t"
-"       movq  %%mm4, %%mm5\n\t"
-"       pfadd  64(%%"REG_d"), %%mm0\n\t"
-"       pfadd  80(%%"REG_d"), %%mm2\n\t"
-"       pfadd  72(%%"REG_d"), %%mm4\n\t"
-"       pf2iw  %%mm0, %%mm0\n\t"
-"       pf2iw  %%mm2, %%mm2\n\t"
-"       pf2iw  %%mm4, %%mm4\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       movd   %%mm2, %%"REG_c"\n\t"
-"       movd   %%mm4, %%"REG_b"\n\t"
-"       movw   %%ax, 480(%%"REG_S")\n\t"
-"       movw   %%cx, 352(%%"REG_S")\n\t"
-"       movw   %%bx, 224(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm0\n\t"
-"       psrlq  $32, %%mm2\n\t"
-"       psrlq  $32, %%mm4\n\t"
-"       movd   %%mm0, %%"REG_a"\n\t"
-"       movd   %%mm2, %%"REG_c"\n\t"
-"       movd   %%mm4, %%"REG_b"\n\t"
-"       movw   %%ax, 32(%%"REG_D")\n\t"
-"       movw   %%cx, 160(%%"REG_D")\n\t"
-"       movw   %%bx, 288(%%"REG_D")\n\t"
-"       pfadd  80(%%"REG_d"), %%mm1\n\t"
-"       pfadd  72(%%"REG_d"), %%mm3\n\t"
-"       pfadd  88(%%"REG_d"), %%mm5\n\t"
-"       pf2iw  %%mm1, %%mm1\n\t"
-"       pf2iw  %%mm3, %%mm3\n\t"
-"       pf2iw  %%mm5, %%mm5\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movd   %%mm3, %%"REG_c"\n\t"
-"       movd   %%mm5, %%"REG_b"\n\t"
-"       movw   %%ax, 416(%%"REG_S")\n\t"
-"       movw   %%cx, 288(%%"REG_S")\n\t"
-"       movw   %%bx, 160(%%"REG_S")\n\t"
-"       psrlq  $32, %%mm1\n\t"
-"       psrlq  $32, %%mm3\n\t"
-"       psrlq  $32, %%mm5\n\t"
-"       movd   %%mm1, %%"REG_a"\n\t"
-"       movd   %%mm3, %%"REG_c"\n\t"
-"       movd   %%mm5, %%"REG_b"\n\t"
-"       movw   %%ax, 96(%%"REG_D")\n\t"
-"       movw   %%cx, 224(%%"REG_D")\n\t"
-"       movw   %%bx, 352(%%"REG_D")\n\t"
-
-"       movsw\n\t"
-
-".L_bye:\n\t"
-"       femms\n\t"
-        :
-        :"m"(a),"m"(b),"m"(c),"m"(tmp[0])
-        :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi");
-}
--- a/mp3lib/dct64_mmx.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,987 +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>
-*/
-#include "config.h"
-#include "mangle.h"
-#include "mpg123.h"
-#include "libavutil/x86_cpu.h"
-
-void dct64_MMX(short *a,short *b,real *c)
-{
-    char tmp[256];
-    __asm__ volatile(
-"       mov %2,%%"REG_a"\n\t"
-/* Phase 1*/
-"       flds     (%%"REG_a")\n\t"
-"       lea 128+%3,%%"REG_d"\n\t"
-"       fadds 124(%%"REG_a")\n\t"
-"       mov %0,%%"REG_S"\n\t"
-"       fstps    (%%"REG_d")\n\t"
-"       mov %1,%%"REG_D"\n\t"
-
-"       flds    4(%%"REG_a")\n\t"
-"       mov $"MANGLE(costab_mmx)",%%"REG_b"\n\t"
-"       fadds 120(%%"REG_a")\n\t"
-"       or %%"REG_c",%%"REG_c"\n\t"
-"       fstps   4(%%"REG_d")\n\t"
-
-"       flds     (%%"REG_a")\n\t"
-"       lea %3,%%"REG_c"\n\t"
-"       fsubs 124(%%"REG_a")\n\t"
-"       fmuls    (%%"REG_b")\n\t"
-"       fstps 124(%%"REG_d")\n\t"
-
-"       flds    4(%%"REG_a")\n\t"
-"       fsubs 120(%%"REG_a")\n\t"
-"       fmuls   4(%%"REG_b")\n\t"
-"       fstps 120(%%"REG_d")\n\t"
-
-"       flds    8(%%"REG_a")\n\t"
-"       fadds 116(%%"REG_a")\n\t"
-"       fstps   8(%%"REG_d")\n\t"
-
-"       flds   12(%%"REG_a")\n\t"
-"       fadds 112(%%"REG_a")\n\t"
-"       fstps  12(%%"REG_d")\n\t"
-
-"       flds    8(%%"REG_a")\n\t"
-"       fsubs 116(%%"REG_a")\n\t"
-"       fmuls   8(%%"REG_b")\n\t"
-"       fstps 116(%%"REG_d")\n\t"
-
-"       flds   12(%%"REG_a")\n\t"
-"       fsubs 112(%%"REG_a")\n\t"
-"       fmuls  12(%%"REG_b")\n\t"
-"       fstps 112(%%"REG_d")\n\t"
-
-"       flds   16(%%"REG_a")\n\t"
-"       fadds 108(%%"REG_a")\n\t"
-"       fstps  16(%%"REG_d")\n\t"
-
-"       flds   20(%%"REG_a")\n\t"
-"       fadds 104(%%"REG_a")\n\t"
-"       fstps  20(%%"REG_d")\n\t"
-
-"       flds   16(%%"REG_a")\n\t"
-"       fsubs 108(%%"REG_a")\n\t"
-"       fmuls  16(%%"REG_b")\n\t"
-"       fstps 108(%%"REG_d")\n\t"
-
-"       flds   20(%%"REG_a")\n\t"
-"       fsubs 104(%%"REG_a")\n\t"
-"       fmuls  20(%%"REG_b")\n\t"
-"       fstps 104(%%"REG_d")\n\t"
-
-"       flds   24(%%"REG_a")\n\t"
-"       fadds 100(%%"REG_a")\n\t"
-"       fstps  24(%%"REG_d")\n\t"
-
-"       flds   28(%%"REG_a")\n\t"
-"       fadds  96(%%"REG_a")\n\t"
-"       fstps  28(%%"REG_d")\n\t"
-
-"       flds   24(%%"REG_a")\n\t"
-"       fsubs 100(%%"REG_a")\n\t"
-"       fmuls  24(%%"REG_b")\n\t"
-"       fstps 100(%%"REG_d")\n\t"
-
-"       flds   28(%%"REG_a")\n\t"
-"       fsubs  96(%%"REG_a")\n\t"
-"       fmuls  28(%%"REG_b")\n\t"
-"       fstps  96(%%"REG_d")\n\t"
-
-"       flds   32(%%"REG_a")\n\t"
-"       fadds  92(%%"REG_a")\n\t"
-"       fstps  32(%%"REG_d")\n\t"
-
-"       flds   36(%%"REG_a")\n\t"
-"       fadds  88(%%"REG_a")\n\t"
-"       fstps  36(%%"REG_d")\n\t"
-
-"       flds   32(%%"REG_a")\n\t"
-"       fsubs  92(%%"REG_a")\n\t"
-"       fmuls  32(%%"REG_b")\n\t"
-"       fstps  92(%%"REG_d")\n\t"
-
-"       flds   36(%%"REG_a")\n\t"
-"       fsubs  88(%%"REG_a")\n\t"
-"       fmuls  36(%%"REG_b")\n\t"
-"       fstps  88(%%"REG_d")\n\t"
-
-"       flds   40(%%"REG_a")\n\t"
-"       fadds  84(%%"REG_a")\n\t"
-"       fstps  40(%%"REG_d")\n\t"
-
-"       flds   44(%%"REG_a")\n\t"
-"       fadds  80(%%"REG_a")\n\t"
-"       fstps  44(%%"REG_d")\n\t"
-
-"       flds   40(%%"REG_a")\n\t"
-"       fsubs  84(%%"REG_a")\n\t"
-"       fmuls  40(%%"REG_b")\n\t"
-"       fstps  84(%%"REG_d")\n\t"
-
-"       flds   44(%%"REG_a")\n\t"
-"       fsubs  80(%%"REG_a")\n\t"
-"       fmuls  44(%%"REG_b")\n\t"
-"       fstps  80(%%"REG_d")\n\t"
-
-"       flds   48(%%"REG_a")\n\t"
-"       fadds  76(%%"REG_a")\n\t"
-"       fstps  48(%%"REG_d")\n\t"
-
-"       flds   52(%%"REG_a")\n\t"
-"       fadds  72(%%"REG_a")\n\t"
-"       fstps  52(%%"REG_d")\n\t"
-
-"       flds   48(%%"REG_a")\n\t"
-"       fsubs  76(%%"REG_a")\n\t"
-"       fmuls  48(%%"REG_b")\n\t"
-"       fstps  76(%%"REG_d")\n\t"
-
-"       flds   52(%%"REG_a")\n\t"
-"       fsubs  72(%%"REG_a")\n\t"
-"       fmuls  52(%%"REG_b")\n\t"
-"       fstps  72(%%"REG_d")\n\t"
-
-"       flds   56(%%"REG_a")\n\t"
-"       fadds  68(%%"REG_a")\n\t"
-"       fstps  56(%%"REG_d")\n\t"
-
-"       flds   60(%%"REG_a")\n\t"
-"       fadds  64(%%"REG_a")\n\t"
-"       fstps  60(%%"REG_d")\n\t"
-
-"       flds   56(%%"REG_a")\n\t"
-"       fsubs  68(%%"REG_a")\n\t"
-"       fmuls  56(%%"REG_b")\n\t"
-"       fstps  68(%%"REG_d")\n\t"
-
-"       flds   60(%%"REG_a")\n\t"
-"       fsubs  64(%%"REG_a")\n\t"
-"       fmuls  60(%%"REG_b")\n\t"
-"       fstps  64(%%"REG_d")\n\t"
-
-/* Phase 2*/
-
-"       flds     (%%"REG_d")\n\t"
-"       fadds  60(%%"REG_d")\n\t"
-"       fstps    (%%"REG_c")\n\t"
-
-"       flds    4(%%"REG_d")\n\t"
-"       fadds  56(%%"REG_d")\n\t"
-"       fstps   4(%%"REG_c")\n\t"
-
-"       flds     (%%"REG_d")\n\t"
-"       fsubs  60(%%"REG_d")\n\t"
-"       fmuls  64(%%"REG_b")\n\t"
-"       fstps  60(%%"REG_c")\n\t"
-
-"       flds    4(%%"REG_d")\n\t"
-"       fsubs  56(%%"REG_d")\n\t"
-"       fmuls  68(%%"REG_b")\n\t"
-"       fstps  56(%%"REG_c")\n\t"
-
-"       flds    8(%%"REG_d")\n\t"
-"       fadds  52(%%"REG_d")\n\t"
-"       fstps   8(%%"REG_c")\n\t"
-
-"       flds   12(%%"REG_d")\n\t"
-"       fadds  48(%%"REG_d")\n\t"
-"       fstps  12(%%"REG_c")\n\t"
-
-"       flds    8(%%"REG_d")\n\t"
-"       fsubs  52(%%"REG_d")\n\t"
-"       fmuls  72(%%"REG_b")\n\t"
-"       fstps  52(%%"REG_c")\n\t"
-
-"       flds   12(%%"REG_d")\n\t"
-"       fsubs  48(%%"REG_d")\n\t"
-"       fmuls  76(%%"REG_b")\n\t"
-"       fstps  48(%%"REG_c")\n\t"
-
-"       flds   16(%%"REG_d")\n\t"
-"       fadds  44(%%"REG_d")\n\t"
-"       fstps  16(%%"REG_c")\n\t"
-
-"       flds   20(%%"REG_d")\n\t"
-"       fadds  40(%%"REG_d")\n\t"
-"       fstps  20(%%"REG_c")\n\t"
-
-"       flds   16(%%"REG_d")\n\t"
-"       fsubs  44(%%"REG_d")\n\t"
-"       fmuls  80(%%"REG_b")\n\t"
-"       fstps  44(%%"REG_c")\n\t"
-
-"       flds   20(%%"REG_d")\n\t"
-"       fsubs  40(%%"REG_d")\n\t"
-"       fmuls  84(%%"REG_b")\n\t"
-"       fstps  40(%%"REG_c")\n\t"
-
-"       flds   24(%%"REG_d")\n\t"
-"       fadds  36(%%"REG_d")\n\t"
-"       fstps  24(%%"REG_c")\n\t"
-
-"       flds   28(%%"REG_d")\n\t"
-"       fadds  32(%%"REG_d")\n\t"
-"       fstps  28(%%"REG_c")\n\t"
-
-"       flds   24(%%"REG_d")\n\t"
-"       fsubs  36(%%"REG_d")\n\t"
-"       fmuls  88(%%"REG_b")\n\t"
-"       fstps  36(%%"REG_c")\n\t"
-
-"       flds   28(%%"REG_d")\n\t"
-"       fsubs  32(%%"REG_d")\n\t"
-"       fmuls  92(%%"REG_b")\n\t"
-"       fstps  32(%%"REG_c")\n\t"
-
-/* Phase 3*/
-
-"       flds   64(%%"REG_d")\n\t"
-"       fadds 124(%%"REG_d")\n\t"
-"       fstps  64(%%"REG_c")\n\t"
-
-"       flds   68(%%"REG_d")\n\t"
-"       fadds 120(%%"REG_d")\n\t"
-"       fstps  68(%%"REG_c")\n\t"
-
-"       flds  124(%%"REG_d")\n\t"
-"       fsubs  64(%%"REG_d")\n\t"
-"       fmuls  64(%%"REG_b")\n\t"
-"       fstps 124(%%"REG_c")\n\t"
-
-"       flds  120(%%"REG_d")\n\t"
-"       fsubs  68(%%"REG_d")\n\t"
-"       fmuls  68(%%"REG_b")\n\t"
-"       fstps 120(%%"REG_c")\n\t"
-
-"       flds   72(%%"REG_d")\n\t"
-"       fadds 116(%%"REG_d")\n\t"
-"       fstps  72(%%"REG_c")\n\t"
-
-"       flds   76(%%"REG_d")\n\t"
-"       fadds 112(%%"REG_d")\n\t"
-"       fstps  76(%%"REG_c")\n\t"
-
-"       flds  116(%%"REG_d")\n\t"
-"       fsubs  72(%%"REG_d")\n\t"
-"       fmuls  72(%%"REG_b")\n\t"
-"       fstps 116(%%"REG_c")\n\t"
-
-"       flds  112(%%"REG_d")\n\t"
-"       fsubs  76(%%"REG_d")\n\t"
-"       fmuls  76(%%"REG_b")\n\t"
-"       fstps 112(%%"REG_c")\n\t"
-
-"       flds   80(%%"REG_d")\n\t"
-"       fadds 108(%%"REG_d")\n\t"
-"       fstps  80(%%"REG_c")\n\t"
-
-"       flds   84(%%"REG_d")\n\t"
-"       fadds 104(%%"REG_d")\n\t"
-"       fstps  84(%%"REG_c")\n\t"
-
-"       flds  108(%%"REG_d")\n\t"
-"       fsubs  80(%%"REG_d")\n\t"
-"       fmuls  80(%%"REG_b")\n\t"
-"       fstps 108(%%"REG_c")\n\t"
-
-"       flds  104(%%"REG_d")\n\t"
-"       fsubs  84(%%"REG_d")\n\t"
-"       fmuls  84(%%"REG_b")\n\t"
-"       fstps 104(%%"REG_c")\n\t"
-
-"       flds   88(%%"REG_d")\n\t"
-"       fadds 100(%%"REG_d")\n\t"
-"       fstps  88(%%"REG_c")\n\t"
-
-"       flds   92(%%"REG_d")\n\t"
-"       fadds  96(%%"REG_d")\n\t"
-"       fstps  92(%%"REG_c")\n\t"
-
-"       flds  100(%%"REG_d")\n\t"
-"       fsubs  88(%%"REG_d")\n\t"
-"       fmuls  88(%%"REG_b")\n\t"
-"       fstps 100(%%"REG_c")\n\t"
-
-"       flds   96(%%"REG_d")\n\t"
-"       fsubs  92(%%"REG_d")\n\t"
-"       fmuls  92(%%"REG_b")\n\t"
-"       fstps  96(%%"REG_c")\n\t"
-
-/* Phase 4*/
-
-"       flds     (%%"REG_c")\n\t"
-"       fadds  28(%%"REG_c")\n\t"
-"       fstps    (%%"REG_d")\n\t"
-
-"       flds     (%%"REG_c")\n\t"
-"       fsubs  28(%%"REG_c")\n\t"
-"       fmuls  96(%%"REG_b")\n\t"
-"       fstps  28(%%"REG_d")\n\t"
-
-"       flds    4(%%"REG_c")\n\t"
-"       fadds  24(%%"REG_c")\n\t"
-"       fstps   4(%%"REG_d")\n\t"
-
-"       flds    4(%%"REG_c")\n\t"
-"       fsubs  24(%%"REG_c")\n\t"
-"       fmuls 100(%%"REG_b")\n\t"
-"       fstps  24(%%"REG_d")\n\t"
-
-"       flds    8(%%"REG_c")\n\t"
-"       fadds  20(%%"REG_c")\n\t"
-"       fstps   8(%%"REG_d")\n\t"
-
-"       flds    8(%%"REG_c")\n\t"
-"       fsubs  20(%%"REG_c")\n\t"
-"       fmuls 104(%%"REG_b")\n\t"
-"       fstps  20(%%"REG_d")\n\t"
-
-"       flds   12(%%"REG_c")\n\t"
-"       fadds  16(%%"REG_c")\n\t"
-"       fstps  12(%%"REG_d")\n\t"
-
-"       flds   12(%%"REG_c")\n\t"
-"       fsubs  16(%%"REG_c")\n\t"
-"       fmuls 108(%%"REG_b")\n\t"
-"       fstps  16(%%"REG_d")\n\t"
-
-"       flds   32(%%"REG_c")\n\t"
-"       fadds  60(%%"REG_c")\n\t"
-"       fstps  32(%%"REG_d")\n\t"
-
-"       flds   60(%%"REG_c")\n\t"
-"       fsubs  32(%%"REG_c")\n\t"
-"       fmuls  96(%%"REG_b")\n\t"
-"       fstps  60(%%"REG_d")\n\t"
-
-"       flds   36(%%"REG_c")\n\t"
-"       fadds  56(%%"REG_c")\n\t"
-"       fstps  36(%%"REG_d")\n\t"
-
-"       flds   56(%%"REG_c")\n\t"
-"       fsubs  36(%%"REG_c")\n\t"
-"       fmuls 100(%%"REG_b")\n\t"
-"       fstps  56(%%"REG_d")\n\t"
-
-"       flds   40(%%"REG_c")\n\t"
-"       fadds  52(%%"REG_c")\n\t"
-"       fstps  40(%%"REG_d")\n\t"
-
-"       flds   52(%%"REG_c")\n\t"
-"       fsubs  40(%%"REG_c")\n\t"
-"       fmuls 104(%%"REG_b")\n\t"
-"       fstps  52(%%"REG_d")\n\t"
-
-"       flds   44(%%"REG_c")\n\t"
-"       fadds  48(%%"REG_c")\n\t"
-"       fstps  44(%%"REG_d")\n\t"
-
-"       flds   48(%%"REG_c")\n\t"
-"       fsubs  44(%%"REG_c")\n\t"
-"       fmuls 108(%%"REG_b")\n\t"
-"       fstps  48(%%"REG_d")\n\t"
-
-"       flds   64(%%"REG_c")\n\t"
-"       fadds  92(%%"REG_c")\n\t"
-"       fstps  64(%%"REG_d")\n\t"
-
-"       flds   64(%%"REG_c")\n\t"
-"       fsubs  92(%%"REG_c")\n\t"
-"       fmuls  96(%%"REG_b")\n\t"
-"       fstps  92(%%"REG_d")\n\t"
-
-"       flds   68(%%"REG_c")\n\t"
-"       fadds  88(%%"REG_c")\n\t"
-"       fstps  68(%%"REG_d")\n\t"
-
-"       flds   68(%%"REG_c")\n\t"
-"       fsubs  88(%%"REG_c")\n\t"
-"       fmuls 100(%%"REG_b")\n\t"
-"       fstps  88(%%"REG_d")\n\t"
-
-"       flds   72(%%"REG_c")\n\t"
-"       fadds  84(%%"REG_c")\n\t"
-"       fstps  72(%%"REG_d")\n\t"
-
-"       flds   72(%%"REG_c")\n\t"
-"       fsubs  84(%%"REG_c")\n\t"
-"       fmuls 104(%%"REG_b")\n\t"
-"       fstps  84(%%"REG_d")\n\t"
-
-"       flds   76(%%"REG_c")\n\t"
-"       fadds  80(%%"REG_c")\n\t"
-"       fstps  76(%%"REG_d")\n\t"
-
-"       flds   76(%%"REG_c")\n\t"
-"       fsubs  80(%%"REG_c")\n\t"
-"       fmuls 108(%%"REG_b")\n\t"
-"       fstps  80(%%"REG_d")\n\t"
-
-"       flds   96(%%"REG_c")\n\t"
-"       fadds 124(%%"REG_c")\n\t"
-"       fstps  96(%%"REG_d")\n\t"
-
-"       flds  124(%%"REG_c")\n\t"
-"       fsubs  96(%%"REG_c")\n\t"
-"       fmuls  96(%%"REG_b")\n\t"
-"       fstps 124(%%"REG_d")\n\t"
-
-"       flds  100(%%"REG_c")\n\t"
-"       fadds 120(%%"REG_c")\n\t"
-"       fstps 100(%%"REG_d")\n\t"
-
-"       flds  120(%%"REG_c")\n\t"
-"       fsubs 100(%%"REG_c")\n\t"
-"       fmuls 100(%%"REG_b")\n\t"
-"       fstps 120(%%"REG_d")\n\t"
-
-"       flds  104(%%"REG_c")\n\t"
-"       fadds 116(%%"REG_c")\n\t"
-"       fstps 104(%%"REG_d")\n\t"
-
-"       flds  116(%%"REG_c")\n\t"
-"       fsubs 104(%%"REG_c")\n\t"
-"       fmuls 104(%%"REG_b")\n\t"
-"       fstps 116(%%"REG_d")\n\t"
-
-"       flds  108(%%"REG_c")\n\t"
-"       fadds 112(%%"REG_c")\n\t"
-"       fstps 108(%%"REG_d")\n\t"
-
-"       flds  112(%%"REG_c")\n\t"
-"       fsubs 108(%%"REG_c")\n\t"
-"       fmuls 108(%%"REG_b")\n\t"
-"       fstps 112(%%"REG_d")\n\t"
-
-"       flds     (%%"REG_d")\n\t"
-"       fadds  12(%%"REG_d")\n\t"
-"       fstps    (%%"REG_c")\n\t"
-
-"       flds     (%%"REG_d")\n\t"
-"       fsubs  12(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps  12(%%"REG_c")\n\t"
-
-"       flds    4(%%"REG_d")\n\t"
-"       fadds   8(%%"REG_d")\n\t"
-"       fstps   4(%%"REG_c")\n\t"
-
-"       flds    4(%%"REG_d")\n\t"
-"       fsubs   8(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps   8(%%"REG_c")\n\t"
-
-"       flds   16(%%"REG_d")\n\t"
-"       fadds  28(%%"REG_d")\n\t"
-"       fstps  16(%%"REG_c")\n\t"
-
-"       flds   28(%%"REG_d")\n\t"
-"       fsubs  16(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps  28(%%"REG_c")\n\t"
-
-"       flds   20(%%"REG_d")\n\t"
-"       fadds  24(%%"REG_d")\n\t"
-"       fstps  20(%%"REG_c")\n\t"
-
-"       flds   24(%%"REG_d")\n\t"
-"       fsubs  20(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps  24(%%"REG_c")\n\t"
-
-"       flds   32(%%"REG_d")\n\t"
-"       fadds  44(%%"REG_d")\n\t"
-"       fstps  32(%%"REG_c")\n\t"
-
-"       flds   32(%%"REG_d")\n\t"
-"       fsubs  44(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps  44(%%"REG_c")\n\t"
-
-"       flds   36(%%"REG_d")\n\t"
-"       fadds  40(%%"REG_d")\n\t"
-"       fstps  36(%%"REG_c")\n\t"
-
-"       flds   36(%%"REG_d")\n\t"
-"       fsubs  40(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps  40(%%"REG_c")\n\t"
-
-"       flds   48(%%"REG_d")\n\t"
-"       fadds  60(%%"REG_d")\n\t"
-"       fstps  48(%%"REG_c")\n\t"
-
-"       flds   60(%%"REG_d")\n\t"
-"       fsubs  48(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps  60(%%"REG_c")\n\t"
-
-"       flds   52(%%"REG_d")\n\t"
-"       fadds  56(%%"REG_d")\n\t"
-"       fstps  52(%%"REG_c")\n\t"
-
-"       flds   56(%%"REG_d")\n\t"
-"       fsubs  52(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps  56(%%"REG_c")\n\t"
-
-"       flds   64(%%"REG_d")\n\t"
-"       fadds  76(%%"REG_d")\n\t"
-"       fstps  64(%%"REG_c")\n\t"
-
-"       flds   64(%%"REG_d")\n\t"
-"       fsubs  76(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps  76(%%"REG_c")\n\t"
-
-"       flds   68(%%"REG_d")\n\t"
-"       fadds  72(%%"REG_d")\n\t"
-"       fstps  68(%%"REG_c")\n\t"
-
-"       flds   68(%%"REG_d")\n\t"
-"       fsubs  72(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps  72(%%"REG_c")\n\t"
-
-"       flds   80(%%"REG_d")\n\t"
-"       fadds  92(%%"REG_d")\n\t"
-"       fstps  80(%%"REG_c")\n\t"
-
-"       flds   92(%%"REG_d")\n\t"
-"       fsubs  80(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps  92(%%"REG_c")\n\t"
-
-"       flds   84(%%"REG_d")\n\t"
-"       fadds  88(%%"REG_d")\n\t"
-"       fstps  84(%%"REG_c")\n\t"
-
-"       flds   88(%%"REG_d")\n\t"
-"       fsubs  84(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps  88(%%"REG_c")\n\t"
-
-"       flds   96(%%"REG_d")\n\t"
-"       fadds 108(%%"REG_d")\n\t"
-"       fstps  96(%%"REG_c")\n\t"
-
-"       flds   96(%%"REG_d")\n\t"
-"       fsubs 108(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps 108(%%"REG_c")\n\t"
-
-"       flds  100(%%"REG_d")\n\t"
-"       fadds 104(%%"REG_d")\n\t"
-"       fstps 100(%%"REG_c")\n\t"
-
-"       flds  100(%%"REG_d")\n\t"
-"       fsubs 104(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps 104(%%"REG_c")\n\t"
-
-"       flds  112(%%"REG_d")\n\t"
-"       fadds 124(%%"REG_d")\n\t"
-"       fstps 112(%%"REG_c")\n\t"
-
-"       flds  124(%%"REG_d")\n\t"
-"       fsubs 112(%%"REG_d")\n\t"
-"       fmuls 112(%%"REG_b")\n\t"
-"       fstps 124(%%"REG_c")\n\t"
-
-"       flds  116(%%"REG_d")\n\t"
-"       fadds 120(%%"REG_d")\n\t"
-"       fstps 116(%%"REG_c")\n\t"
-
-"       flds  120(%%"REG_d")\n\t"
-"       fsubs 116(%%"REG_d")\n\t"
-"       fmuls 116(%%"REG_b")\n\t"
-"       fstps 120(%%"REG_c")\n\t"
-
-/* Phase 5*/
-
-"       flds   32(%%"REG_c")\n\t"
-"       fadds  36(%%"REG_c")\n\t"
-"       fstps  32(%%"REG_d")\n\t"
-
-"       flds   32(%%"REG_c")\n\t"
-"       fsubs  36(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fstps  36(%%"REG_d")\n\t"
-
-"       flds   44(%%"REG_c")\n\t"
-"       fsubs  40(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fsts   44(%%"REG_d")\n\t"
-"       fadds  40(%%"REG_c")\n\t"
-"       fadds  44(%%"REG_c")\n\t"
-"       fstps  40(%%"REG_d")\n\t"
-
-"       flds   48(%%"REG_c")\n\t"
-"       fsubs  52(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-
-"       flds   60(%%"REG_c")\n\t"
-"       fsubs  56(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  56(%%"REG_c")\n\t"
-"       fadds  60(%%"REG_c")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  48(%%"REG_c")\n\t"
-"       fadds  52(%%"REG_c")\n\t"
-"       fstps  48(%%"REG_d")\n\t"
-"       fadd     %%st(2)\n\t"
-"       fstps  56(%%"REG_d")\n\t"
-"       fsts   60(%%"REG_d")\n\t"
-"       faddp    %%st(1)\n\t"
-"       fstps  52(%%"REG_d")\n\t"
-
-"       flds   64(%%"REG_c")\n\t"
-"       fadds  68(%%"REG_c")\n\t"
-"       fstps  64(%%"REG_d")\n\t"
-
-"       flds   64(%%"REG_c")\n\t"
-"       fsubs  68(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fstps  68(%%"REG_d")\n\t"
-
-"       flds   76(%%"REG_c")\n\t"
-"       fsubs  72(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fsts   76(%%"REG_d")\n\t"
-"       fadds  72(%%"REG_c")\n\t"
-"       fadds  76(%%"REG_c")\n\t"
-"       fstps  72(%%"REG_d")\n\t"
-
-"       flds   92(%%"REG_c")\n\t"
-"       fsubs  88(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fsts   92(%%"REG_d")\n\t"
-"       fadds  92(%%"REG_c")\n\t"
-"       fadds  88(%%"REG_c")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  80(%%"REG_c")\n\t"
-"       fadds  84(%%"REG_c")\n\t"
-"       fstps  80(%%"REG_d")\n\t"
-
-"       flds   80(%%"REG_c")\n\t"
-"       fsubs  84(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fadd  %%st(0), %%st(1)\n\t"
-"       fadds 92(%%"REG_d")\n\t"
-"       fstps 84(%%"REG_d")\n\t"
-"       fstps 88(%%"REG_d")\n\t"
-
-"       flds   96(%%"REG_c")\n\t"
-"       fadds 100(%%"REG_c")\n\t"
-"       fstps  96(%%"REG_d")\n\t"
-
-"       flds   96(%%"REG_c")\n\t"
-"       fsubs 100(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fstps 100(%%"REG_d")\n\t"
-
-"       flds  108(%%"REG_c")\n\t"
-"       fsubs 104(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fsts  108(%%"REG_d")\n\t"
-"       fadds 104(%%"REG_c")\n\t"
-"       fadds 108(%%"REG_c")\n\t"
-"       fstps 104(%%"REG_d")\n\t"
-
-"       flds  124(%%"REG_c")\n\t"
-"       fsubs 120(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fsts  124(%%"REG_d")\n\t"
-"       fadds 120(%%"REG_c")\n\t"
-"       fadds 124(%%"REG_c")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds 112(%%"REG_c")\n\t"
-"       fadds 116(%%"REG_c")\n\t"
-"       fstps 112(%%"REG_d")\n\t"
-
-"       flds  112(%%"REG_c")\n\t"
-"       fsubs 116(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fadd  %%st(0),%%st(1)\n\t"
-"       fadds 124(%%"REG_d")\n\t"
-"       fstps 116(%%"REG_d")\n\t"
-"       fstps 120(%%"REG_d")\n\t"
-"       jnz .L01\n\t"
-
-/* Phase 6*/
-
-"       flds      (%%"REG_c")\n\t"
-"       fadds    4(%%"REG_c")\n\t"
-"       fstps 1024(%%"REG_S")\n\t"
-
-"       flds      (%%"REG_c")\n\t"
-"       fsubs    4(%%"REG_c")\n\t"
-"       fmuls  120(%%"REG_b")\n\t"
-"       fsts      (%%"REG_S")\n\t"
-"       fstps     (%%"REG_D")\n\t"
-
-"       flds   12(%%"REG_c")\n\t"
-"       fsubs   8(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fsts  512(%%"REG_D")\n\t"
-"       fadds  12(%%"REG_c")\n\t"
-"       fadds   8(%%"REG_c")\n\t"
-"       fstps 512(%%"REG_S")\n\t"
-
-"       flds   16(%%"REG_c")\n\t"
-"       fsubs  20(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-
-"       flds   28(%%"REG_c")\n\t"
-"       fsubs  24(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fsts  768(%%"REG_D")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  24(%%"REG_c")\n\t"
-"       fadds  28(%%"REG_c")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  16(%%"REG_c")\n\t"
-"       fadds  20(%%"REG_c")\n\t"
-"       fstps 768(%%"REG_S")\n\t"
-"       fadd     %%st(2)\n\t"
-"       fstps 256(%%"REG_S")\n\t"
-"       faddp    %%st(1)\n\t"
-"       fstps 256(%%"REG_D")\n\t"
-
-/* Phase 7*/
-
-"       flds   32(%%"REG_d")\n\t"
-"       fadds  48(%%"REG_d")\n\t"
-"       fstps 896(%%"REG_S")\n\t"
-
-"       flds   48(%%"REG_d")\n\t"
-"       fadds  40(%%"REG_d")\n\t"
-"       fstps 640(%%"REG_S")\n\t"
-
-"       flds   40(%%"REG_d")\n\t"
-"       fadds  56(%%"REG_d")\n\t"
-"       fstps 384(%%"REG_S")\n\t"
-
-"       flds   56(%%"REG_d")\n\t"
-"       fadds  36(%%"REG_d")\n\t"
-"       fstps 128(%%"REG_S")\n\t"
-
-"       flds   36(%%"REG_d")\n\t"
-"       fadds  52(%%"REG_d")\n\t"
-"       fstps 128(%%"REG_D")\n\t"
-
-"       flds   52(%%"REG_d")\n\t"
-"       fadds  44(%%"REG_d")\n\t"
-"       fstps 384(%%"REG_D")\n\t"
-
-"       flds   60(%%"REG_d")\n\t"
-"       fsts  896(%%"REG_D")\n\t"
-"       fadds  44(%%"REG_d")\n\t"
-"       fstps 640(%%"REG_D")\n\t"
-
-"       flds   96(%%"REG_d")\n\t"
-"       fadds 112(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  64(%%"REG_d")\n\t"
-"       fstps 960(%%"REG_S")\n\t"
-"       fadds  80(%%"REG_d")\n\t"
-"       fstps 832(%%"REG_S")\n\t"
-
-"       flds  112(%%"REG_d")\n\t"
-"       fadds 104(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  80(%%"REG_d")\n\t"
-"       fstps 704(%%"REG_S")\n\t"
-"       fadds  72(%%"REG_d")\n\t"
-"       fstps 576(%%"REG_S")\n\t"
-
-"       flds  104(%%"REG_d")\n\t"
-"       fadds 120(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  72(%%"REG_d")\n\t"
-"       fstps 448(%%"REG_S")\n\t"
-"       fadds  88(%%"REG_d")\n\t"
-"       fstps 320(%%"REG_S")\n\t"
-
-"       flds  120(%%"REG_d")\n\t"
-"       fadds 100(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  88(%%"REG_d")\n\t"
-"       fstps 192(%%"REG_S")\n\t"
-"       fadds  68(%%"REG_d")\n\t"
-"       fstps  64(%%"REG_S")\n\t"
-
-"       flds  100(%%"REG_d")\n\t"
-"       fadds 116(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  68(%%"REG_d")\n\t"
-"       fstps  64(%%"REG_D")\n\t"
-"       fadds  84(%%"REG_d")\n\t"
-"       fstps 192(%%"REG_D")\n\t"
-
-"       flds  116(%%"REG_d")\n\t"
-"       fadds 108(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  84(%%"REG_d")\n\t"
-"       fstps 320(%%"REG_D")\n\t"
-"       fadds  76(%%"REG_d")\n\t"
-"       fstps 448(%%"REG_D")\n\t"
-
-"       flds  108(%%"REG_d")\n\t"
-"       fadds 124(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  76(%%"REG_d")\n\t"
-"       fstps 576(%%"REG_D")\n\t"
-"       fadds  92(%%"REG_d")\n\t"
-"       fstps 704(%%"REG_D")\n\t"
-
-"       flds  124(%%"REG_d")\n\t"
-"       fsts  960(%%"REG_D")\n\t"
-"       fadds  92(%%"REG_d")\n\t"
-"       fstps 832(%%"REG_D")\n\t"
-"       jmp     .L_bye\n\t"
-".L01:\n\t"
-/* Phase 8*/
-
-"       flds      (%%"REG_c")\n\t"
-"       fadds    4(%%"REG_c")\n\t"
-"       fistp  512(%%"REG_S")\n\t"
-
-"       flds      (%%"REG_c")\n\t"
-"       fsubs    4(%%"REG_c")\n\t"
-"       fmuls  120(%%"REG_b")\n\t"
-
-"       fistp     (%%"REG_S")\n\t"
-
-
-"       flds    12(%%"REG_c")\n\t"
-"       fsubs    8(%%"REG_c")\n\t"
-"       fmuls  120(%%"REG_b")\n\t"
-"       fist   256(%%"REG_D")\n\t"
-"       fadds   12(%%"REG_c")\n\t"
-"       fadds    8(%%"REG_c")\n\t"
-"       fistp  256(%%"REG_S")\n\t"
-
-"       flds   16(%%"REG_c")\n\t"
-"       fsubs  20(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-
-"       flds   28(%%"REG_c")\n\t"
-"       fsubs  24(%%"REG_c")\n\t"
-"       fmuls 120(%%"REG_b")\n\t"
-"       fist  384(%%"REG_D")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  24(%%"REG_c")\n\t"
-"       fadds  28(%%"REG_c")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  16(%%"REG_c")\n\t"
-"       fadds  20(%%"REG_c")\n\t"
-"       fistp  384(%%"REG_S")\n\t"
-"       fadd     %%st(2)\n\t"
-"       fistp  128(%%"REG_S")\n\t"
-"       faddp    %%st(1)\n\t"
-"       fistp  128(%%"REG_D")\n\t"
-
-/* Phase 9*/
-
-"       flds    32(%%"REG_d")\n\t"
-"       fadds   48(%%"REG_d")\n\t"
-"       fistp  448(%%"REG_S")\n\t"
-
-"       flds   48(%%"REG_d")\n\t"
-"       fadds  40(%%"REG_d")\n\t"
-"       fistp 320(%%"REG_S")\n\t"
-
-"       flds   40(%%"REG_d")\n\t"
-"       fadds  56(%%"REG_d")\n\t"
-"       fistp 192(%%"REG_S")\n\t"
-
-"       flds   56(%%"REG_d")\n\t"
-"       fadds  36(%%"REG_d")\n\t"
-"       fistp  64(%%"REG_S")\n\t"
-
-"       flds   36(%%"REG_d")\n\t"
-"       fadds  52(%%"REG_d")\n\t"
-"       fistp  64(%%"REG_D")\n\t"
-
-"       flds   52(%%"REG_d")\n\t"
-"       fadds  44(%%"REG_d")\n\t"
-"       fistp 192(%%"REG_D")\n\t"
-
-"       flds   60(%%"REG_d")\n\t"
-"       fist   448(%%"REG_D")\n\t"
-"       fadds  44(%%"REG_d")\n\t"
-"       fistp 320(%%"REG_D")\n\t"
-
-"       flds   96(%%"REG_d")\n\t"
-"       fadds 112(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  64(%%"REG_d")\n\t"
-"       fistp 480(%%"REG_S")\n\t"
-"       fadds  80(%%"REG_d")\n\t"
-"       fistp 416(%%"REG_S")\n\t"
-
-"       flds  112(%%"REG_d")\n\t"
-"       fadds 104(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  80(%%"REG_d")\n\t"
-"       fistp 352(%%"REG_S")\n\t"
-"       fadds  72(%%"REG_d")\n\t"
-"       fistp 288(%%"REG_S")\n\t"
-
-"       flds  104(%%"REG_d")\n\t"
-"       fadds 120(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  72(%%"REG_d")\n\t"
-"       fistp 224(%%"REG_S")\n\t"
-"       fadds  88(%%"REG_d")\n\t"
-"       fistp 160(%%"REG_S")\n\t"
-
-"       flds  120(%%"REG_d")\n\t"
-"       fadds 100(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  88(%%"REG_d")\n\t"
-"       fistp  96(%%"REG_S")\n\t"
-"       fadds  68(%%"REG_d")\n\t"
-"       fistp  32(%%"REG_S")\n\t"
-
-"       flds  100(%%"REG_d")\n\t"
-"       fadds 116(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  68(%%"REG_d")\n\t"
-"       fistp  32(%%"REG_D")\n\t"
-"       fadds  84(%%"REG_d")\n\t"
-"       fistp  96(%%"REG_D")\n\t"
-
-"       flds  116(%%"REG_d")\n\t"
-"       fadds 108(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  84(%%"REG_d")\n\t"
-"       fistp 160(%%"REG_D")\n\t"
-"       fadds  76(%%"REG_d")\n\t"
-"       fistp 224(%%"REG_D")\n\t"
-
-"       flds  108(%%"REG_d")\n\t"
-"       fadds 124(%%"REG_d")\n\t"
-"       fld      %%st(0)\n\t"
-"       fadds  76(%%"REG_d")\n\t"
-"       fistp 288(%%"REG_D")\n\t"
-"       fadds  92(%%"REG_d")\n\t"
-"       fistp 352(%%"REG_D")\n\t"
-
-"       flds  124(%%"REG_d")\n\t"
-"       fist  480(%%"REG_D")\n\t"
-"       fadds  92(%%"REG_d")\n\t"
-"       fistp 416(%%"REG_D")\n\t"
-"       movsw\n\t"
-".L_bye:"
-        :
-        :"m"(a),"m"(b),"m"(c),"m"(tmp[0])
-        :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi");
-}
--- a/mp3lib/dct64_sse.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,421 +0,0 @@
-/*
- * Discrete Cosine Tansform (DCT) for SSE
- * Copyright (c) 2006 Zuxy MENG <zuxy.meng@gmail.com>
- * based upon code from mp3lib/dct64.c, mp3lib/dct64_altivec.c
- * and mp3lib/dct64_mmx.c
- */
-
-#include "libavutil/mem.h"
-#include "mpg123.h"
-
-extern float __attribute__((aligned(16))) costab_mmx[];
-
-static const int ppnn[4] __attribute__((aligned(16))) =
-{ 0, 0, 1 << 31, 1 << 31 };
-
-static const int pnpn[4] __attribute__((aligned(16))) =
-{ 0, 1 << 31, 0, 1 << 31 };
-
-static const int nnnn[4] __attribute__((aligned(16))) =
-{ 1 << 31, 1 << 31, 1 << 31, 1 << 31 };
-
-void dct64_sse(short *out0,short *out1,real *c)
-{
-    DECLARE_ALIGNED(16, real, b1[0x20]);
-    DECLARE_ALIGNED(16, real, b2[0x20]);
-    static real const one = 1.f;
-
-    {
-        real *costab = costab_mmx;
-        int i;
-
-        for (i = 0; i < 0x20 / 2; i += 4)
-        {
-            __asm__(
-                "movaps    %2, %%xmm3\n\t"
-                "shufps    $27, %%xmm3, %%xmm3\n\t"
-                "movaps    %3, %%xmm1\n\t"
-                "movaps    %%xmm1, %%xmm4\n\t"
-                "movaps    %4, %%xmm2\n\t"
-                "shufps    $27, %%xmm4, %%xmm4\n\t"
-                "movaps    %%xmm2, %%xmm0\n\t"
-                "shufps    $27, %%xmm0, %%xmm0\n\t"
-                "addps     %%xmm0, %%xmm1\n\t"
-                "movaps    %%xmm1, %0\n\t"
-                "subps     %%xmm2, %%xmm4\n\t"
-                "mulps     %%xmm3, %%xmm4\n\t"
-                "movaps    %%xmm4, %1\n\t"
-                :"=m"(*(b1 + i)), "=m"(*(b1 + 0x1c - i))
-                :"m"(*(costab + i)), "m"(*(c + i)), "m"(*(c + 0x1c - i))
-               );
-        }
-    }
-
-    {
-        int i;
-
-        for (i = 0; i < 0x20; i += 0x10)
-        {
-            __asm__(
-                "movaps    %4, %%xmm1\n\t"
-                "movaps    %5, %%xmm3\n\t"
-                "movaps    %6, %%xmm4\n\t"
-                "movaps    %7, %%xmm6\n\t"
-                "movaps    %%xmm1, %%xmm7\n\t"
-                "shufps    $27, %%xmm7, %%xmm7\n\t"
-                "movaps    %%xmm3, %%xmm5\n\t"
-                "shufps    $27, %%xmm5, %%xmm5\n\t"
-                "movaps    %%xmm4, %%xmm2\n\t"
-                "shufps    $27, %%xmm2, %%xmm2\n\t"
-                "movaps    %%xmm6, %%xmm0\n\t"
-                "shufps    $27, %%xmm0, %%xmm0\n\t"
-                "addps     %%xmm0, %%xmm1\n\t"
-                "movaps    %%xmm1, %0\n\t"
-                "addps     %%xmm2, %%xmm3\n\t"
-                "movaps    %%xmm3, %1\n\t"
-                "subps     %%xmm4, %%xmm5\n\t"
-                "movaps    %%xmm5, %2\n\t"
-                "subps     %%xmm6, %%xmm7\n\t"
-                "movaps    %%xmm7, %3\n\t"
-                :"=m"(*(b2 + i)), "=m"(*(b2 + i + 4)), "=m"(*(b2 + i + 8)), "=m"(*(b2 + i + 12))
-                :"m"(*(b1 + i)), "m"(*(b1 + i + 4)), "m"(*(b1 + i + 8)), "m"(*(b1 + i + 12))
-                );
-        }
-    }
-
-    {
-        real *costab = costab_mmx + 16;
-        __asm__(
-            "movaps    %4, %%xmm0\n\t"
-            "movaps    %5, %%xmm1\n\t"
-            "movaps    %8, %%xmm4\n\t"
-            "xorps     %%xmm6, %%xmm6\n\t"
-            "shufps    $27, %%xmm4, %%xmm4\n\t"
-            "mulps     %%xmm4, %%xmm1\n\t"
-            "movaps    %9, %%xmm2\n\t"
-            "xorps     %%xmm7, %%xmm7\n\t"
-            "shufps    $27, %%xmm2, %%xmm2\n\t"
-            "mulps     %%xmm2, %%xmm0\n\t"
-            "movaps    %%xmm0, %0\n\t"
-            "movaps    %%xmm1, %1\n\t"
-            "movaps    %6, %%xmm3\n\t"
-            "mulps     %%xmm2, %%xmm3\n\t"
-            "subps     %%xmm3, %%xmm6\n\t"
-            "movaps    %%xmm6, %2\n\t"
-            "movaps    %7, %%xmm5\n\t"
-            "mulps     %%xmm4, %%xmm5\n\t"
-            "subps     %%xmm5, %%xmm7\n\t"
-            "movaps    %%xmm7, %3\n\t"
-            :"=m"(*(b2 + 8)), "=m"(*(b2 + 0xc)), "=m"(*(b2 + 0x18)), "=m"(*(b2 + 0x1c))
-            :"m"(*(b2 + 8)), "m"(*(b2 + 0xc)), "m"(*(b2 + 0x18)), "m"(*(b2 + 0x1c)), "m"(*costab), "m"(*(costab + 4))
-            );
-    }
-
-    {
-        int i;
-
-        __asm__(
-            "movaps    %0, %%xmm0\n\t"
-            "shufps    $27, %%xmm0, %%xmm0\n\t"
-            "movaps    %1, %%xmm5\n\t"
-            "movaps    %%xmm5, %%xmm6\n\t"
-            :
-            :"m"(costab_mmx[24]), "m"(*nnnn)
-           );
-
-        for (i = 0; i < 0x20; i += 8)
-        {
-            __asm__(
-                "movaps    %2, %%xmm2\n\t"
-                "movaps    %3, %%xmm3\n\t"
-                "movaps    %%xmm2, %%xmm4\n\t"
-                "xorps     %%xmm5, %%xmm6\n\t"
-                "shufps    $27, %%xmm4, %%xmm4\n\t"
-                "movaps    %%xmm3, %%xmm1\n\t"
-                "shufps    $27, %%xmm1, %%xmm1\n\t"
-                "addps     %%xmm1, %%xmm2\n\t"
-                "movaps    %%xmm2, %0\n\t"
-                "subps     %%xmm3, %%xmm4\n\t"
-                "xorps     %%xmm6, %%xmm4\n\t"
-                "mulps     %%xmm0, %%xmm4\n\t"
-                "movaps    %%xmm4, %1\n\t"
-                :"=m"(*(b1 + i)), "=m"(*(b1 + i + 4))
-                :"m"(*(b2 + i)), "m"(*(b2 + i + 4))
-               );
-        }
-    }
-
-    {
-        int i;
-
-        __asm__(
-            "movss     %0, %%xmm1\n\t"
-            "movss     %1, %%xmm0\n\t"
-            "movaps    %%xmm1, %%xmm3\n\t"
-            "unpcklps  %%xmm0, %%xmm3\n\t"
-            "movss     %2, %%xmm2\n\t"
-            "movaps    %%xmm1, %%xmm0\n\t"
-            "unpcklps  %%xmm2, %%xmm0\n\t"
-            "unpcklps  %%xmm3, %%xmm0\n\t"
-            "movaps    %3, %%xmm2\n\t"
-            :
-            :"m"(one), "m"(costab_mmx[28]), "m"(costab_mmx[29]), "m"(*ppnn)
-           );
-
-        for (i = 0; i < 0x20; i += 8)
-        {
-            __asm__(
-                "movaps    %2, %%xmm3\n\t"
-                "movaps    %%xmm3, %%xmm4\n\t"
-                "shufps    $20, %%xmm4, %%xmm4\n\t"
-                "shufps    $235, %%xmm3, %%xmm3\n\t"
-                "xorps     %%xmm2, %%xmm3\n\t"
-                "addps     %%xmm3, %%xmm4\n\t"
-                "mulps     %%xmm0, %%xmm4\n\t"
-                "movaps    %%xmm4, %0\n\t"
-                "movaps    %3, %%xmm6\n\t"
-                "movaps    %%xmm6, %%xmm5\n\t"
-                "shufps    $27, %%xmm5, %%xmm5\n\t"
-                "xorps     %%xmm2, %%xmm5\n\t"
-                "addps     %%xmm5, %%xmm6\n\t"
-                "mulps     %%xmm0, %%xmm6\n\t"
-                "movaps    %%xmm6, %1\n\t"
-                :"=m"(*(b2 + i)), "=m"(*(b2 + i + 4))
-                :"m"(*(b1 + i)), "m"(*(b1 + i + 4))
-               );
-        }
-    }
-
-    {
-        int i;
-        __asm__(
-            "movss     %0, %%xmm0\n\t"
-            "movaps    %%xmm1, %%xmm2\n\t"
-            "movaps    %%xmm0, %%xmm7\n\t"
-            "unpcklps  %%xmm1, %%xmm2\n\t"
-            "unpcklps  %%xmm0, %%xmm7\n\t"
-            "movaps    %1, %%xmm0\n\t"
-            "unpcklps  %%xmm7, %%xmm2\n\t"
-            :
-            :"m"(costab_mmx[30]), "m"(*pnpn)
-           );
-
-        for (i = 0x8; i < 0x20; i += 8)
-        {
-            __asm__ volatile (
-                          "movaps    %2, %%xmm1\n\t"
-                          "movaps    %%xmm1, %%xmm3\n\t"
-                          "shufps    $224, %%xmm3, %%xmm3\n\t"
-                          "shufps    $181, %%xmm1, %%xmm1\n\t"
-                          "xorps     %%xmm0, %%xmm1\n\t"
-                          "addps     %%xmm1, %%xmm3\n\t"
-                          "mulps     %%xmm2, %%xmm3\n\t"
-                          "movaps    %%xmm3, %0\n\t"
-                          "movaps    %3, %%xmm4\n\t"
-                          "movaps    %%xmm4, %%xmm5\n\t"
-                          "shufps    $224, %%xmm5, %%xmm5\n\t"
-                          "shufps    $181, %%xmm4, %%xmm4\n\t"
-                          "xorps     %%xmm0, %%xmm4\n\t"
-                          "addps     %%xmm4, %%xmm5\n\t"
-                          "mulps     %%xmm2, %%xmm5\n\t"
-                          "movaps    %%xmm5, %1\n\t"
-                          :"=m"(*(b1 + i)), "=m"(*(b1 + i + 4))
-                          :"m"(*(b2 + i)), "m"(*(b2 + i + 4))
-                          :"memory"
-                         );
-        }
-        for (i = 0x8; i < 0x20; i += 8)
-        {
-            b1[i + 2] += b1[i + 3];
-            b1[i + 6] += b1[i + 7];
-            b1[i + 4] += b1[i + 6];
-            b1[i + 6] += b1[i + 5];
-            b1[i + 5] += b1[i + 7];
-        }
-    }
-
-#if 0
-    /* Reference C code */
-
-    /*
-       Should run faster than x87 asm, given that the compiler is sane.
-       However, the C code dosen't round with saturation (0x7fff for too
-       large positive float, 0x8000 for too small negative float). You
-       can hear the difference if you listen carefully.
-    */
-
-    out0[256] = (short)(b2[0] + b2[1]);
-    out0[0] = (short)((b2[0] - b2[1]) * costab_mmx[30]);
-    out1[128] = (short)((b2[3] - b2[2]) * costab_mmx[30]);
-    out0[128] = (short)((b2[3] - b2[2]) * costab_mmx[30] + b2[3] + b2[2]);
-    out1[192] = (short)((b2[7] - b2[6]) * costab_mmx[30]);
-    out0[192] = (short)((b2[7] - b2[6]) * costab_mmx[30] + b2[6] + b2[7] + b2[4] + b2[5]);
-    out0[64] = (short)((b2[7] - b2[6]) * costab_mmx[30] + b2[6] + b2[7] + (b2[4] - b2[5]) * costab_mmx[30]);
-    out1[64] = (short)((b2[7] - b2[6]) * costab_mmx[30] + (b2[4] - b2[5]) * costab_mmx[30]);
-
-    out0[224] = (short)(b1[8] + b1[12]);
-    out0[160] = (short)(b1[12] + b1[10]);
-    out0[96] = (short)(b1[10] + b1[14]);
-    out0[32] = (short)(b1[14] + b1[9]);
-    out1[32] = (short)(b1[9] + b1[13]);
-    out1[96] = (short)(b1[13] + b1[11]);
-    out1[224] = (short)b1[15];
-    out1[160] = (short)(b1[15] + b1[11]);
-    out0[240] = (short)(b1[24] + b1[28] + b1[16]);
-    out0[208] = (short)(b1[24] + b1[28] + b1[20]);
-    out0[176] = (short)(b1[28] + b1[26] + b1[20]);
-    out0[144] = (short)(b1[28] + b1[26] + b1[18]);
-    out0[112] = (short)(b1[26] + b1[30] + b1[18]);
-    out0[80] = (short)(b1[26] + b1[30] + b1[22]);
-    out0[48] = (short)(b1[30] + b1[25] + b1[22]);
-    out0[16] = (short)(b1[30] + b1[25] + b1[17]);
-    out1[16] = (short)(b1[25] + b1[29] + b1[17]);
-    out1[48] = (short)(b1[25] + b1[29] + b1[21]);
-    out1[80] = (short)(b1[29] + b1[27] + b1[21]);
-    out1[112] = (short)(b1[29] + b1[27] + b1[19]);
-    out1[144] = (short)(b1[27] + b1[31] + b1[19]);
-    out1[176] = (short)(b1[27] + b1[31] + b1[23]);
-    out1[240] = (short)(b1[31]);
-    out1[208] = (short)(b1[31] + b1[23]);
-
-#else
-    /*
-       To do saturation efficiently in x86 we can use fist(p)s,
-       pf2iw, or packssdw. We use fist(p)s here.
-    */
-    __asm__(
-        "flds       %0\n\t"
-        "flds     (%2)\n\t"
-        "fadds   4(%2)\n\t"
-        "fistps 512(%3)\n\t"
-
-        "flds     (%2)\n\t"
-        "fsubs   4(%2)\n\t"
-        "fmul  %%st(1)\n\t"
-        "fistps    (%3)\n\t"
-
-        "flds   12(%2)\n\t"
-        "fsubs   8(%2)\n\t"
-        "fmul  %%st(1)\n\t"
-        "fists  256(%4)\n\t"
-        "fadds  12(%2)\n\t"
-        "fadds   8(%2)\n\t"
-        "fistps 256(%3)\n\t"
-
-        "flds   16(%2)\n\t"
-        "fsubs  20(%2)\n\t"
-        "fmul  %%st(1)\n\t"
-
-        "flds   28(%2)\n\t"
-        "fsubs  24(%2)\n\t"
-        "fmul  %%st(2)\n\t"
-        "fists  384(%4)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  24(%2)\n\t"
-        "fadds  28(%2)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  16(%2)\n\t"
-        "fadds  20(%2)\n\t"
-        "fistps 384(%3)\n\t"
-        "fadd  %%st(2)\n\t"
-        "fistps 128(%3)\n\t"
-        "faddp %%st(1)\n\t"
-        "fistps 128(%4)\n\t"
-
-        "flds   32(%1)\n\t"
-        "fadds  48(%1)\n\t"
-        "fistps 448(%3)\n\t"
-
-        "flds   48(%1)\n\t"
-        "fadds  40(%1)\n\t"
-        "fistps 320(%3)\n\t"
-
-        "flds   40(%1)\n\t"
-        "fadds  56(%1)\n\t"
-        "fistps 192(%3)\n\t"
-
-        "flds   56(%1)\n\t"
-        "fadds  36(%1)\n\t"
-        "fistps  64(%3)\n\t"
-
-        "flds   36(%1)\n\t"
-        "fadds  52(%1)\n\t"
-        "fistps  64(%4)\n\t"
-
-        "flds   52(%1)\n\t"
-        "fadds  44(%1)\n\t"
-        "fistps 192(%4)\n\t"
-
-        "flds   60(%1)\n\t"
-        "fists  448(%4)\n\t"
-        "fadds  44(%1)\n\t"
-        "fistps 320(%4)\n\t"
-
-        "flds   96(%1)\n\t"
-        "fadds 112(%1)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  64(%1)\n\t"
-        "fistps 480(%3)\n\t"
-        "fadds  80(%1)\n\t"
-        "fistps 416(%3)\n\t"
-
-        "flds  112(%1)\n\t"
-        "fadds 104(%1)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  80(%1)\n\t"
-        "fistps 352(%3)\n\t"
-        "fadds  72(%1)\n\t"
-        "fistps 288(%3)\n\t"
-
-        "flds  104(%1)\n\t"
-        "fadds 120(%1)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  72(%1)\n\t"
-        "fistps 224(%3)\n\t"
-        "fadds  88(%1)\n\t"
-        "fistps 160(%3)\n\t"
-
-        "flds  120(%1)\n\t"
-        "fadds 100(%1)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  88(%1)\n\t"
-        "fistps  96(%3)\n\t"
-        "fadds  68(%1)\n\t"
-        "fistps  32(%3)\n\t"
-
-        "flds  100(%1)\n\t"
-        "fadds 116(%1)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  68(%1)\n\t"
-        "fistps  32(%4)\n\t"
-        "fadds  84(%1)\n\t"
-        "fistps  96(%4)\n\t"
-
-        "flds  116(%1)\n\t"
-        "fadds 108(%1)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  84(%1)\n\t"
-        "fistps 160(%4)\n\t"
-        "fadds  76(%1)\n\t"
-        "fistps 224(%4)\n\t"
-
-        "flds  108(%1)\n\t"
-        "fadds 124(%1)\n\t"
-        "fld   %%st(0)\n\t"
-        "fadds  76(%1)\n\t"
-        "fistps 288(%4)\n\t"
-        "fadds  92(%1)\n\t"
-        "fistps 352(%4)\n\t"
-
-        "flds  124(%1)\n\t"
-        "fists  480(%4)\n\t"
-        "fadds  92(%1)\n\t"
-        "fistps 416(%4)\n\t"
-        ".byte 0xdf, 0xc0\n\t" // ffreep %%st(0)
-        :
-        :"m"(costab_mmx[30]), "r"(b1), "r"(b2), "r"(out0), "r"(out1)
-        :"memory"
-        );
-#endif
-    out1[0] = out0[0];
-}
--- a/mp3lib/decod386.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,253 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
- * Mpeg Layer-1,2,3 audio decoder
- * ------------------------------
- * copyright (c) 1995,1996,1997 by Michael Hipp, All rights reserved.
- * See also 'README'
- *
- * slighlty optimized for machines without autoincrement/decrement.
- * The performance is highly compiler dependend. Maybe
- * the decode.c version for 'normal' processor may be faster
- * even for Intel processors.
- */
-
-
-#include "config.h"
-
-#if 0
- /* old WRITE_SAMPLE */
-   /* is portable */
-#define WRITE_SAMPLE(samples,sum,clip) {                        \
-  if( (sum) > 32767.0) { *(samples) = 0x7fff; (clip)++; }       \
-  else if( (sum) < -32768.0) { *(samples) = -0x8000; (clip)++; }\
-  else { *(samples) = sum;  }                                   \
-}
-#else
- /* new WRITE_SAMPLE */
-
-/*
- * should be the same as the "old WRITE_SAMPLE" macro above, but uses
- * some tricks to avoid double->int conversions and floating point compares.
- *
- * Here's how it works:
- * ((((65536.0 * 65536.0 * 16)+(65536.0 * 0.5))* 65536.0)) is
- * 0x0010000080000000LL in hex.  It computes 0x0010000080000000LL + sum
- * as a double IEEE fp value and extracts the low-order 32-bits from the
- * IEEE fp representation stored in memory.  The 2^56 bit in the constant
- * is intended to force the bits of "sum" into the least significant bits
- * of the double mantissa.  After an integer substraction of 0x80000000
- * we have the original double value "sum" converted to an 32-bit int value.
- *
- * (Is that really faster than the clean and simple old version of the macro?)
- */
-
-/*
- * On a SPARC cpu, we fetch the low-order 32-bit from the second 32-bit
- * word of the double fp value stored in memory.  On an x86 cpu, we fetch it
- * from the first 32-bit word.
- * I'm not sure if the HAVE_BIGENDIAN feature test covers all possible memory
- * layouts of double floating point values an all cpu architectures.  If
- * it doesn't work for you, just enable the "old WRITE_SAMPLE" macro.
- */
-#if HAVE_BIGENDIAN
-#define MANTISSA_OFFSET 1
-#else
-#define MANTISSA_OFFSET 0
-#endif
-
-   /* sizeof(int) == 4 */
-#define WRITE_SAMPLE(samples,sum,clip) { \
-  union { double dtemp; int itemp[2]; } u; int v; \
-  u.dtemp = ((((65536.0 * 65536.0 * 16)+(65536.0 * 0.5))* 65536.0)) + (sum);\
-  v = u.itemp[MANTISSA_OFFSET] - 0x80000000; \
-  if( v > 32767) { *(samples) = 0x7fff; (clip)++; } \
-  else if( v < -32768) { *(samples) = -0x8000; (clip)++; } \
-  else { *(samples) = v; } \
-}
-#endif
-
-
-/*
-#define WRITE_SAMPLE(samples,sum,clip) { \
-  double dtemp; int v;                    \
-  dtemp = ((((65536.0 * 65536.0 * 16)+(65536.0 * 0.5))* 65536.0)) + (sum);\
-  v = ((*(int *)&dtemp) - 0x80000000); \
-  if( v > 32767) { *(samples) = 0x7fff; (clip)++; } \
-  else if( v < -32768) { *(samples) = -0x8000; (clip)++; } \
-  else { *(samples) = v; } \
-}
-*/
-
-static int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt);
-
-static int synth_1to1_mono2stereo(real *bandPtr,unsigned char *samples,int *pnt)
-{
-  int i,ret;
-
-  ret = synth_1to1(bandPtr,0,samples,pnt);
-  samples = samples + *pnt - 128;
-
-  for(i=0;i<32;i++) {
-    ((short *)samples)[1] = ((short *)samples)[0];
-    samples+=4;
-  }
-
-  return ret;
-}
-
-static synth_func_t synth_func;
-
-#if HAVE_ALTIVEC
-#define dct64_base(a,b,c) if(gCpuCaps.hasAltiVec) dct64_altivec(a,b,c); else dct64(a,b,c)
-#else /* HAVE_ALTIVEC */
-#define dct64_base(a,b,c) dct64(a,b,c)
-#endif /* HAVE_ALTIVEC */
-
-static int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt)
-{
-  static real buffs[2][2][0x110];
-  static const int step = 2;
-  static int bo = 1;
-  short *samples = (short *) (out + *pnt);
-  real *b0,(*buf)[0x110];
-  int clip = 0;
-  int bo1;
-
-  *pnt += 128;
-
-/* optimized for x86 */
-#if ARCH_X86
-  if ( synth_func )
-   {
-//    printf("Calling %p, bandPtr=%p channel=%d samples=%p\n",synth_func,bandPtr,channel,samples);
-    // FIXME: synth_func() may destroy EBP, don't rely on stack contents!!!
-    return (*synth_func)( bandPtr,channel,samples);
-   }
-#endif
-  if(!channel) {     /* channel=0 */
-    bo--;
-    bo &= 0xf;
-    buf = buffs[0];
-  }
-  else {
-    samples++;
-    buf = buffs[1];
-  }
-
-  if(bo & 0x1) {
-    b0 = buf[0];
-    bo1 = bo;
-    dct64_base(buf[1]+((bo+1)&0xf),buf[0]+bo,bandPtr);
-  }
-  else {
-    b0 = buf[1];
-    bo1 = bo+1;
-    dct64_base(buf[0]+bo,buf[1]+bo+1,bandPtr);
-  }
-
-  {
-    register int j;
-    real *window = mp3lib_decwin + 16 - bo1;
-
-    for (j=16;j;j--,b0+=0x10,window+=0x20,samples+=step)
-    {
-      real sum;
-      sum  = window[0x0] * b0[0x0];
-      sum -= window[0x1] * b0[0x1];
-      sum += window[0x2] * b0[0x2];
-      sum -= window[0x3] * b0[0x3];
-      sum += window[0x4] * b0[0x4];
-      sum -= window[0x5] * b0[0x5];
-      sum += window[0x6] * b0[0x6];
-      sum -= window[0x7] * b0[0x7];
-      sum += window[0x8] * b0[0x8];
-      sum -= window[0x9] * b0[0x9];
-      sum += window[0xA] * b0[0xA];
-      sum -= window[0xB] * b0[0xB];
-      sum += window[0xC] * b0[0xC];
-      sum -= window[0xD] * b0[0xD];
-      sum += window[0xE] * b0[0xE];
-      sum -= window[0xF] * b0[0xF];
-
-      WRITE_SAMPLE(samples,sum,clip);
-    }
-
-    {
-      real sum;
-      sum  = window[0x0] * b0[0x0];
-      sum += window[0x2] * b0[0x2];
-      sum += window[0x4] * b0[0x4];
-      sum += window[0x6] * b0[0x6];
-      sum += window[0x8] * b0[0x8];
-      sum += window[0xA] * b0[0xA];
-      sum += window[0xC] * b0[0xC];
-      sum += window[0xE] * b0[0xE];
-      WRITE_SAMPLE(samples,sum,clip);
-      b0-=0x10,window-=0x20,samples+=step;
-    }
-    window += bo1<<1;
-
-    for (j=15;j;j--,b0-=0x10,window-=0x20,samples+=step)
-    {
-      real sum;
-      sum = -window[-0x1] * b0[0x0];
-      sum -= window[-0x2] * b0[0x1];
-      sum -= window[-0x3] * b0[0x2];
-      sum -= window[-0x4] * b0[0x3];
-      sum -= window[-0x5] * b0[0x4];
-      sum -= window[-0x6] * b0[0x5];
-      sum -= window[-0x7] * b0[0x6];
-      sum -= window[-0x8] * b0[0x7];
-      sum -= window[-0x9] * b0[0x8];
-      sum -= window[-0xA] * b0[0x9];
-      sum -= window[-0xB] * b0[0xA];
-      sum -= window[-0xC] * b0[0xB];
-      sum -= window[-0xD] * b0[0xC];
-      sum -= window[-0xE] * b0[0xD];
-      sum -= window[-0xF] * b0[0xE];
-      sum -= window[-0x0] * b0[0xF];
-
-      WRITE_SAMPLE(samples,sum,clip);
-    }
-  }
-
-  return clip;
-
-}
-
-#ifdef CONFIG_FAKE_MONO
-static int synth_1to1_l(real *bandPtr,int channel,unsigned char *out,int *pnt)
-{
-  int i,ret;
-
-  ret = synth_1to1(bandPtr,channel,out,pnt);
-  out = out + *pnt - 128;
-
-  for(i=0;i<32;i++) {
-    ((short *)out)[1] = ((short *)out)[0];
-    out+=4;
-  }
-
-  return ret;
-}
-
-static int synth_1to1_r(real *bandPtr,int channel,unsigned char *out,int *pnt)
-{
-  int i,ret;
-
-  ret = synth_1to1(bandPtr,channel,out,pnt);
-  out = out + *pnt - 128;
-
-  for(i=0;i<32;i++) {
-    ((short *)out)[0] = ((short *)out)[1];
-    out+=4;
-  }
-
-  return ret;
-}
-#endif
--- a/mp3lib/decode_i586.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -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;
-}
--- a/mp3lib/decode_mmx.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/*
- * this code comes under GPL
- * 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>
- *
- * Local ChangeLog:
- * - Partial loops unrolling and removing MOVW insn from loops
-*/
-#include "config.h"
-#include "mangle.h"
-#include "mpg123.h"
-
-static const unsigned long long attribute_used __attribute__((aligned(8))) null_one = 0x0000ffff0000ffffULL;
-static const unsigned long long attribute_used __attribute__((aligned(8))) one_null = 0xffff0000ffff0000ULL;
-const unsigned int __attribute__((aligned(16))) costab_mmx[] =
-{
-    1056974725,
-    1057056395,
-    1057223771,
-    1057485416,
-    1057855544,
-    1058356026,
-    1059019886,
-    1059897405,
-    1061067246,
-    1062657950,
-    1064892987,
-    1066774581,
-    1069414683,
-    1073984175,
-    1079645762,
-    1092815430,
-    1057005197,
-    1057342072,
-    1058087743,
-    1059427869,
-    1061799040,
-    1065862217,
-    1071413542,
-    1084439708,
-    1057128951,
-    1058664893,
-    1063675095,
-    1076102863,
-    1057655764,
-    1067924853,
-    1060439283,
-};
-
-/**
-  This array of magic numbers were calculated by the pure function
-  make_decode_tables_MMX(32768), which had been implemented in (deleted since
-  r23383) tabinit_MMX.c.
-  */
-static const short __attribute__((aligned(8))) mp3lib_decwins[] =
-{
-        0,      7,     54,    114,    510,   1288,   1644,   9372,
-    18760,  -9373,   1644,  -1289,    510,   -115,     54,     -8,
-        0,      7,     54,    114,    510,   1288,   1644,   9372,
-    18760,  -9373,   1644,  -1289,    510,   -115,     54,     -8,
-        0,      7,     55,    129,    500,   1379,   1490,   9834,
-    18748,  -8910,   1784,  -1197,    516,   -101,     52,     -7,
-        0,      7,     55,    129,    500,   1379,   1490,   9834,
-    18748,  -8910,   1784,  -1197,    516,   -101,     52,     -7,
-        0,      8,     56,    145,    488,   1469,   1322,  10294,
-    18714,  -8448,   1910,  -1107,    520,    -87,     51,     -6,
-        0,      8,     56,    145,    488,   1469,   1322,  10294,
-    18714,  -8448,   1910,  -1107,    520,    -87,     51,     -6,
-        0,      9,     57,    161,    474,   1559,   1141,  10751,
-    18658,  -7987,   2023,  -1016,    522,    -74,     49,     -6,
-        0,      9,     57,    161,    474,   1559,   1141,  10751,
-    18658,  -7987,   2023,  -1016,    522,    -74,     49,     -6,
-        0,     10,     57,    177,    456,   1647,    944,  11205,
-    18579,  -7528,   2123,   -927,    522,    -61,     48,     -5,
-        0,     10,     57,    177,    456,   1647,    944,  11205,
-    18579,  -7528,   2123,   -927,    522,    -61,     48,     -5,
-        0,     11,     57,    194,    435,   1733,    734,  11654,
-    18477,  -7073,   2210,   -838,    519,    -50,     46,     -5,
-        0,     11,     57,    194,    435,   1733,    734,  11654,
-    18477,  -7073,   2210,   -838,    519,    -50,     46,     -5,
-        0,     12,     57,    212,    411,   1817,    510,  12097,
-    18354,  -6621,   2285,   -751,    515,    -39,     44,     -4,
-        0,     12,     57,    212,    411,   1817,    510,  12097,
-    18354,  -6621,   2285,   -751,    515,    -39,     44,     -4,
-        0,     13,     57,    229,    384,   1899,    271,  12534,
-    18209,  -6174,   2348,   -666,    508,    -28,     43,     -4,
-        0,     13,     57,    229,    384,   1899,    271,  12534,
-    18209,  -6174,   2348,   -666,    508,    -28,     43,     -4,
-        0,     14,     56,    247,    354,   1977,     18,  12963,
-    18043,  -5733,   2398,   -583,    501,    -18,     41,     -4,
-        0,     14,     56,    247,    354,   1977,     18,  12963,
-    18043,  -5733,   2398,   -583,    501,    -18,     41,     -4,
-        0,     15,     56,    266,    320,   2052,   -249,  13383,
-    17855,  -5298,   2438,   -502,    491,     -9,     39,     -3,
-        0,     15,     56,    266,    320,   2052,   -249,  13383,
-    17855,  -5298,   2438,   -502,    491,     -9,     39,     -3,
-        0,     17,     54,    284,    283,   2122,   -530,  13794,
-    17648,  -4870,   2466,   -423,    480,     -1,     37,     -3,
-        0,     17,     54,    284,    283,   2122,   -530,  13794,
-    17648,  -4870,   2466,   -423,    480,     -1,     37,     -3,
-        0,     18,     52,    302,    243,   2188,   -825,  14194,
-    17420,  -4450,   2484,   -347,    468,      7,     35,     -3,
-        0,     18,     52,    302,    243,   2188,   -825,  14194,
-    17420,  -4450,   2484,   -347,    468,      7,     35,     -3,
-        0,     19,     50,    320,    199,   2249,  -1133,  14583,
-    17173,  -4039,   2492,   -274,    455,     14,     33,     -2,
-        0,     19,     50,    320,    199,   2249,  -1133,  14583,
-    17173,  -4039,   2492,   -274,    455,     14,     33,     -2,
-       -1,     21,     48,    339,    152,   2304,  -1454,  14959,
-    16908,  -3637,   2490,   -204,    440,     20,     32,     -2,
-       -1,     21,     48,    339,    152,   2304,  -1454,  14959,
-    16908,  -3637,   2490,   -204,    440,     20,     32,     -2,
-       -1,     22,     45,    357,    101,   2354,  -1788,  15322,
-    16624,  -3245,   2479,   -137,    425,     26,     30,     -2,
-       -1,     22,     45,    357,    101,   2354,  -1788,  15322,
-    16624,  -3245,   2479,   -137,    425,     26,     30,     -2,
-       -1,     24,     41,    374,     47,   2396,  -2135,  15671,
-    16323,  -2864,   2460,    -72,    409,     31,     28,     -2,
-       -1,     24,     41,    374,     47,   2396,  -2135,  15671,
-    16323,  -2864,   2460,    -72,    409,     31,     28,     -2,
-       -1,     26,     37,    391,    -11,   2431,  -2493,  16004,
-    16005,  -2494,   2432,    -12,    392,     36,     26,     -2,
-       -1,     26,     37,    391,    -11,   2431,  -2493,  16004,
-    16005,  -2494,   2432,    -12,    392,     36,     26,     -2,
-       -2,    -28,     31,   -409,    -72,  -2460,  -2864, -16323,
-    15671,   2135,   2396,    -47,    374,    -41,     24,      1,
-       -2,    -28,     31,   -409,    -72,  -2460,  -2864, -16323,
-    15671,   2135,   2396,    -47,    374,    -41,     24,      1,
-       -2,    -30,     26,   -425,   -137,  -2479,  -3245, -16624,
-    15322,   1788,   2354,   -101,    357,    -45,     22,      1,
-       -2,    -30,     26,   -425,   -137,  -2479,  -3245, -16624,
-    15322,   1788,   2354,   -101,    357,    -45,     22,      1,
-       -2,    -32,     20,   -440,   -204,  -2490,  -3637, -16908,
-    14959,   1454,   2304,   -152,    339,    -48,     21,      1,
-       -2,    -32,     20,   -440,   -204,  -2490,  -3637, -16908,
-    14959,   1454,   2304,   -152,    339,    -48,     21,      1,
-       -2,    -33,     14,   -455,   -274,  -2492,  -4039, -17173,
-    14583,   1133,   2249,   -199,    320,    -50,     19,      0,
-       -2,    -33,     14,   -455,   -274,  -2492,  -4039, -17173,
-    14583,   1133,   2249,   -199,    320,    -50,     19,      0,
-       -3,    -35,      7,   -468,   -347,  -2484,  -4450, -17420,
-    14194,    825,   2188,   -243,    302,    -52,     18,      0,
-       -3,    -35,      7,   -468,   -347,  -2484,  -4450, -17420,
-    14194,    825,   2188,   -243,    302,    -52,     18,      0,
-       -3,    -37,     -1,   -480,   -423,  -2466,  -4870, -17648,
-    13794,    530,   2122,   -283,    284,    -54,     17,      0,
-       -3,    -37,     -1,   -480,   -423,  -2466,  -4870, -17648,
-    13794,    530,   2122,   -283,    284,    -54,     17,      0,
-       -3,    -39,     -9,   -491,   -502,  -2438,  -5298, -17855,
-    13383,    249,   2052,   -320,    266,    -56,     15,      0,
-       -3,    -39,     -9,   -491,   -502,  -2438,  -5298, -17855,
-    13383,    249,   2052,   -320,    266,    -56,     15,      0,
-       -4,    -41,    -18,   -501,   -583,  -2398,  -5733, -18043,
-    12963,    -18,   1977,   -354,    247,    -56,     14,      0,
-       -4,    -41,    -18,   -501,   -583,  -2398,  -5733, -18043,
-    12963,    -18,   1977,   -354,    247,    -56,     14,      0,
-       -4,    -43,    -28,   -508,   -666,  -2348,  -6174, -18209,
-    12534,   -271,   1899,   -384,    229,    -57,     13,      0,
-       -4,    -43,    -28,   -508,   -666,  -2348,  -6174, -18209,
-    12534,   -271,   1899,   -384,    229,    -57,     13,      0,
-       -4,    -44,    -39,   -515,   -751,  -2285,  -6621, -18354,
-    12097,   -510,   1817,   -411,    212,    -57,     12,      0,
-       -4,    -44,    -39,   -515,   -751,  -2285,  -6621, -18354,
-    12097,   -510,   1817,   -411,    212,    -57,     12,      0,
-       -5,    -46,    -50,   -519,   -838,  -2210,  -7073, -18477,
-    11654,   -734,   1733,   -435,    194,    -57,     11,      0,
-       -5,    -46,    -50,   -519,   -838,  -2210,  -7073, -18477,
-    11654,   -734,   1733,   -435,    194,    -57,     11,      0,
-       -5,    -48,    -61,   -522,   -927,  -2123,  -7528, -18579,
-    11205,   -944,   1647,   -456,    177,    -57,     10,      0,
-       -5,    -48,    -61,   -522,   -927,  -2123,  -7528, -18579,
-    11205,   -944,   1647,   -456,    177,    -57,     10,      0,
-       -6,    -49,    -74,   -522,  -1016,  -2023,  -7987, -18658,
-    10751,  -1141,   1559,   -474,    161,    -57,      9,      0,
-       -6,    -49,    -74,   -522,  -1016,  -2023,  -7987, -18658,
-    10751,  -1141,   1559,   -474,    161,    -57,      9,      0,
-       -6,    -51,    -87,   -520,  -1107,  -1910,  -8448, -18714,
-    10294,  -1322,   1469,   -488,    145,    -56,      8,      0,
-       -6,    -51,    -87,   -520,  -1107,  -1910,  -8448, -18714,
-    10294,  -1322,   1469,   -488,    145,    -56,      8,      0,
-       -7,    -52,   -101,   -516,  -1197,  -1784,  -8910, -18748,
-     9834,  -1490,   1379,   -500,    129,    -55,      7,      0,
-       -7,    -52,   -101,   -516,  -1197,  -1784,  -8910, -18748,
-     9834,  -1490,   1379,   -500,    129,    -55,      7,      0,
-};
-
-int synth_1to1_MMX(real *bandPtr, int channel, short *samples)
-{
-    static short buffs[2][2][0x110] __attribute__((aligned(8)));
-    static int bo = 1;
-    short *b0, (*buf)[0x110], *a, *b;
-    const short* window;
-    int bo1, i = 8;
-
-    if (channel == 0) {
-        bo = (bo - 1) & 0xf;
-        buf = buffs[1];
-    } else {
-        samples++;
-        buf = buffs[0];
-    }
-
-    if (bo & 1) {
-        b0 = buf[1];
-        bo1 = bo + 1;
-        a = buf[0] + bo;
-        b = buf[1] + ((bo + 1) & 0xf);
-    } else {
-        b0 = buf[0];
-        bo1 = bo;
-        b = buf[0] + bo;
-        a = buf[1] + ((bo + 1) & 0xf);
-    }
-
-    dct64_MMX_func(a, b, bandPtr);
-    window = mp3lib_decwins + 16 - bo1;
-    //printf("DEBUG: channel %d, bo %d, off %d\n", channel, bo, 16 - bo1);
-__asm__ volatile(
-ASMALIGN(4)
-"0:\n\t"
-        "movq  (%1),%%mm0\n\t"
-        "movq  64(%1),%%mm4\n\t"
-        "pmaddwd (%2),%%mm0\n\t"
-        "pmaddwd 32(%2),%%mm4\n\t"
-        "movq  8(%1),%%mm1\n\t"
-        "movq  72(%1),%%mm5\n\t"
-        "pmaddwd 8(%2),%%mm1\n\t"
-        "pmaddwd 40(%2),%%mm5\n\t"
-        "movq  16(%1),%%mm2\n\t"
-        "movq  80(%1),%%mm6\n\t"
-        "pmaddwd 16(%2),%%mm2\n\t"
-        "pmaddwd 48(%2),%%mm6\n\t"
-        "movq  24(%1),%%mm3\n\t"
-        "movq  88(%1),%%mm7\n\t"
-        "pmaddwd 24(%2),%%mm3\n\t"
-        "pmaddwd 56(%2),%%mm7\n\t"
-        "paddd %%mm1,%%mm0\n\t"
-        "paddd %%mm5,%%mm4\n\t"
-        "paddd %%mm2,%%mm0\n\t"
-        "paddd %%mm6,%%mm4\n\t"
-        "paddd %%mm3,%%mm0\n\t"
-        "paddd %%mm7,%%mm4\n\t"
-        "movq  %%mm0,%%mm1\n\t"
-        "movq  %%mm4,%%mm5\n\t"
-        "psrlq $32,%%mm1\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "paddd %%mm1,%%mm0\n\t"
-        "paddd %%mm5,%%mm4\n\t"
-        "psrad $13,%%mm0\n\t"
-        "psrad $13,%%mm4\n\t"
-        "packssdw %%mm0,%%mm0\n\t"
-        "packssdw %%mm4,%%mm4\n\t"
-
-        "movq   (%3), %%mm1\n\t"
-        "punpckldq %%mm4, %%mm0\n\t"
-        "pand   "MANGLE(one_null)", %%mm1\n\t"
-        "pand   "MANGLE(null_one)", %%mm0\n\t"
-        "por    %%mm0, %%mm1\n\t"
-        "movq   %%mm1,(%3)\n\t"
-
-        "add $64,%2\n\t"
-        "add $128,%1\n\t"
-        "add $8,%3\n\t"
-
-        "decl %0\n\t"
-        "jnz  0b\n\t"
-
-        "movq  (%1),%%mm0\n\t"
-        "pmaddwd (%2),%%mm0\n\t"
-        "movq  8(%1),%%mm1\n\t"
-        "pmaddwd 8(%2),%%mm1\n\t"
-        "movq  16(%1),%%mm2\n\t"
-        "pmaddwd 16(%2),%%mm2\n\t"
-        "movq  24(%1),%%mm3\n\t"
-        "pmaddwd 24(%2),%%mm3\n\t"
-        "paddd %%mm1,%%mm0\n\t"
-        "paddd %%mm2,%%mm0\n\t"
-        "paddd %%mm3,%%mm0\n\t"
-        "movq  %%mm0,%%mm1\n\t"
-        "psrlq $32,%%mm1\n\t"
-        "paddd %%mm1,%%mm0\n\t"
-        "psrad $13,%%mm0\n\t"
-        "packssdw %%mm0,%%mm0\n\t"
-        "movd %%mm0,%%eax\n\t"
-        "movw %%ax, (%3)\n\t"
-        "sub $32,%2\n\t"
-        "add $64,%1\n\t"
-        "add $4,%3\n\t"
-
-        "movl $7,%0\n\t"
-ASMALIGN(4)
-"1:\n\t"
-        "movq  (%1),%%mm0\n\t"
-        "movq  64(%1),%%mm4\n\t"
-        "pmaddwd (%2),%%mm0\n\t"
-        "pmaddwd -32(%2),%%mm4\n\t"
-        "movq  8(%1),%%mm1\n\t"
-        "movq  72(%1),%%mm5\n\t"
-        "pmaddwd 8(%2),%%mm1\n\t"
-        "pmaddwd -24(%2),%%mm5\n\t"
-        "movq  16(%1),%%mm2\n\t"
-        "movq  80(%1),%%mm6\n\t"
-        "pmaddwd 16(%2),%%mm2\n\t"
-        "pmaddwd -16(%2),%%mm6\n\t"
-        "movq  24(%1),%%mm3\n\t"
-        "movq  88(%1),%%mm7\n\t"
-        "pmaddwd 24(%2),%%mm3\n\t"
-        "pmaddwd -8(%2),%%mm7\n\t"
-        "paddd %%mm1,%%mm0\n\t"
-        "paddd %%mm5,%%mm4\n\t"
-        "paddd %%mm2,%%mm0\n\t"
-        "paddd %%mm6,%%mm4\n\t"
-        "paddd %%mm3,%%mm0\n\t"
-        "paddd %%mm7,%%mm4\n\t"
-        "movq  %%mm0,%%mm1\n\t"
-        "movq  %%mm4,%%mm5\n\t"
-        "psrlq $32,%%mm1\n\t"
-        "psrlq $32,%%mm5\n\t"
-        "paddd %%mm0,%%mm1\n\t"
-        "paddd %%mm4,%%mm5\n\t"
-        "psrad $13,%%mm1\n\t"
-        "psrad $13,%%mm5\n\t"
-        "packssdw %%mm1,%%mm1\n\t"
-        "packssdw %%mm5,%%mm5\n\t"
-        "psubd %%mm0,%%mm0\n\t"
-        "psubd %%mm4,%%mm4\n\t"
-        "psubsw %%mm1,%%mm0\n\t"
-        "psubsw %%mm5,%%mm4\n\t"
-
-        "movq   (%3), %%mm1\n\t"
-        "punpckldq %%mm4, %%mm0\n\t"
-        "pand   "MANGLE(one_null)", %%mm1\n\t"
-        "pand   "MANGLE(null_one)", %%mm0\n\t"
-        "por    %%mm0, %%mm1\n\t"
-        "movq   %%mm1,(%3)\n\t"
-
-        "sub $64,%2\n\t"
-        "add $128,%1\n\t"
-        "add $8,%3\n\t"
-        "decl %0\n\t"
-        "jnz  1b\n\t"
-
-        "movq  (%1),%%mm0\n\t"
-        "pmaddwd (%2),%%mm0\n\t"
-        "movq  8(%1),%%mm1\n\t"
-        "pmaddwd 8(%2),%%mm1\n\t"
-        "movq  16(%1),%%mm2\n\t"
-        "pmaddwd 16(%2),%%mm2\n\t"
-        "movq  24(%1),%%mm3\n\t"
-        "pmaddwd 24(%2),%%mm3\n\t"
-        "paddd %%mm1,%%mm0\n\t"
-        "paddd %%mm2,%%mm0\n\t"
-        "paddd %%mm3,%%mm0\n\t"
-        "movq  %%mm0,%%mm1\n\t"
-        "psrlq $32,%%mm1\n\t"
-        "paddd %%mm0,%%mm1\n\t"
-        "psrad $13,%%mm1\n\t"
-        "packssdw %%mm1,%%mm1\n\t"
-        "psubd %%mm0,%%mm0\n\t"
-        "psubsw %%mm1,%%mm0\n\t"
-        "movd %%mm0,%%eax\n\t"
-        "movw %%ax,(%3)\n\t"
-        "emms\n\t"
-        :"+r"(i), "+r"(window), "+r"(b0), "+r"(samples)
-        :
-        :"memory", "%eax");
-    return 0;
-}
--- a/mp3lib/equalizer.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-#include "mpg123.h"
-
-void init_spline(float *x, float *y, int n, float *y2)
-{
-    int i, k;
-    float p, qn, sig, un, *u;
-    u = malloc(n * sizeof (float));
-
-    y2[0] = u[0] = 0.0;
-
-    for (i = 1; i < n - 1; i++)
-    {
-        sig = ((float) x[i] - x[i - 1]) / ((float) x[i + 1] - x[i - 1]);
-        p = sig * y2[i - 1] + 2.0;
-        y2[i] = (sig - 1.0) / p;
-        u[i] = (((float) y[i + 1] - y[i]) / (x[i + 1] - x[i])) -
-               (((float) y[i] - y[i - 1]) / (x[i] - x[i - 1]));
-        u[i] = (6.0 * u[i] / (x[i + 1] - x[i - 1]) - sig * u[i - 1]) / p;
-    }
-    qn = un = 0.0;
-
-    y2[n - 1] = (un - qn * u[n - 2]) / (qn * y2[n - 2] + 1.0);
-    for (k = n - 2; k >= 0; k--)
-        y2[k] = y2[k] * y2[k + 1] + u[k];
-    free(u);
-}
-
-float eval_spline(float xa[], float ya[], float y2a[], int n, float x)
-{
-    int klo, khi, k;
-    float h, b, a;
-
-    klo = 0;
-    khi = n - 1;
-    while (khi - klo > 1)
-    {
-        k = (khi + klo) >> 1;
-        if (xa[k] > x)
-            khi = k;
-        else
-            klo = k;
-    }
-    h = xa[khi] - xa[klo];
-    a = (xa[khi] - x) / h;
-    b = (x - xa[klo]) / h;
-    return (a * ya[klo] + b * ya[khi] + ((a * a * a - a) * y2a[klo] + (b * b * b - b) * y2a[khi])
-            * (h * h) / 6.0);
-}
-
-void mpg123_set_eq(int on, float preamp, float *b)
-{
-    float x[] =
-    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, yf[10], val, band[10];
-    int bands[] =
-    {0, 4, 8, 16, 26, 78, 157, 313, 366, 418};
-    int i, j;
-
-    mpg123_info->eq_active = on;
-    if (mpg123_info->eq_active)
-    {
-        for (i = 0; i < 10; i++)
-        {
-            band[i] = b[i] + preamp;
-        }
-
-        init_spline(x, band, 10, yf);
-        for (i = 0; i < 9; i++)
-        {
-            for (j = bands[i]; j < bands[i + 1]; j++)
-            {
-                val = eval_spline(x, band, yf, 10, i + ((float) (j - bands[i]) * (1.0 / (bands[i + 1] - bands[i]))));
-                mpg123_info->eq_mul[j] = pow(2, val / 10.0);
-            }
-        }
-        for (i = bands[9]; i < 576; i++)
-            mpg123_info->eq_mul[i] = mpg123_info->eq_mul[bands[9] - 1];
-    }
-}
--- a/mp3lib/huffman.h	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,335 +0,0 @@
-/*
- * huffman tables ... recalcualted to work with my optimzed
- * decoder scheme (MH)
- *
- * probably we could save a few bytes of memory, because the
- * smaller tables are often the part of a bigger table
- */
-
-#ifndef MPLAYER_MP3LIB_HUFFMAN_H
-#define MPLAYER_MP3LIB_HUFFMAN_H
-
-struct newhuff
-{
-  unsigned int linbits;
-  short *table;
-};
-
-static short tab0[] =
-{
-   0
-};
-
-static short tab1[] =
-{
-  -5,  -3,  -1,  17,   1,  16,   0
-};
-
-static short tab2[] =
-{
- -15, -11,  -9,  -5,  -3,  -1,  34,   2,  18,  -1,  33,  32,  17,  -1,   1,
-  16,   0
-};
-
-static short tab3[] =
-{
- -13, -11,  -9,  -5,  -3,  -1,  34,   2,  18,  -1,  33,  32,  16,  17,  -1,
-   1,   0
-};
-
-static short tab5[] =
-{
- -29, -25, -23, -15,  -7,  -5,  -3,  -1,  51,  35,  50,  49,  -3,  -1,  19,
-   3,  -1,  48,  34,  -3,  -1,  18,  33,  -1,   2,  32,  17,  -1,   1,  16,
-   0
-};
-
-static short tab6[] =
-{
- -25, -19, -13,  -9,  -5,  -3,  -1,  51,   3,  35,  -1,  50,  48,  -1,  19,
-  49,  -3,  -1,  34,   2,  18,  -3,  -1,  33,  32,   1,  -1,  17,  -1,  16,
-   0
-};
-
-static short tab7[] =
-{
- -69, -65, -57, -39, -29, -17, -11,  -7,  -3,  -1,  85,  69,  -1,  84,  83,
-  -1,  53,  68,  -3,  -1,  37,  82,  21,  -5,  -1,  81,  -1,   5,  52,  -1,
-  80,  -1,  67,  51,  -5,  -3,  -1,  36,  66,  20,  -1,  65,  64, -11,  -7,
-  -3,  -1,   4,  35,  -1,  50,   3,  -1,  19,  49,  -3,  -1,  48,  34,  18,
-  -5,  -1,  33,  -1,   2,  32,  17,  -1,   1,  16,   0
-};
-
-static short tab8[] =
-{
- -65, -63, -59, -45, -31, -19, -13,  -7,  -5,  -3,  -1,  85,  84,  69,  83,
-  -3,  -1,  53,  68,  37,  -3,  -1,  82,   5,  21,  -5,  -1,  81,  -1,  52,
-  67,  -3,  -1,  80,  51,  36,  -5,  -3,  -1,  66,  20,  65,  -3,  -1,   4,
-  64,  -1,  35,  50,  -9,  -7,  -3,  -1,  19,  49,  -1,   3,  48,  34,  -1,
-   2,  32,  -1,  18,  33,  17,  -3,  -1,   1,  16,   0
-};
-
-static short tab9[] =
-{
- -63, -53, -41, -29, -19, -11,  -5,  -3,  -1,  85,  69,  53,  -1,  83,  -1,
-  84,   5,  -3,  -1,  68,  37,  -1,  82,  21,  -3,  -1,  81,  52,  -1,  67,
-  -1,  80,   4,  -7,  -3,  -1,  36,  66,  -1,  51,  64,  -1,  20,  65,  -5,
-  -3,  -1,  35,  50,  19,  -1,  49,  -1,   3,  48,  -5,  -3,  -1,  34,   2,
-  18,  -1,  33,  32,  -3,  -1,  17,   1,  -1,  16,   0
-};
-
-static short tab10[] =
-{
--125,-121,-111, -83, -55, -35, -21, -13,  -7,  -3,  -1, 119, 103,  -1, 118,
-  87,  -3,  -1, 117, 102,  71,  -3,  -1, 116,  86,  -1, 101,  55,  -9,  -3,
-  -1, 115,  70,  -3,  -1,  85,  84,  99,  -1,  39, 114, -11,  -5,  -3,  -1,
- 100,   7, 112,  -1,  98,  -1,  69,  53,  -5,  -1,   6,  -1,  83,  68,  23,
- -17,  -5,  -1, 113,  -1,  54,  38,  -5,  -3,  -1,  37,  82,  21,  -1,  81,
-  -1,  52,  67,  -3,  -1,  22,  97,  -1,  96,  -1,   5,  80, -19, -11,  -7,
-  -3,  -1,  36,  66,  -1,  51,   4,  -1,  20,  65,  -3,  -1,  64,  35,  -1,
-  50,   3,  -3,  -1,  19,  49,  -1,  48,  34,  -7,  -3,  -1,  18,  33,  -1,
-   2,  32,  17,  -1,   1,  16,   0
-};
-
-static short tab11[] =
-{
--121,-113, -89, -59, -43, -27, -17,  -7,  -3,  -1, 119, 103,  -1, 118, 117,
-  -3,  -1, 102,  71,  -1, 116,  -1,  87,  85,  -5,  -3,  -1,  86, 101,  55,
-  -1, 115,  70,  -9,  -7,  -3,  -1,  69,  84,  -1,  53,  83,  39,  -1, 114,
-  -1, 100,   7,  -5,  -1, 113,  -1,  23, 112,  -3,  -1,  54,  99,  -1,  96,
-  -1,  68,  37, -13,  -7,  -5,  -3,  -1,  82,   5,  21,  98,  -3,  -1,  38,
-   6,  22,  -5,  -1,  97,  -1,  81,  52,  -5,  -1,  80,  -1,  67,  51,  -1,
-  36,  66, -15, -11,  -7,  -3,  -1,  20,  65,  -1,   4,  64,  -1,  35,  50,
-  -1,  19,  49,  -5,  -3,  -1,   3,  48,  34,  33,  -5,  -1,  18,  -1,   2,
-  32,  17,  -3,  -1,   1,  16,   0
-};
-
-static short tab12[] =
-{
--115, -99, -73, -45, -27, -17,  -9,  -5,  -3,  -1, 119, 103, 118,  -1,  87,
- 117,  -3,  -1, 102,  71,  -1, 116, 101,  -3,  -1,  86,  55,  -3,  -1, 115,
-  85,  39,  -7,  -3,  -1, 114,  70,  -1, 100,  23,  -5,  -1, 113,  -1,   7,
- 112,  -1,  54,  99, -13,  -9,  -3,  -1,  69,  84,  -1,  68,  -1,   6,   5,
-  -1,  38,  98,  -5,  -1,  97,  -1,  22,  96,  -3,  -1,  53,  83,  -1,  37,
-  82, -17,  -7,  -3,  -1,  21,  81,  -1,  52,  67,  -5,  -3,  -1,  80,   4,
-  36,  -1,  66,  20,  -3,  -1,  51,  65,  -1,  35,  50, -11,  -7,  -5,  -3,
-  -1,  64,   3,  48,  19,  -1,  49,  34,  -1,  18,  33,  -7,  -5,  -3,  -1,
-   2,  32,   0,  17,  -1,   1,  16
-};
-
-static short tab13[] =
-{
--509,-503,-475,-405,-333,-265,-205,-153,-115, -83, -53, -35, -21, -13,  -9,
-  -7,  -5,  -3,  -1, 254, 252, 253, 237, 255,  -1, 239, 223,  -3,  -1, 238,
- 207,  -1, 222, 191,  -9,  -3,  -1, 251, 206,  -1, 220,  -1, 175, 233,  -1,
- 236, 221,  -9,  -5,  -3,  -1, 250, 205, 190,  -1, 235, 159,  -3,  -1, 249,
- 234,  -1, 189, 219, -17,  -9,  -3,  -1, 143, 248,  -1, 204,  -1, 174, 158,
-  -5,  -1, 142,  -1, 127, 126, 247,  -5,  -1, 218,  -1, 173, 188,  -3,  -1,
- 203, 246, 111, -15,  -7,  -3,  -1, 232,  95,  -1, 157, 217,  -3,  -1, 245,
- 231,  -1, 172, 187,  -9,  -3,  -1,  79, 244,  -3,  -1, 202, 230, 243,  -1,
-  63,  -1, 141, 216, -21,  -9,  -3,  -1,  47, 242,  -3,  -1, 110, 156,  15,
-  -5,  -3,  -1, 201,  94, 171,  -3,  -1, 125, 215,  78, -11,  -5,  -3,  -1,
- 200, 214,  62,  -1, 185,  -1, 155, 170,  -1,  31, 241, -23, -13,  -5,  -1,
- 240,  -1, 186, 229,  -3,  -1, 228, 140,  -1, 109, 227,  -5,  -1, 226,  -1,
-  46,  14,  -1,  30, 225, -15,  -7,  -3,  -1, 224,  93,  -1, 213, 124,  -3,
-  -1, 199,  77,  -1, 139, 184,  -7,  -3,  -1, 212, 154,  -1, 169, 108,  -1,
- 198,  61, -37, -21,  -9,  -5,  -3,  -1, 211, 123,  45,  -1, 210,  29,  -5,
-  -1, 183,  -1,  92, 197,  -3,  -1, 153, 122, 195,  -7,  -5,  -3,  -1, 167,
- 151,  75, 209,  -3,  -1,  13, 208,  -1, 138, 168, -11,  -7,  -3,  -1,  76,
- 196,  -1, 107, 182,  -1,  60,  44,  -3,  -1, 194,  91,  -3,  -1, 181, 137,
-  28, -43, -23, -11,  -5,  -1, 193,  -1, 152,  12,  -1, 192,  -1, 180, 106,
-  -5,  -3,  -1, 166, 121,  59,  -1, 179,  -1, 136,  90, -11,  -5,  -1,  43,
-  -1, 165, 105,  -1, 164,  -1, 120, 135,  -5,  -1, 148,  -1, 119, 118, 178,
- -11,  -3,  -1,  27, 177,  -3,  -1,  11, 176,  -1, 150,  74,  -7,  -3,  -1,
-  58, 163,  -1,  89, 149,  -1,  42, 162, -47, -23,  -9,  -3,  -1,  26, 161,
-  -3,  -1,  10, 104, 160,  -5,  -3,  -1, 134,  73, 147,  -3,  -1,  57,  88,
-  -1, 133, 103,  -9,  -3,  -1,  41, 146,  -3,  -1,  87, 117,  56,  -5,  -1,
- 131,  -1, 102,  71,  -3,  -1, 116,  86,  -1, 101, 115, -11,  -3,  -1,  25,
- 145,  -3,  -1,   9, 144,  -1,  72, 132,  -7,  -5,  -1, 114,  -1,  70, 100,
-  40,  -1, 130,  24, -41, -27, -11,  -5,  -3,  -1,  55,  39,  23,  -1, 113,
-  -1,  85,   7,  -7,  -3,  -1, 112,  54,  -1,  99,  69,  -3,  -1,  84,  38,
-  -1,  98,  53,  -5,  -1, 129,  -1,   8, 128,  -3,  -1,  22,  97,  -1,   6,
-  96, -13,  -9,  -5,  -3,  -1,  83,  68,  37,  -1,  82,   5,  -1,  21,  81,
-  -7,  -3,  -1,  52,  67,  -1,  80,  36,  -3,  -1,  66,  51,  20, -19, -11,
-  -5,  -1,  65,  -1,   4,  64,  -3,  -1,  35,  50,  19,  -3,  -1,  49,   3,
-  -1,  48,  34,  -3,  -1,  18,  33,  -1,   2,  32,  -3,  -1,  17,   1,  16,
-   0
-};
-
-static short tab15[] =
-{
--495,-445,-355,-263,-183,-115, -77, -43, -27, -13,  -7,  -3,  -1, 255, 239,
-  -1, 254, 223,  -1, 238,  -1, 253, 207,  -7,  -3,  -1, 252, 222,  -1, 237,
- 191,  -1, 251,  -1, 206, 236,  -7,  -3,  -1, 221, 175,  -1, 250, 190,  -3,
-  -1, 235, 205,  -1, 220, 159, -15,  -7,  -3,  -1, 249, 234,  -1, 189, 219,
-  -3,  -1, 143, 248,  -1, 204, 158,  -7,  -3,  -1, 233, 127,  -1, 247, 173,
-  -3,  -1, 218, 188,  -1, 111,  -1, 174,  15, -19, -11,  -3,  -1, 203, 246,
-  -3,  -1, 142, 232,  -1,  95, 157,  -3,  -1, 245, 126,  -1, 231, 172,  -9,
-  -3,  -1, 202, 187,  -3,  -1, 217, 141,  79,  -3,  -1, 244,  63,  -1, 243,
- 216, -33, -17,  -9,  -3,  -1, 230,  47,  -1, 242,  -1, 110, 240,  -3,  -1,
-  31, 241,  -1, 156, 201,  -7,  -3,  -1,  94, 171,  -1, 186, 229,  -3,  -1,
- 125, 215,  -1,  78, 228, -15,  -7,  -3,  -1, 140, 200,  -1,  62, 109,  -3,
-  -1, 214, 227,  -1, 155, 185,  -7,  -3,  -1,  46, 170,  -1, 226,  30,  -5,
-  -1, 225,  -1,  14, 224,  -1,  93, 213, -45, -25, -13,  -7,  -3,  -1, 124,
- 199,  -1,  77, 139,  -1, 212,  -1, 184, 154,  -7,  -3,  -1, 169, 108,  -1,
- 198,  61,  -1, 211, 210,  -9,  -5,  -3,  -1,  45,  13,  29,  -1, 123, 183,
-  -5,  -1, 209,  -1,  92, 208,  -1, 197, 138, -17,  -7,  -3,  -1, 168,  76,
-  -1, 196, 107,  -5,  -1, 182,  -1, 153,  12,  -1,  60, 195,  -9,  -3,  -1,
- 122, 167,  -1, 166,  -1, 192,  11,  -1, 194,  -1,  44,  91, -55, -29, -15,
-  -7,  -3,  -1, 181,  28,  -1, 137, 152,  -3,  -1, 193,  75,  -1, 180, 106,
-  -5,  -3,  -1,  59, 121, 179,  -3,  -1, 151, 136,  -1,  43,  90, -11,  -5,
-  -1, 178,  -1, 165,  27,  -1, 177,  -1, 176, 105,  -7,  -3,  -1, 150,  74,
-  -1, 164, 120,  -3,  -1, 135,  58, 163, -17,  -7,  -3,  -1,  89, 149,  -1,
-  42, 162,  -3,  -1,  26, 161,  -3,  -1,  10, 160, 104,  -7,  -3,  -1, 134,
-  73,  -1, 148,  57,  -5,  -1, 147,  -1, 119,   9,  -1,  88, 133, -53, -29,
- -13,  -7,  -3,  -1,  41, 103,  -1, 118, 146,  -1, 145,  -1,  25, 144,  -7,
-  -3,  -1,  72, 132,  -1,  87, 117,  -3,  -1,  56, 131,  -1, 102,  71,  -7,
-  -3,  -1,  40, 130,  -1,  24, 129,  -7,  -3,  -1, 116,   8,  -1, 128,  86,
-  -3,  -1, 101,  55,  -1, 115,  70, -17,  -7,  -3,  -1,  39, 114,  -1, 100,
-  23,  -3,  -1,  85, 113,  -3,  -1,   7, 112,  54,  -7,  -3,  -1,  99,  69,
-  -1,  84,  38,  -3,  -1,  98,  22,  -3,  -1,   6,  96,  53, -33, -19,  -9,
-  -5,  -1,  97,  -1,  83,  68,  -1,  37,  82,  -3,  -1,  21,  81,  -3,  -1,
-   5,  80,  52,  -7,  -3,  -1,  67,  36,  -1,  66,  51,  -1,  65,  -1,  20,
-   4,  -9,  -3,  -1,  35,  50,  -3,  -1,  64,   3,  19,  -3,  -1,  49,  48,
-  34,  -9,  -7,  -3,  -1,  18,  33,  -1,   2,  32,  17,  -3,  -1,   1,  16,
-   0
-};
-
-static short tab16[] =
-{
--509,-503,-461,-323,-103, -37, -27, -15,  -7,  -3,  -1, 239, 254,  -1, 223,
- 253,  -3,  -1, 207, 252,  -1, 191, 251,  -5,  -1, 175,  -1, 250, 159,  -3,
-  -1, 249, 248, 143,  -7,  -3,  -1, 127, 247,  -1, 111, 246, 255,  -9,  -5,
-  -3,  -1,  95, 245,  79,  -1, 244, 243, -53,  -1, 240,  -1,  63, -29, -19,
- -13,  -7,  -5,  -1, 206,  -1, 236, 221, 222,  -1, 233,  -1, 234, 217,  -1,
- 238,  -1, 237, 235,  -3,  -1, 190, 205,  -3,  -1, 220, 219, 174, -11,  -5,
-  -1, 204,  -1, 173, 218,  -3,  -1, 126, 172, 202,  -5,  -3,  -1, 201, 125,
-  94, 189, 242, -93,  -5,  -3,  -1,  47,  15,  31,  -1, 241, -49, -25, -13,
-  -5,  -1, 158,  -1, 188, 203,  -3,  -1, 142, 232,  -1, 157, 231,  -7,  -3,
-  -1, 187, 141,  -1, 216, 110,  -1, 230, 156, -13,  -7,  -3,  -1, 171, 186,
-  -1, 229, 215,  -1,  78,  -1, 228, 140,  -3,  -1, 200,  62,  -1, 109,  -1,
- 214, 155, -19, -11,  -5,  -3,  -1, 185, 170, 225,  -1, 212,  -1, 184, 169,
-  -5,  -1, 123,  -1, 183, 208, 227,  -7,  -3,  -1,  14, 224,  -1,  93, 213,
-  -3,  -1, 124, 199,  -1,  77, 139, -75, -45, -27, -13,  -7,  -3,  -1, 154,
- 108,  -1, 198,  61,  -3,  -1,  92, 197,  13,  -7,  -3,  -1, 138, 168,  -1,
- 153,  76,  -3,  -1, 182, 122,  60, -11,  -5,  -3,  -1,  91, 137,  28,  -1,
- 192,  -1, 152, 121,  -1, 226,  -1,  46,  30, -15,  -7,  -3,  -1, 211,  45,
-  -1, 210, 209,  -5,  -1,  59,  -1, 151, 136,  29,  -7,  -3,  -1, 196, 107,
-  -1, 195, 167,  -1,  44,  -1, 194, 181, -23, -13,  -7,  -3,  -1, 193,  12,
-  -1,  75, 180,  -3,  -1, 106, 166, 179,  -5,  -3,  -1,  90, 165,  43,  -1,
- 178,  27, -13,  -5,  -1, 177,  -1,  11, 176,  -3,  -1, 105, 150,  -1,  74,
- 164,  -5,  -3,  -1, 120, 135, 163,  -3,  -1,  58,  89,  42, -97, -57, -33,
- -19, -11,  -5,  -3,  -1, 149, 104, 161,  -3,  -1, 134, 119, 148,  -5,  -3,
-  -1,  73,  87, 103, 162,  -5,  -1,  26,  -1,  10, 160,  -3,  -1,  57, 147,
-  -1,  88, 133,  -9,  -3,  -1,  41, 146,  -3,  -1, 118,   9,  25,  -5,  -1,
- 145,  -1, 144,  72,  -3,  -1, 132, 117,  -1,  56, 131, -21, -11,  -5,  -3,
-  -1, 102,  40, 130,  -3,  -1,  71, 116,  24,  -3,  -1, 129, 128,  -3,  -1,
-   8,  86,  55,  -9,  -5,  -1, 115,  -1, 101,  70,  -1,  39, 114,  -5,  -3,
-  -1, 100,  85,   7,  23, -23, -13,  -5,  -1, 113,  -1, 112,  54,  -3,  -1,
-  99,  69,  -1,  84,  38,  -3,  -1,  98,  22,  -1,  97,  -1,   6,  96,  -9,
-  -5,  -1,  83,  -1,  53,  68,  -1,  37,  82,  -1,  81,  -1,  21,   5, -33,
- -23, -13,  -7,  -3,  -1,  52,  67,  -1,  80,  36,  -3,  -1,  66,  51,  20,
-  -5,  -1,  65,  -1,   4,  64,  -1,  35,  50,  -3,  -1,  19,  49,  -3,  -1,
-   3,  48,  34,  -3,  -1,  18,  33,  -1,   2,  32,  -3,  -1,  17,   1,  16,
-   0
-};
-
-static short tab24[] =
-{
--451,-117, -43, -25, -15,  -7,  -3,  -1, 239, 254,  -1, 223, 253,  -3,  -1,
- 207, 252,  -1, 191, 251,  -5,  -1, 250,  -1, 175, 159,  -1, 249, 248,  -9,
-  -5,  -3,  -1, 143, 127, 247,  -1, 111, 246,  -3,  -1,  95, 245,  -1,  79,
- 244, -71,  -7,  -3,  -1,  63, 243,  -1,  47, 242,  -5,  -1, 241,  -1,  31,
- 240, -25,  -9,  -1,  15,  -3,  -1, 238, 222,  -1, 237, 206,  -7,  -3,  -1,
- 236, 221,  -1, 190, 235,  -3,  -1, 205, 220,  -1, 174, 234, -15,  -7,  -3,
-  -1, 189, 219,  -1, 204, 158,  -3,  -1, 233, 173,  -1, 218, 188,  -7,  -3,
-  -1, 203, 142,  -1, 232, 157,  -3,  -1, 217, 126,  -1, 231, 172, 255,-235,
--143, -77, -45, -25, -15,  -7,  -3,  -1, 202, 187,  -1, 141, 216,  -5,  -3,
-  -1,  14, 224,  13, 230,  -5,  -3,  -1, 110, 156, 201,  -1,  94, 186,  -9,
-  -5,  -1, 229,  -1, 171, 125,  -1, 215, 228,  -3,  -1, 140, 200,  -3,  -1,
-  78,  46,  62, -15,  -7,  -3,  -1, 109, 214,  -1, 227, 155,  -3,  -1, 185,
- 170,  -1, 226,  30,  -7,  -3,  -1, 225,  93,  -1, 213, 124,  -3,  -1, 199,
-  77,  -1, 139, 184, -31, -15,  -7,  -3,  -1, 212, 154,  -1, 169, 108,  -3,
-  -1, 198,  61,  -1, 211,  45,  -7,  -3,  -1, 210,  29,  -1, 123, 183,  -3,
-  -1, 209,  92,  -1, 197, 138, -17,  -7,  -3,  -1, 168, 153,  -1,  76, 196,
-  -3,  -1, 107, 182,  -3,  -1, 208,  12,  60,  -7,  -3,  -1, 195, 122,  -1,
- 167,  44,  -3,  -1, 194,  91,  -1, 181,  28, -57, -35, -19,  -7,  -3,  -1,
- 137, 152,  -1, 193,  75,  -5,  -3,  -1, 192,  11,  59,  -3,  -1, 176,  10,
-  26,  -5,  -1, 180,  -1, 106, 166,  -3,  -1, 121, 151,  -3,  -1, 160,   9,
- 144,  -9,  -3,  -1, 179, 136,  -3,  -1,  43,  90, 178,  -7,  -3,  -1, 165,
-  27,  -1, 177, 105,  -1, 150, 164, -17,  -9,  -5,  -3,  -1,  74, 120, 135,
-  -1,  58, 163,  -3,  -1,  89, 149,  -1,  42, 162,  -7,  -3,  -1, 161, 104,
-  -1, 134, 119,  -3,  -1,  73, 148,  -1,  57, 147, -63, -31, -15,  -7,  -3,
-  -1,  88, 133,  -1,  41, 103,  -3,  -1, 118, 146,  -1,  25, 145,  -7,  -3,
-  -1,  72, 132,  -1,  87, 117,  -3,  -1,  56, 131,  -1, 102,  40, -17,  -7,
-  -3,  -1, 130,  24,  -1,  71, 116,  -5,  -1, 129,  -1,   8, 128,  -1,  86,
- 101,  -7,  -5,  -1,  23,  -1,   7, 112, 115,  -3,  -1,  55,  39, 114, -15,
-  -7,  -3,  -1,  70, 100,  -1,  85, 113,  -3,  -1,  54,  99,  -1,  69,  84,
-  -7,  -3,  -1,  38,  98,  -1,  22,  97,  -5,  -3,  -1,   6,  96,  53,  -1,
-  83,  68, -51, -37, -23, -15,  -9,  -3,  -1,  37,  82,  -1,  21,  -1,   5,
-  80,  -1,  81,  -1,  52,  67,  -3,  -1,  36,  66,  -1,  51,  20,  -9,  -5,
-  -1,  65,  -1,   4,  64,  -1,  35,  50,  -1,  19,  49,  -7,  -5,  -3,  -1,
-   3,  48,  34,  18,  -1,  33,  -1,   2,  32,  -3,  -1,  17,   1,  -1,  16,
-   0
-};
-
-static short tab_c0[] =
-{
- -29, -21, -13,  -7,  -3,  -1,  11,  15,  -1,  13,  14,  -3,  -1,   7,   5,
-   9,  -3,  -1,   6,   3,  -1,  10,  12,  -3,  -1,   2,   1,  -1,   4,   8,
-   0
-};
-
-static short tab_c1[] =
-{
- -15,  -7,  -3,  -1,  15,  14,  -1,  13,  12,  -3,  -1,  11,  10,  -1,   9,
-   8,  -7,  -3,  -1,   7,   6,  -1,   5,   4,  -3,  -1,   3,   2,  -1,   1,
-   0
-};
-
-
-
-static struct newhuff ht[] =
-{
- { /* 0 */ 0 , tab0  } ,
- { /* 2 */ 0 , tab1  } ,
- { /* 3 */ 0 , tab2  } ,
- { /* 3 */ 0 , tab3  } ,
- { /* 0 */ 0 , tab0  } ,
- { /* 4 */ 0 , tab5  } ,
- { /* 4 */ 0 , tab6  } ,
- { /* 6 */ 0 , tab7  } ,
- { /* 6 */ 0 , tab8  } ,
- { /* 6 */ 0 , tab9  } ,
- { /* 8 */ 0 , tab10 } ,
- { /* 8 */ 0 , tab11 } ,
- { /* 8 */ 0 , tab12 } ,
- { /* 16 */ 0 , tab13 } ,
- { /* 0  */ 0 , tab0  } ,
- { /* 16 */ 0 , tab15 } ,
-
- { /* 16 */ 1 , tab16 } ,
- { /* 16 */ 2 , tab16 } ,
- { /* 16 */ 3 , tab16 } ,
- { /* 16 */ 4 , tab16 } ,
- { /* 16 */ 6 , tab16 } ,
- { /* 16 */ 8 , tab16 } ,
- { /* 16 */ 10, tab16 } ,
- { /* 16 */ 13, tab16 } ,
- { /* 16 */ 4 , tab24 } ,
- { /* 16 */ 5 , tab24 } ,
- { /* 16 */ 6 , tab24 } ,
- { /* 16 */ 7 , tab24 } ,
- { /* 16 */ 8 , tab24 } ,
- { /* 16 */ 9 , tab24 } ,
- { /* 16 */ 11, tab24 } ,
- { /* 16 */ 13, tab24 }
-};
-
-static struct newhuff htc[] =
-{
- { /* 1 , 1 , */ 0 , tab_c0 } ,
- { /* 1 , 1 , */ 0 , tab_c1 }
-};
-
-#endif /* MPLAYER_MP3LIB_HUFFMAN_H */
--- a/mp3lib/l2tables.h	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-#ifndef MPLAYER_MP3LIB_L2TABLES_H
-#define MPLAYER_MP3LIB_L2TABLES_H
-
-#include "mpg123.h"
-
-/*
- * Layer 2 Alloc tables ..
- * most other tables are calculated on program start (which is (of course)
- * not ISO-conform) ..
- * Layer-3 huffman table is in huffman.h
- */
-
-static struct al_table alloc_0[] = {
-    {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
-    {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
-    {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
-    {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
-    {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
-    {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767} };
-
-static struct al_table alloc_1[] = {
-    {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
-    {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
-    {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
-    {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
-    {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511},
-    {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-    {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767},
-    {2,0},{5,3},{7,5},{16,-32767} };
-
-static struct al_table alloc_2[] = {
-    {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
-    {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
-    {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
-    {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} };
-
-static struct al_table alloc_3[] = {
-    {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
-    {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
-    {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},
-    {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} };
-
-static struct al_table alloc_4[] = {
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-        {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-        {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-        {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
-    {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},
-        {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9},
-    {2,0},{5,3},{7,5},{10,9}  };
-
-#endif /* MPLAYER_MP3LIB_L2TABLES_H */
--- a/mp3lib/layer1.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/*
- * Mpeg Layer-1 audio decoder
- * --------------------------
- * copyright (c) 1995 by Michael Hipp, All rights reserved. See also 'README'
- * near unoptimzed ...
- *
- * may have a few bugs after last optimization ...
- *
- */
-
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- *
- * The above-mentioned README file has the following to say about licensing:
- *
- *   COPYING: you may use this source under LGPL terms!
- */
-
-#include "mpg123.h"
-
-static void I_step_one(unsigned int balloc[], unsigned int scale_index[2][SBLIMIT],struct frame *fr)
-{
-  unsigned int *ba=balloc;
-  unsigned int *sca = (unsigned int *) scale_index;
-
-  if(fr->stereo == 2) {
-    int i;
-    int jsbound = fr->jsbound;
-    for (i=0;i<jsbound;i++) {
-      *ba++ = getbits(4);
-      *ba++ = getbits(4);
-    }
-    for (i=jsbound;i<SBLIMIT;i++)
-      *ba++ = getbits(4);
-
-    ba = balloc;
-
-    for (i=0;i<jsbound;i++) {
-      if ((*ba++))
-        *sca++ = getbits(6);
-      if ((*ba++))
-        *sca++ = getbits(6);
-    }
-    for (i=jsbound;i<SBLIMIT;i++)
-      if ((*ba++)) {
-        *sca++ =  getbits(6);
-        *sca++ =  getbits(6);
-      }
-  }
-  else {
-    int i;
-    for (i=0;i<SBLIMIT;i++)
-      *ba++ = getbits(4);
-    ba = balloc;
-    for (i=0;i<SBLIMIT;i++)
-      if ((*ba++))
-        *sca++ = getbits(6);
-  }
-}
-
-static void I_step_two(real fraction[2][SBLIMIT],unsigned int balloc[2*SBLIMIT],
-                       unsigned int scale_index[2][SBLIMIT],struct frame *fr)
-{
-  int i,n;
-  int smpb[2*SBLIMIT]; /* values: 0-65535 */
-  int *sample;
-  register unsigned int *ba;
-  register unsigned int *sca = (unsigned int *) scale_index;
-
-  if(fr->stereo == 2) {
-    int jsbound = fr->jsbound;
-    register real *f0 = fraction[0];
-    register real *f1 = fraction[1];
-    ba = balloc;
-    for (sample=smpb,i=0;i<jsbound;i++)  {
-      if ((n = *ba++))
-        *sample++ = getbits(n+1);
-      if ((n = *ba++))
-        *sample++ = getbits(n+1);
-    }
-    for (i=jsbound;i<SBLIMIT;i++)
-      if ((n = *ba++))
-        *sample++ = getbits(n+1);
-
-    ba = balloc;
-    for (sample=smpb,i=0;i<jsbound;i++) {
-      if((n=*ba++))
-        *f0++ = (real) ( ((-1)<<n) + (*sample++) + 1) * muls[n+1][*sca++];
-      else
-        *f0++ = 0.0;
-      if((n=*ba++))
-        *f1++ = (real) ( ((-1)<<n) + (*sample++) + 1) * muls[n+1][*sca++];
-      else
-        *f1++ = 0.0;
-    }
-    for (i=jsbound;i<SBLIMIT;i++) {
-      if ((n=*ba++)) {
-        real samp = ( ((-1)<<n) + (*sample++) + 1);
-        *f0++ = samp * muls[n+1][*sca++];
-        *f1++ = samp * muls[n+1][*sca++];
-      }
-      else
-        *f0++ = *f1++ = 0.0;
-    }
-    for(i=fr->down_sample_sblimit;i<32;i++)
-      fraction[0][i] = fraction[1][i] = 0.0;
-  }
-  else {
-    register real *f0 = fraction[0];
-    ba = balloc;
-    for (sample=smpb,i=0;i<SBLIMIT;i++)
-      if ((n = *ba++))
-        *sample++ = getbits(n+1);
-    ba = balloc;
-    for (sample=smpb,i=0;i<SBLIMIT;i++) {
-      if((n=*ba++))
-        *f0++ = (real) ( ((-1)<<n) + (*sample++) + 1) * muls[n+1][*sca++];
-      else
-        *f0++ = 0.0;
-    }
-    for(i=fr->down_sample_sblimit;i<32;i++)
-      fraction[0][i] = 0.0;
-  }
-}
-
-static int do_layer1(struct frame *fr,int single)
-{
-  int clip=0;
-  int i,stereo = fr->stereo;
-  unsigned int balloc[2*SBLIMIT];
-  unsigned int scale_index[2][SBLIMIT];
-  DECLARE_ALIGNED(16, real, fraction[2][SBLIMIT]);
-//  int single = fr->single;
-
-//  printf("do_layer1(0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X )\n",
-//    wordpointer[0],wordpointer[1],wordpointer[2],wordpointer[3],wordpointer[4],wordpointer[5],wordpointer[6],wordpointer[7]);
-
-  fr->jsbound = (fr->mode == MPG_MD_JOINT_STEREO) ?
-                         (fr->mode_ext<<2)+4 : 32;
-
-  if(stereo == 1 || single == 3)
-    single = 0;
-
-  I_step_one(balloc,scale_index,fr);
-
-  for (i=0;i<SCALE_BLOCK;i++)
-  {
-    I_step_two(fraction,balloc,scale_index,fr);
-
-    if(single >= 0)
-    {
-      clip += (fr->synth_mono)( (real *) fraction[single],pcm_sample,&pcm_point);
-    }
-    else {
-        int p1 = pcm_point;
-        clip += (fr->synth)( (real *) fraction[0],0,pcm_sample,&p1);
-        clip += (fr->synth)( (real *) fraction[1],1,pcm_sample,&pcm_point);
-    }
-
-  }
-
-  return clip;
-}
--- a/mp3lib/layer2.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
- * Mpeg Layer-2 audio decoder
- * --------------------------
- * copyright (c) 1995 by Michael Hipp, All rights reserved. See also 'README'
- *
- */
-
-#include "mpg123.h"
-#include "l2tables.h"
-
-static int grp_3tab[32 * 3] = { 0, };   /* used: 27 */
-static int grp_5tab[128 * 3] = { 0, };  /* used: 125 */
-static int grp_9tab[1024 * 3] = { 0, }; /* used: 729 */
-
-static real muls[27][64];       /* also used by layer 1 */
-
-static void init_layer2(void)
-{
-  static double mulmul[27] = {
-    0.0 , -2.0/3.0 , 2.0/3.0 ,
-    2.0/7.0 , 2.0/15.0 , 2.0/31.0, 2.0/63.0 , 2.0/127.0 , 2.0/255.0 ,
-    2.0/511.0 , 2.0/1023.0 , 2.0/2047.0 , 2.0/4095.0 , 2.0/8191.0 ,
-    2.0/16383.0 , 2.0/32767.0 , 2.0/65535.0 ,
-    -4.0/5.0 , -2.0/5.0 , 2.0/5.0, 4.0/5.0 ,
-    -8.0/9.0 , -4.0/9.0 , -2.0/9.0 , 2.0/9.0 , 4.0/9.0 , 8.0/9.0 };
-  static int base[3][9] = {
-     { 1 , 0, 2 , } ,
-     { 17, 18, 0 , 19, 20 , } ,
-     { 21, 1, 22, 23, 0, 24, 25, 2, 26 } };
-  int i,j,k,l,len;
-  real *table;
-  static int tablen[3] = { 3 , 5 , 9 };
-  static int *itable,*tables[3] = { grp_3tab , grp_5tab , grp_9tab };
-
-  for(i=0;i<3;i++)
-  {
-    itable = tables[i];
-    len = tablen[i];
-    for(j=0;j<len;j++)
-      for(k=0;k<len;k++)
-        for(l=0;l<len;l++)
-        {
-          *itable++ = base[i][l];
-          *itable++ = base[i][k];
-          *itable++ = base[i][j];
-        }
-  }
-
-  for(k=0;k<27;k++)
-  {
-    double m=mulmul[k];
-    table = muls[k];
-    if(_has_mmx)
-    {
-        for(j=3,i=0;i<63;i++,j--)
-          *table++ = 16384 * m * pow(2.0,(double) j / 3.0);
-    }
-    else
-    for(j=3,i=0;i<63;i++,j--)
-    {
-      *table++ = m * pow(2.0,(double) j / 3.0);
-    }
-    *table++ = 0.0;
-  }
-}
-
-
-static void II_step_one(unsigned int *bit_alloc,int *scale,struct frame *fr)
-{
-    int stereo = fr->stereo-1;
-    int sblimit = fr->II_sblimit;
-    int jsbound = fr->jsbound;
-    int sblimit2 = fr->II_sblimit<<stereo;
-    struct al_table *alloc1 = fr->alloc;
-    int i;
-    static unsigned int scfsi_buf[64];
-    unsigned int *scfsi,*bita;
-    int sc,step;
-
-    bita = bit_alloc;
-    if(stereo)
-    {
-      for (i=jsbound;i>0;i--,alloc1+=(1<<step))
-      {
-        *bita++ = (char) getbits(step=alloc1->bits);
-        *bita++ = (char) getbits(step);
-      }
-      for (i=sblimit-jsbound;i>0;i--,alloc1+=(1<<step))
-      {
-        bita[0] = (char) getbits(step=alloc1->bits);
-        bita[1] = bita[0];
-        bita+=2;
-      }
-      bita = bit_alloc;
-      scfsi=scfsi_buf;
-      for (i=sblimit2;i>0;i--)
-        if (*bita++)
-          *scfsi++ = (char) getbits_fast(2);
-    }
-    else /* mono */
-    {
-      for (i=sblimit;i>0;i--,alloc1+=(1<<step))
-        *bita++ = (char) getbits(step=alloc1->bits);
-      bita = bit_alloc;
-      scfsi=scfsi_buf;
-      for (i=sblimit;i>0;i--)
-        if (*bita++)
-          *scfsi++ = (char) getbits_fast(2);
-    }
-
-    bita = bit_alloc;
-    scfsi=scfsi_buf;
-    for (i=sblimit2;i>0;i--)
-      if (*bita++)
-        switch (*scfsi++)
-        {
-          case 0:
-                *scale++ = getbits_fast(6);
-                *scale++ = getbits_fast(6);
-                *scale++ = getbits_fast(6);
-                break;
-          case 1 :
-                *scale++ = sc = getbits_fast(6);
-                *scale++ = sc;
-                *scale++ = getbits_fast(6);
-                break;
-          case 2:
-                *scale++ = sc = getbits_fast(6);
-                *scale++ = sc;
-                *scale++ = sc;
-                break;
-          default:              /* case 3 */
-                *scale++ = getbits_fast(6);
-                *scale++ = sc = getbits_fast(6);
-                *scale++ = sc;
-                break;
-        }
-
-}
-
-static void II_step_two(unsigned int *bit_alloc,real fraction[2][4][SBLIMIT],int *scale,struct frame *fr,int x1)
-{
-    int i,j,k,ba;
-    int stereo = fr->stereo;
-    int sblimit = fr->II_sblimit;
-    int jsbound = fr->jsbound;
-    struct al_table *alloc2,*alloc1 = fr->alloc;
-    unsigned int *bita=bit_alloc;
-    int d1,step;
-
-    for (i=0;i<jsbound;i++,alloc1+=(1<<step))
-    {
-      step = alloc1->bits;
-      for (j=0;j<stereo;j++)
-      {
-        if ( (ba=*bita++) )
-        {
-          k=(alloc2 = alloc1+ba)->bits;
-          if( (d1=alloc2->d) < 0)
-          {
-            real cm=muls[k][scale[x1]];
-            fraction[j][0][i] = ((real) ((int)getbits(k) + d1)) * cm;
-            fraction[j][1][i] = ((real) ((int)getbits(k) + d1)) * cm;
-            fraction[j][2][i] = ((real) ((int)getbits(k) + d1)) * cm;
-          }
-          else
-          {
-            static int *table[] = { 0,0,0,grp_3tab,0,grp_5tab,0,0,0,grp_9tab };
-            unsigned int idx,*tab,m=scale[x1];
-            idx = (unsigned int) getbits(k);
-            tab = (unsigned int *) (table[d1] + idx + idx + idx);
-            fraction[j][0][i] = muls[*tab++][m];
-            fraction[j][1][i] = muls[*tab++][m];
-            fraction[j][2][i] = muls[*tab][m];
-          }
-          scale+=3;
-        }
-        else
-          fraction[j][0][i] = fraction[j][1][i] = fraction[j][2][i] = 0.0;
-      }
-    }
-
-    for (i=jsbound;i<sblimit;i++,alloc1+=(1<<step))
-    {
-      step = alloc1->bits;
-      bita++;   /* channel 1 and channel 2 bitalloc are the same */
-      if ( (ba=*bita++) )
-      {
-        k=(alloc2 = alloc1+ba)->bits;
-        if( (d1=alloc2->d) < 0)
-        {
-          real cm;
-          cm=muls[k][scale[x1+3]];
-          fraction[1][0][i] = (fraction[0][0][i] = (real) ((int)getbits(k) + d1) ) * cm;
-          fraction[1][1][i] = (fraction[0][1][i] = (real) ((int)getbits(k) + d1) ) * cm;
-          fraction[1][2][i] = (fraction[0][2][i] = (real) ((int)getbits(k) + d1) ) * cm;
-          cm=muls[k][scale[x1]];
-          fraction[0][0][i] *= cm; fraction[0][1][i] *= cm; fraction[0][2][i] *= cm;
-        }
-        else
-        {
-          static int *table[] = { 0,0,0,grp_3tab,0,grp_5tab,0,0,0,grp_9tab };
-          unsigned int idx,*tab,m1,m2;
-          m1 = scale[x1]; m2 = scale[x1+3];
-          idx = (unsigned int) getbits(k);
-          tab = (unsigned int *) (table[d1] + idx + idx + idx);
-          fraction[0][0][i] = muls[*tab][m1]; fraction[1][0][i] = muls[*tab++][m2];
-          fraction[0][1][i] = muls[*tab][m1]; fraction[1][1][i] = muls[*tab++][m2];
-          fraction[0][2][i] = muls[*tab][m1]; fraction[1][2][i] = muls[*tab][m2];
-        }
-        scale+=6;
-      }
-      else {
-        fraction[0][0][i] = fraction[0][1][i] = fraction[0][2][i] =
-        fraction[1][0][i] = fraction[1][1][i] = fraction[1][2][i] = 0.0;
-      }
-/*
-   should we use individual scalefac for channel 2 or
-   is the current way the right one , where we just copy channel 1 to
-   channel 2 ??
-   The current 'strange' thing is, that we throw away the scalefac
-   values for the second channel ...!!
--> changed .. now we use the scalefac values of channel one !!
-*/
-    }
-
-    if(sblimit > (fr->down_sample_sblimit) )
-      sblimit = fr->down_sample_sblimit;
-
-    for(i=sblimit;i<SBLIMIT;i++)
-      for (j=0;j<stereo;j++)
-        fraction[j][0][i] = fraction[j][1][i] = fraction[j][2][i] = 0.0;
-
-}
-
-static void II_select_table(struct frame *fr)
-{
-  static int translate[9][2][16] =
-   { { { 0,2,2,2,2,2,2,0,0,0,1,1,1,1,1,0 } ,   /*44.1 stereo*/
-       { 0,2,2,0,0,0,1,1,1,1,1,1,1,1,1,0 } } , /*44.1 mono*/
-     { { 0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0 } ,   /*48 stereo*/
-       { 0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0 } } , /*48 mono*/
-     { { 0,3,3,3,3,3,3,0,0,0,1,1,1,1,1,0 } ,   /*32 stereo*/
-       { 0,3,3,0,0,0,1,1,1,1,1,1,1,1,1,0 } } , /*32 mono*/
-     { { 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0 } ,   /*22.05 stereo*/
-       { 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,0 } } , /*22.05 mono*/
-     { { 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0 } ,   /*24 stereo*/
-       { 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,0 } } , /*24 mono*/
-     { { 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0 } ,   /*16 stereo*/
-       { 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,0 } } , /*16 mono*/
-     { { 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0 } ,   /*11.025 stereo*/
-       { 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,0 } } , /*11.025 mono*/
-     { { 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0 } ,   /*12 stereo*/
-       { 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,0 } } , /*12 mono*/
-     { { 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0 } ,   /*8 stereo*/
-       { 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,0 } }   /*8 mono*/
-/*       0  48  64  96 128 192 256 384 */
-/*        32  56  80 112 160 224 320  XX*/
-       };
-
-  int table,sblim;
-  static struct al_table *tables[5] =
-       { alloc_0, alloc_1, alloc_2, alloc_3 , alloc_4 };
-  static int sblims[5] = { 27 , 30 , 8, 12 , 30 };
-
-  if(fr->lsf)
-    table = 4;
-  else
-    table = translate[fr->sampling_frequency][2-fr->stereo][fr->bitrate_index];
-  sblim = sblims[table];
-
-  fr->alloc      = tables[table];
-  fr->II_sblimit = sblim;
-}
-
-
-static int do_layer2(struct frame *fr,int outmode)
-{
-  int clip=0;
-  int i,j;
-  int stereo = fr->stereo;
-  DECLARE_ALIGNED(16, real, fraction[2][4][SBLIMIT]); /* pick_table clears unused subbands */
-  unsigned int bit_alloc[64];
-  int scale[192];
-  int single = fr->single;
-
-  II_select_table(fr);
-  fr->jsbound = (fr->mode == MPG_MD_JOINT_STEREO) ?
-     (fr->mode_ext<<2)+4 : fr->II_sblimit;
-
-  if(stereo == 1 || single == 3)
-    single = 0;
-
-  II_step_one(bit_alloc, scale, fr);
-
-  for (i=0;i<SCALE_BLOCK;i++)
-  {
-    II_step_two(bit_alloc,fraction,scale,fr,i>>2);
-    for (j=0;j<3;j++)
-    {
-      if(single >= 0)
-      {
-        clip += (fr->synth_mono) (fraction[single][j],pcm_sample,&pcm_point);
-      }
-      else {
-          int p1 = pcm_point;
-          clip += (fr->synth) (fraction[0][j],0,pcm_sample,&p1);
-          clip += (fr->synth) (fraction[1][j],1,pcm_sample,&pcm_point);
-      }
-
-//      if(pcm_point >= audiobufsize) audio_flush(outmode,ai);
-    }
-  }
-
-  return clip;
-}
--- a/mp3lib/layer3.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1349 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
- * Mpeg Layer-3 audio decoder
- * --------------------------
- * copyright (c) 1995-1999 by Michael Hipp.
- * All rights reserved. See also 'README'
- *
- * Optimize-TODO: put short bands into the band-field without the stride
- *                of 3 reals
- * Length-optimze: unify long and short band code where it is possible
- */
-
-#include "mpg123.h"
-
-#if 0
-#define L3_DEBUG 1
-#endif
-
-#if 0
-#define CUT_HF
-#endif
-
-#define REAL_MUL(x, y) ((x) * (y))
-
-static real ispow[8207];
-static real aa_ca[8],aa_cs[8];
-static real COS1[12][6];
-static real win[4][36];
-static real win1[4][36];
-static real gainpow2[256+118+4];
-
-/* non static for external 3dnow functions */
-real   COS9[9];
-static real COS6_1,COS6_2;
-real   tfcos36[9];
-
-static real tfcos12[3];
-#define NEW_DCT9
-#ifdef NEW_DCT9
-static real cos9[3],cos18[3];
-#endif
-
-struct bandInfoStruct {
-  uint16_t longIdx[23];
-  uint8_t  longDiff[22];
-  uint16_t shortIdx[14];
-  uint8_t  shortDiff[13];
-};
-
-static int longLimit[9][23];
-static int shortLimit[9][14];
-
-static const struct bandInfoStruct bandInfo[9] = {
-
-/* MPEG 1.0 */
- { {0,4,8,12,16,20,24,30,36,44,52,62,74, 90,110,134,162,196,238,288,342,418,576},
-   {4,4,4,4,4,4,6,6,8, 8,10,12,16,20,24,28,34,42,50,54, 76,158},
-   {0,4*3,8*3,12*3,16*3,22*3,30*3,40*3,52*3,66*3, 84*3,106*3,136*3,192*3},
-   {4,4,4,4,6,8,10,12,14,18,22,30,56} } ,
-
- { {0,4,8,12,16,20,24,30,36,42,50,60,72, 88,106,128,156,190,230,276,330,384,576},
-   {4,4,4,4,4,4,6,6,6, 8,10,12,16,18,22,28,34,40,46,54, 54,192},
-   {0,4*3,8*3,12*3,16*3,22*3,28*3,38*3,50*3,64*3, 80*3,100*3,126*3,192*3},
-   {4,4,4,4,6,6,10,12,14,16,20,26,66} } ,
-
- { {0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576} ,
-   {4,4,4,4,4,4,6,6,8,10,12,16,20,24,30,38,46,56,68,84,102, 26} ,
-   {0,4*3,8*3,12*3,16*3,22*3,30*3,42*3,58*3,78*3,104*3,138*3,180*3,192*3} ,
-   {4,4,4,4,6,8,12,16,20,26,34,42,12} }  ,
-
-/* MPEG 2.0 */
- { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
-   {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 } ,
-   {0,4*3,8*3,12*3,18*3,24*3,32*3,42*3,56*3,74*3,100*3,132*3,174*3,192*3} ,
-   {4,4,4,6,6,8,10,14,18,26,32,42,18 } } ,
-/* changed 19th value fropm 330 to 332 */
- { {0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,332,394,464,540,576},
-   {6,6,6,6,6,6,8,10,12,14,16,18,22,26,32,38,46,54,62,70,76,36 } ,
-   {0,4*3,8*3,12*3,18*3,26*3,36*3,48*3,62*3,80*3,104*3,136*3,180*3,192*3} ,
-   {4,4,4,6,8,10,12,14,18,24,32,44,12 } } ,
-
- { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
-   {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 },
-   {0,4*3,8*3,12*3,18*3,26*3,36*3,48*3,62*3,80*3,104*3,134*3,174*3,192*3},
-   {4,4,4,6,8,10,12,14,18,24,30,40,18 } } ,
-/* MPEG 2.5 */
- { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576} ,
-   {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54},
-   {0,12,24,36,54,78,108,144,186,240,312,402,522,576},
-   {4,4,4,6,8,10,12,14,18,24,30,40,18} },
- { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576} ,
-   {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54},
-   {0,12,24,36,54,78,108,144,186,240,312,402,522,576},
-   {4,4,4,6,8,10,12,14,18,24,30,40,18} },
- { {0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576},
-   {12,12,12,12,12,12,16,20,24,28,32,40,48,56,64,76,90,2,2,2,2,2},
-   {0, 24, 48, 72,108,156,216,288,372,480,486,492,498,576},
-   {8,8,8,12,16,20,24,28,36,2,2,2,26} } ,
-};
-
-static int mapbuf0[9][152];
-static int mapbuf1[9][156];
-static int mapbuf2[9][44];
-static int *map[9][3];
-static int *mapend[9][3];
-
-static unsigned int n_slen2[512]; /* MPEG 2.0 slen for 'normal' mode */
-static unsigned int i_slen2[256]; /* MPEG 2.0 slen for intensity stereo */
-
-static real tan1_1[16],tan2_1[16],tan1_2[16],tan2_2[16];
-static real pow1_1[2][16],pow2_1[2][16],pow1_2[2][16],pow2_2[2][16];
-
-/*
- * init tables for layer-3
- */
-static void init_layer3(int down_sample_sblimit)
-{
-  int i,j,k,l;
-
-  for(i=-256;i<118+4;i++)
-  {
-    if(_has_mmx)
-      gainpow2[i+256] = 16384.0 * pow((double)2.0,-0.25 * (double) (i+210) );
-    else
-      gainpow2[i+256] = pow((double)2.0,-0.25 * (double) (i+210) );
-  }
-  for(i=0;i<8207;i++)
-    ispow[i] = pow((double)i,(double)4.0/3.0);
-
-  for (i=0;i<8;i++)
-  {
-    static const double Ci[8]={-0.6,-0.535,-0.33,-0.185,-0.095,-0.041,-0.0142,-0.0037};
-    double sq=sqrt(1.0+Ci[i]*Ci[i]);
-    aa_cs[i] = 1.0/sq;
-    aa_ca[i] = Ci[i]/sq;
-  }
-
-  for(i=0;i<18;i++)
-  {
-    win[0][i]    = win[1][i]    = 0.5 * sin( M_PI / 72.0 * (double) (2*(i+0) +1) ) / cos ( M_PI * (double) (2*(i+0) +19) / 72.0 );
-    win[0][i+18] = win[3][i+18] = 0.5 * sin( M_PI / 72.0 * (double) (2*(i+18)+1) ) / cos ( M_PI * (double) (2*(i+18)+19) / 72.0 );
-  }
-  for(i=0;i<6;i++)
-  {
-    win[1][i+18] = 0.5 / cos ( M_PI * (double) (2*(i+18)+19) / 72.0 );
-    win[3][i+12] = 0.5 / cos ( M_PI * (double) (2*(i+12)+19) / 72.0 );
-    win[1][i+24] = 0.5 * sin( M_PI / 24.0 * (double) (2*i+13) ) / cos ( M_PI * (double) (2*(i+24)+19) / 72.0 );
-    win[1][i+30] = win[3][i] = 0.0;
-    win[3][i+6 ] = 0.5 * sin( M_PI / 24.0 * (double) (2*i+1) )  / cos ( M_PI * (double) (2*(i+6 )+19) / 72.0 );
-  }
-
-  for(i=0;i<9;i++)
-    COS9[i] = cos( M_PI / 18.0 * (double) i);
-
-  for(i=0;i<9;i++)
-    tfcos36[i] = 0.5 / cos ( M_PI * (double) (i*2+1) / 36.0 );
-  for(i=0;i<3;i++)
-    tfcos12[i] = 0.5 / cos ( M_PI * (double) (i*2+1) / 12.0 );
-
-  COS6_1 = cos( M_PI / 6.0 * (double) 1);
-  COS6_2 = cos( M_PI / 6.0 * (double) 2);
-
-#ifdef NEW_DCT9
-  cos9[0] = cos(1.0*M_PI/9.0);
-  cos9[1] = cos(5.0*M_PI/9.0);
-  cos9[2] = cos(7.0*M_PI/9.0);
-  cos18[0] = cos(1.0*M_PI/18.0);
-  cos18[1] = cos(11.0*M_PI/18.0);
-  cos18[2] = cos(13.0*M_PI/18.0);
-#endif
-
-  for(i=0;i<12;i++)
-  {
-    win[2][i]  = 0.5 * sin( M_PI / 24.0 * (double) (2*i+1) ) / cos ( M_PI * (double) (2*i+7) / 24.0 );
-    for(j=0;j<6;j++)
-      COS1[i][j] = cos( M_PI / 24.0 * (double) ((2*i+7)*(2*j+1)) );
-  }
-
-  for(j=0;j<4;j++) {
-    static const int len[4] = { 36,36,12,36 };
-    for(i=0;i<len[j];i+=2)
-      win1[j][i] = + win[j][i];
-    for(i=1;i<len[j];i+=2)
-      win1[j][i] = - win[j][i];
-  }
-
-  for(i=0;i<16;i++)
-  {
-    double t = tan( (double) i * M_PI / 12.0 );
-    tan1_1[i] = t / (1.0+t);
-    tan2_1[i] = 1.0 / (1.0 + t);
-    tan1_2[i] = M_SQRT2 * t / (1.0+t);
-    tan2_2[i] = M_SQRT2 / (1.0 + t);
-
-    for(j=0;j<2;j++) {
-      double base = pow(2.0,-0.25*(j+1.0));
-      double p1=1.0,p2=1.0;
-      if(i > 0) {
-        if( i & 1 )
-          p1 = pow(base,(i+1.0)*0.5);
-        else
-          p2 = pow(base,i*0.5);
-      }
-      pow1_1[j][i] = p1;
-      pow2_1[j][i] = p2;
-      pow1_2[j][i] = M_SQRT2 * p1;
-      pow2_2[j][i] = M_SQRT2 * p2;
-    }
-  }
-
-  for(j=0;j<9;j++)
-  {
-   const struct bandInfoStruct *bi = &bandInfo[j];
-   int *mp;
-   int cb,lwin;
-   const uint8_t *bdf;
-
-   mp = map[j][0] = mapbuf0[j];
-   bdf = bi->longDiff;
-   for(i=0,cb = 0; cb < 8 ; cb++,i+=*bdf++) {
-     *mp++ = (*bdf) >> 1;
-     *mp++ = i;
-     *mp++ = 3;
-     *mp++ = cb;
-   }
-   bdf = bi->shortDiff+3;
-   for(cb=3;cb<13;cb++) {
-     int l = (*bdf++) >> 1;
-     for(lwin=0;lwin<3;lwin++) {
-       *mp++ = l;
-       *mp++ = i + lwin;
-       *mp++ = lwin;
-       *mp++ = cb;
-     }
-     i += 6*l;
-   }
-   mapend[j][0] = mp;
-
-   mp = map[j][1] = mapbuf1[j];
-   bdf = bi->shortDiff+0;
-   for(i=0,cb=0;cb<13;cb++) {
-     int l = (*bdf++) >> 1;
-     for(lwin=0;lwin<3;lwin++) {
-       *mp++ = l;
-       *mp++ = i + lwin;
-       *mp++ = lwin;
-       *mp++ = cb;
-     }
-     i += 6*l;
-   }
-   mapend[j][1] = mp;
-
-   mp = map[j][2] = mapbuf2[j];
-   bdf = bi->longDiff;
-   for(cb = 0; cb < 22 ; cb++) {
-     *mp++ = (*bdf++) >> 1;
-     *mp++ = cb;
-   }
-   mapend[j][2] = mp;
-
-  }
-
-  for(j=0;j<9;j++) {
-    for(i=0;i<23;i++) {
-      longLimit[j][i] = (bandInfo[j].longIdx[i] - 1 + 8) / 18 + 1;
-      if(longLimit[j][i] > (down_sample_sblimit) )
-        longLimit[j][i] = down_sample_sblimit;
-    }
-    for(i=0;i<14;i++) {
-      shortLimit[j][i] = (bandInfo[j].shortIdx[i] - 1) / 18 + 1;
-      if(shortLimit[j][i] > (down_sample_sblimit) )
-        shortLimit[j][i] = down_sample_sblimit;
-    }
-  }
-
-  for(i=0;i<5;i++) {
-    for(j=0;j<6;j++) {
-      for(k=0;k<6;k++) {
-        int n = k + j * 6 + i * 36;
-        i_slen2[n] = i|(j<<3)|(k<<6)|(3<<12);
-      }
-    }
-  }
-  for(i=0;i<4;i++) {
-    for(j=0;j<4;j++) {
-      for(k=0;k<4;k++) {
-        int n = k + j * 4 + i * 16;
-        i_slen2[n+180] = i|(j<<3)|(k<<6)|(4<<12);
-      }
-    }
-  }
-  for(i=0;i<4;i++) {
-    for(j=0;j<3;j++) {
-      int n = j + i * 3;
-      i_slen2[n+244] = i|(j<<3) | (5<<12);
-      n_slen2[n+500] = i|(j<<3) | (2<<12) | (1<<15);
-    }
-  }
-
-  for(i=0;i<5;i++) {
-    for(j=0;j<5;j++) {
-      for(k=0;k<4;k++) {
-        for(l=0;l<4;l++) {
-          int n = l + k * 4 + j * 16 + i * 80;
-          n_slen2[n] = i|(j<<3)|(k<<6)|(l<<9)|(0<<12);
-        }
-      }
-    }
-  }
-  for(i=0;i<5;i++) {
-    for(j=0;j<5;j++) {
-      for(k=0;k<4;k++) {
-        int n = k + j * 4 + i * 20;
-        n_slen2[n+400] = i|(j<<3)|(k<<6)|(1<<12);
-      }
-    }
-  }
-}
-
-/*
- * read additional side information (for MPEG 1 and MPEG 2)
- */
-static int III_get_side_info(struct III_sideinfo *si,int stereo,
- int ms_stereo,int sfreq,int single,int lsf)
-{
-   int ch, gr;
-   int powdiff = (single == 3) ? 4 : 0;
-
-   static const int tabs[2][5] = { { 2,9,5,3,4 } , { 1,8,1,2,9 } };
-   const int *tab = tabs[lsf];
-
-   si->main_data_begin = getbits(tab[1]);
-   if (stereo == 1)
-     si->private_bits = getbits_fast(tab[2]);
-   else
-     si->private_bits = getbits_fast(tab[3]);
-
-   if(!lsf) {
-     for (ch=0; ch<stereo; ch++) {
-         si->ch[ch].gr[0].scfsi = -1;
-         si->ch[ch].gr[1].scfsi = getbits_fast(4);
-     }
-   }
-
-   for (gr=0; gr<tab[0]; gr++) {
-     for (ch=0; ch<stereo; ch++) {
-       register struct gr_info_s *gr_info = &(si->ch[ch].gr[gr]);
-
-       gr_info->part2_3_length = getbits(12);
-       gr_info->big_values = getbits(9);
-       if(gr_info->big_values > 288) {
-            fprintf(stderr,"big_values too large!\n");
-          gr_info->big_values = 288;
-       }
-       gr_info->pow2gain = gainpow2+256 - getbits_fast(8) + powdiff;
-       if(ms_stereo)
-         gr_info->pow2gain += 2;
-       gr_info->scalefac_compress = getbits(tab[4]);
-
-       if(get1bit()) { /* window switch flag  */
-         int i;
-#ifdef L3_DEBUG
-if(2*gr_info->big_values > bandInfo[sfreq].shortIdx[12])
-  fprintf(stderr,"L3: BigValues too large, doesn't make sense %d %d\n",2*gr_info->big_values,bandInfo[sfreq].shortIdx[12]);
-#endif
-
-         gr_info->block_type       = getbits_fast(2);
-         gr_info->mixed_block_flag = get1bit();
-         gr_info->table_select[0]  = getbits_fast(5);
-         gr_info->table_select[1]  = getbits_fast(5);
-         /*
-          * table_select[2] not needed, because there is no region2,
-          * but to satisfy some verifications tools we set it either.
-          */
-         gr_info->table_select[2] = 0;
-         for(i=0;i<3;i++)
-           gr_info->full_gain[i] = gr_info->pow2gain + (getbits_fast(3)<<3);
-
-         if(gr_info->block_type == 0) {
-             fprintf(stderr,"Blocktype == 0 and window-switching == 1 not allowed.\n");
-           return 0;
-         }
-
-         /* region_count/start parameters are implicit in this case. */
-         if(!lsf || gr_info->block_type == 2)
-           gr_info->region1start = 36>>1;
-         else {
-/* check this again for 2.5 and sfreq=8 */
-           if(sfreq == 8)
-             gr_info->region1start = 108>>1;
-           else
-             gr_info->region1start = 54>>1;
-         }
-         gr_info->region2start = 576>>1;
-       }
-       else {
-         int i,r0c,r1c;
-#ifdef L3_DEBUG
-if(2*gr_info->big_values > bandInfo[sfreq].longIdx[21])
-  fprintf(stderr,"L3: BigValues too large, doesn't make sense %d %d\n",2*gr_info->big_values,bandInfo[sfreq].longIdx[21]);
-#endif
-         for (i=0; i<3; i++)
-           gr_info->table_select[i] = getbits_fast(5);
-         r0c = getbits_fast(4);
-         r1c = getbits_fast(3);
-         gr_info->region1start = bandInfo[sfreq].longIdx[r0c+1] >> 1 ;
-         if(r0c + r1c + 2 > 22)
-           gr_info->region2start = 576>>1;
-         else
-           gr_info->region2start = bandInfo[sfreq].longIdx[r0c+1+r1c+1] >> 1;
-         gr_info->block_type = 0;
-         gr_info->mixed_block_flag = 0;
-       }
-       if(!lsf)
-         gr_info->preflag = get1bit();
-       gr_info->scalefac_scale = get1bit();
-       gr_info->count1table_select = get1bit();
-     }
-   }
-
-   return !0;
-}
-
-/*
- * read scalefactors
- */
-static int III_get_scale_factors_1(int *scf,struct gr_info_s *gr_info)
-{
-   static const unsigned char slen[2][16] = {
-     {0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4},
-     {0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3}
-   };
-   int numbits;
-   int num0 = slen[0][gr_info->scalefac_compress];
-   int num1 = slen[1][gr_info->scalefac_compress];
-
-    if (gr_info->block_type == 2) {
-      int i=18;
-      numbits = (num0 + num1) * 18;
-
-      if (gr_info->mixed_block_flag) {
-         for (i=8;i;i--)
-           *scf++ = getbits_fast(num0);
-         i = 9;
-         numbits -= num0; /* num0 * 17 + num1 * 18 */
-      }
-
-      for (;i;i--)
-        *scf++ = getbits_fast(num0);
-      for (i = 18; i; i--)
-        *scf++ = getbits_fast(num1);
-      *scf++ = 0; *scf++ = 0; *scf++ = 0; /* short[13][0..2] = 0 */
-    }
-    else {
-      int i;
-      int scfsi = gr_info->scfsi;
-
-      if(scfsi < 0) { /* scfsi < 0 => granule == 0 */
-         for(i=11;i;i--)
-           *scf++ = getbits_fast(num0);
-         for(i=10;i;i--)
-           *scf++ = getbits_fast(num1);
-         numbits = (num0 + num1) * 10 + num0;
-         *scf++ = 0;
-      }
-      else {
-        numbits = 0;
-        if(!(scfsi & 0x8)) {
-          for (i=0;i<6;i++)
-            *scf++ = getbits_fast(num0);
-          numbits += num0 * 6;
-        }
-        else {
-          scf += 6;
-        }
-
-        if(!(scfsi & 0x4)) {
-          for (i=0;i<5;i++)
-            *scf++ = getbits_fast(num0);
-          numbits += num0 * 5;
-        }
-        else {
-          scf += 5;
-        }
-
-        if(!(scfsi & 0x2)) {
-          for(i=0;i<5;i++)
-            *scf++ = getbits_fast(num1);
-          numbits += num1 * 5;
-        }
-        else {
-          scf += 5;
-        }
-
-        if(!(scfsi & 0x1)) {
-          for (i=0;i<5;i++)
-            *scf++ = getbits_fast(num1);
-          numbits += num1 * 5;
-        }
-        else {
-           scf += 5;
-        }
-        *scf++ = 0;  /* no l[21] in original sources */
-      }
-    }
-    return numbits;
-}
-
-static int III_get_scale_factors_2(int *scf,struct gr_info_s *gr_info,int i_stereo)
-{
-  unsigned char *pnt;
-  int i,j;
-  unsigned int slen;
-  int n = 0;
-  int numbits = 0;
-
-  static unsigned char stab[3][6][4] = {
-   { { 6, 5, 5,5 } , { 6, 5, 7,3 } , { 11,10,0,0} ,
-     { 7, 7, 7,0 } , { 6, 6, 6,3 } , {  8, 8,5,0} } ,
-   { { 9, 9, 9,9 } , { 9, 9,12,6 } , { 18,18,0,0} ,
-     {12,12,12,0 } , {12, 9, 9,6 } , { 15,12,9,0} } ,
-   { { 6, 9, 9,9 } , { 6, 9,12,6 } , { 15,18,0,0} ,
-     { 6,15,12,0 } , { 6,12, 9,6 } , {  6,18,9,0} } };
-
-  if(i_stereo) /* i_stereo AND second channel -> do_layer3() checks this */
-    slen = i_slen2[gr_info->scalefac_compress>>1];
-  else
-    slen = n_slen2[gr_info->scalefac_compress];
-
-  gr_info->preflag = (slen>>15) & 0x1;
-
-  n = 0;
-  if( gr_info->block_type == 2 ) {
-    n++;
-    if(gr_info->mixed_block_flag) n++;
-  }
-
-  pnt = stab[n][(slen>>12)&0x7];
-
-  for(i=0;i<4;i++) {
-    int num = slen & 0x7;
-    slen >>= 3;
-    if(num) {
-      for(j=0;j<(int)(pnt[i]);j++) *scf++ = getbits_fast(num);
-      numbits += pnt[i] * num;
-    }
-    else {
-      for(j=0;j<(int)(pnt[i]);j++) *scf++ = 0;
-    }
-  }
-
-  n = (n << 1) + 1;
-  for(i=0;i<n;i++) *scf++ = 0;
-
-  return numbits;
-}
-
-static int pretab1[22] = {0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0};
-static int pretab2[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-
-#define getbitoffset() ((-bitindex)&0x7)
-#define getbyte()      (*wordpointer++)
-
-/*
- * Dequantize samples (includes huffman decoding)
- */
-/* 24 is enough because tab13 has max. a 19 bit huffvector */
-#define BITSHIFT ((sizeof(long)-1)*8)
-#define REFRESH_MASK \
-  while(num < BITSHIFT) { \
-    mask |= ((unsigned long)getbyte())<<(BITSHIFT-num); \
-    num += 8; \
-    part2remain -= 8; }
-
-static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
-   struct gr_info_s *gr_info,int sfreq,int part2bits)
-{
-  int shift = 1 + gr_info->scalefac_scale;
-  real *xrpnt = (real *) xr;
-  int l[3],l3;
-  int part2remain = gr_info->part2_3_length - part2bits;
-  int *me;
-
-  int num=getbitoffset();
-  long mask;
-  /* we must split this, because for num==0 the shift is undefined if you do it in one step */
-  mask  = ((unsigned long) getbits(num))<<BITSHIFT;
-  mask <<= 8-num;
-  part2remain -= num;
-
-  {
-    int bv       = gr_info->big_values;
-    int region1  = gr_info->region1start;
-    int region2  = gr_info->region2start;
-
-    l3 = ((576>>1)-bv)>>1;
-/*
- * we may lose the 'odd' bit here !!
- * check this later again
- */
-    if(bv <= region1) {
-      l[0] = bv; l[1] = l[2] = 0;
-    }
-    else {
-      l[0] = region1;
-      if(bv <= region2) {
-        l[1] = bv - l[0];  l[2] = 0;
-      }
-      else {
-        l[1] = region2 - l[0]; l[2] = bv - region2;
-      }
-    }
-  }
-
-  if(gr_info->block_type == 2) {
-    /*
-     * decoding with short or mixed mode BandIndex table
-     */
-    int i,max[4];
-    int step=0,lwin=3,cb=0;
-    register real v = 0.0;
-    register int *m,mc;
-
-    if(gr_info->mixed_block_flag) {
-      max[3] = -1;
-      max[0] = max[1] = max[2] = 2;
-      m = map[sfreq][0];
-      me = mapend[sfreq][0];
-    }
-    else {
-      max[0] = max[1] = max[2] = max[3] = -1;
-      /* max[3] not really needed in this case */
-      m = map[sfreq][1];
-      me = mapend[sfreq][1];
-    }
-
-    mc = 0;
-    for(i=0;i<2;i++) {
-      int lp = l[i];
-      struct newhuff *h = ht+gr_info->table_select[i];
-      for(;lp;lp--,mc--) {
-        register int x,y;
-        if( (!mc) ) {
-          mc    = *m++;
-          xrpnt = ((real *) xr) + (*m++);
-          lwin  = *m++;
-          cb    = *m++;
-          if(lwin == 3) {
-            v = gr_info->pow2gain[(*scf++) << shift];
-            step = 1;
-          }
-          else {
-            v = gr_info->full_gain[lwin][(*scf++) << shift];
-            step = 3;
-          }
-        }
-        {
-          register short *val = h->table;
-          REFRESH_MASK;
-          while((y=*val++)<0) {
-            if (mask < 0)
-              val -= y;
-            num--;
-            mask <<= 1;
-          }
-          x = y >> 4;
-          y &= 0xf;
-        }
-        if(x == 15 && h->linbits) {
-          max[lwin] = cb;
-          REFRESH_MASK;
-          x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
-          num -= h->linbits+1;
-          mask <<= h->linbits;
-          if(mask < 0)
-            *xrpnt = REAL_MUL(-ispow[x], v);
-          else
-            *xrpnt = REAL_MUL(ispow[x], v);
-          mask <<= 1;
-        }
-        else if(x) {
-          max[lwin] = cb;
-          if(mask < 0)
-            *xrpnt = REAL_MUL(-ispow[x], v);
-          else
-            *xrpnt = REAL_MUL(ispow[x], v);
-          num--;
-          mask <<= 1;
-        }
-        else
-          *xrpnt = 0.0;
-        xrpnt += step;
-        if(y == 15 && h->linbits) {
-          max[lwin] = cb;
-          REFRESH_MASK;
-          y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
-          num -= h->linbits+1;
-          mask <<= h->linbits;
-          if(mask < 0)
-            *xrpnt = REAL_MUL(-ispow[y], v);
-          else
-            *xrpnt = REAL_MUL(ispow[y], v);
-          mask <<= 1;
-        }
-        else if(y) {
-          max[lwin] = cb;
-          if(mask < 0)
-            *xrpnt = REAL_MUL(-ispow[y], v);
-          else
-            *xrpnt = REAL_MUL(ispow[y], v);
-          num--;
-          mask <<= 1;
-        }
-        else
-          *xrpnt = 0.0;
-        xrpnt += step;
-      }
-    }
-
-    for(;l3 && (part2remain+num > 0);l3--) {
-      struct newhuff *h = htc+gr_info->count1table_select;
-      register short *val = h->table,a;
-
-      REFRESH_MASK;
-      while((a=*val++)<0) {
-        if (mask < 0)
-          val -= a;
-        num--;
-        mask <<= 1;
-      }
-      if(part2remain+num <= 0) {
-        num -= part2remain+num;
-        break;
-      }
-
-      for(i=0;i<4;i++) {
-        if(!(i & 1)) {
-          if(!mc) {
-            mc = *m++;
-            xrpnt = ((real *) xr) + (*m++);
-            lwin = *m++;
-            cb = *m++;
-            if(lwin == 3) {
-              v = gr_info->pow2gain[(*scf++) << shift];
-              step = 1;
-            }
-            else {
-              v = gr_info->full_gain[lwin][(*scf++) << shift];
-              step = 3;
-            }
-          }
-          mc--;
-        }
-        if( (a & (0x8>>i)) ) {
-          max[lwin] = cb;
-          if(part2remain+num <= 0) {
-            break;
-          }
-          if(mask < 0)
-            *xrpnt = -v;
-          else
-            *xrpnt = v;
-          num--;
-          mask <<= 1;
-        }
-        else
-          *xrpnt = 0.0;
-        xrpnt += step;
-      }
-    }
-
-    if(lwin < 3) { /* short band? */
-      while(1) {
-        for(;mc > 0;mc--) {
-          *xrpnt = 0.0; xrpnt += 3; /* short band -> step=3 */
-          *xrpnt = 0.0; xrpnt += 3;
-        }
-        if(m >= me)
-          break;
-        mc    = *m++;
-        xrpnt = ((real *) xr) + *m++;
-        if(*m++ == 0)
-          break; /* optimize: field will be set to zero at the end of the function */
-        m++; /* cb */
-      }
-    }
-
-    gr_info->maxband[0] = max[0]+1;
-    gr_info->maxband[1] = max[1]+1;
-    gr_info->maxband[2] = max[2]+1;
-    gr_info->maxbandl = max[3]+1;
-
-    {
-      int rmax = max[0] > max[1] ? max[0] : max[1];
-      rmax = (rmax > max[2] ? rmax : max[2]) + 1;
-      gr_info->maxb = rmax ? shortLimit[sfreq][rmax] : longLimit[sfreq][max[3]+1];
-    }
-
-  }
-  else {
-    /*
-     * decoding with 'long' BandIndex table (block_type != 2)
-     */
-    int *pretab = gr_info->preflag ? pretab1 : pretab2;
-    int i,max = -1;
-    int cb = 0;
-    int *m = map[sfreq][2];
-    register real v = 0.0;
-    int mc = 0;
-
-    /*
-     * long hash table values
-     */
-    for(i=0;i<3;i++) {
-      int lp = l[i];
-      struct newhuff *h = ht+gr_info->table_select[i];
-
-      for(;lp;lp--,mc--) {
-        int x,y;
-
-        if(!mc) {
-          mc = *m++;
-          cb = *m++;
-#ifdef CUT_HF
-          if(cb == 21) {
-            fprintf(stderr,"c");
-            v = 0.0;
-          }
-          else
-#endif
-            v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift];
-
-        }
-        {
-          register short *val = h->table;
-          REFRESH_MASK;
-          while((y=*val++)<0) {
-            if (mask < 0)
-              val -= y;
-            num--;
-            mask <<= 1;
-          }
-          x = y >> 4;
-          y &= 0xf;
-        }
-
-        if (x == 15 && h->linbits) {
-          max = cb;
-          REFRESH_MASK;
-          x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
-          num -= h->linbits+1;
-          mask <<= h->linbits;
-          if(mask < 0)
-            *xrpnt++ = REAL_MUL(-ispow[x], v);
-          else
-            *xrpnt++ = REAL_MUL(ispow[x], v);
-          mask <<= 1;
-        }
-        else if(x) {
-          max = cb;
-          if(mask < 0)
-            *xrpnt++ = REAL_MUL(-ispow[x], v);
-          else
-            *xrpnt++ = REAL_MUL(ispow[x], v);
-          num--;
-          mask <<= 1;
-        }
-        else
-          *xrpnt++ = 0.0;
-
-        if (y == 15 && h->linbits) {
-          max = cb;
-          REFRESH_MASK;
-          y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
-          num -= h->linbits+1;
-          mask <<= h->linbits;
-          if(mask < 0)
-            *xrpnt++ = REAL_MUL(-ispow[y], v);
-          else
-            *xrpnt++ = REAL_MUL(ispow[y], v);
-          mask <<= 1;
-        }
-        else if(y) {
-          max = cb;
-          if(mask < 0)
-            *xrpnt++ = REAL_MUL(-ispow[y], v);
-          else
-            *xrpnt++ = REAL_MUL(ispow[y], v);
-          num--;
-          mask <<= 1;
-        }
-        else
-          *xrpnt++ = 0.0;
-      }
-    }
-
-    /*
-     * short (count1table) values
-     */
-    for(;l3 && (part2remain+num > 0);l3--) {
-      struct newhuff *h = htc+gr_info->count1table_select;
-      register short *val = h->table,a;
-
-      REFRESH_MASK;
-      while((a=*val++)<0) {
-        if (mask < 0)
-          val -= a;
-        num--;
-        mask <<= 1;
-      }
-      if(part2remain+num <= 0) {
-        num -= part2remain+num;
-        break;
-      }
-
-      for(i=0;i<4;i++) {
-        if(!(i & 1)) {
-          if(!mc) {
-            mc = *m++;
-            cb = *m++;
-#ifdef CUT_HF
-            if(cb == 21) {
-              fprintf(stderr,"c");
-              v = 0.0;
-            }
-            else
-#endif
-              v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift];
-          }
-          mc--;
-        }
-        if ( (a & (0x8>>i)) ) {
-          max = cb;
-          if(part2remain+num <= 0) {
-            break;
-          }
-          if(mask < 0)
-            *xrpnt++ = -v;
-          else
-            *xrpnt++ = v;
-          num--;
-          mask <<= 1;
-        }
-        else
-          *xrpnt++ = 0.0;
-      }
-    }
-
-    gr_info->maxbandl = max+1;
-    gr_info->maxb = longLimit[sfreq][gr_info->maxbandl];
-  }
-
-  part2remain += num;
-//  backbits(num);
-  bitindex -= num; wordpointer += (bitindex>>3); bitindex &= 0x7;
-  num = 0;
-
-  while(xrpnt < &xr[SBLIMIT][0])
-    *xrpnt++ = 0.0;
-
-  while( part2remain > 16 ) {
-    getbits(16); /* Dismiss stuffing Bits */
-    part2remain -= 16;
-  }
-  if(part2remain > 0)
-    getbits(part2remain);
-  else if(part2remain < 0) {
-      fprintf(stderr,"mpg123: Can't rewind stream by %d bits!\n",-part2remain);
-    return 1; /* -> error */
-  }
-  return 0;
-}
-
-
-
-
-/*
- * III_stereo: calculate real channel values for Joint-I-Stereo-mode
- */
-static void III_i_stereo(real xr_buf[2][SBLIMIT][SSLIMIT],int *scalefac,
-   struct gr_info_s *gr_info,int sfreq,int ms_stereo,int lsf)
-{
-      real (*xr)[SBLIMIT*SSLIMIT] = (real (*)[SBLIMIT*SSLIMIT] ) xr_buf;
-      const struct bandInfoStruct *bi = &bandInfo[sfreq];
-
-      const real *tab1,*tab2;
-
-      int tab;
-      static const real *tabs[3][2][2] = {
-         { { tan1_1,tan2_1 }     , { tan1_2,tan2_2 } },
-         { { pow1_1[0],pow2_1[0] } , { pow1_2[0],pow2_2[0] } } ,
-         { { pow1_1[1],pow2_1[1] } , { pow1_2[1],pow2_2[1] } }
-      };
-
-      tab = lsf + (gr_info->scalefac_compress & lsf);
-      tab1 = tabs[tab][ms_stereo][0];
-      tab2 = tabs[tab][ms_stereo][1];
-#if 0
-      if(lsf) {
-        int p = gr_info->scalefac_compress & 0x1;
-        if(ms_stereo) {
-          tab1 = pow1_2[p]; tab2 = pow2_2[p];
-        }
-        else {
-          tab1 = pow1_1[p]; tab2 = pow2_1[p];
-        }
-      }
-      else {
-        if(ms_stereo) {
-          tab1 = tan1_2; tab2 = tan2_2;
-        }
-        else {
-          tab1 = tan1_1; tab2 = tan2_1;
-        }
-      }
-#endif
-
-//      printf("III_i_st: tab1=%p tab2=%p tab=%d ms=%d  \n", tab1, tab2, tab, ms_stereo);
-
-      if (gr_info->block_type == 2) {
-         int lwin,do_l = 0;
-         if( gr_info->mixed_block_flag )
-           do_l = 1;
-
-         for (lwin=0;lwin<3;lwin++) { /* process each window */
-             /* get first band with zero values */
-           int is_p,sb,idx,sfb = gr_info->maxband[lwin];  /* sfb is minimal 3 for mixed mode */
-           if(sfb > 3)
-             do_l = 0;
-
-           for(;sfb<12;sfb++) {
-             is_p = scalefac[sfb*3+lwin-gr_info->mixed_block_flag]; /* scale: 0-15 */
-             if(is_p != 7) {
-               real t1,t2;
-               sb  = bi->shortDiff[sfb];
-               idx = bi->shortIdx[sfb] + lwin;
-               t1  = tab1[is_p]; t2 = tab2[is_p];
-               for (; sb > 0; sb--,idx+=3) {
-                 real v = xr[0][idx];
-                 xr[0][idx] = REAL_MUL(v, t1);
-                 xr[1][idx] = REAL_MUL(v, t2);
-               }
-             }
-           }
-
-#if 1
-/* in the original: copy 10 to 11 , here: copy 11 to 12
-maybe still wrong??? (copy 12 to 13?) */
-           is_p = scalefac[11*3+lwin-gr_info->mixed_block_flag]; /* scale: 0-15 */
-           sb   = bi->shortDiff[12];
-           idx  = bi->shortIdx[12] + lwin;
-#else
-           is_p = scalefac[10*3+lwin-gr_info->mixed_block_flag]; /* scale: 0-15 */
-           sb   = bi->shortDiff[11];
-           idx  = bi->shortIdx[11] + lwin;
-#endif
-           if(is_p != 7) {
-             real t1,t2;
-             t1 = tab1[is_p]; t2 = tab2[is_p];
-             for ( ; sb > 0; sb--,idx+=3 ) {
-               real v = xr[0][idx];
-               xr[0][idx] = REAL_MUL(v, t1);
-               xr[1][idx] = REAL_MUL(v, t2);
-             }
-           }
-         } /* end for(lwin; .. ; . ) */
-
-/* also check l-part, if ALL bands in the three windows are 'empty'
- * and mode = mixed_mode
- */
-         if (do_l) {
-           int sfb = gr_info->maxbandl;
-           int idx = bi->longIdx[sfb];
-
-           for ( ; sfb<8; sfb++ ) {
-             int sb = bi->longDiff[sfb];
-             int is_p = scalefac[sfb]; /* scale: 0-15 */
-             if(is_p != 7) {
-               real t1,t2;
-               t1 = tab1[is_p]; t2 = tab2[is_p];
-               for ( ; sb > 0; sb--,idx++) {
-                 real v = xr[0][idx];
-                 xr[0][idx] = REAL_MUL(v, t1);
-                 xr[1][idx] = REAL_MUL(v, t2);
-               }
-             }
-             else
-               idx += sb;
-           }
-         }
-      }
-      else { /* ((gr_info->block_type != 2)) */
-       int sfb = gr_info->maxbandl;
-       int is_p,idx = bi->longIdx[sfb];
-
-/* hmm ... maybe the maxbandl stuff for i-stereo is buggy? */
-       if(sfb <= 21) {
-        for ( ; sfb<21; sfb++) {
-          int sb = bi->longDiff[sfb];
-          is_p = scalefac[sfb]; /* scale: 0-15 */
-          if(is_p != 7) {
-            real t1,t2;
-            t1 = tab1[is_p]; t2 = tab2[is_p];
-            for ( ; sb > 0; sb--,idx++) {
-               real v = xr[0][idx];
-               xr[0][idx] = REAL_MUL(v, t1);
-               xr[1][idx] = REAL_MUL(v, t2);
-            }
-          }
-          else
-            idx += sb;
-        }
-
-        is_p = scalefac[20];
-        if(is_p != 7) {  /* copy l-band 20 to l-band 21 */
-          int sb;
-          real t1 = tab1[is_p],t2 = tab2[is_p];
-
-          for ( sb = bi->longDiff[21]; sb > 0; sb--,idx++ ) {
-            real v = xr[0][idx];
-            xr[0][idx] = REAL_MUL(v, t1);
-            xr[1][idx] = REAL_MUL(v, t2);
-          }
-        }
-       }        /* end: if(sfb <= 21) */
-      } /* ... */
-}
-
-static void III_antialias(real xr[SBLIMIT][SSLIMIT],struct gr_info_s *gr_info) {
-   int sblim;
-
-   if(gr_info->block_type == 2) {
-      if(!gr_info->mixed_block_flag)
-        return;
-      sblim = 1;
-   }
-   else {
-     sblim = gr_info->maxb-1;
-   }
-
-   /* 31 alias-reduction operations between each pair of sub-bands */
-   /* with 8 butterflies between each pair                         */
-
-   {
-     int sb;
-     real *xr1=(real *) xr[1];
-
-     for(sb=sblim;sb;sb--,xr1+=10) {
-       int ss;
-       real *cs=aa_cs,*ca=aa_ca;
-       real *xr2 = xr1;
-
-       for(ss=7;ss>=0;ss--) {    /* upper and lower butterfly inputs */
-         register real bu = *--xr2,bd = *xr1;
-         *xr2   = (bu * (*cs)   ) - (bd * (*ca)   );
-         *xr1++ = (bd * (*cs++) ) + (bu * (*ca++) );
-       }
-     }
-
-  }
-}
-
-#include "dct64.c"
-#include "dct36.c"
-#include "dct12.c"
-
-#include "decod386.c"
-
-/*
- * III_hybrid
- */
-
-static dct36_func_t dct36_func;
-
-static void III_hybrid(real fsIn[SBLIMIT][SSLIMIT],real tsOut[SSLIMIT][SBLIMIT],
-   int ch,struct gr_info_s *gr_info)
-{
-   real *tspnt = (real *) tsOut;
-   static real block[2][2][SBLIMIT*SSLIMIT] = { { { 0, } } };
-   static int blc[2]={0,0};
-   real *rawout1,*rawout2;
-   int bt;
-   int sb = 0;
-
-   {
-     int b = blc[ch];
-     rawout1=block[b][ch];
-     b=-b+1;
-     rawout2=block[b][ch];
-     blc[ch] = b;
-   }
-
-   if(gr_info->mixed_block_flag) {
-     sb = 2;
-     (*dct36_func)(fsIn[0],rawout1,rawout2,win[0],tspnt);
-     (*dct36_func)(fsIn[1],rawout1+18,rawout2+18,win1[0],tspnt+1);
-     rawout1 += 36; rawout2 += 36; tspnt += 2;
-   }
-
-   bt = gr_info->block_type;
-   if(bt == 2) {
-     for (; sb<gr_info->maxb; sb+=2,tspnt+=2,rawout1+=36,rawout2+=36) {
-       dct12(fsIn[sb],rawout1,rawout2,win[2],tspnt);
-       dct12(fsIn[sb+1],rawout1+18,rawout2+18,win1[2],tspnt+1);
-     }
-   }
-   else {
-     for (; sb<gr_info->maxb; sb+=2,tspnt+=2,rawout1+=36,rawout2+=36) {
-       (*dct36_func)(fsIn[sb],rawout1,rawout2,win[bt],tspnt);
-       (*dct36_func)(fsIn[sb+1],rawout1+18,rawout2+18,win1[bt],tspnt+1);
-     }
-   }
-
-   for(;sb<SBLIMIT;sb++,tspnt++) {
-     int i;
-     for(i=0;i<SSLIMIT;i++) {
-       tspnt[i*SBLIMIT] = *rawout1++;
-       *rawout2++ = 0.0;
-     }
-   }
-}
-
-/*
- * main layer3 handler
- */
-/* int do_layer3(struct frame *fr,int outmode,struct audio_info_struct *ai) */
-static int do_layer3(struct frame *fr,int single){
-  int gr, ch, ss,clip=0;
-  int scalefacs[2][39]; /* max 39 for short[13][3] mode, mixed: 38, long: 22 */
-  struct III_sideinfo sideinfo;
-  int stereo = fr->stereo;
-  int ms_stereo,i_stereo;
-  int sfreq = fr->sampling_frequency;
-  int stereo1,granules;
-
-//  if (fr->error_protection) getbits(16); /* skip crc */
-
-  if(stereo == 1) { /* stream is mono */
-    stereo1 = 1;
-    single = 0;
-  } else
-  if(single >= 0) /* stream is stereo, but force to mono */
-    stereo1 = 1;
-  else
-    stereo1 = 2;
-
-  if(fr->mode == MPG_MD_JOINT_STEREO) {
-    ms_stereo = (fr->mode_ext & 0x2)>>1;
-    i_stereo  = fr->mode_ext & 0x1;
-  } else
-    ms_stereo = i_stereo = 0;
-
-  if(!III_get_side_info(&sideinfo,stereo,ms_stereo,sfreq,single,fr->lsf))
-    return -1;
-
-  set_pointer(sideinfo.main_data_begin);
-
-  granules = (fr->lsf) ? 1 : 2;
-  for (gr=0;gr<granules;gr++){
-    DECLARE_ALIGNED(16, real, hybridIn[2][SBLIMIT][SSLIMIT]);
-    DECLARE_ALIGNED(16, real, hybridOut[2][SSLIMIT][SBLIMIT]);
-
-    { struct gr_info_s *gr_info = &(sideinfo.ch[0].gr[gr]);
-      int part2bits;
-      if(fr->lsf)
-        part2bits = III_get_scale_factors_2(scalefacs[0],gr_info,0);
-      else
-        part2bits = III_get_scale_factors_1(scalefacs[0],gr_info);
-      if(III_dequantize_sample(hybridIn[0], scalefacs[0],gr_info,sfreq,part2bits))
-        return clip;
-    }
-
-    if(stereo == 2) {
-      struct gr_info_s *gr_info = &(sideinfo.ch[1].gr[gr]);
-
-      int part2bits;
-      if(fr->lsf)
-        part2bits = III_get_scale_factors_2(scalefacs[1],gr_info,i_stereo);
-      else
-        part2bits = III_get_scale_factors_1(scalefacs[1],gr_info);
-
-      if(III_dequantize_sample(hybridIn[1],scalefacs[1],gr_info,sfreq,part2bits))
-          return clip;
-
-      if(ms_stereo) {
-        int i;
-        int maxb = sideinfo.ch[0].gr[gr].maxb;
-        if(sideinfo.ch[1].gr[gr].maxb > maxb)
-            maxb = sideinfo.ch[1].gr[gr].maxb;
-        for(i=0;i<SSLIMIT*maxb;i++) {
-          real tmp0 = ((real *)hybridIn[0])[i];
-          real tmp1 = ((real *)hybridIn[1])[i];
-          ((real *)hybridIn[0])[i] = tmp0 + tmp1;
-          ((real *)hybridIn[1])[i] = tmp0 - tmp1;
-        }
-      }
-
-      if(i_stereo)
-        III_i_stereo(hybridIn,scalefacs[1],gr_info,sfreq,ms_stereo,fr->lsf);
-
-      if(ms_stereo || i_stereo || (single == 3) ) {
-        if(gr_info->maxb > sideinfo.ch[0].gr[gr].maxb)
-          sideinfo.ch[0].gr[gr].maxb = gr_info->maxb;
-        else
-          gr_info->maxb = sideinfo.ch[0].gr[gr].maxb;
-      }
-
-      switch(single) {
-        case 3: {
-          register int i;
-          register real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1];
-          for(i=0;i<SSLIMIT*gr_info->maxb;i++,in0++)
-            *in0 = (*in0 + *in1++); /* *0.5 done by pow-scale */
-          break; }
-        case 1: {
-          register int i;
-          register real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1];
-          for(i=0;i<SSLIMIT*gr_info->maxb;i++)
-            *in0++ = *in1++;
-          break; }
-      }
-
-    }  // if(stereo == 2)
-
-    for(ch=0;ch<stereo1;ch++) {
-      struct gr_info_s *gr_info = &(sideinfo.ch[ch].gr[gr]);
-                  III_antialias(hybridIn[ch],gr_info);
-                  III_hybrid(hybridIn[ch], hybridOut[ch], ch,gr_info);
-    }
-
-    for(ss=0;ss<SSLIMIT;ss++) {
-      if(single >= 0) {
-                    clip += (fr->synth_mono)(hybridOut[0][ss],pcm_sample,&pcm_point);
-                } else {
-                  int p1 = pcm_point;
-                    clip += (fr->synth)(hybridOut[0][ss],0,pcm_sample,&p1);
-                    clip += (fr->synth)(hybridOut[1][ss],1,pcm_sample,&pcm_point);
-      }
-    }
-
-  }
-
-  return clip;
-}
--- a/mp3lib/mp3.h	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/* MP3 Player Library 2.0      (C) 1999 A'rpi/Astral&ESP-team  */
-
-#ifndef MPLAYER_MP3LIB_MP3_H
-#define MPLAYER_MP3LIB_MP3_H
-
-/* decoder level: */
-#ifdef CONFIG_FAKE_MONO
-void MP3_Init(int fakemono);
-#else
-void MP3_Init(void);
-#endif
-int MP3_Open(char *filename, int buffsize);
-void MP3_SeekFrame(int num, int dir);
-void MP3_SeekForward(int num);
-int MP3_PrintTAG(void);
-int MP3_DecodeFrame(unsigned char *hova, short single);
-int MP3_FillBuffers(void);
-void MP3_PrintHeader(void);
-void MP3_Close(void);
-/* public variables: */
-extern int MP3_eof;        // set if EOF reached
-extern int MP3_pause;      // lock playing
-/* informational: */
-extern int MP3_filesize;   // filesize
-extern int MP3_frames;     // current frame no
-extern int MP3_fpos;       // current file pos
-extern int MP3_framesize;  // current framesize in bytes (including header)
-extern int MP3_bitrate;    // current bitrate (kbits)
-extern int MP3_samplerate; // current sampling freq (Hz)
-extern int MP3_channels;
-extern int MP3_bps;
-
-/* player level: */
-int  MP3_OpenDevice(char *devname);  /* devname can be NULL for default) */
-void MP3_Play(void);
-void MP3_Stop(void);
-void MP3_CloseDevice(void);
-
-#endif /* MPLAYER_MP3LIB_MP3_H */
--- a/mp3lib/mpg123.h	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-/*
- * mpg123 defines
- * used source: musicout.h from mpegaudio package
- */
-
-#ifndef MPLAYER_MP3LIB_MPG123_H
-#define MPLAYER_MP3LIB_MPG123_H
-
-#include "config.h"
-
-#ifndef M_PI
-#define M_PI            3.141592653589793238462
-#endif
-#ifndef M_SQRT2
-#define M_SQRT2         1.414213562373095048802
-#endif
-#define REAL_IS_FLOAT
-#define NEW_DCT9
-
-#undef MPG123_REMOTE           /* Get rid of this stuff for Win32 */
-
-typedef float real;
-
-/*
-#  define real float
-#  define real long double
-#  define real double
-#include "audio.h"
-
-// #define              AUDIOBUFSIZE            4096
-*/
-
-#define         FALSE                   0
-#define         TRUE                    1
-
-#define         MAX_NAME_SIZE           81
-#define         SBLIMIT                 32
-#define         SCALE_BLOCK             12
-#define         SSLIMIT                 18
-
-#define         MPG_MD_STEREO           0
-#define         MPG_MD_JOINT_STEREO     1
-#define         MPG_MD_DUAL_CHANNEL     2
-#define         MPG_MD_MONO             3
-
-/* #define MAXOUTBURST 32768 */
-
-/* Pre Shift fo 16 to 8 bit converter table */
-#define AUSHIFT (3)
-
-struct al_table
-{
-  short bits;
-  short d;
-};
-
-struct frame {
-         struct al_table *alloc;
-         int (*synth)(real *,int,unsigned char *,int *);
-    int (*synth_mono)(real *,unsigned char *,int *);
-    int stereo;
-    int jsbound;
-    int single;
-    int II_sblimit;
-    int down_sample_sblimit;
-         int lsf;
-         int mpeg25;
-    int down_sample;
-         int header_change;
-    int lay;
-    int error_protection;
-    int bitrate_index;
-    int sampling_frequency;
-    int padding;
-    int extension;
-    int mode;
-         int mode_ext;
-    int copyright;
-         int original;
-         int emphasis;
-         int framesize; /* computed framesize */
-};
-
-
-struct gr_info_s {
-      int scfsi;
-      unsigned part2_3_length;
-      unsigned big_values;
-      unsigned scalefac_compress;
-      unsigned block_type;
-      unsigned mixed_block_flag;
-      unsigned table_select[3];
-      unsigned subblock_gain[3];
-      unsigned maxband[3];
-      unsigned maxbandl;
-      unsigned maxb;
-      unsigned region1start;
-      unsigned region2start;
-      unsigned preflag;
-      unsigned scalefac_scale;
-      unsigned count1table_select;
-      real *full_gain[3];
-      real *pow2gain;
-};
-
-struct III_sideinfo
-{
-  unsigned main_data_begin;
-  unsigned private_bits;
-  struct {
-         struct gr_info_s gr[2];
-  } ch[2];
-};
-
-extern real mp3lib_decwin[(512+32)];
-extern real *mp3lib_pnts[];
-
-int synth_1to1_pent( real *, int, short * );
-int synth_1to1_MMX( real *, int, short * );
-int synth_1to1_MMX_s(real *, int, short *, short *, int *);
-
-void dct36_3dnow(real *, real *, real *, real *, real *);
-void dct36_3dnowex(real *, real *, real *, real *, real *);
-void dct36_sse(real *, real *, real *, real *, real *);
-
-void dct64_MMX(short *, short *, real *);
-void dct64_MMX_3dnow(short *, short *, real *);
-void dct64_MMX_3dnowex(short *, short *, real *);
-void dct64_sse(short *, short *, real *);
-void dct64_altivec(real *, real *, real *);
-extern void (*dct64_MMX_func)(short *, short *, real *);
-
-void mp3lib_dct64(real *, real *, real *);
-
-typedef int (*synth_func_t)( real *,int,short * );
-typedef void (*dct36_func_t)(real *,real *,real *,real *,real *);
-
-#endif /* MPLAYER_MP3LIB_MPG123_H */
--- a/mp3lib/sr1.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,605 +0,0 @@
-// #define NEWBUFFERING
-//#define DEBUG_RESYNC
-
-/* 1 frame = 4608 byte PCM */
-
-#define LOCAL static inline
-
-//#undef LOCAL
-//#define LOCAL
-
-#include        <stdlib.h>
-#include        <stdio.h>
-#include        <string.h>
-#include        <math.h>
-
-#include "mpg123.h"
-#include "huffman.h"
-#include "mp3.h"
-#include "mpbswap.h"
-#include "cpudetect.h"
-#include "mp_msg.h"
-#include "libmpcodecs/ad_mp3lib.h"
-#include "libvo/fastmemcpy.h"
-
-#include "libavutil/common.h"
-
-#if ARCH_X86_64
-// 3DNow! and 3DNow!Ext routines don't compile under AMD64
-#undef HAVE_AMD3DNOW
-#undef HAVE_AMD3DNOWEXT
-#define HAVE_AMD3DNOW 0
-#define HAVE_AMD3DNOWEXT 0
-#endif
-
-//static FILE* mp3_file=NULL;
-
-int MP3_frames=0;
-int MP3_eof=0;
-int MP3_pause=0;
-int MP3_filesize=0;
-int MP3_fpos=0;      // current file position
-int MP3_framesize=0; // current framesize
-int MP3_bitrate=0;   // current bitrate
-int MP3_samplerate=0;  // current samplerate
-int MP3_resync=0;
-int MP3_channels=0;
-int MP3_bps=2;
-
-static long outscale = 32768;
-#include "tabinit.c"
-
-#if 1
-LOCAL int mp3_read(char *buf,int size){
-//  int len=fread(buf,1,size,mp3_file);
-  int len=mplayer_audio_read(buf,size);
-  if(len>0) MP3_fpos+=len;
-//  if(len!=size) MP3_eof=1;
-  return len;
-}
-#else
-int mp3_read(char *buf,int size);
-#endif
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-
-//void mp3_seek(int pos){
-//  fseek(mp3_file,pos,SEEK_SET);
-//  return MP3_fpos = ftell(mp3_file);
-//}
-
-/*       Frame reader           */
-
-#define MAXFRAMESIZE 1280
-#define MAXFRAMESIZE2 (512+MAXFRAMESIZE)
-
-static int fsizeold=0,ssize=0;
-static unsigned char bsspace[2][MAXFRAMESIZE2]; /* !!!!! */
-static unsigned char *bsbufold=bsspace[0]+512;
-static unsigned char *bsbuf=bsspace[1]+512;
-static int bsnum=0;
-
-static int bitindex;
-static unsigned char *wordpointer;
-static int bitsleft;
-
-static unsigned char *pcm_sample;   /* outbuffer address */
-static int pcm_point = 0;           /* outbuffer offset */
-
-static struct frame fr;
-
-static int tabsel_123[2][3][16] = {
-   { {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,},
-     {0,32,48,56, 64, 80, 96,112,128,160,192,224,256,320,384,},
-     {0,32,40,48, 56, 64, 80, 96,112,128,160,192,224,256,320,} },
-
-   { {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256,},
-     {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,},
-     {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,} }
-};
-
-static int freqs[9] = { 44100, 48000, 32000, 22050, 24000, 16000 , 11025 , 12000 , 8000 };
-
-LOCAL unsigned int getbits(short number_of_bits)
-{
-  unsigned rval;
-//  if(MP3_frames>=7741) printf("getbits: bits=%d  bitsleft=%d  wordptr=%x\n",number_of_bits,bitsleft,wordpointer);
-  if((bitsleft-=number_of_bits)<0) return 0;
-  if(!number_of_bits) return 0;
-         rval = wordpointer[0];
-         rval <<= 8;
-         rval |= wordpointer[1];
-         rval <<= 8;
-         rval |= wordpointer[2];
-         rval <<= bitindex;
-         rval &= 0xffffff;
-         bitindex += number_of_bits;
-         rval >>= (24-number_of_bits);
-         wordpointer += (bitindex>>3);
-         bitindex &= 7;
-  return rval;
-}
-
-
-LOCAL unsigned int getbits_fast(short number_of_bits)
-{
-  unsigned rval;
-//  if(MP3_frames>=7741) printf("getbits_fast: bits=%d  bitsleft=%d  wordptr=%x\n",number_of_bits,bitsleft,wordpointer);
-  if((bitsleft-=number_of_bits)<0) return 0;
-  if(!number_of_bits) return 0;
-#if ARCH_X86
-  rval = bswap_16(*((uint16_t *)wordpointer));
-#else
-  /*
-   * we may not be able to address unaligned 16-bit data on non-x86 cpus.
-   * Fall back to some portable code.
-   */
-  rval = wordpointer[0] << 8 | wordpointer[1];
-#endif
-         rval <<= bitindex;
-         rval &= 0xffff;
-         bitindex += number_of_bits;
-         rval >>= (16-number_of_bits);
-         wordpointer += (bitindex>>3);
-         bitindex &= 7;
-  return rval;
-}
-
-LOCAL unsigned int get1bit(void)
-{
-  unsigned char rval;
-//  if(MP3_frames>=7741) printf("get1bit: bitsleft=%d  wordptr=%x\n",bitsleft,wordpointer);
-  if((--bitsleft)<0) return 0;
-  rval = *wordpointer << bitindex;
-  bitindex++;
-  wordpointer += (bitindex>>3);
-  bitindex &= 7;
-  return (rval >> 7) & 1;
-}
-
-LOCAL void set_pointer(int backstep)
-{
-//  if(backstep!=512 && backstep>fsizeold)
-//    printf("\rWarning! backstep (%d>%d)                                         \n",backstep,fsizeold);
-  wordpointer = bsbuf + ssize - backstep;
-  if (backstep) fast_memcpy(wordpointer,bsbufold+fsizeold-backstep,backstep);
-  bitindex = 0;
-  bitsleft+=8*backstep;
-//  printf("Backstep %d  (bitsleft=%d)\n",backstep,bitsleft);
-}
-
-LOCAL int stream_head_read(unsigned char *hbuf,uint32_t *newhead){
-  if(mp3_read(hbuf,4) != 4) return FALSE;
-#if ARCH_X86
-  *newhead = bswap_32(*((uint32_t*)hbuf));
-#else
-  /*
-   * we may not be able to address unaligned 32-bit data on non-x86 cpus.
-   * Fall back to some portable code.
-   */
-  *newhead =
-      hbuf[0] << 24 |
-      hbuf[1] << 16 |
-      hbuf[2] <<  8 |
-      hbuf[3];
-#endif
-  return TRUE;
-}
-
-LOCAL int stream_head_shift(unsigned char *hbuf,uint32_t *head){
-  *((uint32_t*)hbuf) >>= 8;
-  if(mp3_read(hbuf+3,1) != 1) return 0;
-  *head <<= 8;
-  *head |= hbuf[3];
-  return 1;
-}
-
-/*
- * decode a header and write the information
- * into the frame structure
- */
-LOCAL int decode_header(struct frame *fr,uint32_t newhead){
-
-    // head_check:
-    if( (newhead & 0xffe00000) != 0xffe00000 ||
-        (newhead & 0x0000fc00) == 0x0000fc00) return FALSE;
-
-    fr->lay = 4-((newhead>>17)&3);
-//    if(fr->lay!=3) return FALSE;
-
-    if( newhead & (1<<20) ) {
-      fr->lsf = (newhead & (1<<19)) ? 0x0 : 0x1;
-      fr->mpeg25 = 0;
-    } else {
-      fr->lsf = 1;
-      fr->mpeg25 = 1;
-    }
-
-    if(fr->mpeg25)
-      fr->sampling_frequency = 6 + ((newhead>>10)&0x3);
-    else
-      fr->sampling_frequency = ((newhead>>10)&0x3) + (fr->lsf*3);
-
-    if(fr->sampling_frequency>8) return FALSE;  // valid: 0..8
-
-    fr->error_protection = ((newhead>>16)&0x1)^0x1;
-    fr->bitrate_index = ((newhead>>12)&0xf);
-    fr->padding   = ((newhead>>9)&0x1);
-    fr->extension = ((newhead>>8)&0x1);
-    fr->mode      = ((newhead>>6)&0x3);
-    fr->mode_ext  = ((newhead>>4)&0x3);
-    fr->copyright = ((newhead>>3)&0x1);
-    fr->original  = ((newhead>>2)&0x1);
-    fr->emphasis  = newhead & 0x3;
-
-    MP3_channels = fr->stereo    = (fr->mode == MPG_MD_MONO) ? 1 : 2;
-
-    if(!fr->bitrate_index){
-//      fprintf(stderr,"Free format not supported.\n");
-      return FALSE;
-    }
-
-switch(fr->lay){
-  case 2:
-    MP3_bitrate=tabsel_123[fr->lsf][1][fr->bitrate_index];
-    MP3_samplerate=freqs[fr->sampling_frequency];
-    fr->framesize = MP3_bitrate * 144000;
-    fr->framesize /= MP3_samplerate;
-    MP3_framesize=fr->framesize;
-    fr->framesize += fr->padding - 4;
-    break;
-  case 3:
-    if(fr->lsf)
-      ssize = (fr->stereo == 1) ? 9 : 17;
-    else
-      ssize = (fr->stereo == 1) ? 17 : 32;
-    if(fr->error_protection) ssize += 2;
-
-    MP3_bitrate=tabsel_123[fr->lsf][2][fr->bitrate_index];
-    MP3_samplerate=freqs[fr->sampling_frequency];
-    fr->framesize  = MP3_bitrate * 144000;
-    fr->framesize /= MP3_samplerate<<(fr->lsf);
-    MP3_framesize=fr->framesize;
-    fr->framesize += fr->padding - 4;
-    break;
-  case 1:
-//    fr->jsbound = (fr->mode == MPG_MD_JOINT_STEREO) ? (fr->mode_ext<<2)+4 : 32;
-    MP3_bitrate=tabsel_123[fr->lsf][0][fr->bitrate_index];
-    MP3_samplerate=freqs[fr->sampling_frequency];
-    fr->framesize  = MP3_bitrate * 12000;
-    fr->framesize /= MP3_samplerate;
-    MP3_framesize  = ((fr->framesize+fr->padding)<<2);
-    fr->framesize  = MP3_framesize-4;
-//    printf("framesize=%d\n",fr->framesize);
-    break;
-  default:
-    MP3_framesize=fr->framesize=0;
-//    fprintf(stderr,"Sorry, unsupported layer type.\n");
-    return 0;
-}
-    if(fr->framesize<=0 || fr->framesize>MAXFRAMESIZE) return FALSE;
-
-    return 1;
-}
-
-
-LOCAL int stream_read_frame_body(int size){
-
-  /* flip/init buffer for Layer 3 */
-  bsbufold = bsbuf;
-  bsbuf = bsspace[bsnum]+512;
-  bsnum = (bsnum + 1) & 1;
-
-  if( mp3_read(bsbuf,size) != size) return 0; // broken frame
-
-  bitindex = 0;
-  wordpointer = (unsigned char *) bsbuf;
-  bitsleft=8*size;
-
-  return 1;
-}
-
-
-/*****************************************************************
- * read next frame     return number of frames read.
- */
-LOCAL int read_frame(struct frame *fr){
-  uint32_t newhead;
-  union {
-    unsigned char buf[8];
-    unsigned long dummy; // for alignment
-  } hbuf;
-  int skipped,resyncpos;
-  int frames=0;
-
-resync:
-  skipped=MP3_fpos;
-  resyncpos=MP3_fpos;
-
-  set_pointer(512);
-  fsizeold=fr->framesize;       /* for Layer3 */
-  if(!stream_head_read(hbuf.buf,&newhead)) return 0;
-  if(!decode_header(fr,newhead)){
-    // invalid header! try to resync stream!
-#ifdef DEBUG_RESYNC
-    printf("ReSync: searching for a valid header...  (pos=%X)\n",MP3_fpos);
-#endif
-retry1:
-    while(!decode_header(fr,newhead)){
-      if(!stream_head_shift(hbuf.buf,&newhead)) return 0;
-    }
-    resyncpos=MP3_fpos-4;
-    // found valid header
-#ifdef DEBUG_RESYNC
-    printf("ReSync: found valid hdr at %X  fsize=%ld  ",resyncpos,fr->framesize);
-#endif
-    if(!stream_read_frame_body(fr->framesize)) return 0; // read body
-    set_pointer(512);
-    fsizeold=fr->framesize;       /* for Layer3 */
-    if(!stream_head_read(hbuf.buf,&newhead)) return 0;
-    if(!decode_header(fr,newhead)){
-      // invalid hdr! go back...
-#ifdef DEBUG_RESYNC
-      printf("INVALID\n");
-#endif
-//      mp3_seek(resyncpos+1);
-      if(!stream_head_read(hbuf.buf,&newhead)) return 0;
-      goto retry1;
-    }
-#ifdef DEBUG_RESYNC
-    printf("OK!\n");
-    ++frames;
-#endif
-  }
-
-  skipped=resyncpos-skipped;
-//  if(skipped && !MP3_resync) printf("\r%d bad bytes skipped  (resync at 0x%X)                          \n",skipped,resyncpos);
-
-//  printf("%8X [%08X] %d %d (%d)%s%s\n",MP3_fpos-4,newhead,fr->framesize,fr->mode,fr->mode_ext,fr->error_protection?" CRC":"",fr->padding?" PAD":"");
-
-  /* read main data into memory */
-  if(!stream_read_frame_body(fr->framesize)){
-    printf("\nBroken frame at 0x%X                                                  \n",resyncpos);
-    return 0;
-  }
-  ++frames;
-
-  if(MP3_resync){
-    MP3_resync=0;
-    if(frames==1) goto resync;
-  }
-
-  return frames;
-}
-
-static int _has_mmx = 0;  // used by layer2.c, layer3.c to pre-scale coeffs
-
-/******************************************************************************/
-/*           PUBLIC FUNCTIONS                  */
-/******************************************************************************/
-
-void (*dct64_MMX_func)(short *, short *, real *);
-
-#include "layer2.c"
-#include "layer3.c"
-#include "layer1.c"
-
-#include "cpudetect.h"
-
-// Init decoder tables.  Call first, once!
-#ifdef CONFIG_FAKE_MONO
-void MP3_Init(int fakemono){
-#else
-void MP3_Init(void){
-#endif
-
-//gCpuCaps.hasMMX=gCpuCaps.hasMMX2=gCpuCaps.hasSSE=0; // for testing!
-
-    _has_mmx = 0;
-    dct36_func = dct36;
-
-    make_decode_tables(outscale);
-
-#if HAVE_MMX
-    if (gCpuCaps.hasMMX)
-    {
-        _has_mmx = 1;
-        synth_func = synth_1to1_MMX;
-    }
-#endif
-
-#if HAVE_AMD3DNOWEXT
-    if (gCpuCaps.has3DNowExt)
-    {
-        dct36_func=dct36_3dnowex;
-        dct64_MMX_func= dct64_MMX_3dnowex;
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow!Ex optimized decore!\n");
-    }
-    else
-#endif
-#if HAVE_AMD3DNOW
-    if (gCpuCaps.has3DNow)
-    {
-        dct36_func = dct36_3dnow;
-        dct64_MMX_func = dct64_MMX_3dnow;
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow! optimized decore!\n");
-    }
-    else
-#endif
-#if HAVE_SSE
-    if (gCpuCaps.hasSSE)
-    {
-        dct64_MMX_func = dct64_sse;
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using SSE optimized decore!\n");
-    }
-    else
-#endif
-#if ARCH_X86_32
-#if HAVE_MMX
-    if (gCpuCaps.hasMMX)
-    {
-        dct64_MMX_func = dct64_MMX;
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using MMX optimized decore!\n");
-    }
-    else
-#endif
-    if (gCpuCaps.cpuType >= CPUTYPE_I586)
-    {
-        synth_func = synth_1to1_pent;
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using Pentium optimized decore!\n");
-    }
-    else
-#endif /* ARCH_X86_32 */
-#if HAVE_ALTIVEC
-    if (gCpuCaps.hasAltiVec)
-    {
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using AltiVec optimized decore!\n");
-    }
-    else
-#endif
-    {
-        synth_func = NULL; /* use default c version */
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using generic C decore!\n");
-    }
-
-#ifdef CONFIG_FAKE_MONO
-    if (fakemono == 1)
-        fr.synth=synth_1to1_l;
-    else if (fakemono == 2)
-        fr.synth=synth_1to1_r;
-    else
-        fr.synth=synth_1to1;
-#else
-    fr.synth=synth_1to1;
-#endif
-    fr.synth_mono=synth_1to1_mono2stereo;
-    fr.down_sample=0;
-    fr.down_sample_sblimit = SBLIMIT>>(fr.down_sample);
-
-    init_layer2();
-    init_layer3(fr.down_sample_sblimit);
-    mp_msg(MSGT_DECAUDIO,MSGL_V,"MP3lib: init layer2&3 finished, tables done\n");
-}
-
-#if 0
-
-void MP3_Close(void){
-  MP3_eof=1;
-  if(mp3_file) fclose(mp3_file);
-  mp3_file=NULL;
-}
-
-// Open a file, init buffers. Call once per file!
-int MP3_Open(char *filename,int buffsize){
-  MP3_eof=1;   // lock decoding
-  MP3_pause=1; // lock playing
-  if(mp3_file) MP3_Close(); // close prev. file
-  MP3_frames=0;
-
-  mp3_file=fopen(filename,"rb");
-//  printf("MP3_Open: file='%s'",filename);
-//  if(!mp3_file){ printf(" not found!\n"); return 0;} else printf("Ok!\n");
-  if(!mp3_file) return 0;
-
-  MP3_filesize=MP3_PrintTAG();
-  fseek(mp3_file,0,SEEK_SET);
-
-  MP3_InitBuffers(buffsize);
-  if(!tables_done_flag) MP3_Init();
-  MP3_eof=0;  // allow decoding
-  MP3_pause=0; // allow playing
-  return MP3_filesize;
-}
-
-#endif
-
-// Read & decode a single frame. Called by sound driver.
-int MP3_DecodeFrame(unsigned char *hova,short single){
-   pcm_sample = hova;
-   pcm_point = 0;
-   if(!read_frame(&fr)) return 0;
-   if(single==-2){ set_pointer(512); return 1; }
-   if(fr.error_protection) getbits(16); /* skip crc */
-   fr.single=single;
-   switch(fr.lay){
-     case 2: do_layer2(&fr,single);break;
-     case 3: do_layer3(&fr,single);break;
-     case 1: do_layer1(&fr,single);break;
-     default:
-         return 0;      // unsupported
-   }
-//   ++MP3_frames;
-   return pcm_point ? pcm_point : 2;
-}
-
-// Prints last frame header in ascii.
-void MP3_PrintHeader(void){
-        static char *modes[4] = { "Stereo", "Joint-Stereo", "Dual-Channel", "Single-Channel" };
-        static char *layers[4] = { "???" , "I", "II", "III" };
-
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"\rMPEG %s, Layer %s, %d Hz %d kbit %s, BPF: %d\n",
-                fr.mpeg25 ? "2.5" : (fr.lsf ? "2.0" : "1.0"),
-                layers[fr.lay],freqs[fr.sampling_frequency],
-    tabsel_123[fr.lsf][fr.lay-1][fr.bitrate_index],
-                modes[fr.mode],fr.framesize+4);
-        mp_msg(MSGT_DECAUDIO,MSGL_V,"Channels: %d, copyright: %s, original: %s, CRC: %s, emphasis: %d\n",
-                fr.stereo,fr.copyright?"Yes":"No",
-                fr.original?"Yes":"No",fr.error_protection?"Yes":"No",
-                fr.emphasis);
-}
-
-#if 0
-#include "genre.h"
-
-// Read & print ID3 TAG. Do not call when playing!!!  returns filesize.
-int MP3_PrintTAG(void){
-        struct id3tag {
-                char tag[3];
-                char title[30];
-                char artist[30];
-                char album[30];
-                char year[4];
-                char comment[30];
-                unsigned char genre;
-        };
-        struct id3tag tag;
-        char title[31]={0,};
-        char artist[31]={0,};
-        char album[31]={0,};
-        char year[5]={0,};
-        char comment[31]={0,};
-        char genre[31]={0,};
-  int fsize;
-  int ret;
-
-  fseek(mp3_file,0,SEEK_END);
-  fsize=ftell(mp3_file);
-  if(fseek(mp3_file,-128,SEEK_END)) return fsize;
-  ret=fread(&tag,128,1,mp3_file);
-  if(ret!=1 || tag.tag[0]!='T' || tag.tag[1]!='A' || tag.tag[2]!='G') return fsize;
-
-        strncpy(title,tag.title,30);
-        strncpy(artist,tag.artist,30);
-        strncpy(album,tag.album,30);
-        strncpy(year,tag.year,4);
-        strncpy(comment,tag.comment,30);
-
-        if ( tag.genre <= sizeof(genre_table)/sizeof(*genre_table) ) {
-                strncpy(genre, genre_table[tag.genre], 30);
-        } else {
-                strncpy(genre,"Unknown",30);
-        }
-
-//      printf("\n");
-        printf("Title  : %30s  Artist: %s\n",title,artist);
-        printf("Album  : %30s  Year  : %4s\n",album,year);
-        printf("Comment: %30s  Genre : %s\n",comment,genre);
-        printf("\n");
-  return fsize-128;
-}
-
-#endif
--- a/mp3lib/tabinit.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
- * Modified for use with MPlayer, for details see the changelog at
- * http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- */
-
-#include "mpg123.h"
-
-real mp3lib_decwin[(512+32)];
-static real cos64[32], cos32[16], cos16[8], cos8[4], cos4[2];
-real *mp3lib_pnts[]={ cos64,cos32,cos16,cos8,cos4 };
-
-static int intwinbase[] = {
-     0,    -1,    -1,    -1,    -1,    -1,    -1,    -2,    -2,    -2,
-    -2,    -3,    -3,    -4,    -4,    -5,    -5,    -6,    -7,    -7,
-    -8,    -9,   -10,   -11,   -13,   -14,   -16,   -17,   -19,   -21,
-   -24,   -26,   -29,   -31,   -35,   -38,   -41,   -45,   -49,   -53,
-   -58,   -63,   -68,   -73,   -79,   -85,   -91,   -97,  -104,  -111,
-  -117,  -125,  -132,  -139,  -147,  -154,  -161,  -169,  -176,  -183,
-  -190,  -196,  -202,  -208,  -213,  -218,  -222,  -225,  -227,  -228,
-  -228,  -227,  -224,  -221,  -215,  -208,  -200,  -189,  -177,  -163,
-  -146,  -127,  -106,   -83,   -57,   -29,     2,    36,    72,   111,
-   153,   197,   244,   294,   347,   401,   459,   519,   581,   645,
-   711,   779,   848,   919,   991,  1064,  1137,  1210,  1283,  1356,
-  1428,  1498,  1567,  1634,  1698,  1759,  1817,  1870,  1919,  1962,
-  2001,  2032,  2057,  2075,  2085,  2087,  2080,  2063,  2037,  2000,
-  1952,  1893,  1822,  1739,  1644,  1535,  1414,  1280,  1131,   970,
-   794,   605,   402,   185,   -45,  -288,  -545,  -814, -1095, -1388,
- -1692, -2006, -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
- -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, -7910, -8209,
- -8491, -8755, -8998, -9219, -9416, -9585, -9727, -9838, -9916, -9959,
- -9966, -9935, -9863, -9750, -9592, -9389, -9139, -8840, -8492, -8092,
- -7640, -7134, -6574, -5959, -5288, -4561, -3776, -2935, -2037, -1082,
-   -70,   998,  2122,  3300,  4533,  5818,  7154,  8540,  9975, 11455,
- 12980, 14548, 16155, 17799, 19478, 21189, 22929, 24694, 26482, 28289,
- 30112, 31947, 33791, 35640, 37489, 39336, 41176, 43006, 44821, 46617,
- 48390, 50137, 51853, 53534, 55178, 56778, 58333, 59838, 61289, 62684,
- 64019, 65290, 66494, 67629, 68692, 69679, 70590, 71420, 72169, 72835,
- 73415, 73908, 74313, 74630, 74856, 74992, 75038 };
-
-static void make_decode_tables(long scaleval)
-{
-  int i,j,k,kr,divv;
-  real *table,*costab;
-
-
-  for(i=0;i<5;i++)
-  {
-    kr=0x10>>i; divv=0x40>>i;
-    costab = mp3lib_pnts[i];
-    for(k=0;k<kr;k++) costab[k] = 1.0 / (2.0 * cos(M_PI * ((double) k * 2.0 + 1.0) / (double) divv));
-  }
-
-  table = mp3lib_decwin;
-  scaleval = -scaleval;
-  for(i=0,j=0;i<256;i++,j++,table+=32)
-  {
-    if(table < mp3lib_decwin+512+16)
-      table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval;
-    if(i % 32 == 31)
-      table -= 1023;
-    if(i % 64 == 63)
-      scaleval = - scaleval;
-  }
-
-  for( /* i=256 */ ;i<512;i++,j--,table+=32)
-  {
-    if(table < mp3lib_decwin+512+16)
-      table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval;
-    if(i % 32 == 31)
-      table -= 1023;
-    if(i % 64 == 63)
-      scaleval = - scaleval;
-  }
-}
--- a/mp3lib/test.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer 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.
- *
- * MPlayer 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 MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#define DUMP_PCM
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <unistd.h>
-#include <sys/time.h>
-
-#include "config.h"
-#include "libmpcodecs/ad_mp3lib.h"
-#include "mp3lib/mp3.h"
-#include "cpudetect.h"
-
-static inline unsigned int GetTimer(void){
-  struct timeval tv;
-  struct timezone tz;
-//  float s;
-  gettimeofday(&tv,&tz);
-//  s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec;
-  return tv.tv_sec * 1000000 + tv.tv_usec;
-}
-
-static FILE* mp3file=NULL;
-
-int mplayer_audio_read(char *buf, int size)
-{
-    return fread(buf,1,size,mp3file);
-}
-
-#define BUFFLEN 4608
-static unsigned char buffer[BUFFLEN];
-
-int main(int argc,char* argv[]){
-  int len;
-  int total=0;
-  unsigned int time1;
-  float length;
-#ifdef DUMP_PCM
-  FILE *f=NULL;
-  f=fopen("test.pcm","wb");
-#endif
-
-  mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb");
-  if(!mp3file){  printf("file not found\n");  exit(1); }
-
-  GetCpuCaps(&gCpuCaps);
-
-  // MPEG Audio:
-#ifdef CONFIG_FAKE_MONO
-  MP3_Init(0);
-#else
-  MP3_Init();
-#endif
-  MP3_samplerate=MP3_channels=0;
-
-  time1=GetTimer();
-  while((len=MP3_DecodeFrame(buffer,-1))>0 && total<2000000){
-      total+=len;
-      // play it
-#ifdef DUMP_PCM
-      fwrite(buffer,len,1,f);
-#endif
-      //putchar('.');fflush(stdout);
-  }
-  time1=GetTimer()-time1;
-  length=(float)total/(float)(MP3_samplerate*MP3_channels*2);
-  printf("\nDecoding time: %8.6f\n",(float)time1*0.000001f);
-  printf("Uncompressed size: %d bytes  (%8.3f secs)\n",total,length);
-  printf("CPU usage at normal playback: %5.2f %%\n",time1*0.0001f/length);
-
-  fclose(mp3file);
-  return 0;
-}
--- a/mp3lib/test2.c	Sun Oct 21 11:14:13 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer 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.
- *
- * MPlayer 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 MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <unistd.h>
-#include <sys/soundcard.h>
-
-#include "config.h"
-#include "libmpcodecs/ad_mp3lib.h"
-#include "mp3lib/mp3.h"
-#include "cpudetect.h"
-
-static FILE* mp3file=NULL;
-
-int mplayer_audio_read(char *buf, int size)
-{
-    return fread(buf,1,size,mp3file);
-}
-
-#define BUFFLEN 4608
-static unsigned char buffer[BUFFLEN];
-
-
-int main(int argc,char* argv[]){
-  int len;
-  int total=0;
-  int r;
-  int audio_fd;
-
-  mp3file=fopen((argc>1)?argv[1]:"test.mp3","rb");
-  if(!mp3file){  printf("file not found\n");  exit(1); }
-
-  GetCpuCaps(&gCpuCaps);
-
-  // MPEG Audio:
-#ifdef CONFIG_FAKE_MONO
-  MP3_Init(0);
-#else
-  MP3_Init();
-#endif
-  MP3_samplerate=MP3_channels=0;
-  len=MP3_DecodeFrame(buffer,-1);
-
-  audio_fd=open("/dev/dsp", O_WRONLY);
-  if(audio_fd<0){  printf("Can't open audio device\n");exit(1); }
-  r=AFMT_S16_LE;ioctl (audio_fd, SNDCTL_DSP_SETFMT, &r);
-  r=MP3_channels-1;ioctl (audio_fd, SNDCTL_DSP_STEREO, &r);
-  r=MP3_samplerate;ioctl (audio_fd, SNDCTL_DSP_SPEED, &r);
-  printf("audio_setup: using %d Hz samplerate (requested: %d)\n",r,MP3_samplerate);
-
-  while(1){
-      int len2;
-      if(len==0) len=MP3_DecodeFrame(buffer,-1);
-      if(len<=0) break; // EOF
-
-      // play it
-      len2=write(audio_fd,buffer,len);
-      if(len2<0) break; // ERROR?
-      len-=len2; total+=len2;
-      if(len>0){
-          // this shouldn't happen...
-          memcpy(buffer,buffer+len2,len);
-          putchar('!');fflush(stdout);
-      }
-  }
-
-  fclose(mp3file);
-  return 0;
-}