我正在編寫一個程序集宏到一個C程序,並且對於這個我已經陷入了一些新問題。 我正在嘗試編寫一個用於將數據從通用寄存器移動到特殊用途寄存器的宏。PowerPC移動到變量SPR
我的問題是,我發現將數據從一個GPR到SPR移動語法如下恆定SPR價值的同時,我想用一個變量一個存儲在另一個寄存器中。
# SPR is constant, rA is the value to be written
mtspr SPR, rA
我的東西后,我看起來像這樣:
# rA contains the number of the SPR, and rB the value to be moved.
AWESOMEmtspr rA, rB
是否有一個原因是沒有這樣的宏觀可用,我會怎麼做我自己?
非常感謝提前。
---- 編輯: ---- 現在看起來我在我的C代碼中有一個巨大的開關盒跳到正確的mtspr節。我有20個部分用於讀寫指定SPR:s,每個部分看起來完全一樣,但由於常數不同而不同。
我想應該有你不完全適應的代碼。我想盡可能地在C語言中保留儘可能多的代碼,但是我想我會解決我的問題。不管怎麼說,還是要謝謝你。 – Nubsis 2010-07-13 14:44:15
動態生成的代碼沒有問題,但我認爲您必須標記頁面可執行文件並刷新相關地址的指令緩存(icbf?)。雖然緩存刷新開銷可能不值得。 – 2011-04-06 23:54:13