如何利用ARM926EJ-S的DSP指令

ma100 2011-10-26 04:08:46
对下面的程序,a.cpp,编译, arm-none-linux-gnu-eabi-g++ a.cpp -c -S

int main()
{
short a = 3;
short b = 4;
int c = a * b;
return 0;
}

生成a.s,如下(节选)

.LCFI2:
mov r3, #3
strh r3, [fp, #-12] @ movhi
mov r3, #4
strh r3, [fp, #-10] @ movhi
ldrsh r2, [fp, #-12]
ldrsh r3, [fp, #-10]
mul r3, r2, r3
str r3, [fp, #-8]
mov r3, #0
mov r0, r3
add sp, fp, #0
ldmfd sp!, {fp}
bx lr

可以看到,汇编的基本过程还是调用了 mul指令, 经比较, 和用x86的gcc编译出来的没什么本质区别
我的arm-none...版本是4.3.3 (Sourcery G++ Lite 2009q1-203)

看arm网站上说我的cpu支持dsp指令, 其中包括
SMULOxy{cond} 16x16-->32
从汇编结果看,并没有用到这个指令,请问我改怎么改呢






...全文
212 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