yidong1981的笔记 https://passport2.21ic.com/?86463 [收藏] [复制] [RSS]

日志

C6000的参数传递规则

已有 1148 次阅读2006-6-28 15:20 |系统分类:DSP

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 个评论)

耗子85 2008-8-29 10:21
能否加qq10377905交流下啊 万分感谢