Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1186 | savelij | 1 | cpu mcf5470 |
2 | |||
3 | page 0 |
||
4 | |||
5 | proc macro name |
||
6 | section name |
||
7 | public name |
||
8 | name equ * |
||
9 | endm |
||
10 | |||
11 | endp macro |
||
12 | rts |
||
13 | endsection |
||
14 | endm |
||
15 | |||
16 | proc fft16 |
||
17 | move.l (a2),d4 |
||
18 | move.w (a0),d2 |
||
19 | move.w (a1),d7 |
||
20 | msacl.w d0.u,d4.u,<<,(a3),d5,ACC0 |
||
21 | msac.w d0.l,d5.u,<<,ACC0 |
||
22 | mac.w d0.l,d4.u,<<,ACC1 |
||
23 | msac.w d0.u,d5.u,<<,ACC1 |
||
24 | movclr.l ACC0,d3 |
||
25 | movclr.l ACC1,d1 |
||
26 | add.l d2,d3 |
||
27 | move.w d3,(a0)+ |
||
28 | add.l d2,d2 |
||
29 | sub.l d3,d2 |
||
30 | move.w d2,(a2)+ |
||
31 | add.l d7,d1 |
||
32 | move.w d1,(a1)+ |
||
33 | add.l d7,d7 |
||
34 | sub.l d1,d7 |
||
35 | move.w d7,(a3)+ |
||
36 | endp |
||
37 | |||
38 | proc fft32 |
||
39 | movem.l (a4),d0-d1 |
||
40 | next_bf: adda.l d6,a4 |
||
41 | move.l (a0),d2 |
||
42 | move.l (a2),d4 |
||
43 | move.l d2,ACC0 |
||
44 | msacl.l d0,d4,(a3),d5,ACC0 |
||
45 | msacl.l d1,d5,(a1),a6,ACC0 |
||
46 | macl.l d1,d4,4(a4),d1,ACC1 |
||
47 | msacl.l d0,d5,(a4),d0,ACC1 |
||
48 | movclr.l ACC0,d3 |
||
49 | move.l d3,(a0)+ |
||
50 | add.l d2,d2 |
||
51 | sub.l d3,d2 |
||
52 | movclr.l ACC1,d3 |
||
53 | add.l a6,d3 |
||
54 | move.l d2,(a2)+ |
||
55 | move.l d3,(a1)+ |
||
56 | adda.l a6,a6 |
||
57 | suba.l d3,a6 |
||
58 | move.l a6,(a3)+ |
||
59 | adda.l d6,a4 |
||
60 | move.l (a0),d2 |
||
61 | move.l (a2),d4 |
||
62 | move.l d2,ACC0 |
||
63 | msacl.l d0,d4,(a3),d5,ACC0 |
||
64 | msacl.l d1,d5,(a1),a6,ACC0 |
||
65 | macl.l d1,d4,4(a4),d1,ACC1 |
||
66 | msacl.l d0,d5,(a4),d0,ACC1 |
||
67 | movclr.l ACC0,d3 |
||
68 | move.l d3,(a0)+ |
||
69 | add.l d2,d2 |
||
70 | sub.l d3,d2 |
||
71 | movclr.l ACC1,d3 |
||
72 | add.l a6,d3 |
||
73 | move.l d2,(a2)+ |
||
74 | move.l d3,(a1)+ |
||
75 | adda.l a6,a6 |
||
76 | suba.l d3,a6 |
||
77 | move.l a6,(a3)+ |
||
78 | addq.l #4,d7 |
||
79 | cmp.l a5,d7 |
||
80 | bcs.b next_bf |
||
81 | endp |
||
82 | |||
83 | proc fir16 |
||
84 | move.w (a3)+, d4 |
||
85 | move.w d2, d3 |
||
86 | move.w -(a4), d2 |
||
87 | swap d2 |
||
88 | swap d3 |
||
89 | mac.w d4.l, d2.u, <<, ACC0 |
||
90 | mac.w d4.l, d2.l, <<, ACC1 |
||
91 | mac.w d4.l, d3.l, <<, ACC3 |
||
92 | subq #1, d5 |
||
93 | beq .EndIn1E |
||
94 | .ForIn1EBeg: move.l (a3)+, d4 |
||
95 | .ForIn1E: subq.l #2, d5 |
||
96 | blt .EndIn1E |
||
97 | mac.w d4.u, d2.u, <<, ACC1 |
||
98 | mac.w d4.u, d2.l, <<, ACC2 |
||
99 | mac.w d4.u, d3.u, <<, ACC3 |
||
100 | move.l d2, d3 |
||
101 | move.l -(a4), d2 |
||
102 | mac.w d4.u, d2.l, <<, ACC0 |
||
103 | mac.w d4.l, d2.u, <<, ACC0 |
||
104 | mac.w d4.l, d2.l, <<, ACC1 |
||
105 | mac.w d4.l, d3.u, <<, ACC2 |
||
106 | mac.w d4.l, d3.l, <<, (a3)+, d4, ACC3 |
||
107 | bra .ForIn1E |
||
108 | .EndIn1E: |
||
109 | endp |
||
110 | |||
111 | proc fir32 |
||
112 | .FORk4: cmp.l d0, d2 |
||
113 | bhi .ENDFORk4 |
||
114 | mac.l a6,d5,<<,-(a1),d5,ACC3 |
||
115 | mac.l a6,d4,<<,ACC2 |
||
116 | mac.l a6,d3,<<,ACC1 |
||
117 | mac.l a6,d6,<<,(a3)+,a6,ACC0 |
||
118 | mac.l a6,d4,<<,-(a1),d4,ACC3 |
||
119 | mac.l a6,d3,<<,ACC2 |
||
120 | mac.l a6,d6,<<,ACC1 |
||
121 | mac.l a6,d5,<<,(a3)+,a6,ACC0 |
||
122 | mac.l a6,d3,<<,-(a1),d3,ACC3 |
||
123 | mac.l a6,d6,<<,ACC2 |
||
124 | mac.l a6,d5,<<,ACC1 |
||
125 | mac.l a6,d4,<<,(a3)+,a6,ACC0 |
||
126 | mac.l a6,d6,<<,-(a1),d6,ACC3 |
||
127 | mac.l a6,d5,<<,ACC2 |
||
128 | mac.l a6,d4,<<,ACC1 |
||
129 | mac.l a6,d3,<<,(a3)+,a6,ACC0 |
||
130 | addq.l #4,d2 |
||
131 | bra .FORk4 |
||
132 | .ENDFORk4: |
||
133 | endp |
||
134 | |||
135 | proc iir16 |
||
136 | move.l (a3)+, d4 |
||
137 | move.w d2, d3 |
||
138 | move.w -(a4), d2 |
||
139 | swap d2 |
||
140 | swap d3 |
||
141 | move.w d0, d1 ; was mac.w in source? |
||
142 | move.w -(a5), d0 ; was mac.w in source? |
||
143 | swap d0 |
||
144 | swap d1 |
||
145 | mac.w d4.u, d2.u, <<, ACC0 |
||
146 | mac.w d4.u, d2.l, <<, ACC1 |
||
147 | mac.w d4.u, d2.u, <<, ACC2 |
||
148 | mac.w d4.u, d3.l, <<, ACC3 |
||
149 | mac.w d4.l, d2.u, <<, ACC0 |
||
150 | mac.w d4.l, d2.l, <<, ACC1 |
||
151 | mac.w d4.l, d2.u, <<, ACC2 |
||
152 | mac.w d4.l, d3.l, <<, ACC3 |
||
153 | subq #1, d5 |
||
154 | beq .EndIn1E |
||
155 | .ForIn1E: |
||
156 | subq.l #2, d5 |
||
157 | blt .EndIn1E |
||
158 | mac.w d4.u, d2.u, <<, ACC1 |
||
159 | mac.w d4.u, d2.l, <<, ACC2 |
||
160 | mac.w d4.u, d3.u, <<, ACC3 |
||
161 | mac.w d4.l, d0.u, <<, ACC1 |
||
162 | mac.w d4.l, d0.l, <<, ACC2 |
||
163 | mac.w d4.l, d1.u, <<, ACC3 |
||
164 | move.l d2, d3 |
||
165 | move.l -(a4), d2 |
||
166 | move.l d0, d1 |
||
167 | move.l -(a5), d0 |
||
168 | mac.w d4.u, d2.l, <<, ACC0 |
||
169 | mac.w d4.l, d0.l, <<, ACC0 |
||
170 | move.l (a3)+, d4 |
||
171 | mac.w d4.u, d2.u, <<, ACC0 |
||
172 | mac.w d4.u, d2.l, <<, ACC1 |
||
173 | mac.w d4.u, d3.l, <<, ACC2 |
||
174 | mac.w d4.u, d3.l, <<, ACC3 |
||
175 | mac.w d4.l, d0.u, <<, ACC0 |
||
176 | mac.w d4.l, d0.l, <<, ACC1 |
||
177 | mac.w d4.l, d1.u, <<, ACC2 |
||
178 | mac.w d4.l, d1.l, <<, (a3)+, d4, ACC3 |
||
179 | bra .ForIn1E |
||
180 | .EndIn1E: |
||
181 | endp |
||
182 | |||
183 | proc iir32 |
||
184 | .FORk1: |
||
185 | cmp.l d1,d2 |
||
186 | bcc .ENDFORk1 |
||
187 | adda.l #4,a3 |
||
188 | mac.l a6,d5,<<,-(a1),d5,ACC3 |
||
189 | mac.l a6,d4,<<,ACC2 |
||
190 | mac.l a6,d3,<<,ACC1 |
||
191 | mac.l a6,d6,<<,(a3)+,a6,ACC0 |
||
192 | adda.l #4,a3 |
||
193 | mac.l a6,d4,<<,-(a1),d4,ACC3 |
||
194 | mac.l a6,d3,<<,ACC2 |
||
195 | mac.l a6,d6,<<,ACC1 |
||
196 | mac.l a6,d5,<<,(a3)+,a6,ACC0 |
||
197 | add.l #4,a3 |
||
198 | mac.l a6,d3,<<,-(a1),d3,ACC3 |
||
199 | mac.l a6,d6,<<,ACC2 |
||
200 | mac.l a6,d5,<<,ACC1 |
||
201 | mac.l a6,d4,<<,(a3)+,a6,ACC0 |
||
202 | adda.l #4,a3 |
||
203 | mac.l a6,d6,<<,-(a1),d6,ACC3 |
||
204 | mac.l a6,d5,<<,ACC2 |
||
205 | mac.l a6,d4,<<,ACC1 |
||
206 | mac.l a6,d3,<<,(a3)+,a6,ACC0 |
||
207 | addq.l #4,d3 |
||
208 | bra .FORk1 |
||
209 | .ENDFORk1 |
||
210 | endp |