📄 idct1.asm
字号:
.line 170
LDH .D1T1 *+A3[A8],A7 ; |198| tmp[5]=curr_blk1[3][xx];
NOP 4
.line 171
LDH .D1T1 *+A3[A5],A5 ; |199| tmp[6]=curr_blk1[5][xx];
NOP 4
.line 172
LDH .D1T1 *+A3[A6],A3 ; |200| tmp[7]=curr_blk1[7][xx];
NOP 4
.line 174
SUB .D1 A9,A3,A6 ; |202| b[0] = ((tmp[4] - tmp[7])<<1) + tmp[4];
.line 175
SHL .S1 A6,0x1,A6 ; |203|
.line 176
ADD .D1 A9,A6,A8 ; |204|
.line 178
ADD .D1 A7,A5,A6 ; |206| b[1] = ((tmp[5] + tmp[6])<<1) + tmp[5];
.line 179
SHL .S1 A6,0x1,A6 ; |207|
.line 180
ADD .D1 A7,A6,A16 ; |208|
.line 182
SUB .D1 A7,A5,A6 ; |210| b[2] = ((tmp[5] - tmp[6])<<1) - tmp[6];
NOP 1
.line 183
SHL .S2X A6,0x1,B4 ; |211|
.line 184
SUB .S2X B4,A5,B4 ; |212|
.line 186
ADD .D1 A9,A3,A5 ; |214| b[3] = ((tmp[4] + tmp[7])<<1) + tmp[7];
NOP 1
.line 187
SHL .S2X A5,0x1,B5 ; |215|
NOP 1
.line 188
ADD .D1X A3,B5,A5 ; |216|
.line 190
ADD .D1 A8,A16,A3 ; |218| b[4] = ((b[0] + b[1] + b[3])<<1) + b[1];
.line 191
ADD .D1 A5,A3,A3 ; |219|
.line 192
SHL .S1 A3,0x1,A3 ; |220|
.line 193
ADD .D1 A3,A16,A7 ; |221|
.line 195
SUB .D1 A8,A16,A3 ; |223| b[5] = ((b[0] - b[1] + b[2])<<1) + b[0];
NOP 1
.line 196
ADD .D2X B4,A3,B5 ; |224|
.line 197
SHL .S2 B5,0x1,B5 ; |225|
.line 198
ADD .D2X B5,A8,B6 ; |226|
.line 200
ADD .D1X A16,B4,A3 ; |228| b[6] = ((-b[1] - b[2] + b[3])<<1)+ b[3];
.line 201
SUB .D1 A5,A3,A3 ; |229|
.line 202
SHL .S1 A3,0x1,A3 ; |230|
.line 203
ADD .D1 A3,A5,A6 ; |231|
.line 205
SUB .S2X A8,B4,B5 ; |233| b[7] = ((b[0] - b[2] - b[3])<<1) - b[2];
NOP 1
.line 206
SUB .S1X B5,A5,A3 ; |234|
.line 207
SHL .S1 A3,0x1,A3 ; |235|
NOP 1
.line 208
SUB .S2X A3,B4,B22 ; |236|
.line 210
MPY .M2X 0xa,A21,B5 ; |238| t=((tmp[2]*10)+(tmp[3]<<2));
NOP 1
.line 211
SHL .S2X A17,0x2,B4 ; |239|
.line 212
ADD .D2 B5,B4,B4 ; |240|
.line 214
SHL .S2X A21,0x2,B5 ; |242| tmp[3]=((tmp[2]<<2)-(tmp[3]*10));
.line 215
MPY .M2X 0xa,A17,B7 ; |243|
NOP 1
.line 216
SUB .D2 B5,B7,B7 ; |244|
.line 218
.line 220
ADD .D1 A20,A18,A3 ; |248| t=(tmp[0]+tmp[1])<<3;
.line 221
SHL .S1 A3,0x3,A3 ; |249|
.line 223
SUB .D1 A20,A18,A5 ; |251| tmp[1]=(tmp[0]-tmp[1])<<3;
NOP 1
.line 224
SHL .S2X A5,0x3,B5 ; |252|
.line 226
.line 228
ADD .D2X A3,B4,B17 ; |256| b[0]=tmp[0]+tmp[2];
.line 229
ADD .D2 B5,B7,B20 ; |257| b[1]=tmp[1]+tmp[3];
.line 230
SUB .D2 B5,B7,B19 ; |258| b[2]=tmp[1]-tmp[3];
.line 231
SUB .S2X A3,B4,B18 ; |259| b[3]=tmp[0]-tmp[2];
.line 233
.line 234
.line 235
.line 236
.line 238
SHL .S2X A19,0x1,B4 ; |266|
.line 239
ADD .D2X B4,A4,B9 ; |267|
.line 240
ZERO .D2 B7 ; |268|
.line 241
MVK .D2 0x8,B8 ; |269|
.line 242
MVK .S2 0x10,B5 ; |270|
.line 243
MVK .S2 0x18,B16 ; |271|
.line 244
MVK .S2 0x20,B24 ; |272|
.line 245
MVK .S2 0x28,B25 ; |273|
.line 246
MVK .S2 0x30,B23 ; |274|
.line 247
MVK .S2 0x38,B21 ; |275|
.line 274
ADD .D2X B17,A7,B4 ; |302|
.line 275
ADDK .S2 0x40,B4 ; |303|
.line 276
SHR .S2 B4,0x7,B4 ; |304|
.line 277
ZERO .D1 A5 ; |305|
.line 278
SPACKU4 .S1X A5,B4,A3 ; |306|
.line 279
STH .D2T1 A3,*+B9[B7] ; |307|
NOP 2
.line 281
ADD .D2 B20,B6,B4 ; |309|
.line 282
ADDK .S2 0x40,B4 ; |310|
.line 283
SHR .S2 B4,0x7,B4 ; |311|
.line 284
.line 285
SPACKU4 .S2 B7,B4,B4 ; |313|
.line 286
STH .D2T2 B4,*+B9[B8] ; |314|
NOP 2
.line 288
ADD .D2X B19,A6,B4 ; |316|
.line 289
ADDK .S2 0x40,B4 ; |317|
.line 290
SHR .S2 B4,0x7,B4 ; |318|
.line 291
ZERO .D2 B8 ; |319|
.line 292
SPACKU4 .S2 B8,B4,B4 ; |320|
.line 293
STH .D2T2 B4,*+B9[B5] ; |321|
NOP 2
.line 295
ADD .D2 B18,B22,B4 ; |323|
.line 296
ADDK .S2 0x40,B4 ; |324|
.line 297
SHR .S2 B4,0x7,B4 ; |325|
.line 298
ZERO .D2 B5 ; |326|
.line 299
SPACKU4 .S2 B5,B4,B4 ; |327|
.line 300
STH .D2T2 B4,*+B9[B16] ; |328|
NOP 2
.line 302
SUB .D2 B5,B22,B4 ; |330|
.line 303
ADDK .S2 0x40,B4 ; |331|
.line 304
SHR .S2 B4,0x7,B4 ; |332|
.line 305
.line 306
SPACKU4 .S2 B5,B4,B4 ; |334|
.line 307
STH .D2T2 B4,*+B9[B24] ; |335|
NOP 2
.line 309
SUB .S1X B8,A6,A3 ; |337|
.line 310
ADDK .S1 0x40,A3 ; |338|
.line 311
SHR .S1 A3,0x7,A3 ; |339|
.line 312
ZERO .D1 A6 ; |340|
.line 313
SPACKU4 .S1 A6,A3,A3 ; |341|
.line 314
STH .D2T1 A3,*+B9[B25] ; |342|
NOP 2
.line 316
SUB .D2 B7,B6,B4 ; |344|
.line 317
ADDK .S2 0x40,B4 ; |345|
.line 318
SHR .S2 B4,0x7,B4 ; |346|
.line 319
ZERO .D1 A3 ; |347|
.line 320
SPACKU4 .S1X A3,B4,A3 ; |348|
.line 321
STH .D2T1 A3,*+B9[B23] ; |349|
NOP 2
.line 323
SUB .D1 A5,A7,A3 ; |351|
.line 324
ADDK .S1 0x40,A3 ; |352|
.line 325
SHR .S1 A3,0x7,A3 ; |353|
.line 326
ZERO .D2 B4 ; |354|
.line 327
SPACKU4 .S2X B4,A3,B4 ; |355|
.line 328
STH .D2T2 B4,*+B9[B21] ; |356|
NOP 2
.line 331
ADD .D1 0x1,A19,A19 ; |359| for(xx=0; xx<8; xx++)
.line 332
CMPGT .L1 0x8,A19,A0 ; |360|
.line 333
[ A0] BNOP .S1 xx_loop,5 ; |361|
; BRANCH OCCURS ; |361|
;** --------------------------------------------------------------------------*
.line 334
RETNOP .S2 B3,5 ; |362|
; BRANCH OCCURS ; |362|
.endfunc 362,000000000h,0
; .endproc
;void inv_transform_B8(int curr_blk1[B8_SIZE][B8_SIZE] // block to be inverse transformed.
; )
; {
; short int xx=0, yy=0;
; short int tmp[8];
; short int t=0;
; short int b[8];
; for(yy=0; yy<8; yy++)
; {
; // Horizontal inverse transform
; // Reorder
; tmp[0]=curr_blk1[yy][0];
; tmp[1]=curr_blk1[yy][4];
; tmp[2]=curr_blk1[yy][2];
; tmp[3]=curr_blk1[yy][6];
; tmp[4]=curr_blk1[yy][1];
; tmp[5]=curr_blk1[yy][3];
; tmp[6]=curr_blk1[yy][5];
; tmp[7]=curr_blk1[yy][7];
;
; // Downleft Butterfly
;/*Lou Change*/
; b[0] = ((tmp[4] - tmp[7])<<1) + tmp[4];
; b[1] = ((tmp[5] + tmp[6])<<1) + tmp[5];
; b[2] = ((tmp[5] - tmp[6])<<1) - tmp[6];
; b[3] = ((tmp[4] + tmp[7])<<1) + tmp[7];
;
; b[4] = ((b[0] + b[1] + b[3])<<1) + b[1];
; b[5] = ((b[0] - b[1] + b[2])<<1) + b[0];
; b[6] = ((-b[1] - b[2] + b[3])<<1)+ b[3];
; b[7] = ((b[0] - b[2] - b[3])<<1) - b[2];
;/*Lou End*/
;
; // Upleft Butterfly
; /*Lou Change*/
; t=((tmp[2]*10)+(tmp[3]<<2));
; tmp[3]=((tmp[2]<<2)-(tmp[3]*10));
; tmp[2]=t;
;
; t=(tmp[0]+tmp[1])<<3;
; tmp[1]=(tmp[0]-tmp[1])<<3;
; tmp[0]=t;
; /*Lou End*/
;
; b[0]=tmp[0]+tmp[2];
; b[1]=tmp[1]+tmp[3];
; b[2]=tmp[1]-tmp[3];
; b[3]=tmp[0]-tmp[2];
;
; // Last Butterfly
; /*Lou Change*/
; curr_blk1[yy][0]=((b[0]+b[4])+4)>>3;
; curr_blk1[yy][1]=((b[1]+b[5])+4)>>3;
; curr_blk1[yy][2]=((b[2]+b[6])+4)>>3;
; curr_blk1[yy][3]=((b[3]+b[7])+4)>>3;
; curr_blk1[yy][7]=((b[0]-b[4])+4)>>3;
; curr_blk1[yy][6]=((b[1]-b[5])+4)>>3;
; curr_blk1[yy][5]=((b[2]-b[6])+4)>>3;
; curr_blk1[yy][4]=((b[3]-b[7])+4)>>3;
; /*Lou End*/
; }
; // Vertical inverse transform
; for(xx=0; xx<8; xx++)
; {
;
; // Reorder
; tmp[0]=curr_blk1[0][xx];
; tmp[1]=curr_blk1[4][xx];
; tmp[2]=curr_blk1[2][xx];
; tmp[3]=curr_blk1[6][xx];
; tmp[4]=curr_blk1[1][xx];
; tmp[5]=curr_blk1[3][xx];
; tmp[6]=curr_blk1[5][xx];
; tmp[7]=curr_blk1[7][xx];
;
; // Downleft Butterfly
;/*Lou Change*/
;
; b[0] = ((tmp[4] - tmp[7])<<1) + tmp[4];
; b[1] = ((tmp[5] + tmp[6])<<1) + tmp[5];
; b[2] = ((tmp[5] - tmp[6])<<1) - tmp[6];
; b[3] = ((tmp[4] + tmp[7])<<1) + tmp[7];
;
; b[4] = ((b[0] + b[1] + b[3])<<1) + b[1];
; b[5] = ((b[0] - b[1] + b[2])<<1) + b[0];
; b[6] = ((-b[1] - b[2] + b[3])<<1) + b[3];
; b[7] = ((b[0] - b[2] - b[3])<<1) - b[2];
;/*Lou End*/
;
; // Upleft Butterfly
; /*Lou Change*/
; t=((tmp[2]*10)+(tmp[3]<<2));
; tmp[3]=((tmp[2]<<2)-(tmp[3]*10));
; tmp[2]=t;
;
; t=(tmp[0]+tmp[1])<<3;
; tmp[1]=(tmp[0]-tmp[1])<<3;
; tmp[0]=t;
; /*Lou End*/
;
; b[0]=tmp[0]+tmp[2];
; b[1]=tmp[1]+tmp[3];
; b[2]=tmp[1]-tmp[3];
; b[3]=tmp[0]-tmp[2];
;
; // Last Butterfly
; curr_blk1[0][xx]=/*(b[0]+b[4]+64)>>7;*/(Clip3(-32768,32703,b[0]+b[4])+64)>>7;
; curr_blk1[1][xx]=/*(b[1]+b[5]+64)>>7;*/(Clip3(-32768,32703,b[1]+b[5])+64)>>7;
; curr_blk1[2][xx]=/*(b[2]+b[6]+64)>>7;*/(Clip3(-32768,32703,b[2]+b[6])+64)>>7;
; curr_blk1[3][xx]=/*(b[3]+b[7]+64)>>7;*/(Clip3(-32768,32703,b[3]+b[7])+64)>>7;
; curr_blk1[7][xx]=/*(b[0]-b[4]+64)>>7;*/(Clip3(-32768,32703,b[0]-b[4])+64)>>7;
; curr_blk1[6][xx]=/*(b[1]-b[5]+64)>>7;*/(Clip3(-32768,32703,b[1]-b[5])+64)>>7;
; curr_blk1[5][xx]=/*(b[2]-b[6]+64)>>7;*/(Clip3(-32768,32703,b[2]-b[6])+64)>>7;
; curr_blk1[4][xx]=/*(b[3]-b[7]+64)>>7;*/(Clip3(-32768,32703,b[3]-b[7])+64)>>7;
;
; }
;
;}
;
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -