SPRAC71B February 2019 – October 2023
DWARF3 registers use register name operators (see Section 2.6.1 of the DWARF3 standard). The operand of a register name operator is a register number representing an architecture register. Table 3-1 lists C28x registers. Table 10-1 defines mappings from DWARF3 register numbers/names to C28x registers.
DWARF Register # | C28x ISA Register | Size | Description |
---|---|---|---|
0 | AL | 16 bits | ACC accumulator low half |
1 | AH | 16 bits | ACC accumulator high half |
2 | PL | 16 bits | Low half of P |
3 | PH | 16 bits | High half of P |
4 | AR0 | 16 bits | Low half of XAR0 |
5 | XAR0 | 32 bits | Auxiliary register 0 |
6 | AR1 | 16 bits | Low half of XAR1 |
7 | XAR1 | 32 bits | Auxiliary register 1 |
8 | AR2 | 16 bits | Low half of XAR2 |
9 | XAR2 | 32 bits | Auxiliary register 2 |
10 | AR3 | 16 bits | Low half of XAR3 |
11 | XAR3 | 32 bits | Auxiliary register 3 |
12 | AR4 | 16 bits | Low half of XAR4 |
13 | XAR4 | 32 bits | Auxiliary register 4 |
14 | AR5 | 16 bits | Low half of XAR5 |
15 | XAR5 | 32 bits | Auxiliary register 5 |
16 | AR6 | 16 bits | Low half of XAR6 |
17 | XAR6 | 32 bits | Auxiliary register 6 |
18 | AR7 | 16 bits | Low half of XAR7 |
19 | XAR7 | 32 bits | Auxiliary register 7 |
20 | SP | 16 bits | Stack pointer |
21 | TL | 16 bits | Low half of XT |
22 | T | 16 bits | High half of XT |
23 | ST0 | 16 bits | Status register 0 |
24 | ST1 | 16 bits | Status register 1 |
25 | PC | 22 bits | Program counter 0x3F FFC0 |
26 | RPC | 22 bits | Return program counter |
27 | -- | Reserved for internal use | |
28 | FP | XAR2 frame pointer | |
29 | DP | 16 bits | Data-page pointer |
30 | SXM | status register bits | |
31 | PM | status register bits | |
32 | OVM | status register bits | |
33-35, 38 | Reserved for internal use | ||
36 | IFR | 16 bits | Interrupt flag register |
37 | IER | 16 bits | Interrupt enable register |
38 | EALLOW | Reserved for internal use |
The FPU32 registers are a subset of the FPU64 registers. For example on FPU32, register 41 represents the 32-bit register R0; on FPU64, it is the lower 32 bits of the R0 64-bit register. Likewise, on FPU32, register 43 represents the 32-bit register R0H; on FPU64, it is the upper 32 bits of the R0 64-bit register.
DWARF Register # | FPU32 Register (all 32 bits) | FPU64 Register (64 bits unless otherwise noted) | Description |
---|---|---|---|
39-40 | STF | STF (32 bits) | Floating pointer status register |
41 | R0 | R0H:R0L | |
43 | R0H | ||
45 | R1 | R1H:R1L | |
47 | R1H | ||
49 | R2 | R2H:R2L | |
51 | R2H | ||
53 | R3 | R3H:R3L | |
55 | R3H | ||
57 | R4 | R4H:R4L | |
59 | R4H | ||
61 | R5 | R5H:R5L | |
63 | R5H | ||
65 | R6 | R6H:R6L | |
67 | R6H | ||
69 | R7 | R7H:R7L | |
71 | R7H | ||
73-74 | RB | RB (32 bits) | Repeat block register |
75-76 | PSEUDO | PSEUDO (32 bits) | Reserved for internal use |
all others | Reserved for internal use |