Subversion Repositories pentevo

Rev

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