📄 coldfire_mpegimda.s
字号:
// s[ 2 ] = -M( 1, K1 ) - k2 - M( 7, K7 ) - M( 10, K10 ) - M( 16, K16 ) M (7,K7,d3) neg.l d3 M_SUB (1,K1) M_SUB (10,K10) M_SUB (16,K16) sub.l d2,d3 move.l d3,2*4(a4)// s[ 3 ] = -M( 1, K10 ) + k2 + M( 7, K16 ) - M( 10, K1 ) + M( 16, K7 ) M (7,K16,d3) M_SUB (1,K10) M_SUB (10,K1) M_ADD (16,K7) add.l d2,d3 move.l d3,3*4(a4)// s[ 4 ] = -M( 1, K13 ) + k2 - M( 7, K4 ) + M( 10, K13 ) - M( 16, K4 ) M (10,K13,d3) M_SUB (7,K4) M_SUB (1,K13) M_SUB (16,K4) add.l d2,d3 move.l d3,4*4(a4)// s[ 5 ] = -M( 1, K16 ) + k1 - M( 7, K10 ) + M( 10, K7 ) + M( 16, K1 ) M (10,K7,d3) M_SUB (7,K10) M_SUB (1,K16) M_ADD (16,K1) add.l d1,d3 move.l d3,5*4(a4)// S a, <dummy reg>, <dest reg> S (0,d0,d3) move.l d3,0*4(a3) S (2,d0,d3) move.l d3,1*4(a3) S (3,d0,d3) move.l d3,2*4(a3) S (5,d0,d3) move.l d3,3*4(a3) // 0 MC (0,K9) MC_SUB (2,K11) MC_ADD (3,K5) MC_SUB (5,K3) MC_SUB (6,K15) MC_ADD (8,K17) MC_SUB (9,K0) MC_ADD (11,K2) MC_SUB (12,K14) MC_ADD (14,K12) MC_ADD (15,K6) MC_SUB (17,K8) MC_FIN add.l 0*4(a4),d3 IMDCT_FIX (d3) move.l d3,d4 neg.l d4 // win[ 17 ] can be negated to suppress this line W (d3,0) W (d4,17) // 1 MT (0,K10,d3) MT_SUB (1,K16) MT_ADD (2,K1) MT_SUB (3,K7) add.l 1*4(a4),d3 IMDCT_FIX (d3) move.l d3,d4 neg.l d4 W (d3,1) W (d4,16) // 2 MC (0,K11) MC_ADD (2,K14) MC_ADD (3,K8) MC_ADD (5,K17) MC_ADD (6,K5) MC_SUB (8,K15) MC_ADD (9,K2) MC_SUB (11,K12) MC_ADD (12,K0) MC_SUB (14,K9) MC_ADD (15,K3) MC_SUB (17,K6) MC_FIN add.l 2*4(a4),d3 IMDCT_FIX (d3) move.l d3,d4 neg.l d4 W (d3,2) W (d4,15) // 3 MC (0,K12) MC_ADD (2,K9) MC_ADD (3,K15) MC_ADD (5,K6) MC_SUB (6,K17) MC_ADD (8,K3) MC_SUB (9,K14) MC_ADD (11,K0) MC_SUB (12,K11) MC_ADD (14,K2) MC_SUB (15,K8) MC_ADD (17,K5) MC_FIN add.l 2*4(a4),d3 IMDCT_FIX (d3) move.l d3,d4 neg.l d4 W (d3,3) W (d4,14) // 4 MT (0,K13,d3) MT_ADD (1,K4) MT_SUB (2,K13) MT_ADD (3,K4) add.l 1*4(a4),d3 IMDCT_FIX (d3) move.l d3,d4 neg.l d4 W (d3,4) W (d4,13) // 5 MC (0,K14) MC_ADD (2,K0) MC_SUB (3,K6) MC_ADD (5,K15) MC_SUB (6,K8) MC_SUB (8,K5) MC_ADD (9,K12) MC_SUB (11,K9) MC_ADD (12,K2) MC_ADD (14,K11) MC_ADD (15,K17) MC_ADD (17,K3) MC_FIN add.l 0*4(a4),d3 IMDCT_FIX (d3) move.l d3,d4 neg.l d4 W (d3,5) W (d4,12) // 6 MC (0,K15) MC_ADD (2,K5) MC_SUB (3,K0) MC_SUB (5,K9) MC_ADD (6,K14) MC_SUB (8,K11) MC_ADD (9,K6) MC_ADD (11,K3) MC_SUB (12,K8) MC_ADD (14,K17) MC_SUB (15,K12) MC_SUB (17,K2) MC_FIN add.l 3*4(a4),d3 IMDCT_FIX (d3) move.l d3,d4 neg.l d4 W (d3,6) W (d4,11) // 7 MT (0,K16,d3) MT_ADD (1,K10) MT_SUB (2,K7) MT_SUB (3,K1) add.l 4*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 neg.l d4 W (d3,7) W (d4,10) // 8 MC (0,K17) MC_ADD (2,K15) MC_SUB (3,K14) MC_SUB (5,K12) MC_ADD (6,K11) MC_ADD (8,K9) MC_SUB (9,K8) MC_SUB (11,K6) MC_ADD (12,K5) MC_ADD (14,K3) MC_SUB (15,K2) MC_SUB (17,K0) MC_FIN add.l 5*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 neg.l d4 W (d3,8) W (d4,9) // 9+9 MC (0,-K8)// M (0,K8,d3)// neg.l d3 MC_ADD (2,K6) MC_SUB (3,K12) MC_ADD (5,K14) MC_ADD (6,K2) MC_SUB (8,K0) MC_SUB (9,K17) MC_ADD (11,K15) MC_SUB (12,K3) MC_ADD (14,K5) MC_ADD (15,K11) MC_SUB (17,K9) MC_FIN sub.l 3*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,18) WP (d4,35) // 10+9 MT (0,K7,d3) neg.l d3 MT_ADD (1,K1) MT_ADD (2,K16) MT_SUB (3,K10) sub.l 4*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,19) WP (d4,34) // 11+9 MC (0,-K6)// M (0,K6,d3)// neg.l d3 MC_ADD (2,K3) MC_ADD (3,K9) MC_SUB (5,K10) MC_SUB (6,K12) MC_ADD (8,K2) MC_ADD (9,K15) MC_SUB (11,K5) MC_ADD (12,K17) MC_ADD (14,K8) MC_SUB (15,K14) MC_SUB (17,K11) MC_FIN sub.l 5*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,20) WP (d4,33) // 12+9 MC (0,-K5)// M (0,K5,d3)// neg.l d3 MC_ADD (2,K8) MC_ADD (3,K2) MC_SUB (5,K11) MC_SUB (6,K0) MC_ADD (8,K14) MC_ADD (9,K3) MC_SUB (11,K17) MC_SUB (12,K6) MC_SUB (14,K15) MC_ADD (15,K9) MC_ADD (17,K12) MC_FIN add.l 5*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,21) WP (d4,32) // 13+9 MT (0,-K4,d3)// neg.l d3 MT_ADD (1,K13) MT_ADD (2,K4) MT_ADD (3,K13) add.l 4*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,22) WP (d4,31) // 14+9 MC (0,-K3)// M (0,K3,d3)// neg.l d3 MC_SUB (2,K17) MC_ADD (3,K11) MC_ADD (5,K2) MC_ADD (6,K9) MC_SUB (8,K12) MC_SUB (9,K5) MC_SUB (11,K8) MC_SUB (12,K15) MC_ADD (14,K6) MC_ADD (15,K0) MC_ADD (17,K14) MC_FIN add.l 3*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,23) WP (d4,30) // 15+9 MC (0,-K2)// M (0,K2,d3)// neg.l d3 MC_SUB (2,K12) MC_SUB (3,K17) MC_ADD (5,K8) MC_ADD (6,K3) MC_ADD (8,K6) MC_ADD (9,K11) MC_SUB (11,K14) MC_SUB (12,K9) MC_SUB (14,K0) MC_SUB (15,K5) MC_SUB (17,K15) MC_FIN add.l 0*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,24) WP (d4,29) // 16+9 MT (0,-K1,d3)// neg.l d3 MT_SUB (1,K7) MT_SUB (2,K10) MT_SUB (3,K16) add.l 1*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,25) WP (d4,28) // 17+9 MC (0,-K0)// M (0,K0,d3)// neg.l d3 MC_SUB (2,K2) MC_SUB (3,K3) MC_SUB (5,K5) MC_SUB (6,K6) MC_SUB (8,K8) MC_SUB (9,K9) MC_SUB (11,K11) MC_SUB (12,K12) MC_SUB (14,K14) MC_SUB (15,K15) MC_SUB (17,K17) MC_FIN add.l 2*4(a4),d3 IMDCT_FIX( d3) move.l d3,d4 WP (d3,26) WP (d4,27) move.l a5,a3 unlk a6 rts#undef K0#define K0 16244#undef K1#define K1 15137#undef K2#define K2 12998#undef K3#define K3 9974#undef K4#define K4 6270#undef K5#define K5 2139// M3 xi, Kx, <dest reg>// performs: ((INT32)x[ xi*3 ] * (Kx))//#define M3(p1,p2,p3) \ move.w p1*6(a0),p3 ;\ muls.w IMMED p2,p3//// M3_ADD xi, Kx// performs: M3 xi, Kx, d0// add.l d0,d3//#define M3_ADD(p1,p2) \ M3 (p1,p2,d0) ;\ add.l d0,d3//// M3_SUB xi, Kx// performs: M3 xi, Kx, d0// sub.l d0,d3//#define M3_SUB(p1,p2) \ M3 (p1,p2,d0) ;\ sub.l d0,d3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -