[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

17.16.1 アセンブラファイルの全体的枠組

この節では、アセンブラファイルについての全体的な枠組を説明する。

ASM_FILE_START (stream)

アセンブラファイルの先頭に書き出すべきテキストを、 標準入出力ストリーム stream へ出力する C の式を定義する。

普通は、このマクロは ‘#NO_APP’ を含む行を一行出力するように 定義される。‘#NO_APP’ はコメントであり、多くのアセンブラには 何の効果ももたらさないが、GNU アセンブラに対しては、 ある種のアセンブラ構文に関する検査を省くことにより、時間を節約することを 指示する。

SDB を使用するシステムでは、ある一定のコマンドを出力する必要がある。 ‘attasm.h’ を参照のこと。

ASM_FILE_END (stream)

アセンブラファイルの末尾に追加される何か適切なテキストを、標準入出力 ストリーム stream に出力する C の式。

このマクロが定義されていない場合は、デフォルトはファイルの最後に 何も特別なものは出力されない。 多くのシステムでは何も定義を必要としない。

SDB を使っているシステムでは、特定のコマンドを出力する必要がある。 ‘attasm.h’ を参照のこと。

ASM_IDENTIFY_GCC (file)

オブジェクトファイルが GNU CC(あるいは別の GNU コンパイラ)で コンパイルされたことを特定するアセンブラコマンドを出力する C の式。

このマクロを定義しない場合は、‘gcc-compiled.:’ という 文字列が出力される。この文字列は、BSD システムでは 何か他の理由で定義されることが決してないようなシンボルを定義するように 選ばれている。 GDB は、実行形式ファイルからシンボルテーブルを読み込むときにこの シンボルが存在するかどうかを検査する。

非BSDシステムでは、GDB とのやり取りは何か別の形式で調整しなければ ならない。GDB が使われていないシステムでは、このマクロの本体を 空に定義することができる。

ASM_COMMENT_START

ターゲットのアセンブラ言語において、コメントを開始する方法を記述する C の文字列定数。コンパイラは、コメントは行末で終了すると仮定する。

ASM_APP_ON

個々の asm 文、あるいは連続した一塊のasm 文の直前に 出力すべきテキストを表す C の文字列定数。 通常は "#APP" になる。これは、ほとんどのアセンブラには 何の効果もないが、GNU アセンブラに対しては、後続の行が全て 正しいアセンブラ構文をなしているかどうかを検査しなければならないことを 指示する。

ASM_APP_OFF

個々の asm 文、あるいは連続した一塊のasm 文の直後に 出力すべきテキストを表す C の文字列定数。 通常は "#NO_APP" になる。これは、GNU アセンブラに対しては、 通常のコンパイラの出力について成り立つ時間を節約する仮定を 復活させることを指示する。

ASM_OUTPUT_SOURCE_FILENAME (stream, name)

一個の C の文。この文では、 現在のソースファイル名が name であることを知らせる、 COFF 形式の情報または DWARF 形式のデバッグ情報を、標準入出力 ストリーム stream に出力する。

使われているファイル形式の標準的な出力形式が適切なものであるなら、 このマクロを定義する必要はない。

OUTPUT_QUOTED_STRING (stream, string)

一個の C の文。この文は、文字列 string を標準入出力ストリーム stream に出力する。コンフィギュレーションファイルで関数 output_quoted_string を呼び出さない場合は、GNU CC はこの関数を アセンブラソースにファイル名を出力するためにしか呼び出さない。 このため、この関数をこのマクロと組み合わせて使うことで、 ファイル名の形式を正規化することができる。

ASM_OUTPUT_SOURCE_LINE (stream, line)

一個の C の文。この文は、現在のソースファイルの行番号 line に 対するコードの前に DBX または SDB 形式のデバッグ情報を出力する。 出力先は標準入出力ストリーム stream である。

使われているデバッガ用の標準的なデバッグ情報形式が適切なものであるなら、 このマクロを定義する必要はない。

ASM_OUTPUT_IDENT (stream, string)

一個の C の文。この文は、string というテキストを含む ‘#ident’ 制御子を処理するものをアセンブラファイルに出力する。 このマクロが定義されていないと、‘#ident’ 制御子に対しては 何も出力されない。

ASM_OUTPUT_SECTION_NAME (stream, decl, name, reloc)

一個の C の文。この文は、FUNCTION_DECL か、VAR_DECL か、 NULL_TREE であるオブジェクト decl に対して、 セクションを name に切り替えるためのものをアセンブラファイルに 出力する。reloc は、decl の初期値がリンク時の再配置を 必要とするかどうかを指示する。 ターゲットのフォーマットによっては、任意のセクションをサポートしていない ものもあるので、そういう場合はこのマクロを定義しないこと。

現時点では、このマクロはセクションの属性をサポートするために使われている だけである。このマクロが定義されていないと、セクションの属性は無効になる。

OBJC_PROLOGUE

一個の C の文。この文は、任意の Objective C のオブジェクト定義や メッセージの送出に先行することが要求されるアセンブラ文を出力する。 この文は、Objective C プログラムをコンパイルするときにだけ実行される。


This document was generated using texi2html 1.78.