这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » C6000的参数传递规则

共1条 1/1 1 跳转至

C6000的参数传递规则

工程师
2015-01-09 14:40:18     打赏

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中。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]