2012-06-14 49 views
1

工作是否有可能以编程方式改变的ARMv7编译的二进制全部更换新的操作码和说明书用的ARMv6兼容的呢?修改二进制的ARMv7库的ARMv6

我真的不很在乎在这一点上的表现,我只是想利用上的ARMv6一些ARMv7的二进制文件只(与VFP,如果该事项)。如果使用不支持的ARMv6除非这些都是要更换的那些说明

+0

如果您询问就地更换,那么答案是否定的。如果你有一些非常聪明的代码可以调整分支偏移,那么它可能是可能的,但相当复杂。如果ARMv7代码包含NEON指令,那么它将更加困难。 ARMv7与ARMv6带来了Thumb2和NEON指令集。不容易倒退。 – BitBank

+0

您可能可以这样做,通过用分支指令替换v7指令,然后用v6代码模拟以前的指令并跳回原始代码。另一种解决方案可能是模拟无效指令的内核级代码。第二个可能更容易实现,但它会很慢。但是这两种解决方案都是非常多的工作。 –

回答

0

VFP将此事。

如果我们说的只是ARM指令不用于ARMv6它可能是一个短名单。它可能会减少指令的数量,所以你必须修改代码,使得armv7指令在某处引起分支,某处是使用armv6或更旧指令的替换代码,然后分支回去。不分支和链接,无条件分支或ldr pc,东西等等,如果你正在谈论thumb2的东西,但仍有可能,但 可能更多的工作,你可能无法做的一些事情。

简短的回答:是的,一般这种事情可以做。