SPRUI04E July 2015 – January 2023
The compiler extends the C/C++ language by adding the __cregister keyword to allow high level language access to control registers.
When you use the __cregister keyword on an object, the compiler compares the name of the object to a list of standard control registers (see Table 8-4). If the name matches, the compiler generates the code to reference the control register. If the name does not match, the compiler issues an error.
Register | Description |
---|---|
AMR | Addressing mode register |
CSR | Control status register |
DNUM | DSP core number register |
ECR | Exception clear register |
EFR | Exception flag register |
GFPGFR | Galois field multiply control register |
GPLYA | GMPY A-side polynomial register |
GPLYB | GMPY B-side polynomial register |
ICR | Interrupt clear register |
IER | Interrupt enable register |
IERR | Internal exception report register |
IFR | Interrupt flag register. (IFR is read only.) |
ILC | Inner loop count register |
IRP | Interrupt return pointer register |
ISR | Interrupt set register |
ISTP | Interrupt service table pointer register |
ITSR | Interrupt task state register |
NRP | Nonmaskable interrupt return pointer register |
NTSR | NMI/exception task state register |
PCE1 | Program counter, E1 phase |
REP | Restricted entry point address register |
RILC | Reload inner loop count register |
SSR | Saturation status register |
TSCH | Time-stamp counter (high 32) register |
TSCL | Time-stamp counter (low 32) register |
TSR | Task state register |
The additional control registers listed in Table 8-5 are used for floating-point operations on C6740 and C6600 devices: