IMPYSL P,XT,loc32
6-108
Repeat
This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
Example
; Calculate signed result:
; Y64 = (−X0*C0 − X1*C1 − X2*C2) >> 2
SPM −2
; Set product shift mode to “>> 2”
ZAPA
; Zero ACC, P, OVCU
MOVL XT,@X0
; XT = X0
IMPYL P,XT,@C0
; P = low 32 bits of (X0*C0 << 2)
MOVL XT,@X1
; XT = X1
IMPYSL P,XT,@C1
; OVCU:ACC = OVCU:ACC − P,
; P = low 32 bits of (X1*C1 << 2)
MOVL XT,@X2
; XT = X2
IMPYSL P,XT,@C2
; OVCU:ACC = OVCU:ACC − P,
; P = low 32 bits of (X2*C2 << 2)
SUBUL ACC,@P
; OVCU:ACC = OVCU:ACC − P
MOVL @Y64+0,ACC
; Store low 32-bit result into Y64
MOVU @AL,OVC
; ACC = OVCU (borrow count)
MOVB AH,#0
NEG ACC
; Negate borrow
QMPYL P,XT,@C2
; P = high 32 bits of (X2*C2)
MOVL XT,@X1
; XT = X1
QMPYSL P,XT,@C1
; ACC = ACC − P >> 2,|
; P = high 32 bits of (X1*C1)
MOVL XT,@X0
; XT = X0
QMPYSL P,XT,@C0
; ACC = ACC − P >> 2,
; P = high 32 bits of (X0*C0)
SUBL ACC,P << PM
; ACC = ACC − P >> 2
MOVL @Y64+2,ACC
; Store high 32-bit result into Y64
Содержание TMS320C28x
Страница 30: ...1 12...
Страница 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Страница 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Страница 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Страница 509: ...SUBL ACC P PM 6 352 SUBL ACC P PM ACC S B 11 M X 4 MOVH Y ACC 5 Store Q15 result into Y...
Страница 585: ...This page intentionally left blank 7 32 This page intentionally left blank...