Final Assembly With Move Instructions - Texas Instruments TMS320C6000 Programmer's Manual

Hide thumbs Also See for TMS320C6000:
Table of Contents

Advertisement

Live-Too-Long Issues

6.10.6 Final Assembly With Move Instructions

Example 6–59. Assembly Code for Live-Too-Long With Move Instructions
LDH
.D1
||
LDH
.D2
MVK
.S2
LDH
.D1
||
LDH
.D2
ZERO
.S1
||
ZERO
.S2
LDH
.D1
||
LDH
.D2
[B2] SUB
.S2
MPY
.M1
||
MPY
.M2X
||
LDH
.D1
||
LDH
.D2
[B2] SUB
.S2
||[B2] B
.S1
SHR
.S1
||
SHR
.S2
||
MPY
.M1
||
MPY
.M2X
||
LDH
.D1
||
LDH
.D2
MPY
.M1X
||
MV
.D1
||
MPY
.M2X
||
MV
.D2
||[B2] SUB
.S2
||[B2] B
.S1
SHR
.S1
||
SHR
.S2
||
MPY
.M1
||
MPY
.M2X
||
LDH
.D1
||
LDH
.D2
6-108
Example 6–59 shows the final assembly code after software pipelining. The
performance of this loop is 212 cycles (2
*A4++,A0
; load ai from memory
*B4++,B0
; load bi from memory
100,B2
; set up loop counter
*A4++,A0
;* load ai from memory
*B4++,B0
;* load bi from memory
A1
; zero out accumulator
B1
; zero out accumulator
*A4++,A0
;** load ai from memory
*B4++,B0
;** load bi from memory
B2,1,B2
; decrement loop counter
A0,A6,A3
; a0 = ai * c
B0,A6,B10
; b0 = bi * c
*A4++,A0
;*** load ai from memory
*B4++,B0
;*** load bi from memory
B2,1,B2
; decrement loop counter
LOOP
; branch to loop
A3,15,A5
; a1 = a0 >> 15
B10,15,B5
; b1 = b0 >> 15
A0,A6,A3
;* a0 = ai * c
B0,A6,B10
;* b0 = bi * c
*A4++,A0
;**** load ai from memory
*B4++,B0
;**** load bi from memory
A5,B6,A7
; a2 = a1 * d
A3,A2
; save a0 across iterations
B5,A8,B7
; b2 = b1 * e
B10,B8
; save b0 across iterations
B2,1,B2
;* decrement loop counter
LOOP
;* branch to loop
A3,15,A5
;* a1 = a0 >> 15
B10,15,B5
;* b1 = b0 >> 15
A0,A6,A3
;** a0 = ai * c
B0,A6,B10
;** b0 = bi * c
*A4++,A0
;***** load ai from memory
*B4++,B0
;***** load bi from memory
100 + 11 + 1).

Hide quick links:

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the TMS320C6000 and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Table of Contents