首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sparc函数编译对齐

Sparc函数编译对齐
EN

Stack Overflow用户
提问于 2017-04-02 16:43:14
回答 2查看 91关注 0票数 0

我希望我的程序能让二进制文件中的每个函数在结束后都留出一些空间。这样以后,如果需要进行一些微小的更改,则只需更改该函数,额外的空间将用作计算次要更改的空间。-falign function可以完成这项工作,但它不会提供一致的空间。有没有办法做到这一点?或者是更好的方法呢?

EN

回答 2

Stack Overflow用户

发布于 2017-04-03 23:32:10

您可以使用内联汇编语句在每个函数的开始(或结束)处添加一系列nops。然后,当您需要修改函数时,可以删除一些nops,以保持函数的整体大小不变。例如:

代码语言:javascript
运行
复制
int foo(...) {
   __asm__ __volatile__("nop; nop; nop; nop;" ::);
   ...
}

或者,您甚至可以在函数中保留大块内存,如下所示:

代码语言:javascript
运行
复制
__asm__ __volatile__("ba,a 1f; .skip 1000; 1: ;" ::);

这将保留一大块内存,并在代码中简单地围绕它进行分支。

票数 2
EN

Stack Overflow用户

发布于 2017-04-05 20:43:48

如果你使用的是一个足够新的编译器,他们最近添加了一个新的选项:-fprolog-pad=N-fprolog-pad=M,N,这意味着在函数之前发出M nops,在函数之后发出N nops。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43166369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档