8

$gpレジスタを使用して値を格納することに危険はありますか? 私の質問は、の真の機能とは何か、$gpそれを使用すると事態が非常にうまくいかない可能性があるように、何らかの形で舞台裏で呼び出されるのでしょうか?

4

1 に答える 1

6

$gp レジスタはグローバル領域を指しています。関数を記述するときにそれを格納する必要があることを慣例が示しています (.cprestore を参照)。

それを使用する必要がある場合 (正直なところ、理由がわかりません)、次のことを覚えておいてください。

1) 常にスタックの保存済みレジスタ領域に格納します。

2) スタックを破棄するときは、常にその値を $gp にロードします。

3) 使用しないでください。(つまり、グローバル スコープにアクセスしないでください)

また、よくわかりませんが、PICコードについては忘れてください。

于 2010-04-11T21:43:49.783 に答える