diff options
Diffstat (limited to 'apps/eq_cf.S')
-rw-r--r-- | apps/eq_cf.S | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/apps/eq_cf.S b/apps/eq_cf.S index f2440c2bdd..c9458cdc77 100644 --- a/apps/eq_cf.S +++ b/apps/eq_cf.S | |||
@@ -40,14 +40,13 @@ eq_filter: | |||
40 | where y[] is output and x[] is input. This is performed out of order | 40 | where y[] is output and x[] is input. This is performed out of order |
41 | to do parallel load of input value. | 41 | to do parallel load of input value. |
42 | */ | 42 | */ |
43 | mac.l %a1, %d0, (%a6), %d4, %acc0 | acc = b1*x[i - 1], x[i] -> d4 | 43 | mac.l %a2, %d1, %acc0 | acc = b2*x[i - 2] |
44 | mac.l %a2, %d1, %acc0 | acc += b2*x[i - 2] | 44 | move.l %d0, %d1 | fix input history |
45 | mac.l %a0, %d4, %acc0 | acc += b0*x[i] | 45 | mac.l %a1, %d0, (%a6), %d0, %acc0 | acc += b1*x[i - 1], x[i] -> d0 |
46 | mac.l %a0, %d0, %acc0 | acc += b0*x[i] | ||
46 | mac.l %a3, %d2, %acc0 | acc += a1*y[i - 1] | 47 | mac.l %a3, %d2, %acc0 | acc += a1*y[i - 1] |
47 | mac.l %a4, %d3, %acc0 | acc += a2*y[i - 2] | 48 | mac.l %a4, %d3, %acc0 | acc += a2*y[i - 2] |
48 | move.l %d0, %d1 | fix history | 49 | move.l %d2, %d3 | fix output history |
49 | move.l %d4, %d0 | ||
50 | move.l %d2, %d3 | ||
51 | movclr.l %acc0, %d2 | fetch and write result | 50 | movclr.l %acc0, %d2 | fetch and write result |
52 | asl.l %d7, %d2 | restore fixed point format | 51 | asl.l %d7, %d2 | restore fixed point format |
53 | move.l %d2, (%a6)+ | save result | 52 | move.l %d2, (%a6)+ | save result |