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 | 表达式 | 是 | 否 |