Top secrets sources NedoPC pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

                cpu             mcf5307         ; MAC but no EMAC

                page            0

proc            macro           name
                section         name
                public          name
name            equ             *
                endm

endp            macro
                rts
                endsection
                endm

                proc            fft16
                and.l           #$ffff0000,d2
                move.l          d2,ACC
                msacl.w         d0.u,d4.u,<<,(a3),d5
                msacl.w         d0.l,d5.u,<<,(a1),d7
                move.l          ACC,d3
                asr.l           d1,d3
                move.w          d3,(a0)+
                add.l           d2,d2
                asr.l           d1,d2
                sub.l           d3,d2
                move.w          d2,(a2)+
                and.l           #$ffff0000,d7
                move.l          d7,ACC
                macl.w          d0.l,d4.u,<<,(a0),d2
                msacl.w         d0.u,d5.u,<<,(a2),d4
                move.l          ACC,d3
                asr.l           d1,d3
                move.w          d3,(a1)+
                add.l           d7,d7
                asr.l           d1,d7
                sub.l           d3,d7
                move.w          d7,(a3)+
                endp

                proc            fft32
                movem.l         (a4),d0-d1
next_bf:        move.l          d2,ACC
                msacl.l         d0,d4,(a3),d5
                msacl.l         d1,d5,(a1),a6
                move.l          ACC,d3
                move.l          d3,(a0)+
                add.l           d2,d2
                sub.l           d3,d2
                move.l          d2,(a2)+
                move.l          a6,ACC
                macl.l          d1,d4,(a0),d2
                msacl.l         d0,d5,(a2),d4
                move.l          ACC,d3
                move.l          d3,(a1)+
                adda.l          a6,a6
                suba.l          d3,a6
                move.l          a6,(a3)+
                adda.l          d6,a4
                addq.l          #4,d7
                cmp.l           a5,d7
                bcs.b           next_bf
                endp

                proc            fir16
.FORk3:         cmp.l           d0,d2
                bcc             .ENDFORk3
                move.l          -(a1),d3
                mac.w           d3.u,d4.l,<<
                mac.w           d3.l,d4.u,<<,(a3)+,d4
                addq.l          #2,d2
                bra             .FORk3
.ENDFORk3:
                endp

                proc            fir32
.FORk3:         move.l          -(a1),d3
                mac.w           d3.u,d4.u,<<,(a3)+,d4,ACC0
                addq.l          #1,d2
                cmp.l           d0, d2
                bcs             .FORk3
                endp

                proc            iir16
.FORk3:         cmp.l           d0,d2
                bcc             .ENDFORk3
                move.l          -(a1),d3
                mac.w           d3.l,d4.u,<<
                move.l          -(a5),d3                ; was mac.w in original?
                mac.w           d3.l,d4.l,<<,(a3)+,d4
                addq.l          #1,d2
                bra             .FORk3
.ENDFORk3:
                endp

                proc            iir32
.FORk1:         cmp.l           d1,d2
                bcc             .ENDFORk1
                move.l          -(a1),d3
                mac.w           d3.u,d4.u,<<,(a3)+,d4,ACC0
                move.l          -(a5),d3                ; was mac.w in original?
                mac.w           d3.u,d4.u,<<,(a3)+,d4,ACC0
                addq.l          #1,d2
                bra             .FORk1
.ENDFORk1:
                endp