ZHCU876Z July 2001 – October 2023 SM320F28335-EP
表 7-2 总结了编译器如何使用 TMS320C28x 寄存器并显示了哪些寄存器定义为在函数调用之间保留。FPU 使用所有 C28x 寄存器以及表 7-3 中所述的寄存器。
有关 C28x 寄存器的详细信息,请参阅《TMS320C28x CPU 和指令集参考指南》(SPRU430)。
| 寄存器 | 使用 | 入口保存 | 调用保存 |
|---|---|---|---|
| AL | 表达式、参数传递以及从函数返回 16 位结果 | 否 | 是 |
| AH | 表达式和参数传递 | 否 | 是 |
| DP | 数据页指针(用于访问全局变量) | 否 | 否 |
| PH | 乘法表达式和临时变量 | 否 | 是 |
| PL | 乘法表达式和临时变量 | 否 | 是 |
| SP | 堆栈指针 | (1) | (1) |
| T | 乘法和移位表达式 | 否 | 是 |
| TL | 乘法和移位表达式 | 否 | 是 |
| XAR0 | 指针和表达式 | 否 | 是 |
| XAR1 | 指针和表达式 | 是 | 否 |
| XAR2 | 指针、表达式和框架指针(需要时) | 是 | 否 |
| XAR3 | 指针和表达式 | 是 | 否 |
| XAR4 | 指针、表达式、参数传递,以及从函数返回 32 位指针值 | 否 | 是 |
| XAR5 | 指针、表达式和参数 | 否 | 是 |
| XAR6 | 指针和表达式 | 否 | 是 |
| XAR7 | 指针、表达式、间接调用和分支(用于实现指向函数和 switch 语句的指针) | 否 | 是 |
| FPU32 寄存器 | FPU64 寄存器 | 使用 | 入口保存 | 调用保存 |
|---|---|---|---|---|
| R0H | R0 = R0H:R0L | 表达式、参数传递以及从函数返回 32 位浮点值 | 否 | 是 |
| R1H | R1 = R1H:R1L | 表达式和参数传递 | 否 | 是 |
| R2H | R2 = R2H:R2L | 表达式和参数传递 | 否 | 是 |
| R3H | R3 = R3H:R3L | 表达式和参数传递 | 否 | 是 |
| R4H | R4 = R4H:R4L | 表达式 | 是 | 否 |
| R5H | R5 = R5H:R5L | 表达式 | 是 | 否 |
| R6H | R6 = R6H:R6L | 表达式 | 是 | 否 |
| R7H | R7 = R7H:R7L | 表达式 | 是 | 否 |