(SPARC) 一時レジスタの使用を制御します。
コンパイラは、一時記憶領域として使用できるレジスタ (一時レジスタ) が多ければ、それだけ高速なコードを生成します。このオプションは、利用できる一時レジスタを増やしますが、必ずしもそれが適切であるとは限りません。
r には、以下の値のいずれか 1 つを指定します (意味は -xarch の設定に依存しま す)。
r の値 |
内容 |
---|---|
[no%]appl
|
V8 および V8a の場合、レジスタ %g2、%g3、%g4 の使用を許可します [しません]。 v8plus および v8plusa の場合、レジスタ g2、g3、g4、g5 の使用を許可します [しません]。 V9 および V9a の場合、レジスタ %g2 と %g3 の使用を許可します [しません]。
SPARC ABI では、これらのレジスタはアプリケーションレジスタと記述されています。これらのレジスタを使用すると、必要な load や store 命令が少なくなるため、パフォーマンスが向上します。ただし、これらのレジスタの使用は、他の目的でレジスタを使用するプログラムとの矛盾を起こすことがあります。 |
[no%]float
|
SPARC ABI で指定されているように、浮動小数点レジスタの使用を許可します [しません]。 プログラム中に浮動小数点コードが含まれていない場合でも、これらのレジスタを使用できます。 浮動小数点コードが含まれているソースプログラムには、このオプションを使用できません。 |
-xregs を指定しないと、-xregs=app1,float が使用されます。
使用可能なすべての一時レジスタを使ってアプリケーションプログラムをコンパイルするには、次のように指定します。
-xregs=appl,float
コンテキストの切り替えの影響を受けやすい非浮動小数点コードをコンパイルするには、次のように指定します。
-xregs=no%appl, no%float
SPARC V7 および V8 の ABI、SPARC V9 の ABI