0
我有我自己的ARM asm(32位ARM/NEON)。從這個彙編代碼我稱之爲是用C實現的東西像這樣一些功能:ARM到Thumb2的互通
ARM
NormCorrS0_S0_S0_ PROC
...
BL ConvolveC4 <-- implemented in C/C++
...
1)如果ARM-ASM意識到ConvolveC4是的Thumb2,這是什麼需要做的調用它,並切換到的Thumb2? 2)如果ARM-asm不知道ConvolveC4是什麼,那麼顯然ARM asm保持不變,但我需要在ConvolveC4端添加某種單板以確保ARM狀態正確切換。
對於具有BLX的處理器(體系結構v5T及更高版本,包括所有帶有Thumb2的處理器),不需要鏈接器蹦牀/膠合板。在鏈接時,鏈接器知道調用者和被調用者的指令集,並可根據需要將「BL」更改爲「BLX」。 armlink這樣做;我不確定GNU LD,但我希望它也能做到這一點。 – scott
不知道這個人使用什麼彙編程序和鏈接器,它可能不知道所有這些... –
我使用Windows RT(從微軟)armasm。編譯器會根據呼叫的目的地自動插入bl/blx。但是,我無法弄清楚如何運行32位ARM。我對Thumb2沒有任何問題,但是使用ARM時,我得到了奇怪的錯誤......是否有可能ARM在硬件級別被禁用? – Pavel