この節では、—xtarget 値をプラットフォームごとに説明します。次の表は、すべてのプラットフォーム向けの —xtarget の値を一覧表示します。
表 A–47 すべてのプラットフォームでの -xtarget の値| 値 | 意味 | 
|---|---|
| native | ホストシステムで最高のパフォーマンスが得られます。コンパイラは、ホストシステム用に最適化されたコードを生成します。コンパイラは自身が動作しているマシンで利用できるアーキテクチャー、チップ、キャッシュ特性を判定します。 | 
| native64 | ホストシステムで 64 ビットのオブジェクトバイナリの最高のパフォーマンスが得られます。コンパイラは、ホストシステム用に最適化された 64 ビットのオブジェクトバイナリを生成します。コンパイラが動作しているマシンで使用できる 64 ビットのアーキテクチャー、チップ、キャッシュ特性を判定します。 | 
| generic | これはデフォルト値です。汎用アーキテクチャー、チップ、およびキャッシュで最高のパフォーマンスが得られます。 | 
| generic64 | 大多数の 64 ビットのプラットフォームのアーキテクチャーで 64 ビットのオブジェクトバイナリの最適なパフォーマンスを得るためのパラメータを設定します。 | 
| システム名 | 指定するシステムで最高のパフォーマンスが得られます。 対象となる実際のシステムを表すシステム名を、次のリストから選択してください。 | 
SPARC または UltraSPARC V9 での 64 ビット Solaris ソフトウェアのコンパイルは、-m64 オプションで指定します。-xtarget を指定し、native64 または generic64 以外のフラグを付ける場合は、-m64 オプションも次のように指定する必要があります。-xtarget=ultra ... -m64。この指定を行わない場合は、コンパイラは 32 ビットメモリーモデルを使用します。
表 A–48 SPARC アーキテクチャーでの -xtarget の展開| -xtarget= | -xarch | -xchip | -xcache | 
|---|---|---|---|
| generic | generic | generic | generic | 
| ultra | v8plusa | ultra | 16/32/1:512/64/1 | 
| ultra1/140 | v8plusa | ultra | 16/32/1:512/64/1 | 
| ultra1/170 | v8plusa | ultra | 16/32/1:512/64/1 | 
| ultra1/200 | v8plusa | ultra | 16/32/1:512/64/1 | 
| ultra2 | v8plusa | ultra2 | 16/32/1:512/64/1 | 
| ultra2/1170 | v8plusa | ultra | 16/32/1:512/64/1 | 
| ultra2/1200 | v8plusa | ultra | 16/32/1:1024/64/1 | 
| ultra2/1300 | v8plusa | ultra2 | 16/32/1:2048/64/1 | 
| ultra2/2170 | v8plusa | ultra | 16/32/1:512/64/1 | 
| ultra2/2200 | v8plusa | ultra | 16/32/1:1024/64/1 | 
| ultra2/2300 | v8plusa | ultra2 | 16/32/1:2048/64/1 | 
| ultra2e | v8plusa | ultra2e | 16/32/1:256/64/4 | 
| ultra2i | v8plusa | ultra2i | 16/32/1:512/64/1 | 
| ultra3 | sparcvis2 | ultra3 | 64/32/4:8192/512/1 | 
| ultra3cu | sparcvis2 | ultra3cu | 64/32/4:8192/512/2 | 
| ultra3i | sparcvis2 | ultra3i | 64/32/4:1024/64/4 | 
| ultra4 | sparcvis2 | ultra4 | 64/32/4:8192/128/2 | 
| ultra4plus | sparcvis2 | ultra4plus | 64/32/4:2048/64/4:32768/64/4 | 
| ultraT1 | sparcvis2 | ultraT1 | 8/16/4/4:3072/64/12/32 | 
| ultraT2 | sparc | ultraT2 | 8/16/4:4096/64/16 | 
| ultraT2plus | sparcvis2 | ultraT2plus | 8/16/4:4096/64/16 | 
| ultraT3 | sparcvis3 | ultraT3 | 8/16/4:6144/64/24 | 
| sparc64vi | sparcfmaf | sparc64vi | 128/64/2:5120/64/10 | 
| sparc64vii | sparcima | sparc64vii | 64/64/2:5120/256/10 | 
| UltraSPARC IVplus、UltraSPARC T1、および UltraSPARC T2 チップのキャッシュプロパティーについての詳細は、「A.2.113 -xcache=c」を参照してください。 | |||
64 ビット x86 プラットフォームでの 64 ビット Solaris ソフトウェアのコンパイルは、-m64 オプションで指定します。-xtarget を指定し、native64 または generic64 以外のフラグを付ける場合は、-m64 オプションも次のように指定する必要があります。-xtarget=opteron ... -m64。この指定を行わない場合は、コンパイラは 32 ビットメモリーモデルを使用します。
表 A–49 x86 プラットフォームでの -xtarget の値| -xtarget= | -xarch | -xchip | -xcache | 
|---|---|---|---|
| generic | generic | generic | generic | 
| opteron | sse2 | opteron | 64/64/2:1024/64/16 | 
| 386 | pentium | generic | |
| pentium_pro | pentium_pro | pentium_pro | generic | 
| pentium3 | sse | pentium3 | 16/32/4:256/32/4 | 
| pentium4 | sse2 | pentium4 | 8/64/4:256/128/8 | 
| nehalem | sse4_2 | nehalem | 32/64/8:256/64/8: 8192/64/16 | 
| penryn | sse4_1 | penryn | 2/64/8:4096/64/16 | 
| woodcrest | ssse3 | core2 | 32/64/8:4096/64/16 | 
| barcelona | amdsse4a | amdfam10 | 64/64/2:512/64/16 | 
SPARC および x86 で、-xtarget を指定しないと、-xtarget=generic が想定されます。
-xtarget オプションは、市販で購入したプラットフォーム上で使用する -xarch、-xchip、-xcache の組み合わせを素早く、簡単に指定するためのマクロです。-xtarget の意味は = のあとに指定した値を展開したものにあります。
-xtarget=sun4/15 は -xarch=v8a -xchip=micro -xcache=2/16/1 を意味します。
-xarch=v9|v9a|v9b オプションで指定する、SPARC V9 アーキテクチャーのコンパイル。-xtarget=ultra や ultra2 の設定は、必要でないか、十分ではありません。-xtarget を指定する場合、-xarch=v9|v9a|v9b オプションは -xtarget よりもあとに表示される必要があります。次に例を示します。
| -xarch=v9 -xtarget=ultra | 
前述の指定は次のように展開され、-xarch の値が v8 に戻ります。
| -xarch=v9 -xarch=v8 -xchip=ultra -xcache=16/32/1:512/64/1 | 
正しくは、次のように、-xarch を -xtarget よりもあとに指定します。次に例を示します。
| –xtarget=ultra -xarch=v9 | 
別々の手順でコンパイルしてリンクする場合は、コンパイル手順とリンク手順で同じ -xtarget の設定値を使用する必要があります。