0
C6000系列DSPC62和67系列有A0~A15,B0~B15共32个寄存器,对于C64XX,有A0~A31,B0~B31共64个寄存器 1、C62XX可用于条件寄存器有A1、A2、B0、B1、B2,对于C64XX来说,还可以使用A0; 2、C6000的C编译器规定函数调用的前10个入口参数使用寄存器A4、B4、A6、B6、A8、B8、A10、B10、A12、B12,调用者必须保存A0~A9和B0~B9寄存器(C64平台还要保存A16~A31,B16~B31寄存器),被调用者使用堆栈存放临时变量,被调用函数中如果使用了A10~A15,B10~B15寄存器,则需要进行保护,被调用者使用A4寄存器保存函数返回值。 实际上这一切是通过.cproc和.endproc自动完成,汇编优化器会在.cproc和.endproc语句处生成满足C调用约定的入口代码和出口代码。汇编优化器会自动保存使用过的寄存器,并在.return语句处正确地将返回值放到寄存器A4中。 |
C6000的参数传递规则
最新推荐文章于 2024-04-24 11:17:40 发布