【发布时间】:2017-01-21 12:36:12
【问题描述】:
在支持 Thumb 的 ARMv7 上,我们是否可以通过使用 BX 指令来避免所有的胶合板?
由于这条指令需要一个 32 位的寄存器,我们好吗?
如果是,当我在生成的代码中看到胶合代码时,我应该专门为我的机器输出,对吗?
谢谢
【问题讨论】:
-
一般来说,当目标太远时,链接器会开始对分支进行贴面——你的代码有多大?
-
对于 ARMv4T 互通单板(我忘记了),最好的解决方案可能是“不要针对 ARMv4T”或“不要使用 Thumb 代码” ,具体取决于您需要支持的具体内容。我们在这里讨论的是 C 代码(在这种情况下您无论如何都不能完全选择指令)还是汇编代码(在这种情况下您应该能够在适当的情况下使用
blx)? -
它本质上是一个 gpu 堆栈,因此地址可以彼此远离。 BX 指令解决了我的问题,最终,正如 Andrea 所建议的,将使用相对跳转。谢谢 Notlikethat :)
标签: arm compiler-optimization 32-bit