SPARC
as [ -hwcap={1|0} ] [ -L ] [ -m ] [ -m32 ] [ -m64 ] [ -n ] [ -o outfile ] [ -ul ] [ -P ] [ -Dname ] [ -D name=def ] [ -I path ] [ -Uname.... ] [ -Q[y|n] ] [ -s ] [ -S[a|b|c|l|A|B|C|L]] [ -V ] [ -xarch=v ] [ -xF ] [ -Y[m|c],path ] [ -YI,path ] filename...
x86
as [ -a32 ] [ -m ] [ -m32 ] [ -m64 ] [ -n ] [ -H ] [ -nH ] [ -o outfile ] [ -P ] [ -Dname ] [ -Dname=def ] [ -Ipath ] [ -Uname.... ] [ -KPIC ] [ -Q[y|n] ] [ -s ] [ -S[a|b|c|l|A|B|C|L]] [ -V ] [ -xchip=v ] [ -xmodel =[a] ] [ -Y[m|d],path ] [ -YI ,path ] filename...
as コマンドは、アセンブリ言語ソースファイルからオブジェクトファイルを生成します。
このセクションは、3 つに分かれています:
共通オプション (SPARC と x86 の両方に共通のオプション)
SPARC のオプション
x86 のオプション
–P オプションが有効な場合、これらのオプションは、as コマンドでは解釈されずに cpp(1) プリプロセッサに渡されます。そうでない場合は無視されます。
–P オプションが有効な場合、このオプションは、as コマンドでは解釈されずに cpp(1) プリプロセッサに渡されます。そうでない場合は無視されます。
as に対し、プリプロセッサからの行番号情報を無視するよう指示します。
アセンブラへの入力時に m4(1) マクロプロセッサを実行します。
32 ビットまたは 64 ビット ELF 形式のオブジェクトコードを生成します。
アセンブル実行時にすべての警告を抑制します。
アセンブリの出力を outfile に格納します。デフォルトでは、出力ファイル名は、入力ファイル名から .s 接尾辞 (もしあれば) を削除して、.o 接尾辞を付加することによって作成されます。
アセンブル中のファイルに対して、C プリプロセッサ cpp(1) を実行します。このプリプロセッサは、入力ファイルを連結したものではなく、各入力ファイルに対して実行されます。このプリプロセッサによる出力結果はアセンブラに渡されます。
y オプションを指定した場合、出力オブジェクトファイルの注釈セクションに「アセンブラバージョン」情報が生成されます。n オプションを指定すると、情報は抑制されます。
発行されたコードの逆アセンブリを標準出力に送ります。次の各文字を –S オプションに付けると、次の処理が実行されます。
アドレスによる逆アセンブル
.bof による逆アセンブル
注釈による逆アセンブル
行番号による逆アセンブル。
大文字を指定すると、対応するオプションが無効になります。デフォルトは –Sc です。
すべてのスタブを .stabs セクションに置きます。デフォルトでは、スタブは、静的リンカー ld(1) によって最終実行中に削除される stabs.excl セクションに置かれます。–s オプションを使用すると、.stab セクションが静的リンカーによって削除されないため、スタブは最終実行可能プログラム中に残ります。
–P オプションが有効な場合、このオプションは、as コマンドでは解釈されずに cpp(1) プリプロセッサに渡されます。そうでない場合は無視されます。
使用する m4 のバージョンへのパスを指定します。
#include ヘッダーファイルを検索するパスを示します。
ハードウェア機能セクションの生成を有効 (1) にするか、抑制 (0) します。デフォルトでは、このセクションを生成します。
領域を節約するために通常は破棄される一時ラベルを含む、すべてのシンボルを ELF シンボルテーブルに保存します。
すべての未定義シンボルをローカルとして扱います。
使用する cpp のバージョンへのパスを指定します。
SPARC-V9 アーキテクチャーで定義されている命令をアセンブラが受け入れることができるようにします。生成されるオブジェクトコードは、–m32 では ELF32 形式、–m64 では ELF64 形式になります。これは、Oracle Solaris V8 システム (V8 プロセッサを持つマシン) では実行されません。これは、Oracle Solaris V8+ システムで実行されます。
アセンブラが、SPARC-V9 アーキテクチャーで定義されている命令、および Visual Instruction Set (VIS) バージョン 1.0 の命令を受け入れることを可能にします。生成されるオブジェクトコードは、–m32 では V8+ ELF32 形式、–m64 では ELF64 形式になります。これは、V8 プロセッサを使用する Oracle Solaris システムでは実行されません。これは、V8+ プロセッサを使用する Oracle Solaris システムで実行されます。
アセンブラが、UltraSPARC-III 拡張機能を使用して、SPARC-V9 アーキテクチャーで定義された命令と、Visual Instruction Set (VIS) バージョン 2.0 の命令を受け入れることを可能にします。生成されるオブジェクトコードは、–m32 では V8+ ELF32 形式、–m64 では ELF64 形式になります。
SPARC-V9 ISA の SPARC VIS バージョン 3 (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、積和演算命令、および Visual Instruction Set (VIS) バージョン 3.0 で定義されている命令を受け入れます。
SPARC-V9 ISA の sparcfmaf バージョンに加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、および浮動小数点積和演算用 SPARC64 VI 拡張機能で定義されている命令を受け入れます。
SPARC-V9 ISA の sparcima バージョン (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、浮動小数点積和演算用 SPARC64 VI 拡張機能、および整数積和演算用 SPARC64 VII 拡張機能で定義されている命令を受け入れます。
SPARC-V9 ISA の sparc4 バージョンで定義された命令 (SPARC-V9 命令セットの命令)、VIS 1.0 を含む拡張機能で定義された命令、VIS 2.0 を含む UltraSPARC-III 拡張機能で定義された命令、浮動小数点積和演算命令、VIS 3.0、および SPARC4 命令を受け入れます。
SPARC-V9 ISA の sparcace バージョン (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、浮動小数点積和演算用 SPARC64 VI 拡張機能、整数積和演算用 SPARC64 VII 拡張機能で定義されている命令、および SPARCACE 命令を受け入れます。
SPARC-V9 ISA の sparcaceplus バージョン (SPARC-V9 命令セットの命令) に加え、Visual Instruction Set (VIS) バージョン 1.0 を含む UltraSPARC 拡張機能、Visual Instruction Set (VIS) バージョン 2.0 を含む UltraSPARC-III 拡張機能、浮動小数点積和演算用 SPARC64 VI 拡張機能、整数積和演算用 SPARC64 VII 拡張機能で定義されている命令、SPARCACE 命令、および SPARCACEPLUS 命令を受け入れます。
–m64 –xarch=sparc と同等
–m64 –xarch=sparcvis と同等
–m64 –xarch=sparcvis2 と同等
Oracle Solaris Studio パフォーマンスアナライザで使用される追加情報を生成します。入力ファイルにスタブ (デバッグ指令) が含まれない場合、アセンブラは Oracle Solaris Studio アナライザに必要なデフォルトスタブを生成します。Oracle Sun Studio マニュアルページの dbx(1) も参照してください。
64 ビットモードでの 32 ビットアドレスを許可します。
ハードウェア機能セクションを生成します。(これはデフォルトです。)
ハードウェア機能セクションの生成を抑制します。
絶対再配置を使用するアドレス参照を検査して、警告を発行します。
複数のエンコードから選択可能な場合、指定されたチップに適したものを選択します。特に、適切な no-op バイトシーケンスを使用してコード配置パディングを実行し、指定されたチップ用に定義されていない命令が使用される場合は警告します。
アセンブラは、次の認識される –xchip 値の命令セットを受け入れます。
汎用 x86 命令セット。
このホストプロセッサ。
Intel Core2 プロセッサ。
Intel Nehalem プロセッサ。
AMD Opteron プロセッサ。
Intel Penryn プロセッサ。
Intel Pentium アーキテクチャー。
Intel Pentium Pro アーキテクチャー。
Intel Pentium 3 スタイルプロセッサ。
Intel Pentium 4 スタイルプロセッサ。
Intel Sandy Bridge プロセッサ。
Intel Westmere プロセッサ。
AMD FAM10 プロセッサ。
Intel Ivy Bridge プロセッサ。
Intel Haswell プロセッサ。
–m64 の場合のみ、データアクセス用の R_X86_64_32S 再配置可能タイプを kernel の下に生成します。それ以外の場合は、R_X86_64_32 を small の下に生成します。SHN_AMD64_LCOMMON および .lbcomm のサポートが medium の下に追加されました。デフォルトは small です。
使用する cm4defs のバージョンへのパスを指定します。
通常、as コマンドは、一時ファイルを /tmp ディレクトリ内に作成します。環境変数 TMPDIR を選択したディレクトリに設定することにより、別のディレクトリを指定できます。(TMPDIR が有効なディレクトリではない場合、as は /tmp を使用します)。
デフォルトでは、as は一時ファイルを /tmp に作成します。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
cpp(1), ld(1), m4(1), nm(1), strip(1), tmpnam(3C), a.out(4), attributes(5)
SPARC プラットフォームでは、–P フラグが出現すると cpp シンボル __sparc が設定され、–m32 フラグの場合には __sparcv8 が、–m64 フラグの場合には __sparcv9 がそれぞれ設定されます。
x86/x64 では、–P フラグが出現するとシンボル __i386 が設定され、–m64 フラグの場合には __amd64 が設定されます。
–m (m4(1) マクロプロセッサを起動) オプションを使用する場合、m4 はアセンブラシンボルのキーワードと、実際の m4 マクロのキーワードとを区別できないため、m4 のキーワードを入力ファイルのシンボル (変数、関数、ラベル) として使用することはできません。
適切なライブラリリンクを保証するため、可能な場合は常に、Oracle Solaris Studio C コンパイラ (cc) などのコンパイルシステムインタフェースプログラム経由でアセンブラにアクセスしてください。Oracle Solaris Studio マニュアルページの cc(1) を参照してください。