?? decimdct.s
字號(hào):
eld rp0 ,#Area_imdctTempBuffer1+17
eld rp2 ,#Area_imdctTempBuffer1
eld rp3 ,#tbl_twiddlesNormal
//Modified Start 1999. 9/14
eld x0 ,@rp0 ,y0 ,@rp3+s0 ;y0<- (-co[0])
eld ma0 ,@rp2 ;ma0<-t[0]
emul x0y0 ;p<- -t[17]*coeficient[0]
eadd ma0 ,p ,y0 ,@rp3+s0 ;ma0<-t[0]-t[17]*co[0], y0<-(-co[1])
esub ma0 ,p ,@rp0+d1,ma0
esub ma0 ,p ,x0 ,@rp0 ;ma0<-t[0]+t[17]*co[0], x0<-t[16]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[0]
eld ma0 ,@rp2 ;ma0<-t[1]
emul x0y0 ;p<- -t[16]*coeficient[1]
eadd ma0 ,p ,y0 ,@rp3+s0 ;ma0<-t[1]-t[16]*co[1], y0<-(-co[2])
esub ma0 ,p ,@rp0+d1,ma0
esub ma0 ,p ,x0 ,@rp0
ernd ma0
eld @rp2+d0 ,ma0 ;save t[1]
eld ma0 ,@rp2 ;ma0<-t[2]
emul x0y0 ;p<- -t[15]*coeficient[2]
eadd ma0 ,p ,y0 ,@rp3+s0 ;ma0<-t[2]-t[15]*co[2], y0<-(-co[3])
esub ma0 ,p ,@rp0+d1,ma0 ;save to t[15], ma0<-t[15]*co[2]
esub ma0 ,p ,x0 ,@rp0 ;ma0<-t[2]+t[15]*co[2], x0<-t[14]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[2]
eld ma0 ,@rp2 ;ma0<-t[3]
emul x0y0 ;p<-t[14]*coeficient[3]
eadd ma0 ,p ,y0 ,@rp3+s0 ;ma0<-t[3]-t[14]*co[3], y0<-(-co[4])
esub ma0 ,p ,@rp0+d1,ma0 ;save to t[14], ma0<-t[14]*co[3]
esub ma0 ,p ,x0 ,@rp0 ;ma0<-t[3]+t[14]*co[3], x0<-t[13]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[3]
eld ma0 ,@rp2 ;ma0<-t[4]
emul x0y0 ;p<-t[13]*coeficient[4]
eadd ma0 ,p ,y0 ,@rp3+s0 ;ma0<-t[4]-t[13]*co[4], y0<-(-co[5])
esub ma0 ,p ,@rp0+d1,ma0 ;save to t[13], ma0<-t[13]*co[4]
esub ma0 ,p ,x0 ,@rp0 ;ma0<-t[4]+t[13]*co[4], x0<-t[12]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[4]
eld ma0 ,@rp2 ;ma0<-t[5]
emul x0y0 ;p<-t[12]*coeficient[5]
eadd ma0 ,p ,y0 ,@rp3+s0 ;ma0<-t[5]-t[12]*co[5], y0<-(-co[6])
esub ma0 ,p ,@rp0+d1,ma0 ;save to t[12], ma0<-t[12]*co[5]
esub ma0 ,p ,x0 ,@rp0 ;ma0<-t[5]+t[12]*co[5], x0<-t[11]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[5]
emul x0y0 ;p<-t[11]*coeficient[6]
eld ma0 ,p ,y0 ,@rp3+s0 ;ma0<-t[11]*coeficient[6],y0<-(-co[7])
esla ma0 ;rescaling ma0-register, *2
eld p ,ma0
eld pl ,ma0l
eld ma0 ,@rp2 ;ma0<-t[6]
eadd ma0 ,p ;ma0<-t[6]-t[11]*co[6]
esub ma0 ,p ,@rp0+d1,ma0 ;save to t[11], ma0<-t[11]*co[6]
esub ma0 ,p ,x0 ,@rp0 ;ma0<-t[6]+t[11]*co[6], x0<-t[10]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[6]
emul x0y0 ;p<-t[10]*coeficient[7]
eld ma0 ,p ,y0 ,@rp3+s0 ;y0<-(-co[8])
esla ma0 ;rescaling ma0-register, *2
eld p ,ma0
eld pl ,ma0l
eld ma0 ,@rp2 ;ma0<-t[7]
eadd ma0 ,p ;ma0<-t[7]-t[10]*co[7]
esub ma0 ,p ,@rp0+d1,ma0 ;save to t[10], ma0<-t[11]*co[7]
esub ma0 ,p ,x0 ,@rp0 ;ma0<-t[7]+t[10]*co[7], x0<-t[9]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[7]
emul x0y0 ;p<-t[9]*coeficient[8]
emld ma0 ,x0y0 //ERROR eld ma0, p ;ma0<-t[9]*coeficient[8]
esla ma0
esla ma0
esla ma0 ;rescaling ma0-register, *8
eld p ,ma0
eld pl ,ma0l
eld ma0 ,@rp2 ;ma0<-t[8]
eadd ma0 ,p ;ma0<-t[8]-t[9]*co[8]
esub ma0 ,p ,@rp0+d1,ma0 ;save to t[9], ma0<-t[9]*co[8]
esub ma0 ,p ;ma0<-t[8]+t[9]*co[8]
ernd ma0
eld @rp2+d0 ,ma0 ;save t[8]
//Modified end 1999. 9/14
/*
eld x0, @rp0, y0, @rp3+s0 ;y0<- (-co[0])
emul x0y0 ;p<- -t[17]*coeficient[0]
eld ma0, p, a, @rp2 ;a<-t[0]
eadd a, ma0, y0, @rp3+s0 ;a<-t[0]-t[17]*co[0], y0<-(-co[1])
esub a, ma0, @rp0+d1,a ;save to t[17], a<-t[17]*co[0]
esub a, ma0, x0, @rp0 ;a<-t[0]+t[17]*co[0], x0<-t[16]
eld @rp2+d0,a ;save t[0]
emul x0y0 ;p<- -t[16]*co[1]
eld ma0, p, a, @rp2 ;a<-t[1]
eadd a, ma0, y0, @rp3+s0 ;a<-t[1]-t[16]*co[1], y0<-(-co[2])
esub a, ma0, @rp0+d1,a ;save to t[16], a<-t[16]*co[1]
esub a, ma0, x0, @rp0 ;a<-t[1]+t[16]*co[1], x0<-t[15]
eld @rp2+d0,a ;save t[1]
emul x0y0 ;p<- -t[15]*coeficient[2]
eld ma0, p, a, @rp2 ;a<-t[2]
eadd a, ma0, y0, @rp3+s0 ;a<-t[2]-t[15]*co[2], y0<-(-co[3])
esub a, ma0, @rp0+d1,a ;save to t[15], a<-t[15]*co[2]
esub a, ma0, x0, @rp0 ;a<-t[2]+t[15]*co[2], x0<-t[14]
eld @rp2+d0,a ;save t[2]
emul x0y0 ; -p<-t[14]*coeficient[3]
eld ma0, p, a, @rp2 ;a<-t[3]
eadd a, ma0, y0, @rp3+s0 ;a<-t[3]-t[14]*co[3], y0<-(-co[4])
esub a, ma0, @rp0+d1,a ;save to t[14], a<-t[14]*co[3]
esub a, ma0, x0, @rp0 ;a<-t[3]+t[14]*co[3], x0<-t[13]
eld @rp2+d0,a ;save t[3]
emul x0y0 ; -p<-t[13]*coeficient[4]
eld ma0, p, a, @rp2 ;a<-t[4]
eadd a, ma0, y0, @rp3+s0 ;a<-t[4]-t[13]*co[4], y0<-(-co[5])
esub a, ma0, @rp0+d1,a ;save to t[13], a<-t[13]*co[4]
esub a, ma0, x0, @rp0 ;a<-t[4]+t[13]*co[4], x0<-t[12]
eld @rp2+d0,a ;save t[4]
emul x0y0 ; -p<-t[12]*coeficient[5]
eld ma0, p, a, @rp2 ;a<-t[5]
eadd a, ma0, y0, @rp3+s0 ;a<-t[5]-t[12]*co[5], y0<-(-co[6])
esub a, ma0, @rp0+d1,a ;save to t[12], a<-t[12]*co[5]
esub a, ma0, x0, @rp0 ;a<-t[5]+t[12]*co[5], x0<-t[11]
eld @rp2+d0,a ;save t[5]
emul x0y0 ; -p<-t[11]*coeficient[6]
eld ma0, p, a, @rp2 ;a<-t[6]
esla ma0 ;rescaling ma0-register, *2
eadd a, ma0, y0, @rp3+s0 ;a<-t[6]-t[11]*co[6], y0<-(-co[7])
esub a, ma0, @rp0+d1,a ;save to t[11], a<-t[11]*co[6]
esub a, ma0, x0, @rp0 ;a<-t[6]+t[11]*co[6], x0<-t[10]
eld @rp2+d0,a ;save t[6]
emul x0y0 ; -p<-t[10]*coeficient[7]
eld ma0, p, a, @rp2 ;a<-t[7]
esla ma0 ;rescaling ma0-register, *2
eadd a, ma0, y0, @rp3+s0 ;a<-t[7]-t[10]*co[7], y0<-(-co[8])
esub a, ma0, @rp0+d1,a ;save to t[10], a<-t[10]*co[7]
esub a, ma0, x0, @rp0 ;a<-t[7]+t[10]*co[7], x0<-t[9]
eld @rp2+d0,a ;save t[7]
emul x0y0 ; -p<-t[9]*coeficient[8]
eld ma0, p, a, @rp2 ;a<-t[8]
esla ma0
esla ma0
esla ma0 ;rescaling ma0-register, *8
eadd a, ma0 ;a<-t[8]-t[9]*co[8]
esub a, ma0, @rp0+d1,a ;save to t[9], a<-t[9]*co[8]
esub a, ma0 ;a<-t[8]+t[9]*co[8]
eld @rp2+d0,a ;save t[8]
*/
;----------------------re-ordering 18-35----------------------
;
;for i=0;i<=8;++i
;{
; out[27+i] = in[i]*coeficient;
; out[26-i] = in[i]*coeficient;
;}
;
;Status at this routine
; d1 d0 s1 s0
; sd0 = -1 | 1 | -1 | 1
; sd1 = -1 | 1 | -1 | 0
; sd2 = -1 | 1 | -1 | 0
; sd3 = -1 | 1 | -1 | 1
;
;Needing status at this routine
; d1 d0 s1 s0
; sd0 = xx | xx | xx | 1
; sd1 = xx | 1 | xx | xx
; sd2 = -1 | xx | xx | xx
; sd3 = xx | xx | xx | 1
;------------------------------------------------------------
esd0 s0 ,#1
eld sd1 ,sd2
eld rp0 ,#Area_imdctTempBuffer1
eld rp1 ,#Area_imdctTempBuffer1+27+18
eld rp2 ,#Area_imdctTempBuffer1+26+18
ld r6 ,#8
eld x0 ,@rp0+s0,y0 ,@rp3+s0
DecodingImdctGainHighLoop
emul x0y0 ,x0 ,@rp0+s0,y0 ,@rp3+s0
eld @rp1+d0 ,p ;out[27+i] = in[i]*coeficient[i]
bnzd r6 ,DecodingImdctGainHighLoop
eld @rp2+d1 ,p ;out[26-i] = in[i]*coeficient[i]
;----------------------reordering 0-17------------------------
;
;for i=0;i<9;++i
;{
; out[i] = in[9+i]*coeficient;
; out[17-i] = in[9+i]*coeficient;
;}
;
; for(i = 0; i < 18; i++)
; t[i] *= twid[9+i];
;
; for(i = 0; i < 9; i++) {
; x[i] = t[i+9] //be negative at the next windowing
; x[i+9] = t[17-i]
; x[i+18] = t[8-i]
; x[i+27] = t[i]
;
;Status at this routine
; d1 d0 s1 s0
; sd0 = -1 | 1 | -1 | 1
; sd1 = -1 | 1 | -1 | 0
; sd2 = -1 | 1 | -1 | 0
; sd3 = -1 | 1 | -1 | 1
;
;Needing status at this routine
; d1 d0 s1 s0
; sd0 = xx | xx | xx | 1
; sd1 = xx | 1 | xx | xx
; sd2 = -1 | xx | xx | xx
; sd3 = xx | xx | xx | 1
;
;------------------------------------------------------------
eld rp1 ,#Area_imdctTempBuffer1+18
eld rp2 ,rp1
erpn rp2 ,#17
ld r6 ,#2
DecodingImdctGainLowLoop1
emul x0y0 ,x0 ,@rp0+s0,y0 ,@rp3+s0
eld @rp1+d0 ,p ;x[0]
bnzd r6 ,DecodingImdctGainLowLoop1
eld @rp2+d1 ,p ;x[17]
ld r6 ,#2
emul x0y0 ,x0 ,@rp0+s0,y0 ,@rp3+s0
DecodingImdctGainLowLoop2
emld ma0 ,x0y0 ,x0 ,@rp0+s0,y0 ,@rp3+s0
esla ma0 ;rescaling, *2
ernd ma0
eld @rp1+d0 ,ma0 ;save x[3],[4],[5]
bnzd r6 ,DecodingImdctGainLowLoop2
eld @rp2+d1,ma0 ;save x[14],[13],[12]
ld r6 ,#1
DecodingImdctGainLowLoop3
emld ma0 ,x0y0 ,x0 ,@rp0+s0,y0 ,@rp3+s0
esla ma0
esla ma0 ;rescaling, *4
ernd ma0
eld @rp1+d0 ,ma0 ;save x[6]
bnzd r6 ,DecodingImdctGainLowLoop3
eld @rp2+d1 ,ma0 ;save x[11]
emld ma0 ,x0y0 ;because eld ma0, p救凳.1999,9/19
esla ma0
esla ma0
esla ma0
esla ma0 ;rescaling, *16
ernd ma0
eld @rp1+d0 ,ma0 ;save x[8]
eld @rp2+d1 ,ma0 ;save x[9]
;------------------------IMDCT window------------------------
;
;for i=0;i<18;++i
;{
; out [i] += prev[i];
; prev[i] = out[i+18];
;}
;
;Status at this routine
; d1 d0 s1 s0
; sd0 = -1 | 1 | -1 | 0
; sd1 = -1 | 1 | -1 | 0
; sd2 = -1 | 1 | -1 | 1
; sd3 = -1 | 1 | -1 | 1
;
;Needing status at this routine
; d1 d0 s1 s0
; sd0 = xx | xx | xx | 0
; sd1 = xx | 1 | xx | 0
; sd2 = xx | xx | xx | 1
; sd3 = xx | xx | xx | 1
;------------------------------------------------------------
eld sd0 ,#((-8&0fh)<<12)|(1<<8)|((-17&0fh)<<4)|((18&0fh)<<0)
eld sd3 ,#((-1&0fh)<<12)|(1<<8)|((-17&0fh)<<4)|((18&0fh)<<0)
es xsd ;enable rp0/rp3 extention
eld sd0 ,#(((-1&0f0h)>>4)<<12)|((1>>4)<<8)|(((-17&0f0h)>>4)<<4)|(((18&0f0h)>>4)<<0) ;insert
eld sd3 ,#(((-1&0f0h)>>4)<<12)|((1>>4)<<8)|(((-17&0f0h)>>4)<<4)|((18>>4)<<0) ;insert
eld rp0 ,#Area_imdctTempBuffer1+18
eld c ,rpd1.index_LptrImdctprevious
eld rp1 ,c
eld c ,rpd1.index_LRPxBackupBuffer
eld rp2 ,c
eld c ,rpd1.index_LptrImdctWindow
eld rp3 ,c
ld r6 ,#17
eld x0 ,@rp0+s0,y0 ,@rp3+s0
DecodingImdctWindowLoop
eld ma0 ,@rp1+s0
emul x0y0 ,x0 ,@rp0+s1,y0 ,@rp3+s1
eadd ma0 ,p ;out [i] += prev[i]
// eld c ,ma0l
// bra ec0 ,rnd_proc
// bra rnd_procEnd
//rnd_proc
ernd ma0
//rnd_procEnd
/////////////////////////////////////
//2000. 03.16 scaling up for equalizer
ldb r4 ,@[a13+Index_EQ_VolumeFlag]
// ldb r4 ,@[a10+Index_OptionalFunctionOnOff]
and r4 ,#0x02
cmp eq ,r4 ,#0x02
brf MP3DigitalEQ_PassSub4
//.ifdef EQUALIZER_MODE //2000. 03.16 scaling up for equalizer
esla ma0
esla ma0
esla ma0
//.endif
MP3DigitalEQ_PassSub4
//.ifdef EQUALIZER_MODE
// esla ma0
//.endif
eld @rp2+d0 ,ma0
emul x0y0 ,x0 ,@rp0+s0,y0 ,@rp3+s0
bnzd r6 ,DecodingImdctWindowLoop
eld @rp1+d0 ,p ;prev[i] = out[i+18]
er xsd ;disable rp0/rp3 extention
eld c ,rp2
eld rpd1.index_LRPxBackupBuffer ,c ;ptr_imdctInputBuffer[i+18]
ret
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -