次の表は、指定された -xarch オプションでコンパイルされたあと、さまざまな SPARC プロセッサで実行される実行可能ファイルのパフォーマンスを示しています。この表は、特定の対象マシン上の実行可能ファイルにもっとも適した -xarch オプションを調べるために利用してください。初めにマシンの範囲を決め、続いて複数のバイナリを管理する手間と、より新しいマシンから最大限のパフォーマンスを引き出す効果を比較してみるとよいでしょう。
表 B–12 -xarch の組み合わせ
SPARC マシンの命令セット |
||||||
---|---|---|---|---|---|---|
v8a |
V8 |
V9 (Sun 以外のプロセッサ) |
V9 (Sun のプロセッサ) |
v9b |
||
v8a |
N |
S |
S |
S |
S |
|
-xarch コンパイルオプション |
v8 |
PD |
N |
S |
S |
S |
v8plus |
NE |
NE |
N |
S |
S |
|
v8plusa |
NE |
NE |
** |
N |
S |
|
v8plusb |
NE |
NE |
** |
NE |
N |
|
v9 |
NE |
NE |
N |
S |
S |
|
v9a |
NE |
NE |
** |
N |
S |
|
v9b |
NE |
NE |
NE |
N |
||
** 注: この命令セットでコンパイルされる実行可能ファイルは、Sun 以外の V9 プロセッサチップ上で仕様どおり機能するか、あるいはまったく機能しません。実行可能ファイルがその対象マシンで動作するかどうかについては、ハードウェアベンダーに問い合わせてください。 |
N は、「仕様どおりのパフォーマンス」を意味します。プロセッサの命令セットを十分に利用してプログラムの実行が行われます。
S は、「十分なパフォーマンス」を意味します。プログラムは実行されますが、提供されているプロセッサ命令の一部を利用できない場合があります。
PD は、「パフォーマンスの低下」を意味します。プログラムは実行されますが、使用されている命令によってはパフォーマンスの低下が発生する場合があります (低下の程度はさまざま)。このパフォーマンス低下は、プロセッサが実装していない命令がカーネルでエミュレートされる場合に起きます。
NE は、「実行不可能」を意味します。カーネルがプロセッサが実装していない命令をエミュレートしないため、プログラムは実行されません。
v8plus または v8plusa 命令セットを使用して実行可能ファイルをコンパイルしようと考えている場合は、代わりに v9 または v9a によるコンパイルを考慮してください。v8plus と v8plusa オプションは、64 ビットプログラム対応の Solaris 8 がリリースされる以前に、プログラムで SPARC V9 と UltraSPARC 機能の一部が利用できるように提供されたものです。v8plus または v8plusa オプションでコンパイルされたプログラムは、SPARC V8 以前のマシンには移植できません。これらのプログラムは、v9 または v9a でそれぞれコンパイルし直すと、SPARC V9 と UltraSPARC の全機能を十分利用できるようになります。v8plus と v8plusa の制限については、ホワイトペーパー『 The V8+ Technical Specification』(Part No.: 802-7447-10。購入先から入手可能) で説明されています。
SPARC 命令セットアーキテクチャー V8 および V8a はバイナリ互換です。
v8plus と v8plusa でそれぞれコンパイルされたオブジェクトバイナリファイル (.o) は、一緒にリンクおよび実行できます。 ただし、SPARC V8plusa 互換プラットフォーム上で実行する場合に限られます。
v8plus、v8plusa、および v8plusb でそれぞれコンパイルされたオブジェクトバイナリ (.o) ファイルは、一緒にリンクおよび実行できます。ただし、SPARC V8plusb 互換プラットフォーム上で実行する場合に限られます。
-xarch の値、v9、v9a、および v9b は、UltraSPARC 64 ビット Solaris オペレーティングシステムにしか使用できません。
v9 と v9a でそれぞれコンパイルされたオブジェクトバイナリファイル (.o) は、一緒にリンクおよび実行できます。ただし、SPARC V9a 互換プラットフォーム上で実行する場合に限られます。
v9、v9a、および v9b でそれぞれコンパイルされたオブジェクトバイナリファイル (.o) は、一緒にリンクおよび実行できます。 ただし、SPARC V9b 互換プラットフォーム上で実行する場合に限られます。
いずれの場合でも、初期のアーキテクチャーでは、生成された実行可能ファイルの実行速度がかなり遅くなる可能性があります。また、これらの命令セットアーキテクチャーの多くで 4 倍精度 (REAL*16 および long double) 浮動小数点命令を使用できますが、コンパイラは、それらの命令を生成したコードで使用しません。
次の表に、SPARC プラットフォームでの各 -xarch キーワードの詳細を示します。
表 B–13 SPARC プラットフォームでの -xarch のフラグ