Outer Loop Conditionally Executed With Inner Loop
6-144
Example 6–77. Linear Assembly for FIR With Outer Loop Conditionally Executed
With Inner Loop (With Functional Units) (Continued)
MV
.L2X
x01,x01b
; move to other reg file
MPYLH
.M2X
h01,x01b,p10
; p10 = h[i+0]*x[j+i+1]
[sctr]
ADD
.L2
p10,sum17,p10
; sum1(p10) = p10 + sum1
MPYHL
.M1X
h01,x23,p11
; p11 = h[i+1]*x[j+i+2]
ADD
.L2X
p11,p10,sum11
; sum1 += p11
MPYLH
.M2
h23,x23,p12
; p12 = h[i+2]*x[j+i+3]
ADD
.L2
p12,sum11,sum12
; sum1 += p12
MPYHL
.M1X
h23,x45,p13
; p13 = h[i+3]*x[j+i+4]
ADD
.L2X
p13,sum12,sum13
; sum1 += p13
MPYLH
.M1
h45,x45,p14
; p14 = h[i+4]*x[j+i+5]
ADD
.L2X
p14,sum13,sum14
; sum1 += p14
MPYHL
.M2X
h45,x67,p15
; p15 = h[i+5]*x[j+i+6]
ADD
.S2
p15,sum14,sum15
; sum1 += p15
MPYLH
.M2
h67,x67,p16
; p16 = h[i+6]*x[j+i+7]
ADD
.L2
p16,sum15,sum16
; sum1 += p16
MPYHL
.M1X
h67,x8,p17
; p17 = h[i+7]*x[j+i+8]
ADD
.L2X
p17,sum16,sum17
; sum1 += p17
MPY
.M1
h01,x01,p00
; p00 = h[i+0]*x[j+i+0]
[sctr]
ADD
.L1
p00,sum07,p00
; sum0(p00) = p00 + sum0
MPYH
.M1
h01,x01,p01
; p01 = h[i+1]*x[j+i+1]
ADD
.L1
p01,p00,sum01
; sum0 += p01
MPY
.M2
h23,x23,p02
; p02 = h[i+2]*x[j+i+2]
ADD
.L1X
p02,sum01,sum02
; sum0 += p02
MPYH
.M2
h23,x23,p03
; p03 = h[i+3]*x[j+i+3]
ADD
.L1X
p03,sum02,sum03
; sum0 += p03
MPY
.M1
h45,x45,p04
; p04 = h[i+4]*x[j+i+4]
ADD
.L1
p04,sum03,sum04
; sum0 += p04
MPYH
.M1
h45,x45,p05
; p05 = h[i+5]*x[j+i+5]
ADD
.L1
p05,sum04,sum05
; sum0 += p05