From: Josh Coalson Date: Mon, 14 May 2001 21:31:50 +0000 (+0000) Subject: don't try and outsmart the compiler on constant multplies X-Git-Tag: 1.2.0~2401 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b787e2afebee5f979083e7e7b552c08e6a6b57f2;p=platform%2Fupstream%2Fflac.git don't try and outsmart the compiler on constant multplies --- diff --git a/src/libFLAC/fixed.c b/src/libFLAC/fixed.c index 4018735..7506368 100644 --- a/src/libFLAC/fixed.c +++ b/src/libFLAC/fixed.c @@ -154,6 +154,7 @@ void FLAC__fixed_compute_residual(const int32 data[], unsigned data_len, unsigne { unsigned i; +#if 0 switch(order) { case 0: for(i = 0; i < data_len; i++) { @@ -186,6 +187,32 @@ void FLAC__fixed_compute_residual(const int32 data[], unsigned data_len, unsigne default: assert(0); } +#else + switch(order) { + case 0: + for(i = 0; i < data_len; i++) + residual[i] = data[i]; + break; + case 1: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - data[i-1]; + break; + case 2: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - 2*data[i-1] + data[i-2]; + break; + case 3: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - 3*data[i-1] + 3*data[i-2] - data[i-3]; + break; + case 4: + for(i = 0; i < data_len; i++) + residual[i] = data[i] - 4*data[i-1] + 6*data[i-2] - 4*data[i-3] + data[i-4]; + break; + default: + assert(0); + } +#endif } void FLAC__fixed_restore_signal(const int32 residual[], unsigned data_len, unsigned order, int32 data[])