我有一個可在PowerPC上運行的巨大源代碼。我需要將它移植到ARM。但是,ARM會在未對齊的內存訪問上產生h/w異常。所以,我想找到所有可能發生未對齊內存訪問異常的實例。我考慮了以下選項。在PowerPC中生成未對齊的內存訪問異常
- 在gcc中使用-Wcast-align會引發未對齊訪問的警告。
- 使PowerPC生成未對齊的異常。對於ARM,有一個選項/ proc/cpu/alignment,用戶可以通過該選項決定如何處理異常。但是,PowerPC沒有這種選擇。
我的問題是,
- 有沒有一種方法,使PowerPC的生成未對齊的內存訪問異常?
- 有沒有更好的方法來找出源代碼中所有未對齊內存訪問的發生?
使PowerPC生成未對齊的內存訪問異常的方法 - 內核中的一些選項(CONFIG_ALIGNMENT_TRAP等)? – someuser 2014-09-11 10:51:40
你也可以只是端口,捕捉並修復它。 :) – someuser 2014-09-11 10:53:41
除了AltiVec的加載/存儲外,PowerPC總是會產生對齊異常。當然你的操作系統可能會默默地處理這些異常,但這是另一回事。 – 2014-09-11 10:54:54