Subversion Repositories pentevo

Rev

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

  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
  211.