Index: third_party/opus/src/celt/kiss_fft.c |
diff --git a/third_party/opus/src/celt/kiss_fft.c b/third_party/opus/src/celt/kiss_fft.c |
index 1f8fd05321a40204a3a66ad55818e464aac9a99c..83775165d866fb01d58bca71fcf563cf9db8c8eb 100644 |
--- a/third_party/opus/src/celt/kiss_fft.c |
+++ b/third_party/opus/src/celt/kiss_fft.c |
@@ -82,8 +82,8 @@ static void kf_bfly2( |
C_SUB( Fout2[0] , Fout[0] , t ); |
C_ADDTO( Fout[0] , t ); |
- t.r = S_MUL(Fout2[1].r+Fout2[1].i, tw); |
- t.i = S_MUL(Fout2[1].i-Fout2[1].r, tw); |
+ t.r = S_MUL(ADD32_ovflw(Fout2[1].r, Fout2[1].i), tw); |
+ t.i = S_MUL(SUB32_ovflw(Fout2[1].i, Fout2[1].r), tw); |
C_SUB( Fout2[1] , Fout[1] , t ); |
C_ADDTO( Fout[1] , t ); |
@@ -92,8 +92,8 @@ static void kf_bfly2( |
C_SUB( Fout2[2] , Fout[2] , t ); |
C_ADDTO( Fout[2] , t ); |
- t.r = S_MUL(Fout2[3].i-Fout2[3].r, tw); |
- t.i = S_MUL(-Fout2[3].i-Fout2[3].r, tw); |
+ t.r = S_MUL(SUB32_ovflw(Fout2[3].i, Fout2[3].r), tw); |
+ t.i = S_MUL(NEG32_ovflw(ADD32_ovflw(Fout2[3].i, Fout2[3].r)), tw); |
C_SUB( Fout2[3] , Fout[3] , t ); |
C_ADDTO( Fout[3] , t ); |
Fout += 8; |
@@ -126,10 +126,10 @@ static void kf_bfly4( |
C_ADDTO( *Fout , scratch1 ); |
C_SUB( scratch1 , Fout[1] , Fout[3] ); |
- Fout[1].r = scratch0.r + scratch1.i; |
- Fout[1].i = scratch0.i - scratch1.r; |
- Fout[3].r = scratch0.r - scratch1.i; |
- Fout[3].i = scratch0.i + scratch1.r; |
+ Fout[1].r = ADD32_ovflw(scratch0.r, scratch1.i); |
+ Fout[1].i = SUB32_ovflw(scratch0.i, scratch1.r); |
+ Fout[3].r = SUB32_ovflw(scratch0.r, scratch1.i); |
+ Fout[3].i = ADD32_ovflw(scratch0.i, scratch1.r); |
Fout+=4; |
} |
} else { |
@@ -160,10 +160,10 @@ static void kf_bfly4( |
tw3 += fstride*3; |
C_ADDTO( *Fout , scratch[3] ); |
- Fout[m].r = scratch[5].r + scratch[4].i; |
- Fout[m].i = scratch[5].i - scratch[4].r; |
- Fout[m3].r = scratch[5].r - scratch[4].i; |
- Fout[m3].i = scratch[5].i + scratch[4].r; |
+ Fout[m].r = ADD32_ovflw(scratch[5].r, scratch[4].i); |
+ Fout[m].i = SUB32_ovflw(scratch[5].i, scratch[4].r); |
+ Fout[m3].r = SUB32_ovflw(scratch[5].r, scratch[4].i); |
+ Fout[m3].i = ADD32_ovflw(scratch[5].i, scratch[4].r); |
++Fout; |
} |
} |
@@ -212,18 +212,18 @@ static void kf_bfly3( |
tw1 += fstride; |
tw2 += fstride*2; |
- Fout[m].r = Fout->r - HALF_OF(scratch[3].r); |
- Fout[m].i = Fout->i - HALF_OF(scratch[3].i); |
+ Fout[m].r = SUB32_ovflw(Fout->r, HALF_OF(scratch[3].r)); |
+ Fout[m].i = SUB32_ovflw(Fout->i, HALF_OF(scratch[3].i)); |
C_MULBYSCALAR( scratch[0] , epi3.i ); |
C_ADDTO(*Fout,scratch[3]); |
- Fout[m2].r = Fout[m].r + scratch[0].i; |
- Fout[m2].i = Fout[m].i - scratch[0].r; |
+ Fout[m2].r = ADD32_ovflw(Fout[m].r, scratch[0].i); |
+ Fout[m2].i = SUB32_ovflw(Fout[m].i, scratch[0].r); |
- Fout[m].r -= scratch[0].i; |
- Fout[m].i += scratch[0].r; |
+ Fout[m].r = SUB32_ovflw(Fout[m].r, scratch[0].i); |
+ Fout[m].i = ADD32_ovflw(Fout[m].i, scratch[0].r); |
++Fout; |
} while(--k); |
@@ -282,22 +282,22 @@ static void kf_bfly5( |
C_ADD( scratch[8],scratch[2],scratch[3]); |
C_SUB( scratch[9],scratch[2],scratch[3]); |
- Fout0->r += scratch[7].r + scratch[8].r; |
- Fout0->i += scratch[7].i + scratch[8].i; |
+ Fout0->r = ADD32_ovflw(Fout0->r, ADD32_ovflw(scratch[7].r, scratch[8].r)); |
+ Fout0->i = ADD32_ovflw(Fout0->i, ADD32_ovflw(scratch[7].i, scratch[8].i)); |
- scratch[5].r = scratch[0].r + S_MUL(scratch[7].r,ya.r) + S_MUL(scratch[8].r,yb.r); |
- scratch[5].i = scratch[0].i + S_MUL(scratch[7].i,ya.r) + S_MUL(scratch[8].i,yb.r); |
+ scratch[5].r = ADD32_ovflw(scratch[0].r, ADD32_ovflw(S_MUL(scratch[7].r,ya.r), S_MUL(scratch[8].r,yb.r))); |
+ scratch[5].i = ADD32_ovflw(scratch[0].i, ADD32_ovflw(S_MUL(scratch[7].i,ya.r), S_MUL(scratch[8].i,yb.r))); |
- scratch[6].r = S_MUL(scratch[10].i,ya.i) + S_MUL(scratch[9].i,yb.i); |
- scratch[6].i = -S_MUL(scratch[10].r,ya.i) - S_MUL(scratch[9].r,yb.i); |
+ scratch[6].r = ADD32_ovflw(S_MUL(scratch[10].i,ya.i), S_MUL(scratch[9].i,yb.i)); |
+ scratch[6].i = NEG32_ovflw(ADD32_ovflw(S_MUL(scratch[10].r,ya.i), S_MUL(scratch[9].r,yb.i))); |
C_SUB(*Fout1,scratch[5],scratch[6]); |
C_ADD(*Fout4,scratch[5],scratch[6]); |
- scratch[11].r = scratch[0].r + S_MUL(scratch[7].r,yb.r) + S_MUL(scratch[8].r,ya.r); |
- scratch[11].i = scratch[0].i + S_MUL(scratch[7].i,yb.r) + S_MUL(scratch[8].i,ya.r); |
- scratch[12].r = - S_MUL(scratch[10].i,yb.i) + S_MUL(scratch[9].i,ya.i); |
- scratch[12].i = S_MUL(scratch[10].r,yb.i) - S_MUL(scratch[9].r,ya.i); |
+ scratch[11].r = ADD32_ovflw(scratch[0].r, ADD32_ovflw(S_MUL(scratch[7].r,yb.r), S_MUL(scratch[8].r,ya.r))); |
+ scratch[11].i = ADD32_ovflw(scratch[0].i, ADD32_ovflw(S_MUL(scratch[7].i,yb.r), S_MUL(scratch[8].i,ya.r))); |
+ scratch[12].r = SUB32_ovflw(S_MUL(scratch[9].i,ya.i), S_MUL(scratch[10].i,yb.i)); |
+ scratch[12].i = SUB32_ovflw(S_MUL(scratch[10].r,yb.i), S_MUL(scratch[9].r,ya.i)); |
C_ADD(*Fout2,scratch[11],scratch[12]); |
C_SUB(*Fout3,scratch[11],scratch[12]); |