Implicit Calls to Library Routines
Here is an explanation of implicit calls to library routines.
MULSI3_LIBCALL
- A C string constant giving the name of the function to call for
multiplication of one signed full-word by another. If you do not
define this macro, the default name is used, which is
__mulsi3
,
a function defined in libgcc.a
.
DIVSI3_LIBCALL
- A C string constant giving the name of the function to call for
division of one signed full-word by another. If you do not define
this macro, the default name is used, which is
__divsi3
, a
function defined in libgcc.a
.
UDIVSI3_LIBCALL
- A C string constant giving the name of the function to call for
division of one unsigned full-word by another. If you do not define
this macro, the default name is used, which is
__udivsi3
, a
function defined in libgcc.a
.
MODSI3_LIBCALL
- A C string constant giving the name of the function to call for the
remainder in division of one signed full-word by another. If you do
not define this macro, the default name is used, which is
__modsi3
, a function defined in libgcc.a
.
UMODSI3_LIBCALL
- A C string constant giving the name of the function to call for the
remainder in division of one unsigned full-word by another. If you do
not define this macro, the default name is used, which is
__umodsi3
, a function defined in libgcc.a
.
MULDI3_LIBCALL
- A C string constant giving the name of the function to call for
multiplication of one signed double-word by another. If you do not
define this macro, the default name is used, which is
__muldi3
,
a function defined in libgcc.a
.
DIVDI3_LIBCALL
- A C string constant giving the name of the function to call for
division of one signed double-word by another. If you do not define
this macro, the default name is used, which is
__divdi3
, a
function defined in libgcc.a
.
UDIVDI3_LIBCALL
- A C string constant giving the name of the function to call for
division of one unsigned full-word by another. If you do not define
this macro, the default name is used, which is
__udivdi3
, a
function defined in libgcc.a
.
MODDI3_LIBCALL
- A C string constant giving the name of the function to call for the
remainder in division of one signed double-word by another. If you do
not define this macro, the default name is used, which is
__moddi3
, a function defined in libgcc.a
.
UMODDI3_LIBCALL
- A C string constant giving the name of the function to call for the
remainder in division of one unsigned full-word by another. If you do
not define this macro, the default name is used, which is
__umoddi3
, a function defined in libgcc.a
.
DECLARE_LIBRARY_RENAMES
- This macro, if defined, should expand to a piece of C code that will get
expanded when compiling functions for libgcc.a. It can be used to
provide alternate names for gcc's internal library functions if there
are ABI-mandated names that the compiler should provide.
INIT_TARGET_OPTABS
- Define this macro as a C statement that declares additional library
routines renames existing ones.
init_optabs
calls this macro after
initializing all the normal library routines.
FLOAT_LIB_COMPARE_RETURNS_BOOL
- Define this macro as a C statement that returns nonzero if a call to
the floating point comparison library function will return a boolean
value that indicates the result of the comparison. It should return
zero if one of gcc's own libgcc functions is called.
Most ports don't need to define this macro.
TARGET_EDOM
- The value of
EDOM
on the target machine, as a C integer constant
expression. If you don't define this macro, GCC does not attempt to
deposit the value of EDOM
into errno
directly. Look in
/usr/include/errno.h
to find the value of EDOM
on your
system.
If you do not define TARGET_EDOM
, then compiled code reports
domain errors by calling the library function and letting it report the
error. If mathematical functions on your system use matherr
when
there is an error, then you should leave TARGET_EDOM
undefined so
that matherr
is used normally.
GEN_ERRNO_RTX
- Define this macro as a C expression to create an rtl expression that
refers to the global "variable"
errno
. (On certain systems,
errno
may not actually be a variable.) If you don't define this
macro, a reasonable default is used.
TARGET_MEM_FUNCTIONS
- Define this macro if GCC should generate calls to the ISO C
(and System V) library functions
memcpy
, memmove
and
memset
rather than the BSD functions bcopy
and bzero
.
LIBGCC_NEEDS_DOUBLE
- Define this macro if
float
arguments cannot be passed to library
routines (so they must be converted to double
). This macro
affects both how library calls are generated and how the library
routines in libgcc.a
accept their arguments. It is useful on
machines where floating and fixed point arguments are passed
differently, such as the i860.
NEXT_OBJC_RUNTIME
- Define this macro to generate code for Objective-C message sending using
the calling convention of the NeXT system. This calling convention
involves passing the object, the selector and the method arguments all
at once to the method-lookup library function.
The default calling convention passes just the object and the selector
to the lookup function, which returns a pointer to the method.