2012-06-14 62 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的東西,但仍有可能,但 可能更多的工作,你可能無法做的一些事情。

簡短的回答:是的,一般這種事情可以做。