📄 iir32_emac.s.list
字号:
0x00000570: a6213ade mac.l a6,d3,<<,-(a1),d3,ACC3 ;ACC3+=a6*d3; d3=*--pCurX;
0x00000574: ac0e0ad0 mac.l a6,d6,<<,ACC2 ;ACC2+=a6*d6;
0x00000578: aa8e0ac0 mac.l a6,d5,<<,ACC1 ;ACC1+=a6*d5;
0x0000057c: acdb4ace mac.l a6,d4,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d4; a6=*pCurCoef++;
0x00000580: d7fc00000004 adda.l #4,a3 ;pCurCoef++;
0x00000586: ac216ade mac.l a6,d6,<<,-(a1),d6,ACC3 ;ACC3+=a6*d6; d6=*--pCurX;
0x0000058a: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x0000058e: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x00000592: acdb3ace mac.l a6,d3,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d3; a6=*pCurCoef++;
0x00000596: 5882 addq.l #4,d2 ;
0x00000598: 609e bra .FORk4 ;
.ENDFORk4 ;}
0x0000059a: 2400 move.l d0,d2 ;
0x0000059c: 5382 subq.l #1,d2
0x0000059e: 028200000003 andi.l #3,d2
;
.FORk5 ;for(k=(N-1)%4; k>0; k--) {
0x000005a4: 0c8200000000 cmpi.l #0,d2 ;
0x000005aa: 67000024 beq .ENDFORk5 ;
0x000005ae: d7fc00000004 adda.l #4,a3 ;pCurCoef++;
0x000005b4: aa8e0ad0 mac.l a6,d5,<<,ACC3 ;ACC3+=a6*d5;
0x000005b8: a80e0ad0 mac.l a6,d4,<<,ACC2 ;ACC2+=a6*d4;
0x000005bc: a68e0ac0 mac.l a6,d3,<<,ACC1 ;ACC1+=a6*d3;
0x000005c0: acdb6ace mac.l a6,d6,<<,(a3)+,a6,ACC0 ;ACC0+=a6*d6; a6=*pCurCoef++;
0x000005c4: 2a04 move.l d4,d5 ;d5=d4;
0x000005c6: 2803 move.l d3,d4 ;d4=d3;
0x000005c8: 2606 move.l d6,d3 ;d3=d6;
0x000005ca: 2c21 move.l -(a1),d6 ;d6=*--pCurX;
0x000005cc: 5382 subq.l #1,d2 ;
0x000005ce: 60d4 bra .FORk5 ;
.ENDFORk5 ;}
0x000005d0: 2c6f0048 move.l 72(a7),a6 ;pPredY=pY+i-N-3;
0x000005d4: 2401 move.l d1,d2
0x000005d6: 9480 sub.l d0,d2
0x000005d8: 4bf62cf4 lea (-12,a6,d2.l*4),a5
0x000005dc: 2c52 move.l (a2),a6 ;pCurCoef=pIIR->pIirCoef+N*2-1;
0x000005de: e388 lsl.l #1,d0
0x000005e0: 47f60cfc lea (-4,a6,d0.l*4),a3
0x000005e4: e288 lsr.l #1,d0
0x000005e6: 4cd50078 movem.l (a5),d3-d6 ;d3=*pPredY++; d4=pPredY++; d5=pPredY++; d6=pPredY++;
0x000005ea: dbfc00000010 adda.l #16,a5
0x000005f0: 2c63 move.l -(a3),a6 ;a6=*--pCurCoef;
0x000005f2: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x000005f8: 243c00000008 move.l #8,d2
;
.FORk6 ;for(k=8; k<=N; k+=4) {
0x000005fe: b480 cmp.l d0,d2 ;
0x00000600: 6200005e bhi .ENDFORk6 ;
0x00000604: a69d3ace mac.l a6,d3,<<,(a5)+,d3,ACC0 ;ACC0+=a6*d3; d3=*pPredY++;
0x00000608: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x0000060c: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x00000610: ac636ade mac.l a6,d6,<<,-(a3),a6,ACC3 ;ACC3+=a6*d6; a6=*--pCurCoef;
0x00000614: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x0000061a: a89d4ace mac.l a6,d4,<<,(a5)+,d4,ACC0 ;ACC0+=a6*d4; d4=*pPredY++;
0x0000061e: aa8e0ac0 mac.l a6,d5,<<,ACC1 ;ACC1+=a6*d5;
0x00000622: ac0e0ad0 mac.l a6,d6,<<,ACC2 ;ACC2+=a6*d6;
0x00000626: ac633ade mac.l a6,d3,<<,-(a3),a6,ACC3 ;ACC3+=a6*d3; a6=*--pCurCoef;
0x0000062a: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x00000630: aa9d5ace mac.l a6,d5,<<,(a5)+,d5,ACC0 ;ACC0+=a6*d5; d5=*pPredY++;
0x00000634: ac8e0ac0 mac.l a6,d6,<<,ACC1 ;ACC1+=a6*d6;
0x00000638: a60e0ad0 mac.l a6,d3,<<,ACC2 ;ACC2+=a6*d3;
0x0000063c: ac634ade mac.l a6,d4,<<,-(a3),a6,ACC3 ;ACC3+=a6*d4; a6=*--pCurCoef;
0x00000640: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x00000646: ac9d6ace mac.l a6,d6,<<,(a5)+,d6,ACC0 ;ACC0+=a6*d6; d6=*pPredY++;
0x0000064a: a68e0ac0 mac.l a6,d3,<<,ACC1 ;ACC1+=a6*d3;
0x0000064e: a80e0ad0 mac.l a6,d4,<<,ACC2 ;ACC2+=a6*d4;
0x00000652: ac635ade mac.l a6,d5,<<,-(a3),a6,ACC3 ;ACC3+=a6*d5; a6=*--pCurCoef;
0x00000656: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x0000065c: 5882 addq.l #4,d2 ;
0x0000065e: 609e bra .FORk6 ;
.ENDFORk6 ;}
0x00000660: 2400 move.l d0,d2 ;d2=(N-4)%4;
0x00000662: 5982 subq.l #4,d2
0x00000664: 028200000003 andi.l #3,d2
;
.FORk7 ;for(k=d2; k>0; k--) {
0x0000066a: 0c8200000000 cmpi.l #0,d2 ;
0x00000670: 67000024 beq .ENDFORk7 ;
0x00000674: a60e0ac0 mac.l a6,d3,<<,ACC0 ;ACC0+=a6*d3;
0x00000678: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x0000067c: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x00000680: ac636ade mac.l a6,d6,<<,-(a3),a6,ACC3 ;ACC3+=a6*d6; a6=*--pCurCoef;
0x00000684: 2604 move.l d4,d3 ;d3=d4;
0x00000686: 2805 move.l d5,d4 ;d4=d5;
0x00000688: 2a06 move.l d6,d5 ;d5=d6;
0x0000068a: 2c1d move.l (a5)+,d6 ;d6=*pPredY++;
0x0000068c: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x00000692: 5382 subq.l #1,d2 ;
0x00000694: 60d4 bra .FORk7 ;
.ENDFORk7 ;}
;
0x00000696: 2c0e move.l a6,d6 ;d6=a6;
0x00000698: a60e0ac0 mac.l a6,d3,<<,ACC0 ;ACC0+=a6*d3;
0x0000069c: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x000006a0: ace35ade mac.l a6,d5,<<,-(a3),a6,ACC2 ;ACC2+=a6*d5; a6=*--pCurCoef;
0x000006a4: 260e move.l a6,d3 ;d3=a6;
0x000006a6: 97fc00000004 suba.l #4,a3 ;pCurCoef--;
0x000006ac: a80e0ac0 mac.l a6,d4,<<,ACC0 ;ACC0+=a6*d4;
0x000006b0: ac635ace mac.l a6,d5,<<,-(a3),a6,ACC1 ;ACC1+=a6*d5; a6=*--pCurCoef;
0x000006b4: aa0e0ac0 mac.l a6,d5,<<,ACC0 ;ACC0+=a6*d5;
;
0x000006b8: a1c4 movclr.l ACC0,d4 ;d4=ACC0; ACC0=0;
0x000006ba: 20c4 move.l d4,(a0)+ ;(*pCurY++)=d4;
0x000006bc: a88e0ac0 mac.l a6,d4,<<,ACC1 ;ACC1+=a6*d4;
0x000006c0: a3c5 movclr.l ACC1,d5 ;d5=ACC1; ACC1=0;
0x000006c2: 20c5 move.l d5,(a0)+ ;(*pCurY++)=d5;
0x000006c4: a8030ad0 mac.l d3,d4,<<,ACC2 ;ACC2+=d3*d4;
0x000006c8: aa0e0ad0 mac.l a6,d5,<<,ACC2 ;ACC2+=a6*d5;
0x000006cc: a5c2 movclr.l ACC2,d2 ;d2=ACC2; ACC2=0;
0x000006ce: 20c2 move.l d2,(a0)+ ;(*pCurY++)=d2;
0x000006d0: a8860ad0 mac.l d6,d4,<<,ACC3 ;ACC3+=d6*d4;
0x000006d4: aa830ad0 mac.l d3,d5,<<,ACC3 ;ACC3+=d3*d5;
0x000006d8: a48e0ad0 mac.l a6,d2,<<,ACC3 ;ACC3+=a6*d2;
0x000006dc: a7c6 movclr.l ACC3,d6 ;d6=ACC3; ACC3=0;
0x000006de: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x000006e0: 5881 addq.l #4,d1 ;
0x000006e2: 6000fe18 bra .FORi3 ;
.ENDFORi3 ;}
0x000006e6: 2a07 move.l d7,d5 ;d5=(n-N)%4;
0x000006e8: 9a80 sub.l d0,d5
0x000006ea: 028500000003 andi.l #3,d5
0x000006f0: 2207 move.l d7,d1 ;d1=n-d5+1;
0x000006f2: 9285 sub.l d5,d1
0x000006f4: 5281 addq.l #1,d1
;}
;
.FORi4 ;for(i=d1; i<=n; i++) {
0x000006f6: b287 cmp.l d7,d1 ;
0x000006f8: 6200003e bhi .ENDFORi4 ;
0x000006fc: 2c6f0044 move.l 68(a7),a6 ;pCurX=pX+i;
0x00000700: 43f61c00 lea (0,a6,d1.l*4),a1
0x00000704: 2c6f0048 move.l 72(a7),a6 ;pPredY=pY+i-1;
0x00000708: 4bf61cfc lea (-4,a6,d1.l*4),a5
0x0000070c: 2652 move.l (a2),a3 ;pCurCoef=pIIR->pIirCoef;
0x0000070e: 2621 move.l -(a1),d3 ;d3=*--pCurX;
0x00000710: 281b move.l (a3)+,d4 ;d4=*pCurCoef++;
0x00000712: a8030ac0 mac.l d3,d4,<<,ACC0 ;ACC0+=d3*d4;
0x00000716: 7401 moveq #1,d2 ;
0x00000718: 281b move.l (a3)+,d4 ;d4=*pCurCoef++;
.FORk8 ;for(k=1; k<N; k++) {
0x0000071a: b480 cmp.l d0,d2 ;
0x0000071c: 64000012 bcc .ENDFORk8 ;
0x00000720: 2621 move.l -(a1),d3 ;d3=*--pCurX;
0x00000722: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x00000726: 2625 move.l -(a5),d3 ;d3=*--pPredY;
0x00000728: a89b4ac3 mac.l d3,d4,<<,(a3)+,d4,ACC0 ;ACC0+=d3*d4; d4=*pCurCoef++;
0x0000072c: 5282 addq.l #1,d2 ;
0x0000072e: 60ea bra .FORk8 ;
.ENDFORk8 ;}
0x00000730: a1c6 movclr.l ACC0,d6 ;d6=ACC0; ACC0=0;
0x00000732: 20c6 move.l d6,(a0)+ ;(*pCurY++)=d6;
0x00000734: 5281 addq.l #1,d1 ;
0x00000736: 60be bra .FORi4 ;
.ENDFORi4 ;}
;---====== Begin of History Buffer Loading ======---
0x00000738: 2c6f0044 move.l 68(a7),a6 ;pCurX=pX+n-N+1;
0x0000073c: 9e80 sub.l d0,d7
0x0000073e: 43f67c04 lea (4,a6,d7.l*4),a1
0x00000742: 2c6f0048 move.l 72(a7),a6 ;pCurY=pY+n-N+1;
0x00000746: 41f67c04 lea (4,a6,d7.l*4),a0
0x0000074a: 286a0008 move.l 8(a2),a4 ;pCurHistory=pIIR->pIirHistory;
0x0000074e: 7201 moveq #1,d1 ;for(i=1;i<N;i++) {
.FORbuf
0x00000750: b280 cmp.l d0,d1 ;
0x00000752: 6400000e bcc .ENDbuf ;
0x00000756: 2c48 move.l a0,a6 ;*pCurHistory++=*pCurY++;
0x00000758: 5888 addq.l #4,a0
0x0000075a: 28d6 move.l (a6),(a4)+
0x0000075c: 28d9 move.l (a1)+,(a4)+ ;*pCurHistory++=*pCurX++;
0x0000075e: 5281 addq.l #1,d1 ;
0x00000760: 60ee bra .FORbuf ;
.ENDbuf ;}
0x00000762: 2e2a0004 move.l 4(a2),d7 ; pIIR->iIirHistoryCount=pIIR->iIirCoefCount-1;
0x00000766: 5387 subq.l #1,d7
0x00000768: 2547000c move.l d7,12(a2) ;pIIR->iIirHistoryCount=pIIR->iIirCoefCount-1;
; ---====== End of History Buffer Loading ======--
;-=Restoring values of used registers=-
0x0000076c: 4feffffc lea -4(a7),a7
0x00000770: 2017 move.l (a7),d0
0x00000772: a900 move.l d0,MACSR
0x00000774: 4fef0004 lea 4(a7),a7
0x00000778: 4cd77fff movem.l (a7),d0-d7/a0-a6 ;
0x0000077c: 4fef003c lea 60(a7),a7
0x00000780: 4e75 rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -