Commit 4b025984 authored by vaclav's avatar vaclav
Browse files

fix in DoRTFTn_fx()

parent 6a1be233
Loading
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
@@ -32,11 +32,6 @@ static void fft64_16fx( Word16 *x, Word16 *y, const Word16 *Idx );
static void fft5_32_16fx( Word16 *zRe, Word16 *zIm, const Word16 *Idx );
static void cdftForw_16fx( Word16 n, Word16 *a, const Word16 *ip, const Word32 *w );

#include "math_32.h"

/*-----------------------------------------------------------------*
 * Local functions
 *-----------------------------------------------------------------*/
static void cdftForw_fx( Word16 n, Word32 *a, const Word16 *ip, const Word16 *w );
static void bitrv2_SR_fx( Word16 n, const Word16 *ip, Word32 *a );
static void cftfsub_fx( Word16 n, Word32 *a, const Word16 *w );
@@ -44,6 +39,12 @@ static void cft1st_fx( Word16 n, Word32 *a, const Word16 *w );
static void cftmdl_fx( Word16 n, Word16 l, Word32 *a, const Word16 *w );


/*-----------------------------------------------------------------*
 * DoRTFTn_fx()
 *
 *
 *-----------------------------------------------------------------*/

void DoRTFTn_fx(
    Word32 *x, /* i/o : real part of input and output data Q(x)      */
    Word32 *y, /* i/o : imaginary part of input and output data Q(x) */
@@ -113,7 +114,22 @@ void DoRTFTn_fx(
    }

#ifdef OPTIMIZE_FFT_STACK
    IF( spec == NULL )
    IF( spec != NULL )
    {
        spec[0].re = z[0];
        move16();
        spec[0].im = z[1];
        move16();
        pt = &z[2];
        FOR( i = n - 1; i >= 1; i-- )
        {
            spec[i].re = *pt++;
            move16();
            spec[i].im = *pt++;
            move16();
        }
    }
    ELSE
    {
#endif
        x[0] = z[0];