[ < ] | [ > ] | [ << ] | [ 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_LIBCALL
C の文字列定数。これは、符号付きの全ワードをもう一つの符号付き全ワードで
割った余りを求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__modsi3
であり、‘libgcc.a’ で定義されている関数である。
UMODSI3_LIBCALL
C の文字列定数。これは、符号なしの全ワードをもう一つの符号なし全ワードで
割った余りを求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__umodsi3
であり、‘libgcc.a’ で定義されている関数である。
MULDI3_LIBCALL
C の文字列定数。これは、符号付きの2ワードともう一つの符号付き2ワードの
積を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__muldi3
であり、‘libgcc.a’ で定義されている関数である。
DIVDI3_LIBCALL
C の文字列定数。これは、符号付きのダブルワード同士の
商を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__divdi3
であり、‘libgcc.a’ で定義されている関数である。
UDIVDI3_LIBCALL
C の文字列定数。これは、符号なしのダブルワード同士の
商を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__udivdi3
であり、‘libgcc.a’ で定義されている関数である。
MODDI3_LIBCALL
C の文字列定数。これは、符号付きのダブルワード同士の
剰余を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__moddi3
であり、‘libgcc.a’ で定義されている関数である。
UMODDI3_LIBCALL
C の文字列定数。これは、符号なしの(ダブル?)ワード同士の
剰余を求めるために呼び出す関数名を与える。
このマクロを定義しないと、デフォルトの名前が使われる。
これは、__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_FUNCTIONS
GNU CC が、BSD の関数 bcopy
と bzero
ではなく、
System V(と ANSI C) の関数 memcpy
と memset
の呼び出しを
生成すべきなら、このマクロを定義する。
LIBGCC_NEEDS_DOUBLE
float
型の引数だけがライブラリ関数に渡せない(そのため
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.