Computer Hardware Algorithm Standard User's Guide

Table Of Contents
www.ti.com
5.5.5 Register Conventions
TMS320C55x Rules and Guidelines
If the algorithm does not use B-bus, then the first column must be zero. If there is more than one block
that is accessed by the B-bus, then all the block numbers must be specified in the second column as
shown in the above example.
Example 2:
Any static-data that is accessed by the B-bus must be documented as per the Rule 37 as follows:
Data section names that are accessed by the
B-bus
.data
.coefwords
This way, the client will know which of the memory blocks and data-sections must be placed in on-chip
memory for the correct execution of the algorithm.
This section describes the rules and guidelines that apply to the use of the TMS320C55x on-chip
registers. Note that an algorithm must not access any register that is not described here.
The table below describes all of the registers that may be accessed by an algorithm. Please refer to
TMS320C55x Optimizing C/C++ Compiler User's Guide (SPRU281), Runtime Environment chapter, for
more details about the runtime conventions followed by the compiler.
Register Use Type
(X)AR0, (X)AR1, (X)AR2, (X)AR3, (X)AR4 Function arguments: data pointers (16- or 23-bit) or Scratch (local)
data values (16-bit)
(X)AR5, (X)AR6, (X)AR7 C compiler register variables Preserve (local)
AC0, AC1, AC2, AC3 16-bit, 32-bit and 40-bit data or 24-bit code pointers Scratch (local)
T0, T1 Function arguments: 16-bit data values Scratch (local)
T2, T3 C compiler expression registers Preserve (local)
SSP System Stack Pointer Preserve (local)
SP Stack Pointer Preserve (local)
ST0, ST1, ST2, ST3 Status registers Preserve (local)
IFR0, IMR0, IFR1, IMR1 Interrupt flag and mask register Read-only (global)
TRN0, TRN1 Transition registers Scratch (local)
BK03, BK47, BKC Circular Buffer Offset registers Scratch (local)
BRC0, BRC1 Block Repeat Counter registers Scratch (local)
RSA0, REA0, RSA1, REA1 Block repeat start and end address registers Scratch (local)
CDP Coefficient Data Pointer Scratch (local)
XDP Extended Data page pointer Scratch (local)
DP Memory data page start address Scratch (local)
PDP Peripheral Data page start address Scratch (local)
BOF01, BOF23, BOF45, BOF67, BOFC Circular buffer offset registers Scratch (local)
BIOS Data page pointer storage Read-only (global)
BRS0, BRS1 Block repeat save registers Scratch (local)
CSR Computed Single Repeat Scratch (local)
RPTC Repeat Single Counter Scratch (local)
XSP Extended data Stack pointer Preserve (local)
XCDP Extended coeff page pointer Scratch (local)
IVPD Interrupt vector pointer DSP Read-only (global)
IVPH Interrupt vector pointer host Read-only (global)
DSP-Specific Guidelines54 SPRU352G June 2005 Revised February 2007
Submit Documentation Feedback