【发布时间】:2012-08-17 01:43:39
【问题描述】:
for (i=0, i<10000, i=i+2)
{
A[i]=B[i]+C[i]
A[i+1]=B[i+1]+C[i+1]
}
根据前面的代码,MIPS 程序集是什么样的?我正在尝试构建汇编代码,其中 R9 = A 的基地址,R9 = B 的基地址,R10 = C 的基地址
我知道这种展开 ONCE 的方法应该更有效,但很难看到 MIPS 的样子。
有人可以帮帮我吗?
【问题讨论】:
-
编译器不会展开该大小的循环,可能会通过在每个循环中多次重复任务来节省分支,但不会完全展开循环。
-
为什么不尝试编译,看看输出的至少一个版本是什么?
-
你为什么不使用与stackoverflow.com/questions/11979788/arm-assembly-loop/…相同的技术?
-
假设您使用的是 GCC,
-S选项将创建一个.s文件,该文件将向您显示生成的 MIPS 代码的样子。