mirror of
https://github.com/xiph/opus.git
synced 2025-06-06 23:40:50 +00:00
fixed-point: overflow debugging now works again.
This commit is contained in:
parent
8600f69f79
commit
2aaa0fee93
3 changed files with 10 additions and 5 deletions
|
@ -61,12 +61,15 @@ struct kiss_fft_state{
|
||||||
#define TRIG_UPSCALE 65536
|
#define TRIG_UPSCALE 65536
|
||||||
#define TWID_MAX 2147483647
|
#define TWID_MAX 2147483647
|
||||||
#endif
|
#endif
|
||||||
|
#define EXT32(a) (a)
|
||||||
|
|
||||||
#else /* DOUBLE_PRECISION */
|
#else /* DOUBLE_PRECISION */
|
||||||
|
|
||||||
# define FRACBITS 15
|
# define FRACBITS 15
|
||||||
# define SAMPPROD celt_int32_t
|
# define SAMPPROD celt_int32_t
|
||||||
#define SAMP_MAX 32767
|
#define SAMP_MAX 32767
|
||||||
#define TRIG_UPSCALE 1
|
#define TRIG_UPSCALE 1
|
||||||
|
#define EXT32(a) EXTEND32(a)
|
||||||
|
|
||||||
#endif /* !DOUBLE_PRECISION */
|
#endif /* !DOUBLE_PRECISION */
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 2003 Jean-Marc Valin */
|
/* Copyright (C) 2003-2008 Jean-Marc Valin */
|
||||||
/**
|
/**
|
||||||
@file fixed_debug.h
|
@file fixed_debug.h
|
||||||
@brief Fixed-point operations with debugging
|
@brief Fixed-point operations with debugging
|
||||||
|
@ -171,6 +171,8 @@ static inline int SHL32(long long a, int shift)
|
||||||
#define SATURATE16(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
|
#define SATURATE16(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
|
||||||
#define SATURATE32(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
|
#define SATURATE32(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
|
||||||
|
|
||||||
|
#define ROUND(x,a) (EXTRACT16(PSHR32((x),(a))))
|
||||||
|
|
||||||
//#define SHR(a,shift) ((a) >> (shift))
|
//#define SHR(a,shift) ((a) >> (shift))
|
||||||
//#define SHL(a,shift) ((a) << (shift))
|
//#define SHL(a,shift) ((a) << (shift))
|
||||||
|
|
||||||
|
|
|
@ -109,11 +109,11 @@ void kiss_fftr(kiss_fftr_cfg st,const kiss_fft_scalar *timedata,kiss_fft_scalar
|
||||||
|
|
||||||
for ( k=1;k <= ncfft/2 ; ++k )
|
for ( k=1;k <= ncfft/2 ; ++k )
|
||||||
{
|
{
|
||||||
f2k.r = SHR32(SUB32(EXTEND32(freqdata[2*k]), EXTEND32(freqdata[2*(ncfft-k)])),1);
|
f2k.r = SHR32(SUB32(EXT32(freqdata[2*k]), EXT32(freqdata[2*(ncfft-k)])),1);
|
||||||
f2k.i = PSHR32(ADD32(EXTEND32(freqdata[2*k+1]), EXTEND32(freqdata[2*(ncfft-k)+1])),1);
|
f2k.i = PSHR32(ADD32(EXT32(freqdata[2*k+1]), EXT32(freqdata[2*(ncfft-k)+1])),1);
|
||||||
|
|
||||||
f1k.r = SHR32(ADD32(EXTEND32(freqdata[2*k]), EXTEND32(freqdata[2*(ncfft-k)])),1);
|
f1k.r = SHR32(ADD32(EXT32(freqdata[2*k]), EXT32(freqdata[2*(ncfft-k)])),1);
|
||||||
f1k.i = SHR32(SUB32(EXTEND32(freqdata[2*k+1]), EXTEND32(freqdata[2*(ncfft-k)+1])),1);
|
f1k.i = SHR32(SUB32(EXT32(freqdata[2*k+1]), EXT32(freqdata[2*(ncfft-k)+1])),1);
|
||||||
|
|
||||||
C_MULC( tw , f2k , st->super_twiddles[k]);
|
C_MULC( tw , f2k , st->super_twiddles[k]);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue