diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2004-03-04 23:19:57 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2004-03-04 23:19:57 +0000 |
commit | e2d2baece9230967d8f1d5fdb5259515c2fb03c7 (patch) | |
tree | 0e0e0470e22eb21a60cf694cbaad199aadc5e242 /src/libmad/fixed.h | |
parent | 7be523c015a18ffcfbdd9511e225609729b25a0c (diff) |
update to 0.15.1 of libmad and libid3tag
git-svn-id: https://svn.musicpd.org/mpd/trunk@196 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/libmad/fixed.h')
-rw-r--r-- | src/libmad/fixed.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/libmad/fixed.h b/src/libmad/fixed.h index 241e7f95e..4b58abf56 100644 --- a/src/libmad/fixed.h +++ b/src/libmad/fixed.h @@ -1,6 +1,6 @@ /* * libmad - MPEG audio decoder library - * Copyright (C) 2000-2003 Underbit Technologies, Inc. + * Copyright (C) 2000-2004 Underbit Technologies, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: fixed.h,v 1.1 2003/08/14 03:57:13 shank Exp $ + * $Id: fixed.h,v 1.38 2004/02/17 02:02:03 rob Exp $ */ # ifndef LIBMAD_FIXED_H @@ -208,7 +208,22 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y) : "cc"); \ __result; \ }) -# else +# elif defined(OPT_INTEL) +/* + * Alternate Intel scaling that may or may not perform better. + */ +# define mad_f_scale64(hi, lo) \ + ({ mad_fixed_t __result; \ + asm ("shrl %3,%1\n\t" \ + "shll %4,%2\n\t" \ + "orl %2,%1" \ + : "=rm" (__result) \ + : "0" (lo), "r" (hi), \ + "I" (MAD_F_SCALEBITS), "I" (32 - MAD_F_SCALEBITS) \ + : "cc"); \ + __result; \ + }) +# else # define mad_f_scale64(hi, lo) \ ({ mad_fixed_t __result; \ asm ("shrdl %3,%2,%1" \ |