(gccint.info.gz) Library Calls

Info Catalog (gccint.info.gz) Trampolines (gccint.info.gz) Target Macros (gccint.info.gz) Addressing Modes
 
 17.13 Implicit Calls to Library Routines
 ========================================
 
 Here is an explanation of implicit calls to library routines.
 
  -- Macro: 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.
 
  -- Target Hook: void TARGET_INIT_LIBFUNCS (void)
      This hook should declare additional library routines or rename
      existing ones, using the functions `set_optab_libfunc' and
      `init_one_libfunc' defined in `optabs.c'.  `init_optabs' calls
      this macro after initializing all the normal library routines.
 
      The default is to do nothing.  Most ports don't need to define
      this hook.
 
  -- Macro: FLOAT_LIB_COMPARE_RETURNS_BOOL (MODE, COMPARISON)
      This macro should return `true' if the library routine that
      implements the floating point comparison operator COMPARISON in
      mode MODE will return a boolean, and FALSE if it will return a
      tristate.
 
      GCC's own floating point libraries return tristates from the
      comparison operators, so the default returns false always.  Most
      ports don't need to define this macro.
 
  -- Macro: TARGET_LIB_INT_CMP_BIASED
      This macro should evaluate to `true' if the integer comparison
      functions (like `__cmpdi2') return 0 to indicate that the first
      operand is smaller than the second, 1 to indicate that they are
      equal, and 2 to indicate that the first operand is greater than
      the second.  If this macro evaluates to `false' the comparison
      functions return -1, 0, and 1 instead of 0, 1, and 2.  If the
      target uses the routines in `libgcc.a', you do not need to define
      this macro.
 
  -- Macro: US_SOFTWARE_GOFAST
      Define this macro if your system C library uses the US Software
      GOFAST library to provide floating point emulation.
 
      In addition to defining this macro, your architecture must set
      `TARGET_INIT_LIBFUNCS' to `gofast_maybe_init_libfuncs', or else
      call that function from its version of that hook.  It is defined
      in `config/gofast.h', which must be included by your
      architecture's `CPU.c' file.  See `sparc/sparc.c' for an example.
 
      If this macro is defined, the
      `TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL' target hook must return
      false for `SFmode' and `DFmode' comparisons.
 
  -- 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.
 
  -- Macro: 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.
 
  -- Macro: TARGET_C99_FUNCTIONS
      When this macro is nonzero, GCC will implicitly optimize `sin'
      calls into `sinf' and similarly for other functions defined by C99
      standard.  The default is zero because a number of existing
      systems lack support for these functions in their runtime so this
      macro needs to be redefined to one on systems that do support the
      C99 runtime.
 
  -- Macro: TARGET_HAS_SINCOS
      When this macro is nonzero, GCC will implicitly optimize calls to
      `sin' and `cos' with the same argument to a call to `sincos'.  The
      default is zero.  The target has to provide the following
      functions:
           void sincos(double x, double *sin, double *cos);
           void sincosf(float x, float *sin, float *cos);
           void sincosl(long double x, long double *sin, long double *cos);
 
  -- Macro: 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.
 
Info Catalog (gccint.info.gz) Trampolines (gccint.info.gz) Target Macros (gccint.info.gz) Addressing Modes
automatically generated by info2html