【发布时间】:2012-06-14 14:23:09
【问题描述】:
是否可以通过编程方式更改 ARMv7 编译的二进制文件以将所有新的操作码和指令替换为与 ARMv6 兼容的操作码和指令?
此时我并不太关心性能,我只想在 ARMv6 上使用一些仅限 ARMv7 的二进制文件(如果重要的话,使用 vfp)。
【问题讨论】:
-
如果您询问就地更换,那么答案是否定的。如果您有一些非常聪明的代码可以调整分支偏移量,那么它可能是可能的,但非常复杂。如果 ARMv7 代码中包含 NEON 指令,那就更难了。 ARMv7 与 ARMv6 带来了 Thumb2 和 NEON 指令集。倒退不容易。
-
您也许可以做到这一点,方法是用分支指令替换 v7 指令,然后用 v6 代码模拟前一条指令并跳回原始代码。另一种解决方案可能是模拟无效指令的内核级代码。第二个可能是更容易实现,但它会很慢。但这两种解决方案都需要大量的工作。
标签: arm cpu-architecture