r には、次の 1 つまたは複数の項目をコンマで区切って指定します。
[no%]appl, [no%] float.
% は必須文字であることを示します。
例: -xregs=appl,no%float
サブオプションに接頭辞 no% を付けると、この機能は無効になります。
(SPARC) コンパイラがアプリケーションレジスタをスクラッチレジスタとして使用して、コードを生成することを許可します。32 ビットのプロセッサには g2、g3、g4 レジスタがあります。64 ビットのプロセッサには g2、g3 レジスタがあります。
(SPARC のみ) コンパイラが浮動小数点レジスタを整数値用のスクラッチレジスタとして使用することを許可します。このオプションは、コンパイラが浮動小数点値用に浮動小数点レジスタを使用することには影響しません。
浮動小数点レジスタを使用しません。このオプションを使用すると、 ソースプログラムには浮動小数点のコードが含まれなくなります。
(x86 のみ) プログラムパフォーマンスを向上させるために、フレームポインタレジスタ (32 ビット x86 プロセッサの場合 %ebp、64 ビット x86 プロセッサの場合 %rbp) を未割り当ての呼び出し先保存レジスタとして使用することを許可します。コンパイル時に -xpg または -p も指定されていた場合、-xregs=frameptr は無視されます。
デフォルトは、SPARC プラットフォームの場合は -xregs=appl,float、x86 の場合は -xregs=appl,float,no%frameptr です。
アプリケーションにリンクする共有ライブラリ用のコードは、-xregs=no%appl,float を指定してコンパイルすることを強くお勧めします。少なくとも、リンクするアプリケーションでのレジスタ処理に問題がないように、共有ライブラリがアプリケーションレジスタを使用する方法を明示的に示す必要があります。
たとえば、大局的な方法で (重要なデータ構造体を示すためにレジスタを使用するなど) レジスタを使用するアプリケーションは、ライブラリと確実にリンクするため、-xregs=no%appl なしでコンパイルされたコードを含むライブラリがアプリケーションレジスタをどのように使用するかを正確に特定する必要があります。