当前位置: 技术问答>linux和unix
如何利用ARM926EJ-S的DSP指令
来源: 互联网 发布时间:2016-12-22
本文导语: 对下面的程序,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] @ mov...
对下面的程序,a.cpp,编译, arm-none-linux-gnu-eabi-g++ a.cpp -c -S
生成a.s,如下(节选)
可以看到,汇编的基本过程还是调用了 mul指令, 经比较, 和用x86的gcc编译出来的没什么本质区别
我的arm-none...版本是4.3.3 (Sourcery G++ Lite 2009q1-203)
看arm网站上说我的cpu支持dsp指令, 其中包括
SMULOxy{cond} 16x16-->32
从汇编结果看,并没有用到这个指令,请问我改怎么改呢
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
从汇编结果看,并没有用到这个指令,请问我改怎么改呢
|