[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この節で説明するマクロはそれぞれ、一個の非初期化変数を出力する 作業を全部行なう。
ASM_OUTPUT_COMMON (stream, name, size, rounded)
C の文(セミコロンなし)であり、標準入出力ストリーム stream に name という名前でサイズが size バイトのコモンラベルの アセンブラ定義を出力する。 変数 rounded は、呼びだし側が要求するアライメントまで切り上げた 大きさである。
名前自身を出力するには、assemble_name (stream, name)
という式を使う。その前後で、その名前を定義するために追加で必要な
アセンブラ構文を出力し、最後に改行を出力する。
このマクロは、非初期化コモングローバル変数のアセンブラ定義がどのように 出力されるかを制御する。
ASM_OUTPUT_ALIGNED_COMMON (stream, name, size, alignment)
ASM_OUTPUT_COMMON
とほぼ同じだが、違いは必要となる
アラインメントを、独立した明示的な引数として取ることである。
このマクロを定義すると、ASM_OUTPUT_COMMON
の代わりに使われ、
変数に要求されるアラインメントをより柔軟に扱えるようになる。
アラインメントはビット数で指定する。
ASM_OUTPUT_ALIGNED_DECL_COMMON (stream, decl, name, size, alignment)
ASM_OUTPUT_ALIGNED_COMMON
とほぼ同じだが、違いは、
出力すべき変数がひとつあれば、その宣言 decl を指定する点にある。
対応する変数がなければ decl には NULL_TREE
を指定する。
このマクロを定義すると、GNU CC は ASM_OUTPUT_COMMON
と
ASM_OUTPUT_ALIGNED_COMMON
の両方の代わりに使う。
何を出力するかを選択するために変数の宣言が見える必要があるときは
このマクロを定義すること。
ASM_OUTPUT_SHARED_COMMON (stream, name, size, rounded)
定義されていれば、ASM_OUTPUT_COMMON
とほぼ同じだが、
違いは name が共有されるときに使われる点にある。
定義されていないと、ASM_OUTPUT_COMMON
が使われる。
ASM_OUTPUT_BSS (stream, decl, name, size, rounded)
一個のC の文(セミコロンなし)。標準入出力 ストリーム stream に、name という名前で、サイズが size バイトの非初期化グローバル decl のアセンブラ定義を出力する。 変数 rounded は、呼び出し側が要求するアラインメントがなんであれ、 そのアラインメントに切り上げられたサイズである。
このマクロを定義するときは ‘varasm.c’ に定義されている
関数 asm_output_bss
を使うようにして欲しい。
それが不可能な場合は、assemble_name (stream, name)
という式を使ってその名前自身を出力する。
その前後で、その名前を定義するアセンブラ構文を追加し、次に改行を
出力する。
このマクロは、非初期化グローバル変数のアセンブラ定義がどのように出力
されるかを制御する。このマクロは、c++
のように common
データを
持たない言語を適切にサポートするためにある。
だが、このマクロは現時点では全てのターゲットで定義されているわけではない。
このマクロと ASM_OUTPUT_ALIGNED_BSS
が定義されていない場合は、
ASM_OUTPUT_COMMON
か ASM_OUTPUT_ALIGNED_COMMON
か
ASM_OUTPUT_ALIGNED_DECL_COMMON
が使われる。
ASM_OUTPUT_ALIGNED_BSS (stream, decl, name, size, alignment)
ASM_OUTPUT_BSS
に似ているが、違いは、必要なアラインメントを
別個の明示的な引数として取ることである。
このマクロを定義すると、ASM_OUTPUT_BSS
の代わりに使われ、
変数で必要とされるアラインメントをより柔軟に扱えるようになる。
アライメントはビット数で指定する。
このマクロを定義するときは ‘varasm.c’ で定義されている
関数 asm_output_aligned_bss
を使うようにして欲しい。
ASM_OUTPUT_SHARED_BSS (stream, decl, name, size, rounded)
定義されていれば、ASM_OUTPUT_BSS
とほぼ同様だが、
違いは name が共有されるときに使われることである。
定義されていない場合は、ASM_OUTPUT_BSS
が使われる。
ASM_OUTPUT_LOCAL (stream, name, size, rounded)
一個の C の文(セミコロン無し)。標準入出力ストリーム stream に サイズが size バイトで、name という名前の ローカル・コモン・ラベルのアセンブラ定義を出力する。 変数 rounded は、呼び出し側が要求するアラインメントに切り上げられる サイズである。
という式を使ってその名前自身を出力する。 その前後で、その名前を定義するアセンブラ構文を追加し、次に改行を 出力する。
このマクロは、非初期化静的変数のアセンブラ定義をどのように出力するかを 制御する。
ASM_OUTPUT_ALIGNED_LOCAL (stream, name, size, alignment)
ASM_OUTPUT_LOCAL
とほぼ同じだが、違いは、必要なアラインメントを
別個の明示的な引数として取ることである。
このマクロを定義すると、ASM_OUTPUT_LOCAL
の代わりに使われ、
変数で必要とされるアラインメントをより柔軟に扱えるようになる。
アライメントはビット数で指定する。
ASM_OUTPUT_ALIGNED_DECL_LOCAL (stream, decl, name, size, alignment)
ASM_OUTPUT_ALIGNED_DECL
とほぼ同じだが、違いは、
出力すべき変数がひとつあれば、その宣言 decl を指定する点にある。
対応する変数がなければ decl には NULL_TREE
を指定する。
このマクロを定義すると、GNU CC は ASM_OUTPUT_DECL
と
ASM_OUTPUT_ALIGNED_DECL
の両方の代わりに使う。
何を出力するかを選択するために変数の宣言が見える必要があるときは
このマクロを定義すること。
ASM_OUTPUT_SHARED_LOCAL (stream, name, size, rounded)
定義されていれば、ASM_OUTPUT_LOCAL
とほぼ同様だが、
違いは name が共有されるときに使われることである。
定義されていない場合は、ASM_OUTPUT_LOCAL
が使われる。
This document was generated
using texi2html 1.78.