summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libmad/fixed.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libmad/fixed.h')
-rw-r--r--lib/rbcodec/codecs/libmad/fixed.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libmad/fixed.h b/lib/rbcodec/codecs/libmad/fixed.h
index 6015684644..1b4d29dad6 100644
--- a/lib/rbcodec/codecs/libmad/fixed.h
+++ b/lib/rbcodec/codecs/libmad/fixed.h
@@ -292,6 +292,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
292 292
293# elif defined(FPM_MIPS) 293# elif defined(FPM_MIPS)
294 294
295#if GCCNUM >= 404
296typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
297# define MAD_F_MLX(hi, lo, x, y) \
298do { \
299 u64_di_t __ll = (u64_di_t) (x) * (y); \
300 hi = __ll >> 32; \
301 lo = __ll; \
302}while(0)
303#else
295/* 304/*
296 * This MIPS version is fast and accurate; the disposition of the least 305 * This MIPS version is fast and accurate; the disposition of the least
297 * significant bit depends on OPT_ACCURACY via mad_f_scale64(). 306 * significant bit depends on OPT_ACCURACY via mad_f_scale64().
@@ -322,6 +331,8 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
322# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo)) 331# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
323# endif 332# endif
324 333
334#endif /* GCCNUM */
335
325# if defined(OPT_SPEED) 336# if defined(OPT_SPEED)
326# define mad_f_scale64(hi, lo) \ 337# define mad_f_scale64(hi, lo) \
327 ((mad_fixed_t) ((hi) << (32 - MAD_F_SCALEBITS))) 338 ((mad_fixed_t) ((hi) << (32 - MAD_F_SCALEBITS)))