2009年3月18日水曜日

fixed_regs

例えば PIC のための GOT ebx 相対など、レジスタに特定の役割を与えるために、他の用途には使わせたくない場合がある。

そういう時は、fixed_regs[] のレジスタ番号番目の要素に 1 を入れる。
各バックエンドの override_options() などでやると良い。


if (flag_xxx) {
call_used_regs[BX_REG] = fixed_regs[BX_REG] = 1;
}


ちなみに、call_used_regs[] にも 1 をセットしておかないと、reginfo.c の gcc_assert() で落ちるので注意。

0 件のコメント: