📄 iir32_emac.s.list
字号:
0x0000039a: 2a23 move.l -(a3),d5 ;d5=*--pCurCoef;
0x0000039c: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x000003a2: 2823 move.l -(a3),d4 ;d4=*--pCurCoef;
0x000003a4: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x000003aa: 2623 move.l -(a3),d3 ;d3=*--pCurCoef;
0x000003ac: 243c00000004 move.l #4,d2 ;
;
.FORk2 ;for(k=4; k<i; k+=4){
0x000003b2: b481 cmp.l d1,d2 ;
0x000003b4: 6400005e bcc .ENDFORk2 ;
0x000003b8: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x000003be: ac236ade mac.l a6,d6,<<,-(a3),d6,ACC3 ;ACC3+=a6*d6; d6=*--pCurCoef;
0x000003c2: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x000003c6: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x000003ca: acdd3ace mac.l a6,d3,<<,(a5)+,a6,ACC0 ;ACC0+=a6*d3; a6=*pPredY++;
0x000003ce: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x000003d4: aa235ade mac.l a6,d5,<<,-(a3),d5,ACC3 ;ACC3+=a6*d5; d5=*--pCurCoef;
0x000003d8: a80e0ad0 mac.l a6,d4,<<,ACC2 ;ACC2+=a6*d4;
0x000003dc: a68e0ac0 mac.l a6,d3,<<,ACC1 ;ACC1+=a6*d3;
0x000003e0: acdd6ace mac.l a6,d6,<<,(a5)+,a6,ACC0 ;ACC0+=a6*d6; a6=*pPredY++;
0x000003e4: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x000003ea: a8234ade mac.l a6,d4,<<,-(a3),d4,ACC3 ;ACC3+=a6*d4; d4=*--pCurCoef;
0x000003ee: a60e0ad0 mac.l a6,d3,<<,ACC2 ;ACC2+=a6*d3;
0x000003f2: ac8e0ac0 mac.l a6,d6,<<,ACC1 ;ACC1+=a6*d6;
0x000003f6: acdd5ace mac.l a6,d5,<<,(a5)+,a6,ACC0 ;ACC0+=a6*d5; a6=*pPredY++;
0x000003fa: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x00000400: a6233ade mac.l a6,d3,<<,-(a3),d3,ACC3 ;ACC3+=a6*d3; d3=*--pCurCoef;
0x00000404: ac0e0ad0 mac.l a6,d6,<<,ACC2 ;ACC2+=a6*d6;
0x00000408: aa8e0ac0 mac.l a6,d5,<<,ACC1 ;ACC1+=a6*d5;
0x0000040c: acdd4ace mac.l a6,d4,<<,(a5)+,a6,ACC0 ;ACC0+=a6*d4; a6=*pPredY++;
0x00000410: 5882 addq.l #4,d2 ;
0x00000412: 609e bra .FORk2 ;
.ENDFORk2 ;}
;
;
0x00000414: 2652 move.l (a2),a3 ;pCurCoef=pIIR->pIirCoef+2;
0x00000416: d7fc00000008 adda.l #8,a3
0x0000041c: 261b move.l (a3)+,d3 ;d3=*pCurCoef++;
0x0000041e: d7fc00000004 adda.l #4,a3 ;pCurCoef++;
0x00000424: 281b move.l (a3)+,d4 ;d4=*pCurCoef++;
0x00000426: d7fc00000004 adda.l #4,a3 ;pCurCoef++;
0x0000042c: 2a1b move.l (a3)+,d5 ;d5=*pCurCoef++;
0x0000042e: a1c6 movclr.l ACC0,d6 ;d6=ACC0; ACC0=0;
0x00000430: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x00000432: ac830ac0 mac.l d3,d6,<<,ACC1 ;ACC1+=d3*d6;
0x00000436: a3ce movclr.l ACC1,a6 ;a6=ACC1; ACC1=0;
0x00000438: 20ce move.l a6,(a0)+ ;(*pCurY++)=a6;
0x0000043a: ac430ad0 mac.l d3,a6,<<,ACC2 ;ACC2+=d3*a6;
0x0000043e: ac040ad0 mac.l d4,d6,<<,ACC2 ;ACC2+=d4*d6;
0x00000442: a5c7 movclr.l ACC2,d7 ;d7=ACC2; ACC2=0;
0x00000444: 20c7 move.l d7,(a0)+ ;(*pCurY++)=d7;
0x00000446: ae830ad0 mac.l d3,d7,<<,ACC3 ;ACC3+=d3*d7;
0x0000044a: acc40ad0 mac.l d4,a6,<<,ACC3 ;ACC3+=d4*a6;
0x0000044e: ac850ad0 mac.l d5,d6,<<,ACC3 ;ACC3+=d5*d6;
0x00000452: a7c6 movclr.l ACC3,d6 ;d6=ACC3; ACC3=0;
0x00000454: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x00000456: 5881 addq.l #4,d1 ;
0x00000458: 6000fbee bra .FORi1 ;
.ENDFORi1 ;}
0x0000045c: 2e00 move.l d0,d7 ;d7=N%4;
0x0000045e: 028700000003 andi.l #3,d7
0x00000464: 2a00 move.l d0,d5 ;d5=N-d7+1;
0x00000466: 9a87 sub.l d7,d5
0x00000468: 5285 addq.l #1,d5
0x0000046a: 7201 moveq.l #1,d1 ;
;
.FORi2 ;for(i=1; i<=N%4; i++){
0x0000046c: b287 cmp.l d7,d1 ;
0x0000046e: 62000072 bhi .ENDFORi2 ;
0x00000472: 2c6f0044 move.l 68(a7),a6 ;pCurX=pX+i;
0x00000476: 43f65c00 lea (0,a6,d5.l*4),a1
0x0000047a: 2c6f0048 move.l 72(a7),a6 ;pPredY=pY+i-1;
0x0000047e: 4bf65cfc lea (-4,a6,d5.l*4),a5
0x00000482: 2652 move.l (a2),a3 ;pCurCoef=pIIR->pIirCoef;
0x00000484: 2621 move.l -(a1),d3 ;d3=*--pCurX;
0x00000486: 281b move.l (a3)+,d4 ;d4=*pCurCoef++;
0x00000488: a8030ac0 mac.l d3,d4,<<,ACC0 ;ACC0+=d3*d4;
0x0000048c: 7401 moveq #1,d2 ;
0x0000048e: 281b move.l (a3)+,d4 ;d4=*pCurCoef++;
.FORk3 ;for(k=1; k<d5; k++){
0x00000490: b485 cmp.l d5,d2 ;
0x00000492: 64000012 bcc .ENDFORk3 ;
0x00000496: 2621 move.l -(a1),d3 ;d3=*--pCurX;
0x00000498: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x0000049c: 2625 move.l -(a5),d3 ;d3=*--pPredY;
0x0000049e: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x000004a2: 5282 addq.l #1,d2 ;
0x000004a4: 60ea bra .FORk3 ;
.ENDFORk3 ;}
0x000004a6: be81 cmp.l d1,d7 ;
0x000004a8: 6700002e beq .ENDFORk31 ;if (i!=N%4) {
;
0x000004ac: 4aaa000c tst.l 12(a2) ;if(pIIR->iIirHistoryCount>0) {
0x000004b0: 67000026 beq .ENDFORk31
0x000004b4: 2c6a0008 move.l 8(a2),a6 ;pCurHistory=pIIR->pIirHistory+pIIR->iIirHistoryCount;
0x000004b8: 2c2a000c move.l 12(a2),d6
0x000004bc: 49f66c00 lea (0,a6,d6.l*4),a4
0x000004c0: 2405 move.l d5,d2
.FORk31 ;for(k=d5; k<N; k++) {
0x000004c2: b480 cmp.l d0,d2 ;
0x000004c4: 64000012 bcc .ENDFORk31 ;
0x000004c8: 2624 move.l -(a4),d3 ;d3=*--pCurHistory;
0x000004ca: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x000004ce: 2624 move.l -(a4),d3 ;d3=*--pCurHistory;
0x000004d0: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x000004d4: 5282 addq.l #1,d2 ;
0x000004d6: 60ea bra .FORk31 ;
.ENDFORk31 ;}
;}
;}
0x000004d8: a1c6 movclr.l ACC0,d6 ;d6=ACC0; ACC0=0;
0x000004da: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x000004dc: 5281 addq.l #1,d1 ;
0x000004de: 5285 addq.l #1,d5 ;incrementing d5
0x000004e0: 608a bra .FORi2 ;
.ENDFORi2 ;
;
;
0x000004e2: 2e2f004c move.l 76(a7),d7 ;d7=n;
0x000004e6: 0c8000000004 cmpi.l #4,d0 ;
0x000004ec: 6400000a bcc .NMORE3 ;if (N<4) {
0x000004f0: 2200 move.l d0,d1 ;i=N+1;
0x000004f2: 5281 addq.l #1,d1
0x000004f4: 60000200 bra .FORi4 ;
.NMORE3 ;}
;
0x000004f8: 2200 move.l d0,d1 ;if (N>=4) {
0x000004fa: 5881 addq.l #4,d1 ;
.FORi3 ;for (i=N+4; i<=n; i+=4){
0x000004fc: b287 cmp.l d7,d1 ;
0x000004fe: 620001e6 bhi .ENDFORi3 ;
0x00000502: 2652 move.l (a2),a3 ;pCurCoef=pIIR->pIirCoef;
0x00000504: 2c6f0044 move.l 68(a7),a6 ;pCurX=pX+i-4;
0x00000508: 43f61cf0 lea (-16,a6,d1.l*4),a1
0x0000050c: 4cd10078 movem.l (a1),d3-d6 ;d3=*pCurX++; d4=*pCurX++; d5=*pCurX++; d6=*pCurX; pCurX-=3;
0x00000510: 2c5b move.l (a3)+,a6 ;a6=*pCurCoef++;
0x00000512: 2400 move.l d0,d2 ;d2=N%4+4;
0x00000514: 028200000003 andi.l #3,d2
0x0000051a: 5882 addq.l #4,d2
0x0000051c: 0c8200000004 cmpi.l #4,d2 ;if (d2=4){
0x00000522: 66000004 bne .CYCLE_BEGIN2
0x00000526: 5282 addq.l #1,d2 ;d2+=1;
;}
.CYCLE_BEGIN2
;
0x00000528: ac216ade mac.l a6,d6,<<,-(a1),d6,ACC3 ;ACC3+=a6*d6; d6=*--pCurX;
0x0000052c: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x00000530: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x00000534: acdb3ace mac.l a6,d3,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d3; a6=*pCurCoef++;
;
.FORk4 ;for(k=d2; k<=N; k+=4) {
0x00000538: b480 cmp.l d0,d2 ;
0x0000053a: 6200005e bhi .ENDFORk4 ;
0x0000053e: d7fc00000004 adda.l #4,a3 ;pCurCoef++;
0x00000544: aa215ade mac.l a6,d5,<<,-(a1),d5,ACC3 ;ACC3+=a6*d5; d5=*--pCurX;
0x00000548: a80e0ad0 mac.l a6,d4,<<,ACC2 ;ACC2+=a6*d4;
0x0000054c: a68e0ac0 mac.l a6,d3,<<,ACC1 ;ACC1+=a6*d3;
0x00000550: acdb6ace mac.l a6,d6,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d6; a6=*pCurCoef++;
0x00000554: d7fc00000004 adda.l #4,a3 ;pCurCoef++;
0x0000055a: a8214ade mac.l a6,d4,<<,-(a1),d4,ACC3 ;ACC3+=a6*d4; d4=*--pCurX;
0x0000055e: a60e0ad0 mac.l a6,d3,<<,ACC2 ;ACC2+=a6*d3;
0x00000562: ac8e0ac0 mac.l a6,d6,<<,ACC1 ;ACC1+=a6*d6;
0x00000566: acdb5ace mac.l a6,d5,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d5; a6=*pCurCoef++;
0x0000056a: d7fc00000004 adda.l #4,a3 ;pCurCoef++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -