ZHCADC3B February 2019 – October 2023
DWARF3 寄存器使用寄存器名称运算符(请参阅 DWARF3 标准的第 2.6.1 节)。寄存器名称运算符的操作数是表示结构寄存器的寄存器编号。表 3-1 列出了 C28x 寄存器。表 10-1定义了从 DWARF3 寄存器编号/名称到 C28x 寄存器的映射。
| DWARF 寄存器编号 | C28x ISA 寄存器 | 尺寸 | 说明 |
|---|---|---|---|
| 0 | AL | 16 位 | ACC 累加器低半部分 |
| 1 | AH | 16 位 | ACC 累加器高半部分 |
| 2 | PL | 16 位 | P 的低半部分 |
| 3 | PH | 16 位 | P 的高半部分 |
| 4 | AR0 | 16 位 | XAR0 的低半部分 |
| 5 | XAR0 | 32 位 | 辅助寄存器 0 |
| 6 | AR1 | 16 位 | XAR1 的低半部分 |
| 7 | XAR1 | 32 位 | 辅助寄存器 1 |
| 8 | AR2 | 16 位 | XAR2 的低半部分 |
| 9 | XAR2 | 32 位 | 辅助寄存器 2 |
| 10 | AR3 | 16 位 | XAR3 的低半部分 |
| 11 | XAR3 | 32 位 | 辅助寄存器 3 |
| 12 | AR4 | 16 位 | XAR4 的低半部分 |
| 13 | XAR4 | 32 位 | 辅助寄存器 4 |
| 14 | AR5 | 16 位 | XAR5 的低半部分 |
| 15 | XAR5 | 32 位 | 辅助寄存器 5 |
| 16 | AR6 | 16 位 | XAR6 的低半部分 |
| 17 | XAR6 | 32 位 | 辅助寄存器 6 |
| 18 | AR7 | 16 位 | XAR7 的低半部分 |
| 19 | XAR7 | 32 位 | 辅助寄存器 7 |
| 20 | SP | 16 位 | 栈指针 |
| 21 | TL | 16 位 | XT 的低半部分 |
| 22 | T | 16 位 | XT 的高半部分 |
| 23 | ST0 | 16 位 | 状态寄存器 0 |
| 24 | ST1 | 16 位 | 状态寄存器 1 |
| 25 | PC | 22 位 | 程序计数器 0x3F FFC0 |
| 26 | RPC | 22 位 | 返回程序计数器 |
| 27 | -- | 保留供内部使用 | |
| 28 | FP | XAR2 帧指针 | |
| 29 | DP | 16 位 | 数据页指针 |
| 30 | SXM | 状态寄存器位 | |
| 31 | PM | 状态寄存器位 | |
| 32 | OVM | 状态寄存器位 | |
| 33-35、38 | 保留供内部使用 | ||
| 36 | IFR | 16 位 | 中断标志寄存器 |
| 37 | IER | 16 位 | 中断启用寄存器 |
| 38 | EALLOW | 保留供内部使用 |
FPU32 寄存器是 FPU64 寄存器的子集。例如,在 FPU32 上,寄存器 41 表示 32 位寄存器 R0;在 FPU64 上,它是 R0 64 位寄存器的低 32 位。同样,在 FPU32 上,寄存器 43 表示 32 位寄存器 R0H;在 FPU64 上,它是 R0 64 位寄存器的高 32 位。
| DWARF 寄存器编号 | FPU32 寄存器(全 32 位) | FPU64 寄存器(64 位,除非另有说明) | 说明 |
|---|---|---|---|
| 39-40 | STF | STF(32 位) | 浮点指针状态寄存器 |
| 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 位) | 重复块寄存器 |
| 75-76 | PSEUDO | PSEUDO(32 位) | 保留供内部使用 |
| 所有其他 | 保留供内部使用 |