⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fir32_emac.s.list

📁 freescale MAC DSP的算法库(FFT
💻 LIST
📖 第 1 页 / 共 3 页
字号:
                             .ENDFORi2                                        ;
                             ;
                             ;
0x0000022c: 2e2f004c                            move.l       76(a7),d7        ;d7=n;
0x00000230: 0c8000000004                        cmpi.l       #4,d0            ;
0x00000236: 6400000a                            bcc          .NMORE3          ;if (N<4) {
0x0000023a: 2200                                move.l       d0,d1            ;d1=N+1;
0x0000023c: 5281                                addq.l       #1,d1            
0x0000023e: 600000e2                            bra          .FORi4           ;
                             .NMORE3                                          ;}
                             ;
0x00000242: 2200                                move.l       d0,d1            ;if (N>=4) {
0x00000244: 5881                                addq.l       #4,d1            ;d1=N+4
                             .FORi3                                           ;for (i=d1; i<=n; i+=4){
0x00000246: b287                                cmp.l        d7,d1            ;
0x00000248: 620000c8                            bhi          .ENDFORi3        ;
0x0000024c: 2652                                move.l       (a2),a3          ;pCurCoef=pFIR->pFirCoef;
0x0000024e: 2c6f0044                            move.l       68(a7),a6        ;pCurX=pX+i-4;
0x00000252: 43f61cf0                            lea          (-16,a6,d1.l*4),a1 
0x00000256: 4cd10078                            movem.l      (a1),d3-d6       ;d3=*pCurX++; d4=*pCurX++; d5=*pCurX++; d6=*pCurX; pCurX-=3;
0x0000025a: 2c5b                                move.l       (a3)+,a6         ;a6=*pCurCoef++;

0x0000025c: 2400                                move.l       d0,d2            ;d2=N%4+4;
0x0000025e: 028200000003                        andi.l       #3,d2            
0x00000264: 5882                                addq.l       #4,d2            
0x00000266: 0c8200000004                        cmpi.l       #4,d2            ;if (d2=4){
0x0000026c: 66000004                            bne          .CYCLE_BEGIN2    
0x00000270: 5282                                addq.l       #1,d2            ;d2+=1;
                                                                              ;}
                             .CYCLE_BEGIN2                                    
                             ;
0x00000272: ac216ade                            mac.l        a6,d6,<<,-(a1),d6,ACC3 ;ACC3+=a6*d6; d6=*--pCurX;
0x00000276: aa0e0ad0                            mac.l        a6,d5,<<,ACC2    ;ACC2+=a6*d5;
0x0000027a: a88e0ac0                            mac.l        a6,d4,<<,ACC1    ;ACC1+=a6*d4;
0x0000027e: acdb3ace                            mac.l        a6,d3,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d3; a6=*pCurCoef++;
                             ;
                             .FORk4                                           ;for(k=d2; k<=N; k+=4) {
0x00000282: b480                                cmp.l        d0,d2            ;
0x00000284: 62000046                            bhi          .ENDFORk4        ;

0x00000288: aa215ade                            mac.l        a6,d5,<<,-(a1),d5,ACC3 ;ACC3+=a6*d5; d5=*--pCurX;
0x0000028c: a80e0ad0                            mac.l        a6,d4,<<,ACC2    ;ACC2+=a6*d4;
0x00000290: a68e0ac0                            mac.l        a6,d3,<<,ACC1    ;ACC1+=a6*d3;
0x00000294: acdb6ace                            mac.l        a6,d6,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d6; a6=*pCurCoef++;

0x00000298: a8214ade                            mac.l        a6,d4,<<,-(a1),d4,ACC3 ;ACC3+=a6*d4; d4=*--pCurX;
0x0000029c: a60e0ad0                            mac.l        a6,d3,<<,ACC2    ;ACC2+=a6*d3;
0x000002a0: ac8e0ac0                            mac.l        a6,d6,<<,ACC1    ;ACC1+=a6*d6;
0x000002a4: acdb5ace                            mac.l        a6,d5,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d5; a6=*pCurCoef++;

0x000002a8: a6213ade                            mac.l        a6,d3,<<,-(a1),d3,ACC3 ;ACC3+=a6*d3; d3=*--pCurX;
0x000002ac: ac0e0ad0                            mac.l        a6,d6,<<,ACC2    ;ACC2+=a6*d6;
0x000002b0: aa8e0ac0                            mac.l        a6,d5,<<,ACC1    ;ACC1+=a6*d5;
0x000002b4: acdb4ace                            mac.l        a6,d4,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d4; a6=*pCurCoef++;
0x000002b8: ac216ade                            mac.l        a6,d6,<<,-(a1),d6,ACC3 ;ACC3+=a6*d6; d6=*--pCurX;
0x000002bc: aa0e0ad0                            mac.l        a6,d5,<<,ACC2    ;ACC2+=a6*d5;
0x000002c0: a88e0ac0                            mac.l        a6,d4,<<,ACC1    ;ACC1+=a6*d4;
0x000002c4: acdb3ace                            mac.l        a6,d3,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d3; a6=*pCurCoef++;
0x000002c8: 5882                                addq.l       #4,d2            ;
0x000002ca: 60b6                                bra          .FORk4           ;

                             .ENDFORk4                                        ;}
0x000002cc: 2400                                move.l       d0,d2            ;
0x000002ce: 5382                                subq.l       #1,d2            
0x000002d0: 028200000003                        andi.l       #3,d2            
                             ;
                             .FORk5                                           ;for(k=(N-1)%4; k>0; k--) {
0x000002d6: 0c8200000000                        cmpi.l       #0,d2            ;
0x000002dc: 6700001e                            beq          .ENDFORk5        ;
0x000002e0: aa8e0ad0                            mac.l        a6,d5,<<,ACC3    ;ACC3+=a6*d5;
0x000002e4: a80e0ad0                            mac.l        a6,d4,<<,ACC2    ;ACC2+=a6*d4;
0x000002e8: a68e0ac0                            mac.l        a6,d3,<<,ACC1    ;ACC1+=a6*d3;
0x000002ec: acdb6ace                            mac.l        a6,d6,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d6; a6=*pCurCoef++;
0x000002f0: 2a04                                move.l       d4,d5            ;d5=d4;
0x000002f2: 2803                                move.l       d3,d4            ;d4=d3;
0x000002f4: 2606                                move.l       d6,d3            ;d3=d6;
0x000002f6: 2c21                                move.l       -(a1),d6         ;d6=*--pCurX;
0x000002f8: 5382                                subq.l       #1,d2            ;
0x000002fa: 60da                                bra          .FORk5           ;
                             .ENDFORk5                                        ;}
                             ;
0x000002fc: a1c4                                movclr.l     ACC0,d4          ;d4=ACC0; ACC0=0;
0x000002fe: 20c4                                move.l       d4,(a0)+         ;(*pCurY++)=d4;
0x00000300: a3c4                                movclr.l     ACC1,d4          ;d4=ACC1; ACC1=0;
0x00000302: 20c4                                move.l       d4,(a0)+         ;(*pCurY++)=d4;
0x00000304: a5c4                                movclr.l     ACC2,d4          ;d4=ACC2; ACC2=0;
0x00000306: 20c4                                move.l       d4,(a0)+         ;(*pCurY++)=d4;
0x00000308: a7c4                                movclr.l     ACC3,d4          ;d4=ACC3; ACC3=0;
0x0000030a: 20c4                                move.l       d4,(a0)+         ;(*pCurY++)=d4;
0x0000030c: 5881                                addq.l       #4,d1            ;
0x0000030e: 6000ff36                            bra          .FORi3           ;
                             .ENDFORi3                                        ;}

0x00000312: 2a07                                move.l       d7,d5            ;d5=(n-N)%4;
0x00000314: 9a80                                sub.l        d0,d5            
0x00000316: 028500000003                        andi.l       #3,d5            
0x0000031c: 2207                                move.l       d7,d1            ;d1=n-d5+1;
0x0000031e: 9285                                sub.l        d5,d1            
0x00000320: 5281                                addq.l       #1,d1            
                                                                              ;}
                             ;
                             .FORi4                                           ;for(i=d1; i<=n; i++) {
0x00000322: b287                                cmp.l        d7,d1            ;
0x00000324: 62000024                            bhi          .ENDFORi4        ;
0x00000328: 2c6f0044                            move.l       68(a7),a6        ;pCurX=pX+i;
0x0000032c: 43f61c00                            lea          (0,a6,d1.l*4),a1 
0x00000330: 2652                                move.l       (a2),a3          ;pCurCoef=pFIR->pFirCoef;
0x00000332: 7400                                moveq        #0,d2            ;for(k=0;k<N;k++)  {
0x00000334: 281b                                move.l       (a3)+,d4         ;d4=*pCurCoef++;
                             .FORk41                                          
0x00000336: 2621                                move.l       -(a1),d3         ;d3=*--pCurX;
0x00000338: a89b4ac3                            mac.l        d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=pCurCoef++;
0x0000033c: 5282                                addq.l       #1,d2            ;
0x0000033e: b480                                cmp.l        d0,d2            ;
0x00000340: 65f4                                bcs          .FORk41          ;
                                                                              ;} 
