diff options
author | Thom Johansen <thomj@rockbox.org> | 2007-10-24 23:30:55 +0000 |
---|---|---|
committer | Thom Johansen <thomj@rockbox.org> | 2007-10-24 23:30:55 +0000 |
commit | f6b358dfa0bda1132666fcdbb5bb69305c1235fb (patch) | |
tree | f029af0efb51e368f0944cf375a081148f4e3c22 /apps | |
parent | 4c913fced3096d298b2a66bdb8be485d7a07207e (diff) | |
download | rockbox-f6b358dfa0bda1132666fcdbb5bb69305c1235fb.tar.gz rockbox-f6b358dfa0bda1132666fcdbb5bb69305c1235fb.zip |
Negate _after_ output so we don't negate the whole output signal.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15294 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/codecs/libspeex/filters_cf.S | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/apps/codecs/libspeex/filters_cf.S b/apps/codecs/libspeex/filters_cf.S index dd650844c8..48804eb571 100644 --- a/apps/codecs/libspeex/filters_cf.S +++ b/apps/codecs/libspeex/filters_cf.S | |||
@@ -31,6 +31,7 @@ | |||
31 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 31 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
32 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 32 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
33 | */ | 33 | */ |
34 | |||
34 | .text | 35 | .text |
35 | /* void iir_mem16(const spx_word16_t *x, const spx_coef_t *den, spx_word16_t *y, int N, int ord, spx_mem_t *mem, char *stack) */ | 36 | /* void iir_mem16(const spx_word16_t *x, const spx_coef_t *den, spx_word16_t *y, int N, int ord, spx_mem_t *mem, char *stack) */ |
36 | .global iir_mem16 | 37 | .global iir_mem16 |
@@ -70,8 +71,8 @@ iir_mem16: | |||
70 | move.l %a6, %d0 | Clip high | 71 | move.l %a6, %d0 | Clip high |
71 | 2: | 72 | 2: |
72 | sub.l %d1, %d0 | Bias clipped result back to [-32767..32767] | 73 | sub.l %d1, %d0 | Bias clipped result back to [-32767..32767] |
73 | neg.l %d0 | msac.w is bugged in gas, do this for now | ||
74 | move.w %d0, (%a5)+ | Write result to y[i] | 74 | move.w %d0, (%a5)+ | Write result to y[i] |
75 | neg.l %d0 | msac.w is bugged in gas, do this for now | ||
75 | move.l (%a4)+, %a6 | Fetch den[0] and den[1] | 76 | move.l (%a4)+, %a6 | Fetch den[0] and den[1] |
76 | mac.w %a6u, %d0l, %acc0 | 77 | mac.w %a6u, %d0l, %acc0 |
77 | mac.w %a6l, %d0l, (%a4)+, %a6, %acc1 | 78 | mac.w %a6l, %d0l, (%a4)+, %a6, %acc1 |
@@ -126,8 +127,8 @@ iir_mem16: | |||
126 | move.l %a6, %d0 | Clip high | 127 | move.l %a6, %d0 | Clip high |
127 | 2: | 128 | 2: |
128 | sub.l %d1, %d0 | Bias clipped result back to [-32767..32767] | 129 | sub.l %d1, %d0 | Bias clipped result back to [-32767..32767] |
129 | neg.l %d0 | msac.w is bugged in gas, do this for now | ||
130 | move.w %d0, (%a5)+ | Write result to y[i] | 130 | move.w %d0, (%a5)+ | Write result to y[i] |
131 | neg.l %d0 | msac.w is bugged in gas, do this for now | ||
131 | move.l (%a4)+, %a6 | Fetch den[0] and den[1] | 132 | move.l (%a4)+, %a6 | Fetch den[0] and den[1] |
132 | mac.w %a6u, %d0l, %acc0 | 133 | mac.w %a6u, %d0l, %acc0 |
133 | mac.w %a6l, %d0l, (%a4)+, %a6, %acc1 | 134 | mac.w %a6l, %d0l, (%a4)+, %a6, %acc1 |