C6000的参数传递规则

本文介绍了TI公司的C6000系列DSP中C62和67系列及C64XX系列的寄存器配置详情。包括可用于条件寄存器的选择,函数调用时寄存器的分配原则,以及调用者和被调用者如何处理寄存器以确保程序的正确运行。
部署运行你感兴趣的模型镜像
 

 

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

转自 http://blog.21ic.com/user1/2989/archives/2006/20637.html感谢原作者( yidong1981?

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值