Loading lib_com/fft_fx.c +67 −2 Original line number Diff line number Diff line Loading @@ -1758,6 +1758,31 @@ static void cft1st_16fx( Flag Overflow = 0; #endif #ifdef BASOP_NOGLOB x0r = add_o(a[0],a[2], &Overflow); x0i = add_o(a[1],a[3], &Overflow); x1r = sub_o(a[0],a[2], &Overflow); x1i = sub_o(a[1],a[3], &Overflow); x2r = add_o(a[4],a[6], &Overflow); x2i = add_o(a[5],a[7], &Overflow); x3r = sub_o(a[4],a[6], &Overflow); x3i = sub_o(a[5],a[7], &Overflow); a[0] = add_o(x0r,x2r, &Overflow); move16(); a[1] = add_o(x0i,x2i, &Overflow); move16(); a[4] = sub_o(x0r,x2r, &Overflow); move16(); a[5] = sub_o(x0i,x2i, &Overflow); move16(); a[2] = sub_o(x1r,x3i, &Overflow); move16(); a[3] = add_o(x1i,x3r, &Overflow); move16(); a[6] = add_o(x1r,x3i, &Overflow); move16(); a[7] = sub_o(x1i,x3r, &Overflow); #else x0r = add(a[0],a[2]); x0i = add(a[1],a[3]); x1r = sub(a[0],a[2]); Loading @@ -1782,10 +1807,32 @@ static void cft1st_16fx( move16(); a[7] = sub(x1i,x3r); move16(); #endif wk1r = w[2]; move32(); #ifdef BASOP_NOGLOB x0r = add_o(a[8],a[10], &Overflow); x0i = add_o(a[9],a[11], &Overflow); x1r = sub_o(a[8],a[10], &Overflow); x1i = sub_o(a[9],a[11], &Overflow); x2r = add_o(a[12],a[14], &Overflow); x2i = add_o(a[13],a[15], &Overflow); x3r = sub_o(a[12],a[14], &Overflow); x3i = sub_o(a[13],a[15], &Overflow); a[8] = add_o(x0r,x2r, &Overflow); move16(); a[9] = add_o(x0i,x2i, &Overflow); move16(); a[12] = sub_o(x2i,x0i, &Overflow); move16(); a[13] = sub_o(x0r,x2r, &Overflow); move16(); x0r = sub_o(x1r,x3i, &Overflow); x0i = add_o(x1i,x3r, &Overflow); tmp = sub_o(x0r,x0i, &Overflow); #else x0r = add(a[8],a[10]); x0i = add(a[9],a[11]); x1r = sub(a[8],a[10]); Loading @@ -1806,8 +1853,26 @@ static void cft1st_16fx( x0r = sub(x1r,x3i); x0i = add(x1i,x3r); tmp = sub(x0r,x0i); #endif L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ #ifdef BASOP_NOGLOB a[10] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /*Q(Qx+Q_edct) */ tmp = add_o(x0r,x0i, &Overflow); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[11] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /* Q(Qx+Q_edct) */ x0r = add_o(x3i,x1r, &Overflow); x0i = sub_o(x3r,x1i, &Overflow); tmp = sub_o(x0i,x0r, &Overflow); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[14] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /*Q(Qx+Q_edct) */ tmp = add_o(x0i,x0r, &Overflow); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[15] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /*Q(Qx+Q_edct) */ #else a[10] = round_fx(L_shl(L_tmp,1)); /*Q(Qx+Q_edct) */ tmp = add(x0r,x0i); Loading @@ -1823,7 +1888,7 @@ static void cft1st_16fx( tmp = add(x0i,x0r); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[15] = round_fx(L_shl(L_tmp,1)); /*Q(Qx+Q_edct) */ #endif k1 = 0; move16(); Loading lib_com/phase_dispersion.c +7 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,9 @@ void phase_dispersion( Word32 x32[2*L_SUBFR]; Word16 *code_real, *code_imag; const Word16 *h_real, *h_imag; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif move16(); Loading Loading @@ -162,7 +164,11 @@ void phase_dispersion( scale2 = getScaleFactor32(x32, L_subfr); FOR (i=0; i<L_subfr; i++) { #ifdef BASOP_NOGLOB code[i] = round_fx_o(L_shl_o(x32[i], scale2, &Overflow), &Overflow); #else code[i] = round_fx(L_shl(x32[i], scale2)); #endif } j = sub(j, scale2); } Loading Loading
lib_com/fft_fx.c +67 −2 Original line number Diff line number Diff line Loading @@ -1758,6 +1758,31 @@ static void cft1st_16fx( Flag Overflow = 0; #endif #ifdef BASOP_NOGLOB x0r = add_o(a[0],a[2], &Overflow); x0i = add_o(a[1],a[3], &Overflow); x1r = sub_o(a[0],a[2], &Overflow); x1i = sub_o(a[1],a[3], &Overflow); x2r = add_o(a[4],a[6], &Overflow); x2i = add_o(a[5],a[7], &Overflow); x3r = sub_o(a[4],a[6], &Overflow); x3i = sub_o(a[5],a[7], &Overflow); a[0] = add_o(x0r,x2r, &Overflow); move16(); a[1] = add_o(x0i,x2i, &Overflow); move16(); a[4] = sub_o(x0r,x2r, &Overflow); move16(); a[5] = sub_o(x0i,x2i, &Overflow); move16(); a[2] = sub_o(x1r,x3i, &Overflow); move16(); a[3] = add_o(x1i,x3r, &Overflow); move16(); a[6] = add_o(x1r,x3i, &Overflow); move16(); a[7] = sub_o(x1i,x3r, &Overflow); #else x0r = add(a[0],a[2]); x0i = add(a[1],a[3]); x1r = sub(a[0],a[2]); Loading @@ -1782,10 +1807,32 @@ static void cft1st_16fx( move16(); a[7] = sub(x1i,x3r); move16(); #endif wk1r = w[2]; move32(); #ifdef BASOP_NOGLOB x0r = add_o(a[8],a[10], &Overflow); x0i = add_o(a[9],a[11], &Overflow); x1r = sub_o(a[8],a[10], &Overflow); x1i = sub_o(a[9],a[11], &Overflow); x2r = add_o(a[12],a[14], &Overflow); x2i = add_o(a[13],a[15], &Overflow); x3r = sub_o(a[12],a[14], &Overflow); x3i = sub_o(a[13],a[15], &Overflow); a[8] = add_o(x0r,x2r, &Overflow); move16(); a[9] = add_o(x0i,x2i, &Overflow); move16(); a[12] = sub_o(x2i,x0i, &Overflow); move16(); a[13] = sub_o(x0r,x2r, &Overflow); move16(); x0r = sub_o(x1r,x3i, &Overflow); x0i = add_o(x1i,x3r, &Overflow); tmp = sub_o(x0r,x0i, &Overflow); #else x0r = add(a[8],a[10]); x0i = add(a[9],a[11]); x1r = sub(a[8],a[10]); Loading @@ -1806,8 +1853,26 @@ static void cft1st_16fx( x0r = sub(x1r,x3i); x0i = add(x1i,x3r); tmp = sub(x0r,x0i); #endif L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ #ifdef BASOP_NOGLOB a[10] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /*Q(Qx+Q_edct) */ tmp = add_o(x0r,x0i, &Overflow); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[11] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /* Q(Qx+Q_edct) */ x0r = add_o(x3i,x1r, &Overflow); x0i = sub_o(x3r,x1i, &Overflow); tmp = sub_o(x0i,x0r, &Overflow); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[14] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /*Q(Qx+Q_edct) */ tmp = add_o(x0i,x0r, &Overflow); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[15] = round_fx_o(L_shl_o(L_tmp,1, &Overflow), &Overflow); /*Q(Qx+Q_edct) */ #else a[10] = round_fx(L_shl(L_tmp,1)); /*Q(Qx+Q_edct) */ tmp = add(x0r,x0i); Loading @@ -1823,7 +1888,7 @@ static void cft1st_16fx( tmp = add(x0i,x0r); L_tmp = Mult_32_16(wk1r,tmp); /*Q(15+Qx+Q_edct) */ a[15] = round_fx(L_shl(L_tmp,1)); /*Q(Qx+Q_edct) */ #endif k1 = 0; move16(); Loading
lib_com/phase_dispersion.c +7 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,9 @@ void phase_dispersion( Word32 x32[2*L_SUBFR]; Word16 *code_real, *code_imag; const Word16 *h_real, *h_imag; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif move16(); Loading Loading @@ -162,7 +164,11 @@ void phase_dispersion( scale2 = getScaleFactor32(x32, L_subfr); FOR (i=0; i<L_subfr; i++) { #ifdef BASOP_NOGLOB code[i] = round_fx_o(L_shl_o(x32[i], scale2, &Overflow), &Overflow); #else code[i] = round_fx(L_shl(x32[i], scale2)); #endif } j = sub(j, scale2); } Loading