0x00000342: a1c6                                movclr.l     ACC0,d6          ;d6=ACC0; ACC0=0;
0x00000344: 20c6                                move.l       d6,(a0)+         ;(*pCurY++)=d6;
0x00000346: 5281                                addq.l       #1,d1            ;
0x00000348: 60d8                                bra          .FORi4           ;
                             .ENDFORi4                                        ;}
                             ;---====== Begin of History Buffer Loading ======---
0x0000034a: 9e80                                sub.l        d0,d7            
0x0000034c: 2a6f0044                            move.l       68(a7),a5        
0x00000350: 43f57c04                            lea          (4,a5,d7.l*4),a1 ;pCurX=pX+N+1;
0x00000354: 286a0008                            move.l       8(a2),a4         ;pCurHistory=pFIR->pFirHistory;
0x00000358: 7201                                moveq        #1,d1            ;for(i=1;i<N;i++)
                             .FORbuf                                          
0x0000035a: b280                                cmp.l        d0,d1            ;
0x0000035c: 64000008                            bcc          .ENDbuf          ;
0x00000360: 28d9                                move.l       (a1)+,(a4)+      ;*pCurHistory++=*pCurX++;
0x00000362: 5281                                addq.l       #1,d1            ;
0x00000364: 60f4                                bra          .FORbuf          ;
                             .ENDbuf                                          ;}
0x00000366: 5381                                subq.l       #1,d1            ;pFIR->iFirHistoryCount=N-1;
0x00000368: 2541000c                            move.l       d1,12(a2)        ; 	}
                             ; ---====== End of History Buffer Loading ======--
                             ;-=Restoring values of used registers=-
0x0000036c: 4feffffc                            lea          -4(a7),a7        
0x00000370: 2017                                move.l       (a7),d0          
0x00000372: a900                                move.l       d0,MACSR         
0x00000374: 4fef0004                            lea          4(a7),a7         
0x00000378: 4cd77fff                            movem.l      (a7),d0-d7/a0-a6 ;
0x0000037c: 4fef003c                            lea          60(a7),a7        
0x00000380: 4e75                                rts                           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -