| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この節では、ライブラリルーチンの暗黙的な呼び出しについて説明する。
MULSI3_LIBCALL符号付きのワード同士の乗算の際に呼び出すべき関数名を与える C の
文字列定数。
このマクロを定義しない場合は、デフォルトの名前、__mulsi3 が使われる。
__mulsi3 は ‘libgcc.a’ で定義される。
DIVSI3_LIBCALL符号付きのワード同士の除算の際に呼び出すべき関数名を与える C の
文字列定数。
このマクロを定義しない場合は、デフォルトの名前、__divsi3 が使われる。
__divsi3 は ‘libgcc.a’ で定義される。
UDIVSI3_LIBCALL符号なしのワード同士の除算の際に呼び出すべき関数名を与える C の
文字列定数。
このマクロを定義しない場合は、デフォルトの名前、__udivsi3 が使われる。
__udivsi3 は ‘libgcc.a’ で定義される。
MODSI3_LIBCALLC の文字列定数。これは、符号付きの全ワードをもう一つの符号付き全ワードで
割った余りを求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__modsi3 であり、‘libgcc.a’ で定義されている関数である。
UMODSI3_LIBCALLC の文字列定数。これは、符号なしの全ワードをもう一つの符号なし全ワードで
割った余りを求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__umodsi3 であり、‘libgcc.a’ で定義されている関数である。
MULDI3_LIBCALLC の文字列定数。これは、符号付きの2ワードともう一つの符号付き2ワードの
積を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__muldi3 であり、‘libgcc.a’ で定義されている関数である。
DIVDI3_LIBCALLC の文字列定数。これは、符号付きのダブルワード同士の
商を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__divdi3 であり、‘libgcc.a’ で定義されている関数である。
UDIVDI3_LIBCALLC の文字列定数。これは、符号なしのダブルワード同士の
商を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__udivdi3 であり、‘libgcc.a’ で定義されている関数である。
MODDI3_LIBCALLC の文字列定数。これは、符号付きのダブルワード同士の
剰余を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__moddi3 であり、‘libgcc.a’ で定義されている関数である。
UMODDI3_LIBCALLC の文字列定数。これは、符号なしの(ダブル?)ワード同士の
剰余を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__umoddi3 であり、‘libgcc.a’ で定義されている関数である。
INIT_TARGET_OPTABS一個の C の文。この文は、ライブラリルーチンの宣言を追加して、
既存のものの名前を付け替える。init_optabs は、
全ての通常ライブラリルーチンを初期化した後、このマクロを呼び出す。
TARGET_EDOMターゲット機種の EDOM の値を、C の整数定数式として表したもの。
このマクロを定義しない場合は、GNU CC は EDOM の値を errno に
直接置こうとはしない。
‘/usr/include/errno.h’ を見て、読者のシステムでの EDOM の
値を探すこと。
TARGET_EDOM を定義しないと、コンパイルされたコードが、
そのライブラリ関数を呼び出し、エラーを報告させることで、
ドメインエラーを報告する。
読者のシステムの数学関数がエラーがあるときに matherr を
使うなら、TARGET_EDOMO を未定義とし、通常通り matherr が
使われるようにすべきである。
GEN_ERRNO_RTXグローバル「変数」 errno を参照する RTL 式を作る C の式として
このマクロを定義する。
(システムによっては、errno は実際には変数ではない可能性がある。)
このマクロを定義しない場合は、適切なデフォルトが使われる。
TARGET_MEM_FUNCTIONSGNU CC が、BSD の関数 bcopy と bzero ではなく、
System V(と ANSI C) の関数 memcpy と memset の呼び出しを
生成すべきなら、このマクロを定義する。
LIBGCC_NEEDS_DOUBLEfloat 型の引数だけがライブラリ関数に渡せない(そのため
double に変換しなければならない)場合は、このマクロを定義する。
このマクロは、ライブラリ呼び出しがどのように生成されるのかと
‘libgcc1.c’ の中のライブラリルーチンがどのように引数を受け取るのか
の両方に影響する。
i860 のように、浮動小数点引数と固定小数点引数では
渡し方が異なる場合には役に立つマクロである。
FLOAT_ARG_TYPEライブラリルーチンが float 型の引数を取り出す時に使われる
型を変えたい場合はこのマクロで定義する。
(デフォルトでは、float と int の共用体型を使う。)
float にすれば良いように思うだろうが、旧来の C コンパイラでは
うまく行かない。float として宣言されている全ての引数が
double として渡されることを想定しているからである。
この float から double の変換を避けるために、
ライブラリルーチンは、その値を何か他の型として要求し、その後で
float として扱う。
システムによっては、このために使える他の型がない場合もある。
そういうシステムでは、LIBGCC_NEEDS_DOUBLE を代わりに使って、
その値を渡される前に double に強制的に変換するように
しなければならない。
FLOATIFY (passed-value)ライブラリルーチンが float 型の引数を渡された型の代わりに
float として再度指示する方法を変えたい場合はこのマクロを定義する。
型を変えたい場合はこのマクロで定義する。
デフォルトでは、前出の共用体の float フィールドを取る式である。
FLOAT_VALUE_TYPEライブラリルーチンが、float 型を持つべき値を返すのに
使われる型を変えるには、このマクロを定義する。
(デフォルトでは int になる。)
float にすれば良いように思うだろうが、旧来の C コンパイラでは
うまく行かない。float として宣言された値を不必要に double
に変換するからである。
INTIFY (float-value)float 型を返すライブラリルーチンの値を、それを返すためには
どのようにパッケージするべきか、その方法を変更したいときは
このマクロを定義する。これらの関数は実際に FLOAT_VALUE_TYPE(普通
int になる)型を返すように宣言される。
これらの値は float 型として返すことはできない。
なぜなら、旧来の C コンパイラは常にの値を double に変換して
しまうからである。
intify という名前の局所変数が、マクロ INTIFY を使うときは
いつでも利用可能である。これは、float 型のフィールド f と
FLOAT_VALUE_TTYPE 型か int 型のフィールド i とから
なる共用体である。
このマクロを定義しない場合の、デフォルトの定義の動作は、この値を その共用体を通してコピーする。
nongcc_SI_typeこのマクロは、システムの C コンパイラで SImode に対応する
データ型名を定義する。
その型が通常の long int なら、このマクロを定義する必要はない。
nongcc_word_typeこのマクロは、システムの C コンパイラで word_mode に対応する
データ型名を定義する。
その型が通常の long int なら、このマクロを定義する必要はない。
perform_…これらのマクロは、‘libgcc1.c’ 中のライブラリルーチン群にある、
float 型と double 型についての様々な算術演算を
実行する C の文を明示的に提供するように定義する。
これらのマクロとその引数の完全なリストについては ‘libgcc1.c’ を
見ること。
ほとんどの機種では、これらのマクロはどれも定義する必要がない。 何故なら、システム付属の C コンパイラが面倒を見るからである。
NEXT_OBJC_RUNTIMEこのマクロは、NeXT システムの呼び出し規約を使って Objective C の メッセージを送信するためのコードを生成するように定義する。 この呼び出し規約には、オブジェクト、セレクタ、メソッド引数を全て 一度にメソッド検索ライブラリ関数に渡すことが含まれる。
デフォルトの呼び出し規約は、オブジェクトと検索関数のセレクタを渡すだけである。 検索関数はメソッドへのポインタを返す。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated
using texi2html 1.78.