📄 fir32_emac.s.list
字号:
0x000000ea: 2819 move.l (a1)+,d4 ;d4=*pCurX++;
0x000000ec: 2a19 move.l (a1)+,d5 ;d5=*pCurX++;
0x000000ee: 2c19 move.l (a1)+,d6 ;d6=*pCurX++;
0x000000f0: 2c63 move.l -(a3),a6 ;a6=*--pCurCoef;
0x000000f2: b280 cmp.l d0,d1 ;if (N=i) {
0x000000f4: 6600001e bne .CONT ;
;
0x000000f8: a60e0ac0 mac.l a6,d3,<<,ACC0 ;ACC0+=a6*d3;
0x000000fc: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x00000100: ace35ade mac.l a6,d5,<<,-(a3),a6,ACC2 ;ACC2+=a6*d5; a6=*--pCurCoef;
0x00000104: a80e0ac0 mac.l a6,d4,<<,ACC0 ;ACC0+=a6*d4;
0x00000108: ac635ace mac.l a6,d5,<<,-(a3),a6,ACC1 ;ACC1+=a6*d5; a6=*--pCurCoef;
0x0000010c: aa0e0ac0 mac.l a6,d5,<<,ACC0 ;ACC0+=a6*d5;
0x00000110: 600000a8 bra .ENDBUFx ;
;}
.CONT ;if (N!=i) {
0x00000114: a6993ace mac.l a6,d3,<<,(a1)+,d3,ACC0 ;ACC0+=a6*d3; d3=*pCurX++;
0x00000118: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x0000011c: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x00000120: ac636ade mac.l a6,d6,<<,-(a3),a6,ACC3 ;ACC3+=a6*d6; a6=*--pCurCoef;
0x00000124: 2401 move.l d1,d2
0x00000126: 5882 addq.l #4,d2
;
.FORk11 ;for(k=i+4; k<N; k+=4) {
0x00000128: b480 cmp.l d0,d2 ;
0x0000012a: 64000046 bcc .ENDFORk11 ;
0x0000012e: a8994ace mac.l a6,d4,<<,(a1)+,d4,ACC0 ;ACC0+=a6*d4; d4=*pCurX++;
0x00000132: aa8e0ac0 mac.l a6,d5,<<,ACC1 ;ACC1+=a6*d5;
0x00000136: ac0e0ad0 mac.l a6,d6,<<,ACC2 ;ACC2+=a6*d6;
0x0000013a: ac633ade mac.l a6,d3,<<,-(a3),a6,ACC3 ;ACC3+=a6*d3; a6=*--pCurCoef;
0x0000013e: aa995ace mac.l a6,d5,<<,(a1)+,d5,ACC0 ;ACC0+=a6*d5; d5=*pCurX++;
0x00000142: ac8e0ac0 mac.l a6,d6,<<,ACC1 ;ACC1+=a6*d6;
0x00000146: a60e0ad0 mac.l a6,d3,<<,ACC2 ;ACC2+=a6*d3;
0x0000014a: ac634ade mac.l a6,d4,<<,-(a3),a6,ACC3 ;ACC3+=a6*d4; a6=*--pCurCoef;
0x0000014e: ac996ace mac.l a6,d6,<<,(a1)+,d6,ACC0 ;ACC0+=a6*d6; d6=*pCurX++;
0x00000152: a68e0ac0 mac.l a6,d3,<<,ACC1 ;ACC1+=a6*d3;
0x00000156: a80e0ad0 mac.l a6,d4,<<,ACC2 ;ACC2+=a6*d4;
0x0000015a: ac635ade mac.l a6,d5,<<,-(a3),a6,ACC3 ;ACC3+=a6*d5; a6=*--pCurCoef;
0x0000015e: a6993ace mac.l a6,d3,<<,(a1)+,d3,ACC0 ;ACC0+=a6*d3; d3=*pCurX++;
0x00000162: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x00000166: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x0000016a: ac636ade mac.l a6,d6,<<,-(a3),a6,ACC3 ;ACC3+=a6*d6; a6=*--pCurCoef;
0x0000016e: 5882 addq.l #4,d2 ;
0x00000170: 60b6 bra .FORk11 ;
.ENDFORk11 ;}
;
0x00000172: 2400 move.l d0,d2 ;
0x00000174: 5382 subq.l #1,d2
0x00000176: 028200000003 andi.l #3,d2
.FORk12 ;for(k=(N-1)%4; k>0; k--){
0x0000017c: 0c8200000000 cmpi.l #0,d2 ;
0x00000182: 6700001e beq .ENDFORk12 ;
0x00000186: a80e0ac0 mac.l a6,d4,<<,ACC0 ;ACC0+=a6*d4;
0x0000018a: aa8e0ac0 mac.l a6,d5,<<,ACC1 ;ACC1+=a6*d5;
0x0000018e: ac0e0ad0 mac.l a6,d6,<<,ACC2 ;ACC2+=a6*d6;
0x00000192: ac633ade mac.l a6,d3,<<,-(a3),a6,ACC3 ;ACC3+=a6*d3; a6=*--pCurCoef;
0x00000196: 2805 move.l d5,d4 ;d4=d5;
0x00000198: 2a06 move.l d6,d5 ;d5=d6;
0x0000019a: 2c03 move.l d3,d6 ;d6=d3;
0x0000019c: 2619 move.l (a1)+,d3 ;d3=*pCurX++;
0x0000019e: 5382 subq.l #1,d2 ;
0x000001a0: 60da bra .FORk12 ;
.ENDFORk12 ;}
;
0x000001a2: a80e0ac0 mac.l a6,d4,<<,ACC0 ;ACC0+=a6*d4;
0x000001a6: aa8e0ac0 mac.l a6,d5,<<,ACC1 ;ACC1+=a6*d5;
0x000001aa: ace36ade mac.l a6,d6,<<,-(a3),a6,ACC2 ;ACC2+=a6*d6; a6=*--pCurCoef;
0x000001ae: aa0e0ac0 mac.l a6,d5,<<,ACC0 ;ACC0+=a6*d5;
0x000001b2: ac636ace mac.l a6,d6,<<,-(a3),a6,ACC1 ;ACC1+=a6*d6; a6=*--pCurCoef;
0x000001b6: ac0e0ac0 mac.l a6,d6,<<,ACC0 ;ACC0+=a6*d6
.ENDBUFx ;}
;}
;
0x000001ba: a1c6 movclr.l ACC0,d6 ;d6=ACC0; ACC0=0;
0x000001bc: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x000001be: a3c6 movclr.l ACC1,d6 ;d6=ACC1; ACC1=0;
0x000001c0: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x000001c2: a5c6 movclr.l ACC2,d6 ;d6=ACC2; ACC2=0;
0x000001c4: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x000001c6: a7c6 movclr.l ACC3,d6 ;d6=ACC3; ACC3=0;
0x000001c8: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x000001ca: 5881 addq.l #4,d1 ;
0x000001cc: 6000fe76 bra .FORi1 ;
.ENDFORi1 ;}
0x000001d0: 2e00 move.l d0,d7 ;d7=N%4;
0x000001d2: 028700000003 andi.l #3,d7
0x000001d8: 2a00 move.l d0,d5 ;d5=N-d7+1;
0x000001da: 9a87 sub.l d7,d5
0x000001dc: 5285 addq.l #1,d5
0x000001de: 7201 moveq.l #1,d1 ;
;
.FORi2 ;for(i=1; i<=N%4; i++){
0x000001e0: b287 cmp.l d7,d1 ;
0x000001e2: 62000048 bhi .ENDFORi2 ;
0x000001e6: 2c6f0044 move.l 68(a7),a6 ;pCurX=pX+d5;
0x000001ea: 43f65c00 lea (0,a6,d5.l*4),a1
0x000001ee: 2652 move.l (a2),a3 ;pCurCoef=pFIR->pFirCoef;
0x000001f0: 7400 moveq #0,d2
0x000001f2: 281b move.l (a3)+,d4 ;d4=*pCurCoef++;
.FORk21 ;for (k=0; k<d5; k++) {
0x000001f4: 2621 move.l -(a1),d3 ;d3=*--pCurX
0x000001f6: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x000001fa: 5282 addq.l #1,d2 ;
0x000001fc: b485 cmp.l d5,d2 ;
0x000001fe: 65f4 bcs .FORk21 ;
;}
;
0x00000200: 4aaa000c tst.l 12(a2) ;if(pFIR->iFirHistoryCount>0) {
0x00000204: 6700001c beq .NEXTif ;
0x00000208: 2c6a0008 move.l 8(a2),a6
0x0000020c: 49f60cfc lea (-4,a6,d0.l*4),a4 ;pCurHistory=pFIR->pFirHistory+N-1;
0x00000210: 2405 move.l d5,d2 ;for(k=d5;k<N;k++) {
.FORk22
0x00000212: b480 cmp.l d0,d2 ;
0x00000214: 6400000c bcc .NEXTif
0x00000218: 2624 move.l -(a4),d3 ;d3=*--pCurHistory
0x0000021a: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x0000021e: 5282 addq.l #1,d2 ;
0x00000220: 60f0 bra .FORk22 ;
.NEXTif ;}
;
;}
0x00000222: a1c6 movclr.l ACC0,d6 ;d6=ACC0; ACC0=0;
0x00000224: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x00000226: 5281 addq.l #1,d1 ;
0x00000228: 5285 addq.l #1,d5 ;
0x0000022a: 60b4 bra .FORi2 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -