Top secrets sources NedoPC pentevo

Rev

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

                cpu             mcf5470

                page            0

proc            macro           name
                section         name
                public          name
name            equ             *
                endm

endp            macro
                rts
                endsection
                endm

                proc            fft16
                move.l          (a2),d4
                move.w          (a0),d2
                move.w          (a1),d7
                msacl.w         d0.u,d4.u,<<,(a3),d5,ACC0
                msac.w          d0.l,d5.u,<<,ACC0
                mac.w           d0.l,d4.u,<<,ACC1
                msac.w          d0.u,d5.u,<<,ACC1
                movclr.l        ACC0,d3
                movclr.l        ACC1,d1
                add.l           d2,d3
                move.w          d3,(a0)+
                add.l           d2,d2
                sub.l           d3,d2
                move.w          d2,(a2)+
                add.l           d7,d1
                move.w          d1,(a1)+
                add.l           d7,d7
                sub.l           d1,d7
                move.w          d7,(a3)+
                endp

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

                proc            fir16
                move.w          (a3)+, d4
                move.w          d2, d3
                move.w          -(a4), d2
                swap            d2
                swap            d3
                mac.w           d4.l, d2.u, <<, ACC0
                mac.w           d4.l, d2.l, <<, ACC1
                mac.w           d4.l, d3.l, <<, ACC3
                subq            #1, d5
                beq             .EndIn1E
.ForIn1EBeg:    move.l          (a3)+, d4
.ForIn1E:       subq.l          #2, d5
                blt             .EndIn1E
                mac.w           d4.u, d2.u, <<, ACC1
                mac.w           d4.u, d2.l, <<, ACC2
                mac.w           d4.u, d3.u, <<, ACC3
                move.l          d2, d3
                move.l          -(a4), d2
                mac.w           d4.u, d2.l, <<, ACC0
                mac.w           d4.l, d2.u, <<, ACC0
                mac.w           d4.l, d2.l, <<, ACC1
                mac.w           d4.l, d3.u, <<, ACC2
                mac.w           d4.l, d3.l, <<, (a3)+, d4, ACC3
                bra .ForIn1E
.EndIn1E:
                endp

                proc            fir32
.FORk4:         cmp.l           d0, d2
                bhi             .ENDFORk4
                mac.l           a6,d5,<<,-(a1),d5,ACC3
                mac.l           a6,d4,<<,ACC2
                mac.l           a6,d3,<<,ACC1
                mac.l           a6,d6,<<,(a3)+,a6,ACC0
                mac.l           a6,d4,<<,-(a1),d4,ACC3
                mac.l           a6,d3,<<,ACC2
                mac.l           a6,d6,<<,ACC1
                mac.l           a6,d5,<<,(a3)+,a6,ACC0
                mac.l           a6,d3,<<,-(a1),d3,ACC3
                mac.l           a6,d6,<<,ACC2
                mac.l           a6,d5,<<,ACC1
                mac.l           a6,d4,<<,(a3)+,a6,ACC0
                mac.l           a6,d6,<<,-(a1),d6,ACC3
                mac.l           a6,d5,<<,ACC2
                mac.l           a6,d4,<<,ACC1
                mac.l           a6,d3,<<,(a3)+,a6,ACC0
                addq.l          #4,d2
                bra             .FORk4
.ENDFORk4:
                endp

                proc            iir16
                move.l          (a3)+, d4
                move.w          d2, d3
                move.w          -(a4), d2
                swap            d2
                swap            d3
                move.w          d0, d1                  ; was mac.w in source?
                move.w          -(a5), d0               ; was mac.w in source?
                swap            d0
                swap            d1
                mac.w           d4.u, d2.u, <<, ACC0
                mac.w           d4.u, d2.l, <<, ACC1
                mac.w           d4.u, d2.u, <<, ACC2
                mac.w           d4.u, d3.l, <<, ACC3
                mac.w           d4.l, d2.u, <<, ACC0
                mac.w           d4.l, d2.l, <<, ACC1
                mac.w           d4.l, d2.u, <<, ACC2
                mac.w           d4.l, d3.l, <<, ACC3
                subq            #1, d5
                beq             .EndIn1E
.ForIn1E:
                subq.l          #2, d5
                blt             .EndIn1E
                mac.w           d4.u, d2.u, <<, ACC1
                mac.w           d4.u, d2.l, <<, ACC2
                mac.w           d4.u, d3.u, <<, ACC3
                mac.w           d4.l, d0.u, <<, ACC1
                mac.w           d4.l, d0.l, <<, ACC2
                mac.w           d4.l, d1.u, <<, ACC3
                move.l          d2, d3
                move.l          -(a4), d2
                move.l          d0, d1
                move.l          -(a5), d0
                mac.w           d4.u, d2.l, <<, ACC0
                mac.w           d4.l, d0.l, <<, ACC0
                move.l          (a3)+, d4
                mac.w           d4.u, d2.u, <<, ACC0
                mac.w           d4.u, d2.l, <<, ACC1
                mac.w           d4.u, d3.l, <<, ACC2
                mac.w           d4.u, d3.l, <<, ACC3
                mac.w           d4.l, d0.u, <<, ACC0
                mac.w           d4.l, d0.l, <<, ACC1
                mac.w           d4.l, d1.u, <<, ACC2
                mac.w           d4.l, d1.l, <<, (a3)+, d4, ACC3
                bra             .ForIn1E
.EndIn1E:
                endp

                proc            iir32
.FORk1:
                cmp.l           d1,d2
                bcc             .ENDFORk1
                adda.l          #4,a3
                mac.l           a6,d5,<<,-(a1),d5,ACC3
                mac.l           a6,d4,<<,ACC2
                mac.l           a6,d3,<<,ACC1
                mac.l           a6,d6,<<,(a3)+,a6,ACC0
                adda.l          #4,a3
                mac.l           a6,d4,<<,-(a1),d4,ACC3
                mac.l           a6,d3,<<,ACC2
                mac.l           a6,d6,<<,ACC1
                mac.l           a6,d5,<<,(a3)+,a6,ACC0
                add.l           #4,a3
                mac.l           a6,d3,<<,-(a1),d3,ACC3
                mac.l           a6,d6,<<,ACC2
                mac.l           a6,d5,<<,ACC1
                mac.l           a6,d4,<<,(a3)+,a6,ACC0
                adda.l          #4,a3
                mac.l           a6,d6,<<,-(a1),d6,ACC3
                mac.l           a6,d5,<<,ACC2
                mac.l           a6,d4,<<,ACC1
                mac.l           a6,d3,<<,(a3)+,a6,ACC0
                addq.l          #4,d3
                bra             .FORk1
.ENDFORk1
                endp