我正在修改gcc的md文件,用於mips(el)目標。 gcc src的版本是4.6.0。修改GCC「.md」機器定義模板
我想修改符號擴展insn代。
最初,mips使用「lb
」/「lh
」指令來擴展一個字節/一半。
但在我的目標CPU中沒有「lb
」和「lh
」,它只支持「lbu
」和「lhu
」。所以我必須生成這樣的指令來實現簽名分機。
例如
磅%0%1
成爲:
LBU%0%1
SRL%0,%0,24
SRA%0,%0 ,24
類似地:
LH%0%1
成爲:
LHU%0%1
SRL%0,%0,16
SRA%0%0 16
但是,在原來的「MD」的文件,其中的兩個是單個圖案,它使用的宏,以生成磅/ LH指令:
"l<SHORT:size>"
<SHORT:size> may be "b" or "h" --> "lb" or "lh"
但我想從「b」獲得「24」;獲得「16」形式的「h」。我怎樣才能做到這一點?
我擔心很少有人真正瞭解該格式的細節,但他們很可能在閱讀[email protected]郵件列表(或者[也可以在[gcc.gnu.org上的其他人])(http ://gcc.gnu.org/lists.html)),所以我建議你嘗試在那裏問。看來你應該可以在不訂閱的情況下發布。 – 2011-06-14 05:48:05