QMPYSL P,XT,loc32
6-307
Example ; Calculate signed result:
; Y32 = −(X0*C0 + X1*C1 + X2*C2) >> (32 + 2)
SPM −2 ; Set product shift mode to “>> 2”
ZAPA ; Zero ACC, P, OVC
MOVL XT,@X0 ; XT = X0
QMPYL P,XT,@C0 ; P = high 32−bits of (X0*C0)
MOVL XT,@X1 ; XT = X0
QMPYSL P,XT,@C1 ; ACC = ACC − P >> 2,
; P = high 32−bits of (X1*C1)
MOVL XT,@X2 ; XT = X0
QMPYSL P,XT,@C2 ; ACC = ACC − P >> 2,
; P = high 32−bits of (X2*C2)
SUBL ACC,P << PM ; ACC = ACC − P >> 2
MOVL @Y32,ACC ; Store result into Y32