blob: d7010b9c8952ad168151d7f1c29e12c5069f0dba [file] [log] [blame]
This is gccint.info, produced by makeinfo version 5.2 from gccint.texi.
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Funding Free
Software", the Front-Cover texts being (a) (see below), and with the
Back-Cover Texts being (b) (see below). A copy of the license is
included in the section entitled "GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU software.
Copies published by the Free Software Foundation raise funds for GNU
development.
INFO-DIR-SECTION Software development
START-INFO-DIR-ENTRY
* gccint: (gccint). Internals of the GNU Compiler Collection.
END-INFO-DIR-ENTRY
This file documents the internals of the GNU compilers.
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Funding Free
Software", the Front-Cover texts being (a) (see below), and with the
Back-Cover Texts being (b) (see below). A copy of the license is
included in the section entitled "GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU software.
Copies published by the Free Software Foundation raise funds for GNU
development.

File: gccint.info, Node: Top, Next: Contributing, Up: (DIR)
Introduction
************
This manual documents the internals of the GNU compilers, including how
to port them to new targets and some information about how to write
front ends for new languages. It corresponds to the compilers (GCC)
version 4.3.3. The use of the GNU compilers is documented in a separate
manual. *Note Introduction: (gcc)Top.
This manual is mainly a reference manual rather than a tutorial. It
discusses how to contribute to GCC (*note Contributing::), the
characteristics of the machines supported by GCC as hosts and targets
(*note Portability::), how GCC relates to the ABIs on such systems
(*note Interface::), and the characteristics of the languages for which
GCC front ends are written (*note Languages::). It then describes the
GCC source tree structure and build system, some of the interfaces to
GCC front ends, and how support for a target system is implemented in
GCC.
Additional tutorial information is linked to from
<http://gcc.gnu.org/readings.html>.
* Menu:
* Contributing:: How to contribute to testing and developing GCC.
* Portability:: Goals of GCC's portability features.
* Interface:: Function-call interface of GCC output.
* Libgcc:: Low-level runtime library used by GCC.
* Languages:: Languages for which GCC front ends are written.
* Source Tree:: GCC source tree structure and build system.
* Options:: Option specification files.
* Passes:: Order of passes, what they do, and what each file is for.
* Trees:: The source representation used by the C and C++ front ends.
* RTL:: The intermediate representation that most passes work on.
* Control Flow:: Maintaining and manipulating the control flow graph.
* Tree SSA:: Analysis and optimization of the tree representation.
* Loop Analysis and Representation:: Analysis and representation of loops
* Machine Desc:: How to write machine description instruction patterns.
* Target Macros:: How to write the machine description C macros and functions.
* Host Config:: Writing the 'xm-MACHINE.h' file.
* Fragments:: Writing the 't-TARGET' and 'x-HOST' files.
* Collect2:: How 'collect2' works; how it finds 'ld'.
* Header Dirs:: Understanding the standard header file directories.
* Type Information:: GCC's memory management; generating type information.
* Funding:: How to help assure funding for free software.
* GNU Project:: The GNU Project and GNU/Linux.
* Copying:: GNU General Public License says
how you can copy and share GCC.
* GNU Free Documentation License:: How you can copy and share this manual.
* Contributors:: People who have contributed to GCC.
* Option Index:: Index to command line options.
* Concept Index:: Index of concepts and symbol names.

File: gccint.info, Node: Contributing, Next: Portability, Up: Top
1 Contributing to GCC Development
*********************************
If you would like to help pretest GCC releases to assure they work well,
current development sources are available by SVN (see
<http://gcc.gnu.org/svn.html>). Source and binary snapshots are also
available for FTP; see <http://gcc.gnu.org/snapshots.html>.
If you would like to work on improvements to GCC, please read the
advice at these URLs:
<http://gcc.gnu.org/contribute.html>
<http://gcc.gnu.org/contributewhy.html>
for information on how to make useful contributions and avoid
duplication of effort. Suggested projects are listed at
<http://gcc.gnu.org/projects/>.

File: gccint.info, Node: Portability, Next: Interface, Prev: Contributing, Up: Top
2 GCC and Portability
*********************
GCC itself aims to be portable to any machine where 'int' is at least a
32-bit type. It aims to target machines with a flat (non-segmented)
byte addressed data address space (the code address space can be
separate). Target ABIs may have 8, 16, 32 or 64-bit 'int' type. 'char'
can be wider than 8 bits.
GCC gets most of the information about the target machine from a
machine description which gives an algebraic formula for each of the
machine's instructions. This is a very clean way to describe the
target. But when the compiler needs information that is difficult to
express in this fashion, ad-hoc parameters have been defined for machine
descriptions. The purpose of portability is to reduce the total work
needed on the compiler; it was not of interest for its own sake.
GCC does not contain machine dependent code, but it does contain code
that depends on machine parameters such as endianness (whether the most
significant byte has the highest or lowest address of the bytes in a
word) and the availability of autoincrement addressing. In the
RTL-generation pass, it is often necessary to have multiple strategies
for generating code for a particular kind of syntax tree, strategies
that are usable for different combinations of parameters. Often, not
all possible cases have been addressed, but only the common ones or only
the ones that have been encountered. As a result, a new target may
require additional strategies. You will know if this happens because
the compiler will call 'abort'. Fortunately, the new strategies can be
added in a machine-independent fashion, and will affect only the target
machines that need them.

File: gccint.info, Node: Interface, Next: Libgcc, Prev: Portability, Up: Top
3 Interfacing to GCC Output
***************************
GCC is normally configured to use the same function calling convention
normally in use on the target system. This is done with the
machine-description macros described (*note Target Macros::).
However, returning of structure and union values is done differently on
some target machines. As a result, functions compiled with PCC
returning such types cannot be called from code compiled with GCC, and
vice versa. This does not cause trouble often because few Unix library
routines return structures or unions.
GCC code returns structures and unions that are 1, 2, 4 or 8 bytes long
in the same registers used for 'int' or 'double' return values. (GCC
typically allocates variables of such types in registers also.)
Structures and unions of other sizes are returned by storing them into
an address passed by the caller (usually in a register). The target
hook 'TARGET_STRUCT_VALUE_RTX' tells GCC where to pass this address.
By contrast, PCC on most target machines returns structures and unions
of any size by copying the data into an area of static storage, and then
returning the address of that storage as if it were a pointer value.
The caller must copy the data from that memory area to the place where
the value is wanted. This is slower than the method used by GCC, and
fails to be reentrant.
On some target machines, such as RISC machines and the 80386, the
standard system convention is to pass to the subroutine the address of
where to return the value. On these machines, GCC has been configured
to be compatible with the standard compiler, when this method is used.
It may not be compatible for structures of 1, 2, 4 or 8 bytes.
GCC uses the system's standard convention for passing arguments. On
some machines, the first few arguments are passed in registers; in
others, all are passed on the stack. It would be possible to use
registers for argument passing on any machine, and this would probably
result in a significant speedup. But the result would be complete
incompatibility with code that follows the standard convention. So this
change is practical only if you are switching to GCC as the sole C
compiler for the system. We may implement register argument passing on
certain machines once we have a complete GNU system so that we can
compile the libraries with GCC.
On some machines (particularly the SPARC), certain types of arguments
are passed "by invisible reference". This means that the value is
stored in memory, and the address of the memory location is passed to
the subroutine.
If you use 'longjmp', beware of automatic variables. ISO C says that
automatic variables that are not declared 'volatile' have undefined
values after a 'longjmp'. And this is all GCC promises to do, because
it is very difficult to restore register variables correctly, and one of
GCC's features is that it can put variables in registers without your
asking it to.

File: gccint.info, Node: Libgcc, Next: Languages, Prev: Interface, Up: Top
4 The GCC low-level runtime library
***********************************
GCC provides a low-level runtime library, 'libgcc.a' or 'libgcc_s.so.1'
on some platforms. GCC generates calls to routines in this library
automatically, whenever it needs to perform some operation that is too
complicated to emit inline code for.
Most of the routines in 'libgcc' handle arithmetic operations that the
target processor cannot perform directly. This includes integer
multiply and divide on some machines, and all floating-point and
fixed-point operations on other machines. 'libgcc' also includes
routines for exception handling, and a handful of miscellaneous
operations.
Some of these routines can be defined in mostly machine-independent C.
Others must be hand-written in assembly language for each processor that
needs them.
GCC will also generate calls to C library routines, such as 'memcpy'
and 'memset', in some cases. The set of routines that GCC may possibly
use is documented in *note (gcc)Other Builtins::.
These routines take arguments and return values of a specific machine
mode, not a specific C type. *Note Machine Modes::, for an explanation
of this concept. For illustrative purposes, in this chapter the
floating point type 'float' is assumed to correspond to 'SFmode';
'double' to 'DFmode'; and 'long double' to both 'TFmode' and 'XFmode'.
Similarly, the integer types 'int' and 'unsigned int' correspond to
'SImode'; 'long' and 'unsigned long' to 'DImode'; and 'long long' and
'unsigned long long' to 'TImode'.
* Menu:
* Integer library routines::
* Soft float library routines::
* Decimal float library routines::
* Fixed-point fractional library routines::
* Exception handling routines::
* Miscellaneous routines::

File: gccint.info, Node: Integer library routines, Next: Soft float library routines, Up: Libgcc
4.1 Routines for integer arithmetic
===================================
The integer arithmetic routines are used on platforms that don't provide
hardware support for arithmetic operations on some modes.
4.1.1 Arithmetic functions
--------------------------
-- Runtime Function: int __ashlsi3 (int A, int B)
-- Runtime Function: long __ashldi3 (long A, int B)
-- Runtime Function: long long __ashlti3 (long long A, int B)
These functions return the result of shifting A left by B bits.
-- Runtime Function: int __ashrsi3 (int A, int B)
-- Runtime Function: long __ashrdi3 (long A, int B)
-- Runtime Function: long long __ashrti3 (long long A, int B)
These functions return the result of arithmetically shifting A
right by B bits.
-- Runtime Function: int __divsi3 (int A, int B)
-- Runtime Function: long __divdi3 (long A, long B)
-- Runtime Function: long long __divti3 (long long A, long long B)
These functions return the quotient of the signed division of A and
B.
-- Runtime Function: int __lshrsi3 (int A, int B)
-- Runtime Function: long __lshrdi3 (long A, int B)
-- Runtime Function: long long __lshrti3 (long long A, int B)
These functions return the result of logically shifting A right by
B bits.
-- Runtime Function: int __modsi3 (int A, int B)
-- Runtime Function: long __moddi3 (long A, long B)
-- Runtime Function: long long __modti3 (long long A, long long B)
These functions return the remainder of the signed division of A
and B.
-- Runtime Function: int __mulsi3 (int A, int B)
-- Runtime Function: long __muldi3 (long A, long B)
-- Runtime Function: long long __multi3 (long long A, long long B)
These functions return the product of A and B.
-- Runtime Function: long __negdi2 (long A)
-- Runtime Function: long long __negti2 (long long A)
These functions return the negation of A.
-- Runtime Function: unsigned int __udivsi3 (unsigned int A, unsigned
int B)
-- Runtime Function: unsigned long __udivdi3 (unsigned long A, unsigned
long B)
-- Runtime Function: unsigned long long __udivti3 (unsigned long long
A, unsigned long long B)
These functions return the quotient of the unsigned division of A
and B.
-- Runtime Function: unsigned long __udivmoddi3 (unsigned long A,
unsigned long B, unsigned long *C)
-- Runtime Function: unsigned long long __udivti3 (unsigned long long
A, unsigned long long B, unsigned long long *C)
These functions calculate both the quotient and remainder of the
unsigned division of A and B. The return value is the quotient,
and the remainder is placed in variable pointed to by C.
-- Runtime Function: unsigned int __umodsi3 (unsigned int A, unsigned
int B)
-- Runtime Function: unsigned long __umoddi3 (unsigned long A, unsigned
long B)
-- Runtime Function: unsigned long long __umodti3 (unsigned long long
A, unsigned long long B)
These functions return the remainder of the unsigned division of A
and B.
4.1.2 Comparison functions
--------------------------
The following functions implement integral comparisons. These functions
implement a low-level compare, upon which the higher level comparison
operators (such as less than and greater than or equal to) can be
constructed. The returned values lie in the range zero to two, to allow
the high-level operators to be implemented by testing the returned
result using either signed or unsigned comparison.
-- Runtime Function: int __cmpdi2 (long A, long B)
-- Runtime Function: int __cmpti2 (long long A, long long B)
These functions perform a signed comparison of A and B. If A is
less than B, they return 0; if A is greater than B, they return 2;
and if A and B are equal they return 1.
-- Runtime Function: int __ucmpdi2 (unsigned long A, unsigned long B)
-- Runtime Function: int __ucmpti2 (unsigned long long A, unsigned long
long B)
These functions perform an unsigned comparison of A and B. If A is
less than B, they return 0; if A is greater than B, they return 2;
and if A and B are equal they return 1.
4.1.3 Trapping arithmetic functions
-----------------------------------
The following functions implement trapping arithmetic. These functions
call the libc function 'abort' upon signed arithmetic overflow.
-- Runtime Function: int __absvsi2 (int A)
-- Runtime Function: long __absvdi2 (long A)
These functions return the absolute value of A.
-- Runtime Function: int __addvsi3 (int A, int B)
-- Runtime Function: long __addvdi3 (long A, long B)
These functions return the sum of A and B; that is 'A + B'.
-- Runtime Function: int __mulvsi3 (int A, int B)
-- Runtime Function: long __mulvdi3 (long A, long B)
The functions return the product of A and B; that is 'A * B'.
-- Runtime Function: int __negvsi2 (int A)
-- Runtime Function: long __negvdi2 (long A)
These functions return the negation of A; that is '-A'.
-- Runtime Function: int __subvsi3 (int A, int B)
-- Runtime Function: long __subvdi3 (long A, long B)
These functions return the difference between B and A; that is 'A -
B'.
4.1.4 Bit operations
--------------------
-- Runtime Function: int __clzsi2 (int A)
-- Runtime Function: int __clzdi2 (long A)
-- Runtime Function: int __clzti2 (long long A)
These functions return the number of leading 0-bits in A, starting
at the most significant bit position. If A is zero, the result is
undefined.
-- Runtime Function: int __ctzsi2 (int A)
-- Runtime Function: int __ctzdi2 (long A)
-- Runtime Function: int __ctzti2 (long long A)
These functions return the number of trailing 0-bits in A, starting
at the least significant bit position. If A is zero, the result is
undefined.
-- Runtime Function: int __ffsdi2 (long A)
-- Runtime Function: int __ffsti2 (long long A)
These functions return the index of the least significant 1-bit in
A, or the value zero if A is zero. The least significant bit is
index one.
-- Runtime Function: int __paritysi2 (int A)
-- Runtime Function: int __paritydi2 (long A)
-- Runtime Function: int __parityti2 (long long A)
These functions return the value zero if the number of bits set in
A is even, and the value one otherwise.
-- Runtime Function: int __popcountsi2 (int A)
-- Runtime Function: int __popcountdi2 (long A)
-- Runtime Function: int __popcountti2 (long long A)
These functions return the number of bits set in A.
-- Runtime Function: int32_t __bswapsi2 (int32_t A)
-- Runtime Function: int64_t __bswapdi2 (int64_t A)
These functions return the A byteswapped.

File: gccint.info, Node: Soft float library routines, Next: Decimal float library routines, Prev: Integer library routines, Up: Libgcc
4.2 Routines for floating point emulation
=========================================
The software floating point library is used on machines which do not
have hardware support for floating point. It is also used whenever
'-msoft-float' is used to disable generation of floating point
instructions. (Not all targets support this switch.)
For compatibility with other compilers, the floating point emulation
routines can be renamed with the 'DECLARE_LIBRARY_RENAMES' macro (*note
Library Calls::). In this section, the default names are used.
Presently the library does not support 'XFmode', which is used for
'long double' on some architectures.
4.2.1 Arithmetic functions
--------------------------
-- Runtime Function: float __addsf3 (float A, float B)
-- Runtime Function: double __adddf3 (double A, double B)
-- Runtime Function: long double __addtf3 (long double A, long double
B)
-- Runtime Function: long double __addxf3 (long double A, long double
B)
These functions return the sum of A and B.
-- Runtime Function: float __subsf3 (float A, float B)
-- Runtime Function: double __subdf3 (double A, double B)
-- Runtime Function: long double __subtf3 (long double A, long double
B)
-- Runtime Function: long double __subxf3 (long double A, long double
B)
These functions return the difference between B and A; that is,
A - B.
-- Runtime Function: float __mulsf3 (float A, float B)
-- Runtime Function: double __muldf3 (double A, double B)
-- Runtime Function: long double __multf3 (long double A, long double
B)
-- Runtime Function: long double __mulxf3 (long double A, long double
B)
These functions return the product of A and B.
-- Runtime Function: float __divsf3 (float A, float B)
-- Runtime Function: double __divdf3 (double A, double B)
-- Runtime Function: long double __divtf3 (long double A, long double
B)
-- Runtime Function: long double __divxf3 (long double A, long double
B)
These functions return the quotient of A and B; that is, A / B.
-- Runtime Function: float __negsf2 (float A)
-- Runtime Function: double __negdf2 (double A)
-- Runtime Function: long double __negtf2 (long double A)
-- Runtime Function: long double __negxf2 (long double A)
These functions return the negation of A. They simply flip the
sign bit, so they can produce negative zero and negative NaN.
4.2.2 Conversion functions
--------------------------
-- Runtime Function: double __extendsfdf2 (float A)
-- Runtime Function: long double __extendsftf2 (float A)
-- Runtime Function: long double __extendsfxf2 (float A)
-- Runtime Function: long double __extenddftf2 (double A)
-- Runtime Function: long double __extenddfxf2 (double A)
These functions extend A to the wider mode of their return type.
-- Runtime Function: double __truncxfdf2 (long double A)
-- Runtime Function: double __trunctfdf2 (long double A)
-- Runtime Function: float __truncxfsf2 (long double A)
-- Runtime Function: float __trunctfsf2 (long double A)
-- Runtime Function: float __truncdfsf2 (double A)
These functions truncate A to the narrower mode of their return
type, rounding toward zero.
-- Runtime Function: int __fixsfsi (float A)
-- Runtime Function: int __fixdfsi (double A)
-- Runtime Function: int __fixtfsi (long double A)
-- Runtime Function: int __fixxfsi (long double A)
These functions convert A to a signed integer, rounding toward
zero.
-- Runtime Function: long __fixsfdi (float A)
-- Runtime Function: long __fixdfdi (double A)
-- Runtime Function: long __fixtfdi (long double A)
-- Runtime Function: long __fixxfdi (long double A)
These functions convert A to a signed long, rounding toward zero.
-- Runtime Function: long long __fixsfti (float A)
-- Runtime Function: long long __fixdfti (double A)
-- Runtime Function: long long __fixtfti (long double A)
-- Runtime Function: long long __fixxfti (long double A)
These functions convert A to a signed long long, rounding toward
zero.
-- Runtime Function: unsigned int __fixunssfsi (float A)
-- Runtime Function: unsigned int __fixunsdfsi (double A)
-- Runtime Function: unsigned int __fixunstfsi (long double A)
-- Runtime Function: unsigned int __fixunsxfsi (long double A)
These functions convert A to an unsigned integer, rounding toward
zero. Negative values all become zero.
-- Runtime Function: unsigned long __fixunssfdi (float A)
-- Runtime Function: unsigned long __fixunsdfdi (double A)
-- Runtime Function: unsigned long __fixunstfdi (long double A)
-- Runtime Function: unsigned long __fixunsxfdi (long double A)
These functions convert A to an unsigned long, rounding toward
zero. Negative values all become zero.
-- Runtime Function: unsigned long long __fixunssfti (float A)
-- Runtime Function: unsigned long long __fixunsdfti (double A)
-- Runtime Function: unsigned long long __fixunstfti (long double A)
-- Runtime Function: unsigned long long __fixunsxfti (long double A)
These functions convert A to an unsigned long long, rounding toward
zero. Negative values all become zero.
-- Runtime Function: float __floatsisf (int I)
-- Runtime Function: double __floatsidf (int I)
-- Runtime Function: long double __floatsitf (int I)
-- Runtime Function: long double __floatsixf (int I)
These functions convert I, a signed integer, to floating point.
-- Runtime Function: float __floatdisf (long I)
-- Runtime Function: double __floatdidf (long I)
-- Runtime Function: long double __floatditf (long I)
-- Runtime Function: long double __floatdixf (long I)
These functions convert I, a signed long, to floating point.
-- Runtime Function: float __floattisf (long long I)
-- Runtime Function: double __floattidf (long long I)
-- Runtime Function: long double __floattitf (long long I)
-- Runtime Function: long double __floattixf (long long I)
These functions convert I, a signed long long, to floating point.
-- Runtime Function: float __floatunsisf (unsigned int I)
-- Runtime Function: double __floatunsidf (unsigned int I)
-- Runtime Function: long double __floatunsitf (unsigned int I)
-- Runtime Function: long double __floatunsixf (unsigned int I)
These functions convert I, an unsigned integer, to floating point.
-- Runtime Function: float __floatundisf (unsigned long I)
-- Runtime Function: double __floatundidf (unsigned long I)
-- Runtime Function: long double __floatunditf (unsigned long I)
-- Runtime Function: long double __floatundixf (unsigned long I)
These functions convert I, an unsigned long, to floating point.
-- Runtime Function: float __floatuntisf (unsigned long long I)
-- Runtime Function: double __floatuntidf (unsigned long long I)
-- Runtime Function: long double __floatuntitf (unsigned long long I)
-- Runtime Function: long double __floatuntixf (unsigned long long I)
These functions convert I, an unsigned long long, to floating
point.
4.2.3 Comparison functions
--------------------------
There are two sets of basic comparison functions.
-- Runtime Function: int __cmpsf2 (float A, float B)
-- Runtime Function: int __cmpdf2 (double A, double B)
-- Runtime Function: int __cmptf2 (long double A, long double B)
These functions calculate a <=> b. That is, if A is less than B,
they return -1; if A is greater than B, they return 1; and if A and
B are equal they return 0. If either argument is NaN they return
1, but you should not rely on this; if NaN is a possibility, use
one of the higher-level comparison functions.
-- Runtime Function: int __unordsf2 (float A, float B)
-- Runtime Function: int __unorddf2 (double A, double B)
-- Runtime Function: int __unordtf2 (long double A, long double B)
These functions return a nonzero value if either argument is NaN,
otherwise 0.
There is also a complete group of higher level functions which
correspond directly to comparison operators. They implement the ISO C
semantics for floating-point comparisons, taking NaN into account. Pay
careful attention to the return values defined for each set. Under the
hood, all of these routines are implemented as
if (__unordXf2 (a, b))
return E;
return __cmpXf2 (a, b);
where E is a constant chosen to give the proper behavior for NaN. Thus,
the meaning of the return value is different for each set. Do not rely
on this implementation; only the semantics documented below are
guaranteed.
-- Runtime Function: int __eqsf2 (float A, float B)
-- Runtime Function: int __eqdf2 (double A, double B)
-- Runtime Function: int __eqtf2 (long double A, long double B)
These functions return zero if neither argument is NaN, and A and B
are equal.
-- Runtime Function: int __nesf2 (float A, float B)
-- Runtime Function: int __nedf2 (double A, double B)
-- Runtime Function: int __netf2 (long double A, long double B)
These functions return a nonzero value if either argument is NaN,
or if A and B are unequal.
-- Runtime Function: int __gesf2 (float A, float B)
-- Runtime Function: int __gedf2 (double A, double B)
-- Runtime Function: int __getf2 (long double A, long double B)
These functions return a value greater than or equal to zero if
neither argument is NaN, and A is greater than or equal to B.
-- Runtime Function: int __ltsf2 (float A, float B)
-- Runtime Function: int __ltdf2 (double A, double B)
-- Runtime Function: int __lttf2 (long double A, long double B)
These functions return a value less than zero if neither argument
is NaN, and A is strictly less than B.
-- Runtime Function: int __lesf2 (float A, float B)
-- Runtime Function: int __ledf2 (double A, double B)
-- Runtime Function: int __letf2 (long double A, long double B)
These functions return a value less than or equal to zero if
neither argument is NaN, and A is less than or equal to B.
-- Runtime Function: int __gtsf2 (float A, float B)
-- Runtime Function: int __gtdf2 (double A, double B)
-- Runtime Function: int __gttf2 (long double A, long double B)
These functions return a value greater than zero if neither
argument is NaN, and A is strictly greater than B.
4.2.4 Other floating-point functions
------------------------------------
-- Runtime Function: float __powisf2 (float A, int B)
-- Runtime Function: double __powidf2 (double A, int B)
-- Runtime Function: long double __powitf2 (long double A, int B)
-- Runtime Function: long double __powixf2 (long double A, int B)
These functions convert raise A to the power B.
-- Runtime Function: complex float __mulsc3 (float A, float B, float C,
float D)
-- Runtime Function: complex double __muldc3 (double A, double B,
double C, double D)
-- Runtime Function: complex long double __multc3 (long double A, long
double B, long double C, long double D)
-- Runtime Function: complex long double __mulxc3 (long double A, long
double B, long double C, long double D)
These functions return the product of A + iB and C + iD, following
the rules of C99 Annex G.
-- Runtime Function: complex float __divsc3 (float A, float B, float C,
float D)
-- Runtime Function: complex double __divdc3 (double A, double B,
double C, double D)
-- Runtime Function: complex long double __divtc3 (long double A, long
double B, long double C, long double D)
-- Runtime Function: complex long double __divxc3 (long double A, long
double B, long double C, long double D)
These functions return the quotient of A + iB and C + iD (i.e., (A
+ iB) / (C + iD)), following the rules of C99 Annex G.

File: gccint.info, Node: Decimal float library routines, Next: Fixed-point fractional library routines, Prev: Soft float library routines, Up: Libgcc
4.3 Routines for decimal floating point emulation
=================================================
The software decimal floating point library implements IEEE 754R decimal
floating point arithmetic and is only activated on selected targets.
The software decimal floating point library supports either DPD
(Densely Packed Decimal) or BID (Binary Integer Decimal) encoding as
selected at configure time.
4.3.1 Arithmetic functions
--------------------------
-- Runtime Function: _Decimal32 __dpd_addsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal32 __bid_addsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal64 __dpd_adddd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal64 __bid_adddd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal128 __dpd_addtd3 (_Decimal128 A,
_Decimal128 B)
-- Runtime Function: _Decimal128 __bid_addtd3 (_Decimal128 A,
_Decimal128 B)
These functions return the sum of A and B.
-- Runtime Function: _Decimal32 __dpd_subsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal32 __bid_subsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal64 __dpd_subdd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal64 __bid_subdd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal128 __dpd_subtd3 (_Decimal128 A,
_Decimal128 B)
-- Runtime Function: _Decimal128 __bid_subtd3 (_Decimal128 A,
_Decimal128 B)
These functions return the difference between B and A; that is,
A - B.
-- Runtime Function: _Decimal32 __dpd_mulsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal32 __bid_mulsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal64 __dpd_muldd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal64 __bid_muldd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal128 __dpd_multd3 (_Decimal128 A,
_Decimal128 B)
-- Runtime Function: _Decimal128 __bid_multd3 (_Decimal128 A,
_Decimal128 B)
These functions return the product of A and B.
-- Runtime Function: _Decimal32 __dpd_divsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal32 __bid_divsd3 (_Decimal32 A, _Decimal32
B)
-- Runtime Function: _Decimal64 __dpd_divdd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal64 __bid_divdd3 (_Decimal64 A, _Decimal64
B)
-- Runtime Function: _Decimal128 __dpd_divtd3 (_Decimal128 A,
_Decimal128 B)
-- Runtime Function: _Decimal128 __bid_divtd3 (_Decimal128 A,
_Decimal128 B)
These functions return the quotient of A and B; that is, A / B.
-- Runtime Function: _Decimal32 __dpd_negsd2 (_Decimal32 A)
-- Runtime Function: _Decimal32 __bid_negsd2 (_Decimal32 A)
-- Runtime Function: _Decimal64 __dpd_negdd2 (_Decimal64 A)
-- Runtime Function: _Decimal64 __bid_negdd2 (_Decimal64 A)
-- Runtime Function: _Decimal128 __dpd_negtd2 (_Decimal128 A)
-- Runtime Function: _Decimal128 __bid_negtd2 (_Decimal128 A)
These functions return the negation of A. They simply flip the
sign bit, so they can produce negative zero and negative NaN.
4.3.2 Conversion functions
--------------------------
-- Runtime Function: _Decimal64 __dpd_extendsddd2 (_Decimal32 A)
-- Runtime Function: _Decimal64 __bid_extendsddd2 (_Decimal32 A)
-- Runtime Function: _Decimal128 __dpd_extendsdtd2 (_Decimal32 A)
-- Runtime Function: _Decimal128 __bid_extendsdtd2 (_Decimal32 A)
-- Runtime Function: _Decimal128 __dpd_extendddtd2 (_Decimal64 A)
-- Runtime Function: _Decimal128 __bid_extendddtd2 (_Decimal64 A)
-- Runtime Function: _Decimal32 __dpd_truncddsd2 (_Decimal64 A)
-- Runtime Function: _Decimal32 __bid_truncddsd2 (_Decimal64 A)
-- Runtime Function: _Decimal32 __dpd_trunctdsd2 (_Decimal128 A)
-- Runtime Function: _Decimal32 __bid_trunctdsd2 (_Decimal128 A)
-- Runtime Function: _Decimal64 __dpd_trunctddd2 (_Decimal128 A)
-- Runtime Function: _Decimal64 __bid_trunctddd2 (_Decimal128 A)
These functions convert the value A from one decimal floating type
to another.
-- Runtime Function: _Decimal64 __dpd_extendsfdd (float A)
-- Runtime Function: _Decimal64 __bid_extendsfdd (float A)
-- Runtime Function: _Decimal128 __dpd_extendsftd (float A)
-- Runtime Function: _Decimal128 __bid_extendsftd (float A)
-- Runtime Function: _Decimal128 __dpd_extenddftd (double A)
-- Runtime Function: _Decimal128 __bid_extenddftd (double A)
-- Runtime Function: _Decimal128 __dpd_extendxftd (long double A)
-- Runtime Function: _Decimal128 __bid_extendxftd (long double A)
-- Runtime Function: _Decimal32 __dpd_truncdfsd (double A)
-- Runtime Function: _Decimal32 __bid_truncdfsd (double A)
-- Runtime Function: _Decimal32 __dpd_truncxfsd (long double A)
-- Runtime Function: _Decimal32 __bid_truncxfsd (long double A)
-- Runtime Function: _Decimal32 __dpd_trunctfsd (long double A)
-- Runtime Function: _Decimal32 __bid_trunctfsd (long double A)
-- Runtime Function: _Decimal64 __dpd_truncxfdd (long double A)
-- Runtime Function: _Decimal64 __bid_truncxfdd (long double A)
-- Runtime Function: _Decimal64 __dpd_trunctfdd (long double A)
-- Runtime Function: _Decimal64 __bid_trunctfdd (long double A)
These functions convert the value of A from a binary floating type
to a decimal floating type of a different size.
-- Runtime Function: float __dpd_truncddsf (_Decimal64 A)
-- Runtime Function: float __bid_truncddsf (_Decimal64 A)
-- Runtime Function: float __dpd_trunctdsf (_Decimal128 A)
-- Runtime Function: float __bid_trunctdsf (_Decimal128 A)
-- Runtime Function: double __dpd_extendsddf (_Decimal32 A)
-- Runtime Function: double __bid_extendsddf (_Decimal32 A)
-- Runtime Function: double __dpd_trunctddf (_Decimal128 A)
-- Runtime Function: double __bid_trunctddf (_Decimal128 A)
-- Runtime Function: long double __dpd_extendsdxf (_Decimal32 A)
-- Runtime Function: long double __bid_extendsdxf (_Decimal32 A)
-- Runtime Function: long double __dpd_extendddxf (_Decimal64 A)
-- Runtime Function: long double __bid_extendddxf (_Decimal64 A)
-- Runtime Function: long double __dpd_trunctdxf (_Decimal128 A)
-- Runtime Function: long double __bid_trunctdxf (_Decimal128 A)
-- Runtime Function: long double __dpd_extendsdtf (_Decimal32 A)
-- Runtime Function: long double __bid_extendsdtf (_Decimal32 A)
-- Runtime Function: long double __dpd_extendddtf (_Decimal64 A)
-- Runtime Function: long double __bid_extendddtf (_Decimal64 A)
These functions convert the value of A from a decimal floating type
to a binary floating type of a different size.
-- Runtime Function: _Decimal32 __dpd_extendsfsd (float A)
-- Runtime Function: _Decimal32 __bid_extendsfsd (float A)
-- Runtime Function: _Decimal64 __dpd_extenddfdd (double A)
-- Runtime Function: _Decimal64 __bid_extenddfdd (double A)
-- Runtime Function: _Decimal128 __dpd_extendtftd (long double A)
-- Runtime Function: _Decimal128 __bid_extendtftd (long double A)
-- Runtime Function: float __dpd_truncsdsf (_Decimal32 A)
-- Runtime Function: float __bid_truncsdsf (_Decimal32 A)
-- Runtime Function: double __dpd_truncdddf (_Decimal64 A)
-- Runtime Function: double __bid_truncdddf (_Decimal64 A)
-- Runtime Function: long double __dpd_trunctdtf (_Decimal128 A)
-- Runtime Function: long double __bid_trunctdtf (_Decimal128 A)
These functions convert the value of A between decimal and binary
floating types of the same size.
-- Runtime Function: int __dpd_fixsdsi (_Decimal32 A)
-- Runtime Function: int __bid_fixsdsi (_Decimal32 A)
-- Runtime Function: int __dpd_fixddsi (_Decimal64 A)
-- Runtime Function: int __bid_fixddsi (_Decimal64 A)
-- Runtime Function: int __dpd_fixtdsi (_Decimal128 A)
-- Runtime Function: int __bid_fixtdsi (_Decimal128 A)
These functions convert A to a signed integer.
-- Runtime Function: long __dpd_fixsddi (_Decimal32 A)
-- Runtime Function: long __bid_fixsddi (_Decimal32 A)
-- Runtime Function: long __dpd_fixdddi (_Decimal64 A)
-- Runtime Function: long __bid_fixdddi (_Decimal64 A)
-- Runtime Function: long __dpd_fixtddi (_Decimal128 A)
-- Runtime Function: long __bid_fixtddi (_Decimal128 A)
These functions convert A to a signed long.
-- Runtime Function: unsigned int __dpd_fixunssdsi (_Decimal32 A)
-- Runtime Function: unsigned int __bid_fixunssdsi (_Decimal32 A)
-- Runtime Function: unsigned int __dpd_fixunsddsi (_Decimal64 A)
-- Runtime Function: unsigned int __bid_fixunsddsi (_Decimal64 A)
-- Runtime Function: unsigned int __dpd_fixunstdsi (_Decimal128 A)
-- Runtime Function: unsigned int __bid_fixunstdsi (_Decimal128 A)
These functions convert A to an unsigned integer. Negative values
all become zero.
-- Runtime Function: unsigned long __dpd_fixunssddi (_Decimal32 A)
-- Runtime Function: unsigned long __bid_fixunssddi (_Decimal32 A)
-- Runtime Function: unsigned long __dpd_fixunsdddi (_Decimal64 A)
-- Runtime Function: unsigned long __bid_fixunsdddi (_Decimal64 A)
-- Runtime Function: unsigned long __dpd_fixunstddi (_Decimal128 A)
-- Runtime Function: unsigned long __bid_fixunstddi (_Decimal128 A)
These functions convert A to an unsigned long. Negative values all
become zero.
-- Runtime Function: _Decimal32 __dpd_floatsisd (int I)
-- Runtime Function: _Decimal32 __bid_floatsisd (int I)
-- Runtime Function: _Decimal64 __dpd_floatsidd (int I)
-- Runtime Function: _Decimal64 __bid_floatsidd (int I)
-- Runtime Function: _Decimal128 __dpd_floatsitd (int I)
-- Runtime Function: _Decimal128 __bid_floatsitd (int I)
These functions convert I, a signed integer, to decimal floating
point.
-- Runtime Function: _Decimal32 __dpd_floatdisd (long I)
-- Runtime Function: _Decimal32 __bid_floatdisd (long I)
-- Runtime Function: _Decimal64 __dpd_floatdidd (long I)
-- Runtime Function: _Decimal64 __bid_floatdidd (long I)
-- Runtime Function: _Decimal128 __dpd_floatditd (long I)
-- Runtime Function: _Decimal128 __bid_floatditd (long I)
These functions convert I, a signed long, to decimal floating
point.
-- Runtime Function: _Decimal32 __dpd_floatunssisd (unsigned int I)
-- Runtime Function: _Decimal32 __bid_floatunssisd (unsigned int I)
-- Runtime Function: _Decimal64 __dpd_floatunssidd (unsigned int I)
-- Runtime Function: _Decimal64 __bid_floatunssidd (unsigned int I)
-- Runtime Function: _Decimal128 __dpd_floatunssitd (unsigned int I)
-- Runtime Function: _Decimal128 __bid_floatunssitd (unsigned int I)
These functions convert I, an unsigned integer, to decimal floating
point.
-- Runtime Function: _Decimal32 __dpd_floatunsdisd (unsigned long I)
-- Runtime Function: _Decimal32 __bid_floatunsdisd (unsigned long I)
-- Runtime Function: _Decimal64 __dpd_floatunsdidd (unsigned long I)
-- Runtime Function: _Decimal64 __bid_floatunsdidd (unsigned long I)
-- Runtime Function: _Decimal128 __dpd_floatunsditd (unsigned long I)
-- Runtime Function: _Decimal128 __bid_floatunsditd (unsigned long I)
These functions convert I, an unsigned long, to decimal floating
point.
4.3.3 Comparison functions
--------------------------
-- Runtime Function: int __dpd_unordsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __bid_unordsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __dpd_unorddd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __bid_unorddd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __dpd_unordtd2 (_Decimal128 A, _Decimal128 B)
-- Runtime Function: int __bid_unordtd2 (_Decimal128 A, _Decimal128 B)
These functions return a nonzero value if either argument is NaN,
otherwise 0.
There is also a complete group of higher level functions which
correspond directly to comparison operators. They implement the ISO C
semantics for floating-point comparisons, taking NaN into account. Pay
careful attention to the return values defined for each set. Under the
hood, all of these routines are implemented as
if (__bid_unordXd2 (a, b))
return E;
return __bid_cmpXd2 (a, b);
where E is a constant chosen to give the proper behavior for NaN. Thus,
the meaning of the return value is different for each set. Do not rely
on this implementation; only the semantics documented below are
guaranteed.
-- Runtime Function: int __dpd_eqsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __bid_eqsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __dpd_eqdd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __bid_eqdd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __dpd_eqtd2 (_Decimal128 A, _Decimal128 B)
-- Runtime Function: int __bid_eqtd2 (_Decimal128 A, _Decimal128 B)
These functions return zero if neither argument is NaN, and A and B
are equal.
-- Runtime Function: int __dpd_nesd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __bid_nesd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __dpd_nedd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __bid_nedd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __dpd_netd2 (_Decimal128 A, _Decimal128 B)
-- Runtime Function: int __bid_netd2 (_Decimal128 A, _Decimal128 B)
These functions return a nonzero value if either argument is NaN,
or if A and B are unequal.
-- Runtime Function: int __dpd_gesd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __bid_gesd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __dpd_gedd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __bid_gedd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __dpd_getd2 (_Decimal128 A, _Decimal128 B)
-- Runtime Function: int __bid_getd2 (_Decimal128 A, _Decimal128 B)
These functions return a value greater than or equal to zero if
neither argument is NaN, and A is greater than or equal to B.
-- Runtime Function: int __dpd_ltsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __bid_ltsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __dpd_ltdd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __bid_ltdd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __dpd_lttd2 (_Decimal128 A, _Decimal128 B)
-- Runtime Function: int __bid_lttd2 (_Decimal128 A, _Decimal128 B)
These functions return a value less than zero if neither argument
is NaN, and A is strictly less than B.
-- Runtime Function: int __dpd_lesd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __bid_lesd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __dpd_ledd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __bid_ledd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __dpd_letd2 (_Decimal128 A, _Decimal128 B)
-- Runtime Function: int __bid_letd2 (_Decimal128 A, _Decimal128 B)
These functions return a value less than or equal to zero if
neither argument is NaN, and A is less than or equal to B.
-- Runtime Function: int __dpd_gtsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __bid_gtsd2 (_Decimal32 A, _Decimal32 B)
-- Runtime Function: int __dpd_gtdd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __bid_gtdd2 (_Decimal64 A, _Decimal64 B)
-- Runtime Function: int __dpd_gttd2 (_Decimal128 A, _Decimal128 B)
-- Runtime Function: int __bid_gttd2 (_Decimal128 A, _Decimal128 B)
These functions return a value greater than zero if neither
argument is NaN, and A is strictly greater than B.

File: gccint.info, Node: Fixed-point fractional library routines, Next: Exception handling routines, Prev: Decimal float library routines, Up: Libgcc
4.4 Routines for fixed-point fractional emulation
=================================================
The software fixed-point library implements fixed-point fractional
arithmetic, and is only activated on selected targets.
For ease of comprehension 'fract' is an alias for the '_Fract' type,
'accum' an alias for '_Accum', and 'sat' an alias for '_Sat'.
For illustrative purposes, in this section the fixed-point fractional
type 'short fract' is assumed to correspond to machine mode 'QQmode';
'unsigned short fract' to 'UQQmode'; 'fract' to 'HQmode';
'unsigned fract' to 'UHQmode'; 'long fract' to 'SQmode';
'unsigned long fract' to 'USQmode'; 'long long fract' to 'DQmode'; and
'unsigned long long fract' to 'UDQmode'. Similarly the fixed-point
accumulator type 'short accum' corresponds to 'HAmode';
'unsigned short accum' to 'UHAmode'; 'accum' to 'SAmode';
'unsigned accum' to 'USAmode'; 'long accum' to 'DAmode';
'unsigned long accum' to 'UDAmode'; 'long long accum' to 'TAmode'; and
'unsigned long long accum' to 'UTAmode'.
4.4.1 Arithmetic functions
--------------------------
-- Runtime Function: short fract __addqq3 (short fract A, short fract
B)
-- Runtime Function: fract __addhq3 (fract A, fract B)
-- Runtime Function: long fract __addsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __adddq3 (long long fract A, long
long fract B)
-- Runtime Function: unsigned short fract __adduqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __adduhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __addusq3 (unsigned long fract
A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __addudq3 (unsigned long
long fract A, unsigned long long fract B)
-- Runtime Function: short accum __addha3 (short accum A, short accum
B)
-- Runtime Function: accum __addsa3 (accum A, accum B)
-- Runtime Function: long accum __addda3 (long accum A, long accum B)
-- Runtime Function: long long accum __addta3 (long long accum A, long
long accum B)
-- Runtime Function: unsigned short accum __adduha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __addusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __adduda3 (unsigned long accum
A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __adduta3 (unsigned long
long accum A, unsigned long long accum B)
These functions return the sum of A and B.
-- Runtime Function: short fract __ssaddqq3 (short fract A, short fract
B)
-- Runtime Function: fract __ssaddhq3 (fract A, fract B)
-- Runtime Function: long fract __ssaddsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __ssadddq3 (long long fract A,
long long fract B)
-- Runtime Function: short accum __ssaddha3 (short accum A, short accum
B)
-- Runtime Function: accum __ssaddsa3 (accum A, accum B)
-- Runtime Function: long accum __ssaddda3 (long accum A, long accum B)
-- Runtime Function: long long accum __ssaddta3 (long long accum A,
long long accum B)
These functions return the sum of A and B with signed saturation.
-- Runtime Function: unsigned short fract __usadduqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __usadduhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __usaddusq3 (unsigned long
fract A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __usaddudq3 (unsigned
long long fract A, unsigned long long fract B)
-- Runtime Function: unsigned short accum __usadduha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __usaddusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __usadduda3 (unsigned long
accum A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __usadduta3 (unsigned
long long accum A, unsigned long long accum B)
These functions return the sum of A and B with unsigned saturation.
-- Runtime Function: short fract __subqq3 (short fract A, short fract
B)
-- Runtime Function: fract __subhq3 (fract A, fract B)
-- Runtime Function: long fract __subsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __subdq3 (long long fract A, long
long fract B)
-- Runtime Function: unsigned short fract __subuqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __subuhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __subusq3 (unsigned long fract
A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __subudq3 (unsigned long
long fract A, unsigned long long fract B)
-- Runtime Function: short accum __subha3 (short accum A, short accum
B)
-- Runtime Function: accum __subsa3 (accum A, accum B)
-- Runtime Function: long accum __subda3 (long accum A, long accum B)
-- Runtime Function: long long accum __subta3 (long long accum A, long
long accum B)
-- Runtime Function: unsigned short accum __subuha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __subusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __subuda3 (unsigned long accum
A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __subuta3 (unsigned long
long accum A, unsigned long long accum B)
These functions return the difference of A and B; that is, 'A - B'.
-- Runtime Function: short fract __sssubqq3 (short fract A, short fract
B)
-- Runtime Function: fract __sssubhq3 (fract A, fract B)
-- Runtime Function: long fract __sssubsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __sssubdq3 (long long fract A,
long long fract B)
-- Runtime Function: short accum __sssubha3 (short accum A, short accum
B)
-- Runtime Function: accum __sssubsa3 (accum A, accum B)
-- Runtime Function: long accum __sssubda3 (long accum A, long accum B)
-- Runtime Function: long long accum __sssubta3 (long long accum A,
long long accum B)
These functions return the difference of A and B with signed
saturation; that is, 'A - B'.
-- Runtime Function: unsigned short fract __ussubuqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __ussubuhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __ussubusq3 (unsigned long
fract A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __ussubudq3 (unsigned
long long fract A, unsigned long long fract B)
-- Runtime Function: unsigned short accum __ussubuha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __ussubusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __ussubuda3 (unsigned long
accum A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __ussubuta3 (unsigned
long long accum A, unsigned long long accum B)
These functions return the difference of A and B with unsigned
saturation; that is, 'A - B'.
-- Runtime Function: short fract __mulqq3 (short fract A, short fract
B)
-- Runtime Function: fract __mulhq3 (fract A, fract B)
-- Runtime Function: long fract __mulsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __muldq3 (long long fract A, long
long fract B)
-- Runtime Function: unsigned short fract __muluqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __muluhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __mulusq3 (unsigned long fract
A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __muludq3 (unsigned long
long fract A, unsigned long long fract B)
-- Runtime Function: short accum __mulha3 (short accum A, short accum
B)
-- Runtime Function: accum __mulsa3 (accum A, accum B)
-- Runtime Function: long accum __mulda3 (long accum A, long accum B)
-- Runtime Function: long long accum __multa3 (long long accum A, long
long accum B)
-- Runtime Function: unsigned short accum __muluha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __mulusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __muluda3 (unsigned long accum
A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __muluta3 (unsigned long
long accum A, unsigned long long accum B)
These functions return the product of A and B.
-- Runtime Function: short fract __ssmulqq3 (short fract A, short fract
B)
-- Runtime Function: fract __ssmulhq3 (fract A, fract B)
-- Runtime Function: long fract __ssmulsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __ssmuldq3 (long long fract A,
long long fract B)
-- Runtime Function: short accum __ssmulha3 (short accum A, short accum
B)
-- Runtime Function: accum __ssmulsa3 (accum A, accum B)
-- Runtime Function: long accum __ssmulda3 (long accum A, long accum B)
-- Runtime Function: long long accum __ssmulta3 (long long accum A,
long long accum B)
These functions return the product of A and B with signed
saturation.
-- Runtime Function: unsigned short fract __usmuluqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __usmuluhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __usmulusq3 (unsigned long
fract A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __usmuludq3 (unsigned
long long fract A, unsigned long long fract B)
-- Runtime Function: unsigned short accum __usmuluha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __usmulusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __usmuluda3 (unsigned long
accum A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __usmuluta3 (unsigned
long long accum A, unsigned long long accum B)
These functions return the product of A and B with unsigned
saturation.
-- Runtime Function: short fract __divqq3 (short fract A, short fract
B)
-- Runtime Function: fract __divhq3 (fract A, fract B)
-- Runtime Function: long fract __divsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __divdq3 (long long fract A, long
long fract B)
-- Runtime Function: short accum __divha3 (short accum A, short accum
B)
-- Runtime Function: accum __divsa3 (accum A, accum B)
-- Runtime Function: long accum __divda3 (long accum A, long accum B)
-- Runtime Function: long long accum __divta3 (long long accum A, long
long accum B)
These functions return the quotient of the signed division of A and
B.
-- Runtime Function: unsigned short fract __udivuqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __udivuhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __udivusq3 (unsigned long
fract A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __udivudq3 (unsigned long
long fract A, unsigned long long fract B)
-- Runtime Function: unsigned short accum __udivuha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __udivusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __udivuda3 (unsigned long
accum A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __udivuta3 (unsigned long
long accum A, unsigned long long accum B)
These functions return the quotient of the unsigned division of A
and B.
-- Runtime Function: short fract __ssdivqq3 (short fract A, short fract
B)
-- Runtime Function: fract __ssdivhq3 (fract A, fract B)
-- Runtime Function: long fract __ssdivsq3 (long fract A, long fract B)
-- Runtime Function: long long fract __ssdivdq3 (long long fract A,
long long fract B)
-- Runtime Function: short accum __ssdivha3 (short accum A, short accum
B)
-- Runtime Function: accum __ssdivsa3 (accum A, accum B)
-- Runtime Function: long accum __ssdivda3 (long accum A, long accum B)
-- Runtime Function: long long accum __ssdivta3 (long long accum A,
long long accum B)
These functions return the quotient of the signed division of A and
B with signed saturation.
-- Runtime Function: unsigned short fract __usdivuqq3 (unsigned short
fract A, unsigned short fract B)
-- Runtime Function: unsigned fract __usdivuhq3 (unsigned fract A,
unsigned fract B)
-- Runtime Function: unsigned long fract __usdivusq3 (unsigned long
fract A, unsigned long fract B)
-- Runtime Function: unsigned long long fract __usdivudq3 (unsigned
long long fract A, unsigned long long fract B)
-- Runtime Function: unsigned short accum __usdivuha3 (unsigned short
accum A, unsigned short accum B)
-- Runtime Function: unsigned accum __usdivusa3 (unsigned accum A,
unsigned accum B)
-- Runtime Function: unsigned long accum __usdivuda3 (unsigned long
accum A, unsigned long accum B)
-- Runtime Function: unsigned long long accum __usdivuta3 (unsigned
long long accum A, unsigned long long accum B)
These functions return the quotient of the unsigned division of A
and B with unsigned saturation.
-- Runtime Function: short fract __negqq2 (short fract A)
-- Runtime Function: fract __neghq2 (fract A)
-- Runtime Function: long fract __negsq2 (long fract A)
-- Runtime Function: long long fract __negdq2 (long long fract A)
-- Runtime Function: unsigned short fract __neguqq2 (unsigned short
fract A)
-- Runtime Function: unsigned fract __neguhq2 (unsigned fract A)
-- Runtime Function: unsigned long fract __negusq2 (unsigned long fract
A)
-- Runtime Function: unsigned long long fract __negudq2 (unsigned long
long fract A)
-- Runtime Function: short accum __negha2 (short accum A)
-- Runtime Function: accum __negsa2 (accum A)
-- Runtime Function: long accum __negda2 (long accum A)
-- Runtime Function: long long accum __negta2 (long long accum A)
-- Runtime Function: unsigned short accum __neguha2 (unsigned short
accum A)
-- Runtime Function: unsigned accum __negusa2 (unsigned accum A)
-- Runtime Function: unsigned long accum __neguda2 (unsigned long accum
A)
-- Runtime Function: unsigned long long accum __neguta2 (unsigned long
long accum A)
These functions return the negation of A.
-- Runtime Function: short fract __ssnegqq2 (short fract A)
-- Runtime Function: fract __ssneghq2 (fract A)
-- Runtime Function: long fract __ssnegsq2 (long fract A)
-- Runtime Function: long long fract __ssnegdq2 (long long fract A)
-- Runtime Function: short accum __ssnegha2 (short accum A)
-- Runtime Function: accum __ssnegsa2 (accum A)
-- Runtime Function: long accum __ssnegda2 (long accum A)
-- Runtime Function: long long accum __ssnegta2 (long long accum A)
These functions return the negation of A with signed saturation.
-- Runtime Function: unsigned short fract __usneguqq2 (unsigned short
fract A)
-- Runtime Function: unsigned fract __usneguhq2 (unsigned fract A)
-- Runtime Function: unsigned long fract __usnegusq2 (unsigned long
fract A)
-- Runtime Function: unsigned long long fract __usnegudq2 (unsigned
long long fract A)
-- Runtime Function: unsigned short accum __usneguha2 (unsigned short
accum A)
-- Runtime Function: unsigned accum __usnegusa2 (unsigned accum A)
-- Runtime Function: unsigned long accum __usneguda2 (unsigned long
accum A)
-- Runtime Function: unsigned long long accum __usneguta2 (unsigned
long long accum A)
These functions return the negation of A with unsigned saturation.
-- Runtime Function: short fract __ashlqq3 (short fract A, int B)
-- Runtime Function: fract __ashlhq3 (fract A, int B)
-- Runtime Function: long fract __ashlsq3 (long fract A, int B)
-- Runtime Function: long long fract __ashldq3 (long long fract A, int
B)
-- Runtime Function: unsigned short fract __ashluqq3 (unsigned short
fract A, int B)
-- Runtime Function: unsigned fract __ashluhq3 (unsigned fract A, int
B)
-- Runtime Function: unsigned long fract __ashlusq3 (unsigned long
fract A, int B)
-- Runtime Function: unsigned long long fract __ashludq3 (unsigned long
long fract A, int B)
-- Runtime Function: short accum __ashlha3 (short accum A, int B)
-- Runtime Function: accum __ashlsa3 (accum A, int B)
-- Runtime Function: long accum __ashlda3 (long accum A, int B)
-- Runtime Function: long long accum __ashlta3 (long long accum A, int
B)
-- Runtime Function: unsigned short accum __ashluha3 (unsigned short
accum A, int B)
-- Runtime Function: unsigned accum __ashlusa3 (unsigned accum A, int
B)
-- Runtime Function: unsigned long accum __ashluda3 (unsigned long
accum A, int B)
-- Runtime Function: unsigned long long accum __ashluta3 (unsigned long
long accum A, int B)
These functions return the result of shifting A left by B bits.
-- Runtime Function: short fract __ashrqq3 (short fract A, int B)
-- Runtime Function: fract __ashrhq3 (fract A, int B)
-- Runtime Function: long fract __ashrsq3 (long fract A, int B)
-- Runtime Function: long long fract __ashrdq3 (long long fract A, int
B)
-- Runtime Function: short accum __ashrha3 (short accum A, int B)
-- Runtime Function: accum __ashrsa3 (accum A, int B)
-- Runtime Function: long accum __ashrda3 (long accum A, int B)
-- Runtime Function: long long accum __ashrta3 (long long accum A, int
B)
These functions return the result of arithmetically shifting A
right by B bits.
-- Runtime Function: unsigned short fract __lshruqq3 (unsigned short
fract A, int B)
-- Runtime Function: unsigned fract __lshruhq3 (unsigned fract A, int
B)
-- Runtime Function: unsigned long fract __lshrusq3 (unsigned long
fract A, int B)
-- Runtime Function: unsigned long long fract __lshrudq3 (unsigned long
long fract A, int B)
-- Runtime Function: unsigned short accum __lshruha3 (unsigned short
accum A, int B)
-- Runtime Function: unsigned accum __lshrusa3 (unsigned accum A, int
B)
-- Runtime Function: unsigned long accum __lshruda3 (unsigned long
accum A, int B)
-- Runtime Function: unsigned long long accum __lshruta3 (unsigned long
long accum A, int B)
These functions return the result of logically shifting A right by
B bits.
-- Runtime Function: fract __ssashlhq3 (fract A, int B)
-- Runtime Function: long fract __ssashlsq3 (long fract A, int B)
-- Runtime Function: long long fract __ssashldq3 (long long fract A,
int B)
-- Runtime Function: short accum __ssashlha3 (short accum A, int B)
-- Runtime Function: accum __ssashlsa3 (accum A, int B)
-- Runtime Function: long accum __ssashlda3 (long accum A, int B)
-- Runtime Function: long long accum __ssashlta3 (long long accum A,
int B)
These functions return the result of shifting A left by B bits with
signed saturation.
-- Runtime Function: unsigned short fract __usashluqq3 (unsigned short
fract A, int B)
-- Runtime Function: unsigned fract __usashluhq3 (unsigned fract A, int
B)
-- Runtime Function: unsigned long fract __usashlusq3 (unsigned long
fract A, int B)
-- Runtime Function: unsigned long long fract __usashludq3 (unsigned
long long fract A, int B)
-- Runtime Function: unsigned short accum __usashluha3 (unsigned short
accum A, int B)
-- Runtime Function: unsigned accum __usashlusa3 (unsigned accum A, int
B)
-- Runtime Function: unsigned long accum __usashluda3 (unsigned long
accum A, int B)
-- Runtime Function: unsigned long long accum __usashluta3 (unsigned
long long accum A, int B)
These functions return the result of shifting A left by B bits with
unsigned saturation.
4.4.2 Comparison functions
--------------------------
The following functions implement fixed-point comparisons. These
functions implement a low-level compare, upon which the higher level
comparison operators (such as less than and greater than or equal to)
can be constructed. The returned values lie in the range zero to two,
to allow the high-level operators to be implemented by testing the
returned result using either signed or unsigned comparison.
-- Runtime Function: int __cmpqq2 (short fract A, short fract B)
-- Runtime Function: int __cmphq2 (fract A, fract B)
-- Runtime Function: int __cmpsq2 (long fract A, long fract B)
-- Runtime Function: int __cmpdq2 (long long fract A, long long fract
B)
-- Runtime Function: int __cmpuqq2 (unsigned short fract A, unsigned
short fract B)
-- Runtime Function: int __cmpuhq2 (unsigned fract A, unsigned fract B)
-- Runtime Function: int __cmpusq2 (unsigned long fract A, unsigned
long fract B)
-- Runtime Function: int __cmpudq2 (unsigned long long fract A,
unsigned long long fract B)
-- Runtime Function: int __cmpha2 (short accum A, short accum B)
-- Runtime Function: int __cmpsa2 (accum A, accum B)
-- Runtime Function: int __cmpda2 (long accum A, long accum B)
-- Runtime Function: int __cmpta2 (long long accum A, long long accum
B)
-- Runtime Function: int __cmpuha2 (unsigned short accum A, unsigned
short accum B)
-- Runtime Function: int __cmpusa2 (unsigned accum A, unsigned accum B)
-- Runtime Function: int __cmpuda2 (unsigned long accum A, unsigned
long accum B)
-- Runtime Function: int __cmputa2 (unsigned long long accum A,
unsigned long long accum B)
These functions perform a signed or unsigned comparison of A and B
(depending on the selected machine mode). If A is less than B,
they return 0; if A is greater than B, they return 2; and if A and
B are equal they return 1.
4.4.3 Conversion functions
--------------------------
-- Runtime Function: fract __fractqqhq2 (short fract A)
-- Runtime Function: long fract __fractqqsq2 (short fract A)
-- Runtime Function: long long fract __fractqqdq2 (short fract A)
-- Runtime Function: short accum __fractqqha (short fract A)
-- Runtime Function: accum __fractqqsa (short fract A)
-- Runtime Function: long accum __fractqqda (short fract A)
-- Runtime Function: long long accum __fractqqta (short fract A)
-- Runtime Function: unsigned short fract __fractqquqq (short fract A)
-- Runtime Function: unsigned fract __fractqquhq (short fract A)
-- Runtime Function: unsigned long fract __fractqqusq (short fract A)
-- Runtime Function: unsigned long long fract __fractqqudq (short fract
A)
-- Runtime Function: unsigned short accum __fractqquha (short fract A)
-- Runtime Function: unsigned accum __fractqqusa (short fract A)
-- Runtime Function: unsigned long accum __fractqquda (short fract A)
-- Runtime Function: unsigned long long accum __fractqquta (short fract
A)
-- Runtime Function: signed char __fractqqqi (short fract A)
-- Runtime Function: short __fractqqhi (short fract A)
-- Runtime Function: int __fractqqsi (short fract A)
-- Runtime Function: long __fractqqdi (short fract A)
-- Runtime Function: long long __fractqqti (short fract A)
-- Runtime Function: float __fractqqsf (short fract A)
-- Runtime Function: double __fractqqdf (short fract A)
-- Runtime Function: short fract __fracthqqq2 (fract A)
-- Runtime Function: long fract __fracthqsq2 (fract A)
-- Runtime Function: long long fract __fracthqdq2 (fract A)
-- Runtime Function: short accum __fracthqha (fract A)
-- Runtime Function: accum __fracthqsa (fract A)
-- Runtime Function: long accum __fracthqda (fract A)
-- Runtime Function: long long accum __fracthqta (fract A)
-- Runtime Function: unsigned short fract __fracthquqq (fract A)
-- Runtime Function: unsigned fract __fracthquhq (fract A)
-- Runtime Function: unsigned long fract __fracthqusq (fract A)
-- Runtime Function: unsigned long long fract __fracthqudq (fract A)
-- Runtime Function: unsigned short accum __fracthquha (fract A)
-- Runtime Function: unsigned accum __fracthqusa (fract A)
-- Runtime Function: unsigned long accum __fracthquda (fract A)
-- Runtime Function: unsigned long long accum __fracthquta (fract A)
-- Runtime Function: signed char __fracthqqi (fract A)
-- Runtime Function: short __fracthqhi (fract A)
-- Runtime Function: int __fracthqsi (fract A)
-- Runtime Function: long __fracthqdi (fract A)
-- Runtime Function: long long __fracthqti (fract A)
-- Runtime Function: float __fracthqsf (fract A)
-- Runtime Function: double __fracthqdf (fract A)
-- Runtime Function: short fract __fractsqqq2 (long fract A)
-- Runtime Function: fract __fractsqhq2 (long fract A)
-- Runtime Function: long long fract __fractsqdq2 (long fract A)
-- Runtime Function: short accum __fractsqha (long fract A)
-- Runtime Function: accum __fractsqsa (long fract A)
-- Runtime Function: long accum __fractsqda (long fract A)
-- Runtime Function: long long accum __fractsqta (long fract A)
-- Runtime Function: unsigned short fract __fractsquqq (long fract A)
-- Runtime Function: unsigned fract __fractsquhq (long fract A)
-- Runtime Function: unsigned long fract __fractsqusq (long fract A)
-- Runtime Function: unsigned long long fract __fractsqudq (long fract
A)
-- Runtime Function: unsigned short accum __fractsquha (long fract A)
-- Runtime Function: unsigned accum __fractsqusa (long fract A)
-- Runtime Function: unsigned long accum __fractsquda (long fract A)
-- Runtime Function: unsigned long long accum __fractsquta (long fract
A)
-- Runtime Function: signed char __fractsqqi (long fract A)
-- Runtime Function: short __fractsqhi (long fract A)
-- Runtime Function: int __fractsqsi (long fract A)
-- Runtime Function: long __fractsqdi (long fract A)
-- Runtime Function: long long __fractsqti (long fract A)
-- Runtime Function: float __fractsqsf (long fract A)
-- Runtime Function: double __fractsqdf (long fract A)
-- Runtime Function: short fract __fractdqqq2 (long long fract A)
-- Runtime Function: fract __fractdqhq2 (long long fract A)
-- Runtime Function: long fract __fractdqsq2 (long long fract A)
-- Runtime Function: short accum __fractdqha (long long fract A)
-- Runtime Function: accum __fractdqsa (long long fract A)
-- Runtime Function: long accum __fractdqda (long long fract A)
-- Runtime Function: long long accum __fractdqta (long long fract A)
-- Runtime Function: unsigned short fract __fractdquqq (long long fract
A)
-- Runtime Function: unsigned fract __fractdquhq (long long fract A)
-- Runtime Function: unsigned long fract __fractdqusq (long long fract
A)
-- Runtime Function: unsigned long long fract __fractdqudq (long long
fract A)
-- Runtime Function: unsigned short accum __fractdquha (long long fract
A)
-- Runtime Function: unsigned accum __fractdqusa (long long fract A)
-- Runtime Function: unsigned long accum __fractdquda (long long fract
A)
-- Runtime Function: unsigned long long accum __fractdquta (long long
fract A)
-- Runtime Function: signed char __fractdqqi (long long fract A)
-- Runtime Function: short __fractdqhi (long long fract A)
-- Runtime Function: int __fractdqsi (long long fract A)
-- Runtime Function: long __fractdqdi (long long fract A)
-- Runtime Function: long long __fractdqti (long long fract A)
-- Runtime Function: float __fractdqsf (long long fract A)
-- Runtime Function: double __fractdqdf (long long fract A)
-- Runtime Function: short fract __fracthaqq (short accum A)
-- Runtime Function: fract __fracthahq (short accum A)
-- Runtime Function: long fract __fracthasq (short accum A)
-- Runtime Function: long long fract __fracthadq (short accum A)
-- Runtime Function: accum __fracthasa2 (short accum A)
-- Runtime Function: long accum __fracthada2 (short accum A)
-- Runtime Function: long long accum __fracthata2 (short accum A)
-- Runtime Function: unsigned short fract __fracthauqq (short accum A)
-- Runtime Function: unsigned fract __fracthauhq (short accum A)
-- Runtime Function: unsigned long fract __fracthausq (short accum A)
-- Runtime Function: unsigned long long fract __fracthaudq (short accum
A)
-- Runtime Function: unsigned short accum __fracthauha (short accum A)
-- Runtime Function: unsigned accum __fracthausa (short accum A)
-- Runtime Function: unsigned long accum __fracthauda (short accum A)
-- Runtime Function: unsigned long long accum __fracthauta (short accum
A)
-- Runtime Function: signed char __fracthaqi (short accum A)
-- Runtime Function: short __fracthahi (short accum A)
-- Runtime Function: int __fracthasi (short accum A)
-- Runtime Function: long __fracthadi (short accum A)
-- Runtime Function: long long __fracthati (short accum A)
-- Runtime Function: float __fracthasf (short accum A)
-- Runtime Function: double __fracthadf (short accum A)
-- Runtime Function: short fract __fractsaqq (accum A)
-- Runtime Function: fract __fractsahq (accum A)
-- Runtime Function: long fract __fractsasq (accum A)
-- Runtime Function: long long fract __fractsadq (accum A)
-- Runtime Function: short accum __fractsaha2 (accum A)
-- Runtime Function: long accum __fractsada2 (accum A)
-- Runtime Function: long long accum __fractsata2 (accum A)
-- Runtime Function: unsigned short fract __fractsauqq (accum A)
-- Runtime Function: unsigned fract __fractsauhq (accum A)
-- Runtime Function: unsigned long fract __fractsausq (accum A)
-- Runtime Function: unsigned long long fract __fractsaudq (accum A)
-- Runtime Function: unsigned short accum __fractsauha (accum A)
-- Runtime Function: unsigned accum __fractsausa (accum A)
-- Runtime Function: unsigned long accum __fractsauda (accum A)
-- Runtime Function: unsigned long long accum __fractsauta (accum A)
-- Runtime Function: signed char __fractsaqi (accum A)
-- Runtime Function: short __fractsahi (accum A)
-- Runtime Function: int __fractsasi (accum A)
-- Runtime Function: long __fractsadi (accum A)
-- Runtime Function: long long __fractsati (accum A)
-- Runtime Function: float __fractsasf (accum A)
-- Runtime Function: double __fractsadf (accum A)
-- Runtime Function: short fract __fractdaqq (long accum A)
-- Runtime Function: fract __fractdahq (long accum A)
-- Runtime Function: long fract __fractdasq (long accum A)
-- Runtime Function: long long fract __fractdadq (long accum A)
-- Runtime Function: short accum __fractdaha2 (long accum A)
-- Runtime Function: accum __fractdasa2 (long accum A)
-- Runtime Function: long long accum __fractdata2 (long accum A)
-- Runtime Function: unsigned short fract __fractdauqq (long accum A)
-- Runtime Function: unsigned fract __fractdauhq (long accum A)
-- Runtime Function: unsigned long fract __fractdausq (long accum A)
-- Runtime Function: unsigned long long fract __fractdaudq (long accum
A)
-- Runtime Function: unsigned short accum __fractdauha (long accum A)
-- Runtime Function: unsigned accum __fractdausa (long accum A)
-- Runtime Function: unsigned long accum __fractdauda (long accum A)
-- Runtime Function: unsigned long long accum __fractdauta (long accum
A)
-- Runtime Function: signed char __fractdaqi (long accum A)
-- Runtime Function: short __fractdahi (long accum A)
-- Runtime Function: int __fractdasi (long accum A)
-- Runtime Function: long __fractdadi (long accum A)
-- Runtime Function: long long __fractdati (long accum A)
-- Runtime Function: float __fractdasf (long accum A)
-- Runtime Function: double __fractdadf (long accum A)
-- Runtime Function: short fract __fracttaqq (long long accum A)
-- Runtime Function: fract __fracttahq (long long accum A)
-- Runtime Function: long fract __fracttasq (long long accum A)
-- Runtime Function: long long fract __fracttadq (long long accum A)
-- Runtime Function: short accum __fracttaha2 (long long accum A)
-- Runtime Function: accum __fracttasa2 (long long accum A)
-- Runtime Function: long accum __fracttada2 (long long accum A)
-- Runtime Function: unsigned short fract __fracttauqq (long long accum
A)
-- Runtime Function: unsigned fract __fracttauhq (long long accum A)
-- Runtime Function: unsigned long fract __fracttausq (long long accum
A)
-- Runtime Function: unsigned long long fract __fracttaudq (long long
accum A)
-- Runtime Function: unsigned short accum __fracttauha (long long accum
A)
-- Runtime Function: unsigned accum __fracttausa (long long accum A)
-- Runtime Function: unsigned long accum __fracttauda (long long accum
A)
-- Runtime Function: unsigned long long accum __fracttauta (long long
accum A)
-- Runtime Function: signed char __fracttaqi (long long accum A)
-- Runtime Function: short __fracttahi (long long accum A)
-- Runtime Function: int __fracttasi (long long accum A)
-- Runtime Function: long __fracttadi (long long accum A)
-- Runtime Function: long long __fracttati (long long accum A)
-- Runtime Function: float __fracttasf (long long accum A)
-- Runtime Function: double __fracttadf (long long accum A)
-- Runtime Function: short fract __fractuqqqq (unsigned short fract A)
-- Runtime Function: fract __fractuqqhq (unsigned short fract A)
-- Runtime Function: long fract __fractuqqsq (unsigned short fract A)
-- Runtime Function: long long fract __fractuqqdq (unsigned short fract
A)
-- Runtime Function: short accum __fractuqqha (unsigned short fract A)
-- Runtime Function: accum __fractuqqsa (unsigned short fract A)
-- Runtime Function: long accum __fractuqqda (unsigned short fract A)
-- Runtime Function: long long accum __fractuqqta (unsigned short fract
A)
-- Runtime Function: unsigned fract __fractuqquhq2 (unsigned short
fract A)
-- Runtime Function: unsigned long fract __fractuqqusq2 (unsigned short
fract A)
-- Runtime Function: unsigned long long fract __fractuqqudq2 (unsigned
short fract A)
-- Runtime Function: unsigned short accum __fractuqquha (unsigned short
fract A)
-- Runtime Function: unsigned accum __fractuqqusa (unsigned short fract
A)
-- Runtime Function: unsigned long accum __fractuqquda (unsigned short
fract A)
-- Runtime Function: unsigned long long accum __fractuqquta (unsigned
short fract A)
-- Runtime Function: signed char __fractuqqqi (unsigned short fract A)
-- Runtime Function: short __fractuqqhi (unsigned short fract A)
-- Runtime Function: int __fractuqqsi (unsigned short fract A)
-- Runtime Function: long __fractuqqdi (unsigned short fract A)
-- Runtime Function: long long __fractuqqti (unsigned short fract A)
-- Runtime Function: float __fractuqqsf (unsigned short fract A)
-- Runtime Function: double __fractuqqdf (unsigned short fract A)
-- Runtime Function: short fract __fractuhqqq (unsigned fract A)
-- Runtime Function: fract __fractuhqhq (unsigned fract A)
-- Runtime Function: long fract __fractuhqsq (unsigned fract A)
-- Runtime Function: long long fract __fractuhqdq (unsigned fract A)
-- Runtime Function: short accum __fractuhqha (unsigned fract A)
-- Runtime Function: accum __fractuhqsa (unsigned fract A)
-- Runtime Function: long accum __fractuhqda (unsigned fract A)
-- Runtime Function: long long accum __fractuhqta (unsigned fract A)
-- Runtime Function: unsigned short fract __fractuhquqq2 (unsigned
fract A)
-- Runtime Function: unsigned long fract __fractuhqusq2 (unsigned fract
A)
-- Runtime Function: unsigned long long fract __fractuhqudq2 (unsigned
fract A)
-- Runtime Function: unsigned short accum __fractuhquha (unsigned fract
A)
-- Runtime Function: unsigned accum __fractuhqusa (unsigned fract A)
-- Runtime Function: unsigned long accum __fractuhquda (unsigned fract
A)
-- Runtime Function: unsigned long long accum __fractuhquta (unsigned
fract A)
-- Runtime Function: signed char __fractuhqqi (unsigned fract A)
-- Runtime Function: short __fractuhqhi (unsigned fract A)
-- Runtime Function: int __fractuhqsi (unsigned fract A)
-- Runtime Function: long __fractuhqdi (unsigned fract A)
-- Runtime Function: long long __fractuhqti (unsigned fract A)
-- Runtime Function: float __fractuhqsf (unsigned fract A)
-- Runtime Function: double __fractuhqdf (unsigned fract A)
-- Runtime Function: short fract __fractusqqq (unsigned long fract A)
-- Runtime Function: fract __fractusqhq (unsigned long fract A)
-- Runtime Function: long fract __fractusqsq (unsigned long fract A)
-- Runtime Function: long long fract __fractusqdq (unsigned long fract
A)
-- Runtime Function: short accum __fractusqha (unsigned long fract A)
-- Runtime Function: accum __fractusqsa (unsigned long fract A)
-- Runtime Function: long accum __fractusqda (unsigned long fract A)
-- Runtime Function: long long accum __fractusqta (unsigned long fract
A)
-- Runtime Function: unsigned short fract __fractusquqq2 (unsigned long
fract A)
-- Runtime Function: unsigned fract __fractusquhq2 (unsigned long fract
A)
-- Runtime Function: unsigned long long fract __fractusqudq2 (unsigned
long fract A)
-- Runtime Function: unsigned short accum __fractusquha (unsigned long
fract A)
-- Runtime Function: unsigned accum __fractusqusa (unsigned long fract
A)
-- Runtime Function: unsigned long accum __fractusquda (unsigned long
fract A)
-- Runtime Function: unsigned long long accum __fractusquta (unsigned
long fract A)
-- Runtime Function: signed char __fractusqqi (unsigned long fract A)
-- Runtime Function: short __fractusqhi (unsigned long fract A)
-- Runtime Function: int __fractusqsi (unsigned long fract A)
-- Runtime Function: long __fractusqdi (unsigned long fract A)
-- Runtime Function: long long __fractusqti (unsigned long fract A)
-- Runtime Function: float __fractusqsf (unsigned long fract A)
-- Runtime Function: double __fractusqdf (unsigned long fract A)
-- Runtime Function: short fract __fractudqqq (unsigned long long fract
A)
-- Runtime Function: fract __fractudqhq (unsigned long long fract A)
-- Runtime Function: long fract __fractudqsq (unsigned long long fract
A)
-- Runtime Function: long long fract __fractudqdq (unsigned long long
fract A)
-- Runtime Function: short accum __fractudqha (unsigned long long fract
A)
-- Runtime Function: accum __fractudqsa (unsigned long long fract A)
-- Runtime Function: long accum __fractudqda (unsigned long long fract
A)
-- Runtime Function: long long accum __fractudqta (unsigned long long
fract A)
-- Runtime Function: unsigned short fract __fractudquqq2 (unsigned long
long fract A)
-- Runtime Function: unsigned fract __fractudquhq2 (unsigned long long
fract A)
-- Runtime Function: unsigned long fract __fractudqusq2 (unsigned long
long fract A)
-- Runtime Function: unsigned short accum __fractudquha (unsigned long
long fract A)
-- Runtime Function: unsigned accum __fractudqusa (unsigned long long
fract A)
-- Runtime Function: unsigned long accum __fractudquda (unsigned long
long fract A)
-- Runtime Function: unsigned long long accum __fractudquta (unsigned
long long fract A)
-- Runtime Function: signed char __fractudqqi (unsigned long long fract
A)
-- Runtime Function: short __fractudqhi (unsigned long long fract A)
-- Runtime Function: int __fractudqsi (unsigned long long fract A)
-- Runtime Function: long __fractudqdi (unsigned long long fract A)
-- Runtime Function: long long __fractudqti (unsigned long long fract
A)
-- Runtime Function: float __fractudqsf (unsigned long long fract A)
-- Runtime Function: double __fractudqdf (unsigned long long fract A)
-- Runtime Function: short fract __fractuhaqq (unsigned short accum A)
-- Runtime Function: fract __fractuhahq (unsigned short accum A)
-- Runtime Function: long fract __fractuhasq (unsigned short accum A)
-- Runtime Function: long long fract __fractuhadq (unsigned short accum
A)
-- Runtime Function: short accum __fractuhaha (unsigned short accum A)
-- Runtime Function: accum __fractuhasa (unsigned short accum A)
-- Runtime Function: long accum __fractuhada (unsigned short accum A)
-- Runtime Function: long long accum __fractuhata (unsigned short accum
A)
-- Runtime Function: unsigned short fract __fractuhauqq (unsigned short
accum A)
-- Runtime Function: unsigned fract __fractuhauhq (unsigned short accum
A)
-- Runtime Function: unsigned long fract __fractuhausq (unsigned short
accum A)
-- Runtime Function: unsigned long long fract __fractuhaudq (unsigned
short accum A)
-- Runtime Function: unsigned accum __fractuhausa2 (unsigned short
accum A)
-- Runtime Function: unsigned long accum __fractuhauda2 (unsigned short
accum A)
-- Runtime Function: unsigned long long accum __fractuhauta2 (unsigned
short accum A)
-- Runtime Function: signed char __fractuhaqi (unsigned short accum A)
-- Runtime Function: short __fractuhahi (unsigned short accum A)
-- Runtime Function: int __fractuhasi (unsigned short accum A)
-- Runtime Function: long __fractuhadi (unsigned short accum A)
-- Runtime Function: long long __fractuhati (unsigned short accum A)
-- Runtime Function: float __fractuhasf (unsigned short accum A)
-- Runtime Function: double __fractuhadf (unsigned short accum A)
-- Runtime Function: short fract __fractusaqq (unsigned accum A)
-- Runtime Function: fract __fractusahq (unsigned accum A)
-- Runtime Function: long fract __fractusasq (unsigned accum A)
-- Runtime Function: long long fract __fractusadq (unsigned accum A)
-- Runtime Function: short accum __fractusaha (unsigned accum A)
-- Runtime Function: accum __fractusasa (unsigned accum A)
-- Runtime Function: long accum __fractusada (unsigned accum A)
-- Runtime Function: long long accum __fractusata (unsigned accum A)
-- Runtime Function: unsigned short fract __fractusauqq (unsigned accum
A)
-- Runtime Function: unsigned fract __fractusauhq (unsigned accum A)
-- Runtime Function: unsigned long fract __fractusausq (unsigned accum
A)
-- Runtime Function: unsigned long long fract __fractusaudq (unsigned
accum A)
-- Runtime Function: unsigned short accum __fractusauha2 (unsigned
accum A)
-- Runtime Function: unsigned long accum __fractusauda2 (unsigned accum
A)
-- Runtime Function: unsigned long long accum __fractusauta2 (unsigned
accum A)
-- Runtime Function: signed char __fractusaqi (unsigned accum A)
-- Runtime Function: short __fractusahi (unsigned accum A)
-- Runtime Function: int __fractusasi (unsigned accum A)
-- Runtime Function: long __fractusadi (unsigned accum A)
-- Runtime Function: long long __fractusati (unsigned accum A)
-- Runtime Function: float __fractusasf (unsigned accum A)
-- Runtime Function: double __fractusadf (unsigned accum A)
-- Runtime Function: short fract __fractudaqq (unsigned long accum A)
-- Runtime Function: fract __fractudahq (unsigned long accum A)
-- Runtime Function: long fract __fractudasq (unsigned long accum A)
-- Runtime Function: long long fract __fractudadq (unsigned long accum
A)
-- Runtime Function: short accum __fractudaha (unsigned long accum A)
-- Runtime Function: accum __fractudasa (unsigned long accum A)
-- Runtime Function: long accum __fractudada (unsigned long accum A)
-- Runtime Function: long long accum __fractudata (unsigned long accum
A)
-- Runtime Function: unsigned short fract __fractudauqq (unsigned long
accum A)
-- Runtime Function: unsigned fract __fractudauhq (unsigned long accum
A)
-- Runtime Function: unsigned long fract __fractudausq (unsigned long
accum A)
-- Runtime Function: unsigned long long fract __fractudaudq (unsigned
long accum A)
-- Runtime Function: unsigned short accum __fractudauha2 (unsigned long
accum A)
-- Runtime Function: unsigned accum __fractudausa2 (unsigned long accum
A)
-- Runtime Function: unsigned long long accum __fractudauta2 (unsigned
long accum A)
-- Runtime Function: signed char __fractudaqi (unsigned long accum A)
-- Runtime Function: short __fractudahi (unsigned long accum A)
-- Runtime Function: int __fractudasi (unsigned long accum A)
-- Runtime Function: long __fractudadi (unsigned long accum A)
-- Runtime Function: long long __fractudati (unsigned long accum A)
-- Runtime Function: float __fractudasf (unsigned long accum A)
-- Runtime Function: double __fractudadf (unsigned long accum A)
-- Runtime Function: short fract __fractutaqq (unsigned long long accum
A)
-- Runtime Function: fract __fractutahq (unsigned long long accum A)
-- Runtime Function: long fract __fractutasq (unsigned long long accum
A)
-- Runtime Function: long long fract __fractutadq (unsigned long long
accum A)
-- Runtime Function: short accum __fractutaha (unsigned long long accum
A)
-- Runtime Function: accum __fractutasa (unsigned long long accum A)
-- Runtime Function: long accum __fractutada (unsigned long long accum
A)
-- Runtime Function: long long accum __fractutata (unsigned long long
accum A)
-- Runtime Function: unsigned short fract __fractutauqq (unsigned long
long accum A)
-- Runtime Function: unsigned fract __fractutauhq (unsigned long long
accum A)
-- Runtime Function: unsigned long fract __fractutausq (unsigned long
long accum A)
-- Runtime Function: unsigned long long fract __fractutaudq (unsigned
long long accum A)
-- Runtime Function: unsigned short accum __fractutauha2 (unsigned long
long accum A)
-- Runtime Function: unsigned accum __fractutausa2 (unsigned long long
accum A)
-- Runtime Function: unsigned long accum __fractutauda2 (unsigned long
long accum A)
-- Runtime Function: signed char __fractutaqi (unsigned long long accum
A)
-- Runtime Function: short __fractutahi (unsigned long long accum A)
-- Runtime Function: int __fractutasi (unsigned long long accum A)
-- Runtime Function: long __fractutadi (unsigned long long accum A)
-- Runtime Function: long long __fractutati (unsigned long long accum
A)
-- Runtime Function: float __fractutasf (unsigned long long accum A)
-- Runtime Function: double __fractutadf (unsigned long long accum A)
-- Runtime Function: short fract __fractqiqq (signed char A)
-- Runtime Function: fract __fractqihq (signed char A)
-- Runtime Function: long fract __fractqisq (signed char A)
-- Runtime Function: long long fract __fractqidq (signed char A)
-- Runtime Function: short accum __fractqiha (signed char A)
-- Runtime Function: accum __fractqisa (signed char A)
-- Runtime Function: long accum __fractqida (signed char A)
-- Runtime Function: long long accum __fractqita (signed char A)
-- Runtime Function: unsigned short fract __fractqiuqq (signed char A)
-- Runtime Function: unsigned fract __fractqiuhq (signed char A)
-- Runtime Function: unsigned long fract __fractqiusq (signed char A)
-- Runtime Function: unsigned long long fract __fractqiudq (signed char
A)
-- Runtime Function: unsigned short accum __fractqiuha (signed char A)
-- Runtime Function: unsigned accum __fractqiusa (signed char A)
-- Runtime Function: unsigned long accum __fractqiuda (signed char A)
-- Runtime Function: unsigned long long accum __fractqiuta (signed char
A)
-- Runtime Function: short fract __fracthiqq (short A)
-- Runtime Function: fract __fracthihq (short A)
-- Runtime Function: long fract __fracthisq (short A)
-- Runtime Function: long long fract __fracthidq (short A)
-- Runtime Function: short accum __fracthiha (short A)
-- Runtime Function: accum __fracthisa (short A)
-- Runtime Function: long accum __fracthida (short A)
-- Runtime Function: long long accum __fracthita (short A)
-- Runtime Function: unsigned short fract __fracthiuqq (short A)
-- Runtime Function: unsigned fract __fracthiuhq (short A)
-- Runtime Function: unsigned long fract __fracthiusq (short A)
-- Runtime Function: unsigned long long fract __fracthiudq (short A)
-- Runtime Function: unsigned short accum __fracthiuha (short A)
-- Runtime Function: unsigned accum __fracthiusa (short A)
-- Runtime Function: unsigned long accum __fracthiuda (short A)
-- Runtime Function: unsigned long long accum __fracthiuta (short A)
-- Runtime Function: short fract __fractsiqq (int A)
-- Runtime Function: fract __fractsihq (int A)
-- Runtime Function: long fract __fractsisq (int A)
-- Runtime Function: long long fract __fractsidq (int A)
-- Runtime Function: short accum __fractsiha (int A)
-- Runtime Function: accum __fractsisa (int A)
-- Runtime Function: long accum __fractsida (int A)
-- Runtime Function: long long accum __fractsita (int A)
-- Runtime Function: unsigned short fract __fractsiuqq (int A)
-- Runtime Function: unsigned fract __fractsiuhq (int A)
-- Runtime Function: unsigned long fract __fractsiusq (int A)
-- Runtime Function: unsigned long long fract __fractsiudq (int A)
-- Runtime Function: unsigned short accum __fractsiuha (int A)
-- Runtime Function: unsigned accum __fractsiusa (int A)
-- Runtime Function: unsigned long accum __fractsiuda (int A)
-- Runtime Function: unsigned long long accum __fractsiuta (int A)
-- Runtime Function: short fract __fractdiqq (long A)
-- Runtime Function: fract __fractdihq (long A)
-- Runtime Function: long fract __fractdisq (long A)
-- Runtime Function: long long fract __fractdidq (long A)
-- Runtime Function: short accum __fractdiha (long A)
-- Runtime Function: accum __fractdisa (long A)
-- Runtime Function: long accum __fractdida (long A)
-- Runtime Function: long long accum __fractdita (long A)
-- Runtime Function: unsigned short fract __fractdiuqq (long A)
-- Runtime Function: unsigned fract __fractdiuhq (long A)
-- Runtime Function: unsigned long fract __fractdiusq (long A)
-- Runtime Function: unsigned long long fract __fractdiudq (long A)
-- Runtime Function: unsigned short accum __fractdiuha (long A)
-- Runtime Function: unsigned accum __fractdiusa (long A)
-- Runtime Function: unsigned long accum __fractdiuda (long A)
-- Runtime Function: unsigned long long accum __fractdiuta (long A)
-- Runtime Function: short fract __fracttiqq (long long A)
-- Runtime Function: fract __fracttihq (long long A)
-- Runtime Function: long fract __fracttisq (long long A)
-- Runtime Function: long long fract __fracttidq (long long A)
-- Runtime Function: short accum __fracttiha (long long A)
-- Runtime Function: accum __fracttisa (long long A)
-- Runtime Function: long accum __fracttida (long long A)
-- Runtime Function: long long accum __fracttita (long long A)
-- Runtime Function: unsigned short fract __fracttiuqq (long long A)
-- Runtime Function: unsigned fract __fracttiuhq (long long A)
-- Runtime Function: unsigned long fract __fracttiusq (long long A)
-- Runtime Function: unsigned long long fract __fracttiudq (long long
A)
-- Runtime Function: unsigned short accum __fracttiuha (long long A)
-- Runtime Function: unsigned accum __fracttiusa (long long A)
-- Runtime Function: unsigned long accum __fracttiuda (long long A)
-- Runtime Function: unsigned long long accum __fracttiuta (long long
A)
-- Runtime Function: short fract __fractsfqq (float A)
-- Runtime Function: fract __fractsfhq (float A)
-- Runtime Function: long fract __fractsfsq (float A)
-- Runtime Function: long long fract __fractsfdq (float A)
-- Runtime Function: short accum __fractsfha (float A)
-- Runtime Function: accum __fractsfsa (float A)
-- Runtime Function: long accum __fractsfda (float A)
-- Runtime Function: long long accum __fractsfta (float A)
-- Runtime Function: unsigned short fract __fractsfuqq (float A)
-- Runtime Function: unsigned fract __fractsfuhq (float A)
-- Runtime Function: unsigned long fract __fractsfusq (float A)
-- Runtime Function: unsigned long long fract __fractsfudq (float A)
-- Runtime Function: unsigned short accum __fractsfuha (float A)
-- Runtime Function: unsigned accum __fractsfusa (float A)
-- Runtime Function: unsigned long accum __fractsfuda (float A)
-- Runtime Function: unsigned long long accum __fractsfuta (float A)
-- Runtime Function: short fract __fractdfqq (double A)
-- Runtime Function: fract __fractdfhq (double A)
-- Runtime Function: long fract __fractdfsq (double A)
-- Runtime Function: long long fract __fractdfdq (double A)
-- Runtime Function: short accum __fractdfha (double A)
-- Runtime Function: accum __fractdfsa (double A)
-- Runtime Function: long accum __fractdfda (double A)
-- Runtime Function: long long accum __fractdfta (double A)
-- Runtime Function: unsigned short fract __fractdfuqq (double A)
-- Runtime Function: unsigned fract __fractdfuhq (double A)
-- Runtime Function: unsigned long fract __fractdfusq (double A)
-- Runtime Function: unsigned long long fract __fractdfudq (double A)
-- Runtime Function: unsigned short accum __fractdfuha (double A)
-- Runtime Function: unsigned accum __fractdfusa (double A)
-- Runtime Function: unsigned long accum __fractdfuda (double A)
-- Runtime Function: unsigned long long accum __fractdfuta (double A)
These functions convert from fractional and signed non-fractionals
to fractionals and signed non-fractionals, without saturation.
-- Runtime Function: fract __satfractqqhq2 (short fract A)
-- Runtime Function: long fract __satfractqqsq2 (short fract A)
-- Runtime Function: long long fract __satfractqqdq2 (short fract A)
-- Runtime Function: short accum __satfractqqha (short fract A)
-- Runtime Function: accum __satfractqqsa (short fract A)
-- Runtime Function: long accum __satfractqqda (short fract A)
-- Runtime Function: long long accum __satfractqqta (short fract A)
-- Runtime Function: unsigned short fract __satfractqquqq (short fract
A)
-- Runtime Function: unsigned fract __satfractqquhq (short fract A)
-- Runtime Function: unsigned long fract __satfractqqusq (short fract
A)
-- Runtime Function: unsigned long long fract __satfractqqudq (short
fract A)
-- Runtime Function: unsigned short accum __satfractqquha (short fract
A)
-- Runtime Function: unsigned accum __satfractqqusa (short fract A)
-- Runtime Function: unsigned long accum __satfractqquda (short fract
A)
-- Runtime Function: unsigned long long accum __satfractqquta (short
fract A)
-- Runtime Function: short fract __satfracthqqq2 (fract A)
-- Runtime Function: long fract __satfracthqsq2 (fract A)
-- Runtime Function: long long fract __satfracthqdq2 (fract A)
-- Runtime Function: short accum __satfracthqha (fract A)
-- Runtime Function: accum __satfracthqsa (fract A)
-- Runtime Function: long accum __satfracthqda (fract A)
-- Runtime Function: long long accum __satfracthqta (fract A)
-- Runtime Function: unsigned short fract __satfracthquqq (fract A)
-- Runtime Function: unsigned fract __satfracthquhq (fract A)
-- Runtime Function: unsigned long fract __satfracthqusq (fract A)
-- Runtime Function: unsigned long long fract __satfracthqudq (fract A)
-- Runtime Function: unsigned short accum __satfracthquha (fract A)
-- Runtime Function: unsigned accum __satfracthqusa (fract A)
-- Runtime Function: unsigned long accum __satfracthquda (fract A)
-- Runtime Function: unsigned long long accum __satfracthquta (fract A)
-- Runtime Function: short fract __satfractsqqq2 (long fract A)
-- Runtime Function: fract __satfractsqhq2 (long fract A)
-- Runtime Function: long long fract __satfractsqdq2 (long fract A)
-- Runtime Function: short accum __satfractsqha (long fract A)
-- Runtime Function: accum __satfractsqsa (long fract A)
-- Runtime Function: long accum __satfractsqda (long fract A)
-- Runtime Function: long long accum __satfractsqta (long fract A)
-- Runtime Function: unsigned short fract __satfractsquqq (long fract
A)
-- Runtime Function: unsigned fract __satfractsquhq (long fract A)
-- Runtime Function: unsigned long fract __satfractsqusq (long fract A)
-- Runtime Function: unsigned long long fract __satfractsqudq (long
fract A)
-- Runtime Function: unsigned short accum __satfractsquha (long fract
A)
-- Runtime Function: unsigned accum __satfractsqusa (long fract A)
-- Runtime Function: unsigned long accum __satfractsquda (long fract A)
-- Runtime Function: unsigned long long accum __satfractsquta (long
fract A)
-- Runtime Function: short fract __satfractdqqq2 (long long fract A)
-- Runtime Function: fract __satfractdqhq2 (long long fract A)
-- Runtime Function: long fract __satfractdqsq2 (long long fract A)
-- Runtime Function: short accum __satfractdqha (long long fract A)
-- Runtime Function: accum __satfractdqsa (long long fract A)
-- Runtime Function: long accum __satfractdqda (long long fract A)
-- Runtime Function: long long accum __satfractdqta (long long fract A)
-- Runtime Function: unsigned short fract __satfractdquqq (long long
fract A)
-- Runtime Function: unsigned fract __satfractdquhq (long long fract A)
-- Runtime Function: unsigned long fract __satfractdqusq (long long
fract A)
-- Runtime Function: unsigned long long fract __satfractdqudq (long
long fract A)
-- Runtime Function: unsigned short accum __satfractdquha (long long
fract A)
-- Runtime Function: unsigned accum __satfractdqusa (long long fract A)
-- Runtime Function: unsigned long accum __satfractdquda (long long
fract A)
-- Runtime Function: unsigned long long accum __satfractdquta (long
long fract A)
-- Runtime Function: short fract __satfracthaqq (short accum A)
-- Runtime Function: fract __satfracthahq (short accum A)
-- Runtime Function: long fract __satfracthasq (short accum A)
-- Runtime Function: long long fract __satfracthadq (short accum A)
-- Runtime Function: accum __satfracthasa2 (short accum A)
-- Runtime Function: long accum __satfracthada2 (short accum A)
-- Runtime Function: long long accum __satfracthata2 (short accum A)
-- Runtime Function: unsigned short fract __satfracthauqq (short accum
A)
-- Runtime Function: unsigned fract __satfracthauhq (short accum A)
-- Runtime Function: unsigned long fract __satfracthausq (short accum
A)
-- Runtime Function: unsigned long long fract __satfracthaudq (short
accum A)
-- Runtime Function: unsigned short accum __satfracthauha (short accum
A)
-- Runtime Function: unsigned accum __satfracthausa (short accum A)
-- Runtime Function: unsigned long accum __satfracthauda (short accum
A)
-- Runtime Function: unsigned long long accum __satfracthauta (short
accum A)
-- Runtime Function: short fract __satfractsaqq (accum A)
-- Runtime Function: fract __satfractsahq (accum A)
-- Runtime Function: long fract __satfractsasq (accum A)
-- Runtime Function: long long fract __satfractsadq (accum A)
-- Runtime Function: short accum __satfractsaha2 (accum A)
-- Runtime Function: long accum __satfractsada2 (accum A)
-- Runtime Function: long long accum __satfractsata2 (accum A)
-- Runtime Function: unsigned short fract __satfractsauqq (accum A)
-- Runtime Function: unsigned fract __satfractsauhq (accum A)
-- Runtime Function: unsigned long fract __satfractsausq (accum A)
-- Runtime Function: unsigned long long fract __satfractsaudq (accum A)
-- Runtime Function: unsigned short accum __satfractsauha (accum A)
-- Runtime Function: unsigned accum __satfractsausa (accum A)
-- Runtime Function: unsigned long accum __satfractsauda (accum A)
-- Runtime Function: unsigned long long accum __satfractsauta (accum A)
-- Runtime Function: short fract __satfractdaqq (long accum A)
-- Runtime Function: fract __satfractdahq (long accum A)
-- Runtime Function: long fract __satfractdasq (long accum A)
-- Runtime Function: long long fract __satfractdadq (long accum A)
-- Runtime Function: short accum __satfractdaha2 (long accum A)
-- Runtime Function: accum __satfractdasa2 (long accum A)
-- Runtime Function: long long accum __satfractdata2 (long accum A)
-- Runtime Function: unsigned short fract __satfractdauqq (long accum
A)
-- Runtime Function: unsigned fract __satfractdauhq (long accum A)
-- Runtime Function: unsigned long fract __satfractdausq (long accum A)
-- Runtime Function: unsigned long long fract __satfractdaudq (long
accum A)
-- Runtime Function: unsigned short accum __satfractdauha (long accum
A)
-- Runtime Function: unsigned accum __satfractdausa (long accum A)
-- Runtime Function: unsigned long accum __satfractdauda (long accum A)
-- Runtime Function: unsigned long long accum __satfractdauta (long
accum A)
-- Runtime Function: short fract __satfracttaqq (long long accum A)
-- Runtime Function: fract __satfracttahq (long long accum A)
-- Runtime Function: long fract __satfracttasq (long long accum A)
-- Runtime Function: long long fract __satfracttadq (long long accum A)
-- Runtime Function: short accum __satfracttaha2 (long long accum A)
-- Runtime Function: accum __satfracttasa2 (long long accum A)
-- Runtime Function: long accum __satfracttada2 (long long accum A)
-- Runtime Function: unsigned short fract __satfracttauqq (long long
accum A)
-- Runtime Function: unsigned fract __satfracttauhq (long long accum A)
-- Runtime Function: unsigned long fract __satfracttausq (long long
accum A)
-- Runtime Function: unsigned long long fract __satfracttaudq (long
long accum A)
-- Runtime Function: unsigned short accum __satfracttauha (long long
accum A)
-- Runtime Function: unsigned accum __satfracttausa (long long accum A)
-- Runtime Function: unsigned long accum __satfracttauda (long long
accum A)
-- Runtime Function: unsigned long long accum __satfracttauta (long
long accum A)
-- Runtime Function: short fract __satfractuqqqq (unsigned short fract
A)
-- Runtime Function: fract __satfractuqqhq (unsigned short fract A)
-- Runtime Function: long fract __satfractuqqsq (unsigned short fract
A)
-- Runtime Function: long long fract __satfractuqqdq (unsigned short
fract A)
-- Runtime Function: short accum __satfractuqqha (unsigned short fract
A)
-- Runtime Function: accum __satfractuqqsa (unsigned short fract A)
-- Runtime Function: long accum __satfractuqqda (unsigned short fract
A)
-- Runtime Function: long long accum __satfractuqqta (unsigned short
fract A)
-- Runtime Function: unsigned fract __satfractuqquhq2 (unsigned short
fract A)
-- Runtime Function: unsigned long fract __satfractuqqusq2 (unsigned
short fract A)
-- Runtime Function: unsigned long long fract __satfractuqqudq2
(unsigned short fract A)
-- Runtime Function: unsigned short accum __satfractuqquha (unsigned
short fract A)
-- Runtime Function: unsigned accum __satfractuqqusa (unsigned short
fract A)
-- Runtime Function: unsigned long accum __satfractuqquda (unsigned
short fract A)
-- Runtime Function: unsigned long long accum __satfractuqquta
(unsigned short fract A)
-- Runtime Function: short fract __satfractuhqqq (unsigned fract A)
-- Runtime Function: fract __satfractuhqhq (unsigned fract A)
-- Runtime Function: long fract __satfractuhqsq (unsigned fract A)
-- Runtime Function: long long fract __satfractuhqdq (unsigned fract A)
-- Runtime Function: short accum __satfractuhqha (unsigned fract A)
-- Runtime Function: accum __satfractuhqsa (unsigned fract A)
-- Runtime Function: long accum __satfractuhqda (unsigned fract A)
-- Runtime Function: long long accum __satfractuhqta (unsigned fract A)
-- Runtime Function: unsigned short fract __satfractuhquqq2 (unsigned
fract A)
-- Runtime Function: unsigned long fract __satfractuhqusq2 (unsigned
fract A)
-- Runtime Function: unsigned long long fract __satfractuhqudq2
(unsigned fract A)
-- Runtime Function: unsigned short accum __satfractuhquha (unsigned
fract A)
-- Runtime Function: unsigned accum __satfractuhqusa (unsigned fract A)
-- Runtime Function: unsigned long accum __satfractuhquda (unsigned
fract A)
-- Runtime Function: unsigned long long accum __satfractuhquta
(unsigned fract A)
-- Runtime Function: short fract __satfractusqqq (unsigned long fract
A)
-- Runtime Function: fract __satfractusqhq (unsigned long fract A)
-- Runtime Function: long fract __satfractusqsq (unsigned long fract A)
-- Runtime Function: long long fract __satfractusqdq (unsigned long
fract A)
-- Runtime Function: short accum __satfractusqha (unsigned long fract
A)
-- Runtime Function: accum __satfractusqsa (unsigned long fract A)
-- Runtime Function: long accum __satfractusqda (unsigned long fract A)
-- Runtime Function: long long accum __satfractusqta (unsigned long
fract A)
-- Runtime Function: unsigned short fract __satfractusquqq2 (unsigned
long fract A)
-- Runtime Function: unsigned fract __satfractusquhq2 (unsigned long
fract A)
-- Runtime Function: unsigned long long fract __satfractusqudq2
(unsigned long fract A)
-- Runtime Function: unsigned short accum __satfractusquha (unsigned
long fract A)
-- Runtime Function: unsigned accum __satfractusqusa (unsigned long
fract A)
-- Runtime Function: unsigned long accum __satfractusquda (unsigned
long fract A)
-- Runtime Function: unsigned long long accum __satfractusquta
(unsigned long fract A)
-- Runtime Function: short fract __satfractudqqq (unsigned long long
fract A)
-- Runtime Function: fract __satfractudqhq (unsigned long long fract A)
-- Runtime Function: long fract __satfractudqsq (unsigned long long
fract A)
-- Runtime Function: long long fract __satfractudqdq (unsigned long
long fract A)
-- Runtime Function: short accum __satfractudqha (unsigned long long
fract A)
-- Runtime Function: accum __satfractudqsa (unsigned long long fract A)
-- Runtime Function: long accum __satfractudqda (unsigned long long
fract A)
-- Runtime Function: long long accum __satfractudqta (unsigned long
long fract A)
-- Runtime Function: unsigned short fract __satfractudquqq2 (unsigned
long long fract A)
-- Runtime Function: unsigned fract __satfractudquhq2 (unsigned long
long fract A)
-- Runtime Function: unsigned long fract __satfractudqusq2 (unsigned
long long fract A)
-- Runtime Function: unsigned short accum __satfractudquha (unsigned
long long fract A)
-- Runtime Function: unsigned accum __satfractudqusa (unsigned long
long fract A)
-- Runtime Function: unsigned long accum __satfractudquda (unsigned
long long fract A)
-- Runtime Function: unsigned long long accum __satfractudquta
(unsigned long long fract A)
-- Runtime Function: short fract __satfractuhaqq (unsigned short accum
A)
-- Runtime Function: fract __satfractuhahq (unsigned short accum A)
-- Runtime Function: long fract __satfractuhasq (unsigned short accum
A)
-- Runtime Function: long long fract __satfractuhadq (unsigned short
accum A)
-- Runtime Function: short accum __satfractuhaha (unsigned short accum
A)
-- Runtime Function: accum __satfractuhasa (unsigned short accum A)
-- Runtime Function: long accum __satfractuhada (unsigned short accum
A)
-- Runtime Function: long long accum __satfractuhata (unsigned short
accum A)
-- Runtime Function: unsigned short fract __satfractuhauqq (unsigned
short accum A)
-- Runtime Function: unsigned fract __satfractuhauhq (unsigned short
accum A)
-- Runtime Function: unsigned long fract __satfractuhausq (unsigned
short accum A)
-- Runtime Function: unsigned long long fract __satfractuhaudq
(unsigned short accum A)
-- Runtime Function: unsigned accum __satfractuhausa2 (unsigned short
accum A)
-- Runtime Function: unsigned long accum __satfractuhauda2 (unsigned
short accum A)
-- Runtime Function: unsigned long long accum __satfractuhauta2
(unsigned short accum A)
-- Runtime Function: short fract __satfractusaqq (unsigned accum A)
-- Runtime Function: fract __satfractusahq (unsigned accum A)
-- Runtime Function: long fract __satfractusasq (unsigned accum A)
-- Runtime Function: long long fract __satfractusadq (unsigned accum A)
-- Runtime Function: short accum __satfractusaha (unsigned accum A)
-- Runtime Function: accum __satfractusasa (unsigned accum A)
-- Runtime Function: long accum __satfractusada (unsigned accum A)
-- Runtime Function: long long accum __satfractusata (unsigned accum A)
-- Runtime Function: unsigned short fract __satfractusauqq (unsigned
accum A)
-- Runtime Function: unsigned fract __satfractusauhq (unsigned accum A)
-- Runtime Function: unsigned long fract __satfractusausq (unsigned
accum A)
-- Runtime Function: unsigned long long fract __satfractusaudq
(unsigned accum A)
-- Runtime Function: unsigned short accum __satfractusauha2 (unsigned
accum A)
-- Runtime Function: unsigned long accum __satfractusauda2 (unsigned
accum A)
-- Runtime Function: unsigned long long accum __satfractusauta2
(unsigned accum A)
-- Runtime Function: short fract __satfractudaqq (unsigned long accum
A)
-- Runtime Function: fract __satfractudahq (unsigned long accum A)
-- Runtime Function: long fract __satfractudasq (unsigned long accum A)
-- Runtime Function: long long fract __satfractudadq (unsigned long
accum A)
-- Runtime Function: short accum __satfractudaha (unsigned long accum
A)
-- Runtime Function: accum __satfractudasa (unsigned long accum A)
-- Runtime Function: long accum __satfractudada (unsigned long accum A)
-- Runtime Function: long long accum __satfractudata (unsigned long
accum A)
-- Runtime Function: unsigned short fract __satfractudauqq (unsigned
long accum A)
-- Runtime Function: unsigned fract __satfractudauhq (unsigned long
accum A)
-- Runtime Function: unsigned long fract __satfractudausq (unsigned
long accum A)
-- Runtime Function: unsigned long long fract __satfractudaudq
(unsigned long accum A)
-- Runtime Function: unsigned short accum __satfractudauha2 (unsigned
long accum A)
-- Runtime Function: unsigned accum __satfractudausa2 (unsigned long
accum A)
-- Runtime Function: unsigned long long accum __satfractudauta2
(unsigned long accum A)
-- Runtime Function: short fract __satfractutaqq (unsigned long long
accum A)
-- Runtime Function: fract __satfractutahq (unsigned long long accum A)
-- Runtime Function: long fract __satfractutasq (unsigned long long
accum A)
-- Runtime Function: long long fract __satfractutadq (unsigned long
long accum A)
-- Runtime Function: short accum __satfractutaha (unsigned long long
accum A)
-- Runtime Function: accum __satfractutasa (unsigned long long accum A)
-- Runtime Function: long accum __satfractutada (unsigned long long
accum A)
-- Runtime Function: long long accum __satfractutata (unsigned long
long accum A)
-- Runtime Function: unsigned short fract __satfractutauqq (unsigned
long long accum A)
-- Runtime Function: unsigned fract __satfractutauhq (unsigned long
long accum A)
-- Runtime Function: unsigned long fract __satfractutausq (unsigned
long long accum A)
-- Runtime Function: unsigned long long fract __satfractutaudq
(unsigned long long accum A)
-- Runtime Function: unsigned short accum __satfractutauha2 (unsigned
long long accum A)
-- Runtime Function: unsigned accum __satfractutausa2 (unsigned long
long accum A)
-- Runtime Function: unsigned long accum __satfractutauda2 (unsigned
long long accum A)
-- Runtime Function: short fract __satfractqiqq (signed char A)
-- Runtime Function: fract __satfractqihq (signed char A)
-- Runtime Function: long fract __satfractqisq (signed char A)
-- Runtime Function: long long fract __satfractqidq (signed char A)
-- Runtime Function: short accum __satfractqiha (signed char A)
-- Runtime Function: accum __satfractqisa (signed char A)
-- Runtime Function: long accum __satfractqida (signed char A)
-- Runtime Function: long long accum __satfractqita (signed char A)
-- Runtime Function: unsigned short fract __satfractqiuqq (signed char
A)
-- Runtime Function: unsigned fract __satfractqiuhq (signed char A)
-- Runtime Function: unsigned long fract __satfractqiusq (signed char
A)
-- Runtime Function: unsigned long long fract __satfractqiudq (signed
char A)
-- Runtime Function: unsigned short accum __satfractqiuha (signed char
A)
-- Runtime Function: unsigned accum __satfractqiusa (signed char A)
-- Runtime Function: unsigned long accum __satfractqiuda (signed char
A)
-- Runtime Function: unsigned long long accum __satfractqiuta (signed
char A)
-- Runtime Function: short fract __satfracthiqq (short A)
-- Runtime Function: fract __satfracthihq (short A)
-- Runtime Function: long fract __satfracthisq (short A)
-- Runtime Function: long long fract __satfracthidq (short A)
-- Runtime Function: short accum __satfracthiha (short A)
-- Runtime Function: accum __satfracthisa (short A)
-- Runtime Function: long accum __satfracthida (short A)
-- Runtime Function: long long accum __satfracthita (short A)
-- Runtime Function: unsigned short fract __satfracthiuqq (short A)
-- Runtime Function: unsigned fract __satfracthiuhq (short A)
-- Runtime Function: unsigned long fract __satfracthiusq (short A)
-- Runtime Function: unsigned long long fract __satfracthiudq (short A)
-- Runtime Function: unsigned short accum __satfracthiuha (short A)
-- Runtime Function: unsigned accum __satfracthiusa (short A)
-- Runtime Function: unsigned long accum __satfracthiuda (short A)
-- Runtime Function: unsigned long long accum __satfracthiuta (short A)
-- Runtime Function: short fract __satfractsiqq (int A)
-- Runtime Function: fract __satfractsihq (int A)
-- Runtime Function: long fract __satfractsisq (int A)
-- Runtime Function: long long fract __satfractsidq (int A)
-- Runtime Function: short accum __satfractsiha (int A)
-- Runtime Function: accum __satfractsisa (int A)
-- Runtime Function: long accum __satfractsida (int A)
-- Runtime Function: long long accum __satfractsita (int A)
-- Runtime Function: unsigned short fract __satfractsiuqq (int A)
-- Runtime Function: unsigned fract __satfractsiuhq (int A)
-- Runtime Function: unsigned long fract __satfractsiusq (int A)
-- Runtime Function: unsigned long long fract __satfractsiudq (int A)
-- Runtime Function: unsigned short accum __satfractsiuha (int A)
-- Runtime Function: unsigned accum __satfractsiusa (int A)
-- Runtime Function: unsigned long accum __satfractsiuda (int A)
-- Runtime Function: unsigned long long accum __satfractsiuta (int A)
-- Runtime Function: short fract __satfractdiqq (long A)
-- Runtime Function: fract __satfractdihq (long A)
-- Runtime Function: long fract __satfractdisq (long A)
-- Runtime Function: long long fract __satfractdidq (long A)
-- Runtime Function: short accum __satfractdiha (long A)
-- Runtime Function: accum __satfractdisa (long A)
-- Runtime Function: long accum __satfractdida (long A)
-- Runtime Function: long long accum __satfractdita (long A)
-- Runtime Function: unsigned short fract __satfractdiuqq (long A)
-- Runtime Function: unsigned fract __satfractdiuhq (long A)
-- Runtime Function: unsigned long fract __satfractdiusq (long A)
-- Runtime Function: unsigned long long fract __satfractdiudq (long A)
-- Runtime Function: unsigned short accum __satfractdiuha (long A)
-- Runtime Function: unsigned accum __satfractdiusa (long A)
-- Runtime Function: unsigned long accum __satfractdiuda (long A)
-- Runtime Function: unsigned long long accum __satfractdiuta (long A)
-- Runtime Function: short fract __satfracttiqq (long long A)
-- Runtime Function: fract __satfracttihq (long long A)
-- Runtime Function: long fract __satfracttisq (long long A)
-- Runtime Function: long long fract __satfracttidq (long long A)
-- Runtime Function: short accum __satfracttiha (long long A)
-- Runtime Function: accum __satfracttisa (long long A)
-- Runtime Function: long accum __satfracttida (long long A)
-- Runtime Function: long long accum __satfracttita (long long A)
-- Runtime Function: unsigned short fract __satfracttiuqq (long long A)
-- Runtime Function: unsigned fract __satfracttiuhq (long long A)
-- Runtime Function: unsigned long fract __satfracttiusq (long long A)
-- Runtime Function: unsigned long long fract __satfracttiudq (long
long A)
-- Runtime Function: unsigned short accum __satfracttiuha (long long A)
-- Runtime Function: unsigned accum __satfracttiusa (long long A)
-- Runtime Function: unsigned long accum __satfracttiuda (long long A)
-- Runtime Function: unsigned long long accum __satfracttiuta (long
long A)
-- Runtime Function: short fract __satfractsfqq (float A)
-- Runtime Function: fract __satfractsfhq (float A)
-- Runtime Function: long fract __satfractsfsq (float A)
-- Runtime Function: long long fract __satfractsfdq (float A)
-- Runtime Function: short accum __satfractsfha (float A)
-- Runtime Function: accum __satfractsfsa (float A)
-- Runtime Function: long accum __satfractsfda (float A)
-- Runtime Function: long long accum __satfractsfta (float A)
-- Runtime Function: unsigned short fract __satfractsfuqq (float A)
-- Runtime Function: unsigned fract __satfractsfuhq (float A)
-- Runtime Function: unsigned long fract __satfractsfusq (float A)
-- Runtime Function: unsigned long long fract __satfractsfudq (float A)
-- Runtime Function: unsigned short accum __satfractsfuha (float A)
-- Runtime Function: unsigned accum __satfractsfusa (float A)
-- Runtime Function: unsigned long accum __satfractsfuda (float A)
-- Runtime Function: unsigned long long accum __satfractsfuta (float A)
-- Runtime Function: short fract __satfractdfqq (double A)
-- Runtime Function: fract __satfractdfhq (double A)
-- Runtime Function: long fract __satfractdfsq (double A)
-- Runtime Function: long long fract __satfractdfdq (double A)
-- Runtime Function: short accum __satfractdfha (double A)
-- Runtime Function: accum __satfractdfsa (double A)
-- Runtime Function: long accum __satfractdfda (double A)
-- Runtime Function: long long accum __satfractdfta (double A)
-- Runtime Function: unsigned short fract __satfractdfuqq (double A)
-- Runtime Function: unsigned fract __satfractdfuhq (double A)
-- Runtime Function: unsigned long fract __satfractdfusq (double A)
-- Runtime Function: unsigned long long fract __satfractdfudq (double
A)
-- Runtime Function: unsigned short accum __satfractdfuha (double A)
-- Runtime Function: unsigned accum __satfractdfusa (double A)
-- Runtime Function: unsigned long accum __satfractdfuda (double A)
-- Runtime Function: unsigned long long accum __satfractdfuta (double
A)
The functions convert from fractional and signed non-fractionals to
fractionals, with saturation.
-- Runtime Function: unsigned char __fractunsqqqi (short fract A)
-- Runtime Function: unsigned short __fractunsqqhi (short fract A)
-- Runtime Function: unsigned int __fractunsqqsi (short fract A)
-- Runtime Function: unsigned long __fractunsqqdi (short fract A)
-- Runtime Function: unsigned long long __fractunsqqti (short fract A)
-- Runtime Function: unsigned char __fractunshqqi (fract A)
-- Runtime Function: unsigned short __fractunshqhi (fract A)
-- Runtime Function: unsigned int __fractunshqsi (fract A)
-- Runtime Function: unsigned long __fractunshqdi (fract A)
-- Runtime Function: unsigned long long __fractunshqti (fract A)
-- Runtime Function: unsigned char __fractunssqqi (long fract A)
-- Runtime Function: unsigned short __fractunssqhi (long fract A)
-- Runtime Function: unsigned int __fractunssqsi (long fract A)
-- Runtime Function: unsigned long __fractunssqdi (long fract A)
-- Runtime Function: unsigned long long __fractunssqti (long fract A)
-- Runtime Function: unsigned char __fractunsdqqi (long long fract A)
-- Runtime Function: unsigned short __fractunsdqhi (long long fract A)
-- Runtime Function: unsigned int __fractunsdqsi (long long fract A)
-- Runtime Function: unsigned long __fractunsdqdi (long long fract A)
-- Runtime Function: unsigned long long __fractunsdqti (long long fract
A)
-- Runtime Function: unsigned char __fractunshaqi (short accum A)
-- Runtime Function: unsigned short __fractunshahi (short accum A)
-- Runtime Function: unsigned int __fractunshasi (short accum A)
-- Runtime Function: unsigned long __fractunshadi (short accum A)
-- Runtime Function: unsigned long long __fractunshati (short accum A)
-- Runtime Function: unsigned char __fractunssaqi (accum A)
-- Runtime Function: unsigned short __fractunssahi (accum A)
-- Runtime Function: unsigned int __fractunssasi (accum A)
-- Runtime Function: unsigned long __fractunssadi (accum A)
-- Runtime Function: unsigned long long __fractunssati (accum A)
-- Runtime Function: unsigned char __fractunsdaqi (long accum A)
-- Runtime Function: unsigned short __fractunsdahi (long accum A)
-- Runtime Function: unsigned int __fractunsdasi (long accum A)
-- Runtime Function: unsigned long __fractunsdadi (long accum A)
-- Runtime Function: unsigned long long __fractunsdati (long accum A)
-- Runtime Function: unsigned char __fractunstaqi (long long accum A)
-- Runtime Function: unsigned short __fractunstahi (long long accum A)
-- Runtime Function: unsigned int __fractunstasi (long long accum A)
-- Runtime Function: unsigned long __fractunstadi (long long accum A)
-- Runtime Function: unsigned long long __fractunstati (long long accum
A)
-- Runtime Function: unsigned char __fractunsuqqqi (unsigned short
fract A)
-- Runtime Function: unsigned short __fractunsuqqhi (unsigned short
fract A)
-- Runtime Function: unsigned int __fractunsuqqsi (unsigned short fract
A)
-- Runtime Function: unsigned long __fractunsuqqdi (unsigned short
fract A)
-- Runtime Function: unsigned long long __fractunsuqqti (unsigned short
fract A)
-- Runtime Function: unsigned char __fractunsuhqqi (unsigned fract A)
-- Runtime Function: unsigned short __fractunsuhqhi (unsigned fract A)
-- Runtime Function: unsigned int __fractunsuhqsi (unsigned fract A)
-- Runtime Function: unsigned long __fractunsuhqdi (unsigned fract A)
-- Runtime Function: unsigned long long __fractunsuhqti (unsigned fract
A)
-- Runtime Function: unsigned char __fractunsusqqi (unsigned long fract
A)
-- Runtime Function: unsigned short __fractunsusqhi (unsigned long
fract A)
-- Runtime Function: unsigned int __fractunsusqsi (unsigned long fract
A)
-- Runtime Function: unsigned long __fractunsusqdi (unsigned long fract
A)
-- Runtime Function: unsigned long long __fractunsusqti (unsigned long
fract A)
-- Runtime Function: unsigned char __fractunsudqqi (unsigned long long
fract A)
-- Runtime Function: unsigned short __fractunsudqhi (unsigned long long
fract A)
-- Runtime Function: unsigned int __fractunsudqsi (unsigned long long
fract A)
-- Runtime Function: unsigned long __fractunsudqdi (unsigned long long
fract A)
-- Runtime Function: unsigned long long __fractunsudqti (unsigned long
long fract A)
-- Runtime Function: unsigned char __fractunsuhaqi (unsigned short
accum A)
-- Runtime Function: unsigned short __fractunsuhahi (unsigned short
accum A)
-- Runtime Function: unsigned int __fractunsuhasi (unsigned short accum
A)
-- Runtime Function: unsigned long __fractunsuhadi (unsigned short
accum A)
-- Runtime Function: unsigned long long __fractunsuhati (unsigned short
accum A)
-- Runtime Function: unsigned char __fractunsusaqi (unsigned accum A)
-- Runtime Function: unsigned short __fractunsusahi (unsigned accum A)
-- Runtime Function: unsigned int __fractunsusasi (unsigned accum A)
-- Runtime Function: unsigned long __fractunsusadi (unsigned accum A)
-- Runtime Function: unsigned long long __fractunsusati (unsigned accum
A)
-- Runtime Function: unsigned char __fractunsudaqi (unsigned long accum
A)
-- Runtime Function: unsigned short __fractunsudahi (unsigned long
accum A)
-- Runtime Function: unsigned int __fractunsudasi (unsigned long accum
A)
-- Runtime Function: unsigned long __fractunsudadi (unsigned long accum
A)
-- Runtime Function: unsigned long long __fractunsudati (unsigned long
accum A)
-- Runtime Function: unsigned char __fractunsutaqi (unsigned long long
accum A)
-- Runtime Function: unsigned short __fractunsutahi (unsigned long long
accum A)
-- Runtime Function: unsigned int __fractunsutasi (unsigned long long
accum A)
-- Runtime Function: unsigned long __fractunsutadi (unsigned long long
accum A)
-- Runtime Function: unsigned long long __fractunsutati (unsigned long
long accum A)
-- Runtime Function: short fract __fractunsqiqq (unsigned char A)
-- Runtime Function: fract __fractunsqihq (unsigned char A)
-- Runtime Function: long fract __fractunsqisq (unsigned char A)
-- Runtime Function: long long fract __fractunsqidq (unsigned char A)
-- Runtime Function: short accum __fractunsqiha (unsigned char A)
-- Runtime Function: accum __fractunsqisa (unsigned char A)
-- Runtime Function: long accum __fractunsqida (unsigned char A)
-- Runtime Function: long long accum __fractunsqita (unsigned char A)
-- Runtime Function: unsigned short fract __fractunsqiuqq (unsigned
char A)
-- Runtime Function: unsigned fract __fractunsqiuhq (unsigned char A)
-- Runtime Function: unsigned long fract __fractunsqiusq (unsigned char
A)
-- Runtime Function: unsigned long long fract __fractunsqiudq (unsigned
char A)
-- Runtime Function: unsigned short accum __fractunsqiuha (unsigned
char A)
-- Runtime Function: unsigned accum __fractunsqiusa (unsigned char A)
-- Runtime Function: unsigned long accum __fractunsqiuda (unsigned char
A)
-- Runtime Function: unsigned long long accum __fractunsqiuta (unsigned
char A)
-- Runtime Function: short fract __fractunshiqq (unsigned short A)
-- Runtime Function: fract __fractunshihq (unsigned short A)
-- Runtime Function: long fract __fractunshisq (unsigned short A)
-- Runtime Function: long long fract __fractunshidq (unsigned short A)
-- Runtime Function: short accum __fractunshiha (unsigned short A)
-- Runtime Function: accum __fractunshisa (unsigned short A)
-- Runtime Function: long accum __fractunshida (unsigned short A)
-- Runtime Function: long long accum __fractunshita (unsigned short A)
-- Runtime Function: unsigned short fract __fractunshiuqq (unsigned
short A)
-- Runtime Function: unsigned fract __fractunshiuhq (unsigned short A)
-- Runtime Function: unsigned long fract __fractunshiusq (unsigned
short A)
-- Runtime Function: unsigned long long fract __fractunshiudq (unsigned
short A)
-- Runtime Function: unsigned short accum __fractunshiuha (unsigned
short A)
-- Runtime Function: unsigned accum __fractunshiusa (unsigned short A)
-- Runtime Function: unsigned long accum __fractunshiuda (unsigned
short A)
-- Runtime Function: unsigned long long accum __fractunshiuta (unsigned
short A)
-- Runtime Function: short fract __fractunssiqq (unsigned int A)
-- Runtime Function: fract __fractunssihq (unsigned int A)
-- Runtime Function: long fract __fractunssisq (unsigned int A)
-- Runtime Function: long long fract __fractunssidq (unsigned int A)
-- Runtime Function: short accum __fractunssiha (unsigned int A)
-- Runtime Function: accum __fractunssisa (unsigned int A)
-- Runtime Function: long accum __fractunssida (unsigned int A)
-- Runtime Function: long long accum __fractunssita (unsigned int A)
-- Runtime Function: unsigned short fract __fractunssiuqq (unsigned int
A)
-- Runtime Function: unsigned fract __fractunssiuhq (unsigned int A)
-- Runtime Function: unsigned long fract __fractunssiusq (unsigned int
A)
-- Runtime Function: unsigned long long fract __fractunssiudq (unsigned
int A)
-- Runtime Function: unsigned short accum __fractunssiuha (unsigned int
A)
-- Runtime Function: unsigned accum __fractunssiusa (unsigned int A)
-- Runtime Function: unsigned long accum __fractunssiuda (unsigned int
A)
-- Runtime Function: unsigned long long accum __fractunssiuta (unsigned
int A)
-- Runtime Function: short fract __fractunsdiqq (unsigned long A)
-- Runtime Function: fract __fractunsdihq (unsigned long A)
-- Runtime Function: long fract __fractunsdisq (unsigned long A)
-- Runtime Function: long long fract __fractunsdidq (unsigned long A)
-- Runtime Function: short accum __fractunsdiha (unsigned long A)
-- Runtime Function: accum __fractunsdisa (unsigned long A)
-- Runtime Function: long accum __fractunsdida (unsigned long A)
-- Runtime Function: long long accum __fractunsdita (unsigned long A)
-- Runtime Function: unsigned short fract __fractunsdiuqq (unsigned
long A)
-- Runtime Function: unsigned fract __fractunsdiuhq (unsigned long A)
-- Runtime Function: unsigned long fract __fractunsdiusq (unsigned long
A)
-- Runtime Function: unsigned long long fract __fractunsdiudq (unsigned
long A)
-- Runtime Function: unsigned short accum __fractunsdiuha (unsigned
long A)
-- Runtime Function: unsigned accum __fractunsdiusa (unsigned long A)
-- Runtime Function: unsigned long accum __fractunsdiuda (unsigned long
A)
-- Runtime Function: unsigned long long accum __fractunsdiuta (unsigned
long A)
-- Runtime Function: short fract __fractunstiqq (unsigned long long A)
-- Runtime Function: fract __fractunstihq (unsigned long long A)
-- Runtime Function: long fract __fractunstisq (unsigned long long A)
-- Runtime Function: long long fract __fractunstidq (unsigned long long
A)
-- Runtime Function: short accum __fractunstiha (unsigned long long A)
-- Runtime Function: accum __fractunstisa (unsigned long long A)
-- Runtime Function: long accum __fractunstida (unsigned long long A)
-- Runtime Function: long long accum __fractunstita (unsigned long long
A)
-- Runtime Function: unsigned short fract __fractunstiuqq (unsigned
long long A)
-- Runtime Function: unsigned fract __fractunstiuhq (unsigned long long
A)
-- Runtime Function: unsigned long fract __fractunstiusq (unsigned long
long A)
-- Runtime Function: unsigned long long fract __fractunstiudq (unsigned
long long A)
-- Runtime Function: unsigned short accum __fractunstiuha (unsigned
long long A)
-- Runtime Function: unsigned accum __fractunstiusa (unsigned long long
A)
-- Runtime Function: unsigned long accum __fractunstiuda (unsigned long
long A)
-- Runtime Function: unsigned long long accum __fractunstiuta (unsigned
long long A)
These functions convert from fractionals to unsigned
non-fractionals; and from unsigned non-fractionals to fractionals,
without saturation.
-- Runtime Function: short fract __satfractunsqiqq (unsigned char A)
-- Runtime Function: fract __satfractunsqihq (unsigned char A)
-- Runtime Function: long fract __satfractunsqisq (unsigned char A)
-- Runtime Function: long long fract __satfractunsqidq (unsigned char
A)
-- Runtime Function: short accum __satfractunsqiha (unsigned char A)
-- Runtime Function: accum __satfractunsqisa (unsigned char A)
-- Runtime Function: long accum __satfractunsqida (unsigned char A)
-- Runtime Function: long long accum __satfractunsqita (unsigned char
A)
-- Runtime Function: unsigned short fract __satfractunsqiuqq (unsigned
char A)
-- Runtime Function: unsigned fract __satfractunsqiuhq (unsigned char
A)
-- Runtime Function: unsigned long fract __satfractunsqiusq (unsigned
char A)
-- Runtime Function: unsigned long long fract __satfractunsqiudq
(unsigned char A)
-- Runtime Function: unsigned short accum __satfractunsqiuha (unsigned
char A)
-- Runtime Function: unsigned accum __satfractunsqiusa (unsigned char
A)
-- Runtime Function: unsigned long accum __satfractunsqiuda (unsigned
char A)
-- Runtime Function: unsigned long long accum __satfractunsqiuta
(unsigned char A)
-- Runtime Function: short fract __satfractunshiqq (unsigned short A)
-- Runtime Function: fract __satfractunshihq (unsigned short A)
-- Runtime Function: long fract __satfractunshisq (unsigned short A)
-- Runtime Function: long long fract __satfractunshidq (unsigned short
A)
-- Runtime Function: short accum __satfractunshiha (unsigned short A)
-- Runtime Function: accum __satfractunshisa (unsigned short A)
-- Runtime Function: long accum __satfractunshida (unsigned short A)
-- Runtime Function: long long accum __satfractunshita (unsigned short
A)
-- Runtime Function: unsigned short fract __satfractunshiuqq (unsigned
short A)
-- Runtime Function: unsigned fract __satfractunshiuhq (unsigned short
A)
-- Runtime Function: unsigned long fract __satfractunshiusq (unsigned
short A)
-- Runtime Function: unsigned long long fract __satfractunshiudq
(unsigned short A)
-- Runtime Function: unsigned short accum __satfractunshiuha (unsigned
short A)
-- Runtime Function: unsigned accum __satfractunshiusa (unsigned short
A)
-- Runtime Function: unsigned long accum __satfractunshiuda (unsigned
short A)
-- Runtime Function: unsigned long long accum __satfractunshiuta
(unsigned short A)
-- Runtime Function: short fract __satfractunssiqq (unsigned int A)
-- Runtime Function: fract __satfractunssihq (unsigned int A)
-- Runtime Function: long fract __satfractunssisq (unsigned int A)
-- Runtime Function: long long fract __satfractunssidq (unsigned int A)
-- Runtime Function: short accum __satfractunssiha (unsigned int A)
-- Runtime Function: accum __satfractunssisa (unsigned int A)
-- Runtime Function: long accum __satfractunssida (unsigned int A)
-- Runtime Function: long long accum __satfractunssita (unsigned int A)
-- Runtime Function: unsigned short fract __satfractunssiuqq (unsigned
int A)
-- Runtime Function: unsigned fract __satfractunssiuhq (unsigned int A)
-- Runtime Function: unsigned long fract __satfractunssiusq (unsigned
int A)
-- Runtime Function: unsigned long long fract __satfractunssiudq
(unsigned int A)
-- Runtime Function: unsigned short accum __satfractunssiuha (unsigned
int A)
-- Runtime Function: unsigned accum __satfractunssiusa (unsigned int A)
-- Runtime Function: unsigned long accum __satfractunssiuda (unsigned
int A)
-- Runtime Function: unsigned long long accum __satfractunssiuta
(unsigned int A)
-- Runtime Function: short fract __satfractunsdiqq (unsigned long A)
-- Runtime Function: fract __satfractunsdihq (unsigned long A)
-- Runtime Function: long fract __satfractunsdisq (unsigned long A)
-- Runtime Function: long long fract __satfractunsdidq (unsigned long
A)
-- Runtime Function: short accum __satfractunsdiha (unsigned long A)
-- Runtime Function: accum __satfractunsdisa (unsigned long A)
-- Runtime Function: long accum __satfractunsdida (unsigned long A)
-- Runtime Function: long long accum __satfractunsdita (unsigned long
A)
-- Runtime Function: unsigned short fract __satfractunsdiuqq (unsigned
long A)
-- Runtime Function: unsigned fract __satfractunsdiuhq (unsigned long
A)
-- Runtime Function: unsigned long fract __satfractunsdiusq (unsigned
long A)
-- Runtime Function: unsigned long long fract __satfractunsdiudq
(unsigned long A)
-- Runtime Function: unsigned short accum __satfractunsdiuha (unsigned
long A)
-- Runtime Function: unsigned accum __satfractunsdiusa (unsigned long
A)
-- Runtime Function: unsigned long accum __satfractunsdiuda (unsigned
long A)
-- Runtime Function: unsigned long long accum __satfractunsdiuta
(unsigned long A)
-- Runtime Function: short fract __satfractunstiqq (unsigned long long
A)
-- Runtime Function: fract __satfractunstihq (unsigned long long A)
-- Runtime Function: long fract __satfractunstisq (unsigned long long
A)
-- Runtime Function: long long fract __satfractunstidq (unsigned long
long A)
-- Runtime Function: short accum __satfractunstiha (unsigned long long
A)
-- Runtime Function: accum __satfractunstisa (unsigned long long A)
-- Runtime Function: long accum __satfractunstida (unsigned long long
A)
-- Runtime Function: long long accum __satfractunstita (unsigned long
long A)
-- Runtime Function: unsigned short fract __satfractunstiuqq (unsigned
long long A)
-- Runtime Function: unsigned fract __satfractunstiuhq (unsigned long
long A)
-- Runtime Function: unsigned long fract __satfractunstiusq (unsigned
long long A)
-- Runtime Function: unsigned long long fract __satfractunstiudq
(unsigned long long A)
-- Runtime Function: unsigned short accum __satfractunstiuha (unsigned
long long A)
-- Runtime Function: unsigned accum __satfractunstiusa (unsigned long
long A)
-- Runtime Function: unsigned long accum __satfractunstiuda (unsigned
long long A)
-- Runtime Function: unsigned long long accum __satfractunstiuta
(unsigned long long A)
These functions convert from unsigned non-fractionals to
fractionals, with saturation.

File: gccint.info, Node: Exception handling routines, Next: Miscellaneous routines, Prev: Fixed-point fractional library routines, Up: Libgcc
4.5 Language-independent routines for exception handling
========================================================
document me!
_Unwind_DeleteException
_Unwind_Find_FDE
_Unwind_ForcedUnwind
_Unwind_GetGR
_Unwind_GetIP
_Unwind_GetLanguageSpecificData
_Unwind_GetRegionStart
_Unwind_GetTextRelBase
_Unwind_GetDataRelBase
_Unwind_RaiseException
_Unwind_Resume
_Unwind_SetGR
_Unwind_SetIP
_Unwind_FindEnclosingFunction
_Unwind_SjLj_Register
_Unwind_SjLj_Unregister
_Unwind_SjLj_RaiseException
_Unwind_SjLj_ForcedUnwind
_Unwind_SjLj_Resume
__deregister_frame
__deregister_frame_info
__deregister_frame_info_bases
__register_frame
__register_frame_info
__register_frame_info_bases
__register_frame_info_table
__register_frame_info_table_bases
__register_frame_table

File: gccint.info, Node: Miscellaneous routines, Prev: Exception handling routines, Up: Libgcc
4.6 Miscellaneous runtime library routines
==========================================
4.6.1 Cache control functions
-----------------------------
-- Runtime Function: void __clear_cache (char *BEG, char *END)
This function clears the instruction cache between BEG and END.

File: gccint.info, Node: Languages, Next: Source Tree, Prev: Libgcc, Up: Top
5 Language Front Ends in GCC
****************************
The interface to front ends for languages in GCC, and in particular the
'tree' structure (*note Trees::), was initially designed for C, and many
aspects of it are still somewhat biased towards C and C-like languages.
It is, however, reasonably well suited to other procedural languages,
and front ends for many such languages have been written for GCC.
Writing a compiler as a front end for GCC, rather than compiling
directly to assembler or generating C code which is then compiled by
GCC, has several advantages:
* GCC front ends benefit from the support for many different target
machines already present in GCC.
* GCC front ends benefit from all the optimizations in GCC. Some of
these, such as alias analysis, may work better when GCC is
compiling directly from source code then when it is compiling from
generated C code.
* Better debugging information is generated when compiling directly
from source code than when going via intermediate generated C code.
Because of the advantages of writing a compiler as a GCC front end, GCC
front ends have also been created for languages very different from
those for which GCC was designed, such as the declarative
logic/functional language Mercury. For these reasons, it may also be
useful to implement compilers created for specialized purposes (for
example, as part of a research project) as GCC front ends.

File: gccint.info, Node: Source Tree, Next: Options, Prev: Languages, Up: Top
6 Source Tree Structure and Build System
****************************************
This chapter describes the structure of the GCC source tree, and how GCC
is built. The user documentation for building and installing GCC is in
a separate manual (<http://gcc.gnu.org/install/>), with which it is
presumed that you are familiar.
* Menu:
* Configure Terms:: Configuration terminology and history.
* Top Level:: The top level source directory.
* gcc Directory:: The 'gcc' subdirectory.
* Testsuites:: The GCC testsuites.

File: gccint.info, Node: Configure Terms, Next: Top Level, Up: Source Tree
6.1 Configure Terms and History
===============================
The configure and build process has a long and colorful history, and can
be confusing to anyone who doesn't know why things are the way they are.
While there are other documents which describe the configuration process
in detail, here are a few things that everyone working on GCC should
know.
There are three system names that the build knows about: the machine
you are building on ("build"), the machine that you are building for
("host"), and the machine that GCC will produce code for ("target").
When you configure GCC, you specify these with '--build=', '--host=',
and '--target='.
Specifying the host without specifying the build should be avoided, as
'configure' may (and once did) assume that the host you specify is also
the build, which may not be true.
If build, host, and target are all the same, this is called a "native".
If build and host are the same but target is different, this is called a
"cross". If build, host, and target are all different this is called a
"canadian" (for obscure reasons dealing with Canada's political party
and the background of the person working on the build at that time). If
host and target are the same, but build is different, you are using a
cross-compiler to build a native for a different system. Some people
call this a "host-x-host", "crossed native", or "cross-built native".
If build and target are the same, but host is different, you are using a
cross compiler to build a cross compiler that produces code for the
machine you're building on. This is rare, so there is no common way of
describing it. There is a proposal to call this a "crossback".
If build and host are the same, the GCC you are building will also be
used to build the target libraries (like 'libstdc++'). If build and
host are different, you must have already built and installed a cross
compiler that will be used to build the target libraries (if you
configured with '--target=foo-bar', this compiler will be called
'foo-bar-gcc').
In the case of target libraries, the machine you're building for is the
machine you specified with '--target'. So, build is the machine you're
building on (no change there), host is the machine you're building for
(the target libraries are built for the target, so host is the target
you specified), and target doesn't apply (because you're not building a
compiler, you're building libraries). The configure/make process will
adjust these variables as needed. It also sets '$with_cross_host' to
the original '--host' value in case you need it.
The 'libiberty' support library is built up to three times: once for
the host, once for the target (even if they are the same), and once for
the build if build and host are different. This allows it to be used by
all programs which are generated in the course of the build process.

File: gccint.info, Node: Top Level, Next: gcc Directory, Prev: Configure Terms, Up: Source Tree
6.2 Top Level Source Directory
==============================
The top level source directory in a GCC distribution contains several
files and directories that are shared with other software distributions
such as that of GNU Binutils. It also contains several subdirectories
that contain parts of GCC and its runtime libraries:
'boehm-gc'
The Boehm conservative garbage collector, used as part of the Java
runtime library.
'contrib'
Contributed scripts that may be found useful in conjunction with
GCC. One of these, 'contrib/texi2pod.pl', is used to generate man
pages from Texinfo manuals as part of the GCC build process.
'fastjar'
An implementation of the 'jar' command, used with the Java front
end.
'gcc'
The main sources of GCC itself (except for runtime libraries),
including optimizers, support for different target architectures,
language front ends, and testsuites. *Note The 'gcc' Subdirectory:
gcc Directory, for details.
'include'
Headers for the 'libiberty' library.
'libada'
The Ada runtime library.
'libcpp'
The C preprocessor library.
'libgfortran'
The Fortran runtime library.
'libffi'
The 'libffi' library, used as part of the Java runtime library.
'libiberty'
The 'libiberty' library, used for portability and for some
generally useful data structures and algorithms. *Note
Introduction: (libiberty)Top, for more information about this
library.
'libjava'
The Java runtime library.
'libmudflap'
The 'libmudflap' library, used for instrumenting pointer and array
dereferencing operations.
'libobjc'
The Objective-C and Objective-C++ runtime library.
'libstdc++-v3'
The C++ runtime library.
'maintainer-scripts'
Scripts used by the 'gccadmin' account on 'gcc.gnu.org'.
'zlib'
The 'zlib' compression library, used by the Java front end and as
part of the Java runtime library.
The build system in the top level directory, including how recursion
into subdirectories works and how building runtime libraries for
multilibs is handled, is documented in a separate manual, included with
GNU Binutils. *Note GNU configure and build system: (configure)Top, for
details.

File: gccint.info, Node: gcc Directory, Next: Testsuites, Prev: Top Level, Up: Source Tree
6.3 The 'gcc' Subdirectory
==========================
The 'gcc' directory contains many files that are part of the C sources
of GCC, other files used as part of the configuration and build process,
and subdirectories including documentation and a testsuite. The files
that are sources of GCC are documented in a separate chapter. *Note
Passes and Files of the Compiler: Passes.
* Menu:
* Subdirectories:: Subdirectories of 'gcc'.
* Configuration:: The configuration process, and the files it uses.
* Build:: The build system in the 'gcc' directory.
* Makefile:: Targets in 'gcc/Makefile'.
* Library Files:: Library source files and headers under 'gcc/'.
* Headers:: Headers installed by GCC.
* Documentation:: Building documentation in GCC.
* Front End:: Anatomy of a language front end.
* Back End:: Anatomy of a target back end.

File: gccint.info, Node: Subdirectories, Next: Configuration, Up: gcc Directory
6.3.1 Subdirectories of 'gcc'
-----------------------------
The 'gcc' directory contains the following subdirectories:
'LANGUAGE'
Subdirectories for various languages. Directories containing a
file 'config-lang.in' are language subdirectories. The contents of
the subdirectories 'cp' (for C++), 'objc' (for Objective-C) and
'objcp' (for Objective-C++) are documented in this manual (*note
Passes and Files of the Compiler: Passes.); those for other
languages are not. *Note Anatomy of a Language Front End: Front
End, for details of the files in these directories.
'config'
Configuration files for supported architectures and operating
systems. *Note Anatomy of a Target Back End: Back End, for details
of the files in this directory.
'doc'
Texinfo documentation for GCC, together with automatically
generated man pages and support for converting the installation
manual to HTML. *Note Documentation::.
'fixinc'
The support for fixing system headers to work with GCC. See
'fixinc/README' for more information. The headers fixed by this
mechanism are installed in 'LIBSUBDIR/include'. Along with those
headers, 'README-fixinc' is also installed, as
'LIBSUBDIR/include/README'.
'ginclude'
System headers installed by GCC, mainly those required by the C
standard of freestanding implementations. *Note Headers Installed
by GCC: Headers, for details of when these and other headers are
installed.
'intl'
GNU 'libintl', from GNU 'gettext', for systems which do not include
it in libc. Properly, this directory should be at top level,
parallel to the 'gcc' directory.
'po'
Message catalogs with translations of messages produced by GCC into
various languages, 'LANGUAGE.po'. This directory also contains
'gcc.pot', the template for these message catalogues, 'exgettext',
a wrapper around 'gettext' to extract the messages from the GCC
sources and create 'gcc.pot', which is run by 'make gcc.pot', and
'EXCLUDES', a list of files from which messages should not be
extracted.
'testsuite'
The GCC testsuites (except for those for runtime libraries). *Note
Testsuites::.

File: gccint.info, Node: Configuration, Next: Build, Prev: Subdirectories, Up: gcc Directory
6.3.2 Configuration in the 'gcc' Directory
------------------------------------------
The 'gcc' directory is configured with an Autoconf-generated script
'configure'. The 'configure' script is generated from 'configure.ac'
and 'aclocal.m4'. From the files 'configure.ac' and 'acconfig.h',
Autoheader generates the file 'config.in'. The file 'cstamp-h.in' is
used as a timestamp.
* Menu:
* Config Fragments:: Scripts used by 'configure'.
* System Config:: The 'config.build', 'config.host', and
'config.gcc' files.
* Configuration Files:: Files created by running 'configure'.

File: gccint.info, Node: Config Fragments, Next: System Config, Up: Configuration
6.3.2.1 Scripts Used by 'configure'
...................................
'configure' uses some other scripts to help in its work:
* The standard GNU 'config.sub' and 'config.guess' files, kept in the
top level directory, are used. FIXME: when is the 'config.guess'
file in the 'gcc' directory (that just calls the top level one)
used?
* The file 'config.gcc' is used to handle configuration specific to
the particular target machine. The file 'config.build' is used to
handle configuration specific to the particular build machine. The
file 'config.host' is used to handle configuration specific to the
particular host machine. (In general, these should only be used
for features that cannot reasonably be tested in Autoconf feature
tests.) *Note The 'config.build'; 'config.host'; and 'config.gcc'
Files: System Config, for details of the contents of these files.
* Each language subdirectory has a file 'LANGUAGE/config-lang.in'
that is used for front-end-specific configuration. *Note The Front
End 'config-lang.in' File: Front End Config, for details of this
file.
* A helper script 'configure.frag' is used as part of creating the
output of 'configure'.

File: gccint.info, Node: System Config, Next: Configuration Files, Prev: Config Fragments, Up: Configuration
6.3.2.2 The 'config.build'; 'config.host'; and 'config.gcc' Files
.................................................................
The 'config.build' file contains specific rules for particular systems
which GCC is built on. This should be used as rarely as possible, as
the behavior of the build system can always be detected by autoconf.
The 'config.host' file contains specific rules for particular systems
which GCC will run on. This is rarely needed.
The 'config.gcc' file contains specific rules for particular systems
which GCC will generate code for. This is usually needed.
Each file has a list of the shell variables it sets, with descriptions,
at the top of the file.
FIXME: document the contents of these files, and what variables should
be set to control build, host and target configuration.

File: gccint.info, Node: Configuration Files, Prev: System Config, Up: Configuration
6.3.2.3 Files Created by 'configure'
....................................
Here we spell out what files will be set up by 'configure' in the 'gcc'
directory. Some other files are created as temporary files in the
configuration process, and are not used in the subsequent build; these
are not documented.
* 'Makefile' is constructed from 'Makefile.in', together with the
host and target fragments (*note Makefile Fragments: Fragments.)
't-TARGET' and 'x-HOST' from 'config', if any, and language
Makefile fragments 'LANGUAGE/Make-lang.in'.
* 'auto-host.h' contains information about the host machine
determined by 'configure'. If the host machine is different from
the build machine, then 'auto-build.h' is also created, containing
such information about the build machine.
* 'config.status' is a script that may be run to recreate the current
configuration.
* 'configargs.h' is a header containing details of the arguments
passed to 'configure' to configure GCC, and of the thread model
used.
* 'cstamp-h' is used as a timestamp.
* 'fixinc/Makefile' is constructed from 'fixinc/Makefile.in'.
* 'gccbug', a script for reporting bugs in GCC, is constructed from
'gccbug.in'.
* 'intl/Makefile' is constructed from 'intl/Makefile.in'.
* If a language 'config-lang.in' file (*note The Front End
'config-lang.in' File: Front End Config.) sets 'outputs', then the
files listed in 'outputs' there are also generated.
The following configuration headers are created from the Makefile,
using 'mkconfig.sh', rather than directly by 'configure'. 'config.h',
'bconfig.h' and 'tconfig.h' all contain the 'xm-MACHINE.h' header, if
any, appropriate to the host, build and target machines respectively,
the configuration headers for the target, and some definitions; for the
host and build machines, these include the autoconfigured headers
generated by 'configure'. The other configuration headers are
determined by 'config.gcc'. They also contain the typedefs for 'rtx',
'rtvec' and 'tree'.
* 'config.h', for use in programs that run on the host machine.
* 'bconfig.h', for use in programs that run on the build machine.
* 'tconfig.h', for use in programs and libraries for the target
machine.
* 'tm_p.h', which includes the header 'MACHINE-protos.h' that
contains prototypes for functions in the target '.c' file. FIXME:
why is such a separate header necessary?

File: gccint.info, Node: Build, Next: Makefile, Prev: Configuration, Up: gcc Directory
6.3.3 Build System in the 'gcc' Directory
-----------------------------------------
FIXME: describe the build system, including what is built in what
stages. Also list the various source files that are used in the build
process but aren't source files of GCC itself and so aren't documented
below (*note Passes::).

File: gccint.info, Node: Makefile, Next: Library Files, Prev: Build, Up: gcc Directory
6.3.4 Makefile Targets
----------------------
These targets are available from the 'gcc' directory:
'all'
This is the default target. Depending on what your
build/host/target configuration is, it coordinates all the things
that need to be built.
'doc'
Produce info-formatted documentation and man pages. Essentially it
calls 'make man' and 'make info'.
'dvi'
Produce DVI-formatted documentation.
'pdf'
Produce PDF-formatted documentation.
'html'
Produce HTML-formatted documentation.
'man'
Generate man pages.
'info'
Generate info-formatted pages.
'mostlyclean'
Delete the files made while building the compiler.
'clean'
That, and all the other files built by 'make all'.
'distclean'
That, and all the files created by 'configure'.
'maintainer-clean'
Distclean plus any file that can be generated from other files.
Note that additional tools may be required beyond what is normally
needed to build gcc.
'srcextra'
Generates files in the source directory that do not exist in CVS
but should go into a release tarball. One example is
'gcc/java/parse.c' which is generated from the CVS source file
'gcc/java/parse.y'.
'srcinfo'
'srcman'
Copies the info-formatted and manpage documentation into the source
directory usually for the purpose of generating a release tarball.
'install'
Installs gcc.
'uninstall'
Deletes installed files.
'check'
Run the testsuite. This creates a 'testsuite' subdirectory that
has various '.sum' and '.log' files containing the results of the
testing. You can run subsets with, for example, 'make check-gcc'.
You can specify specific tests by setting RUNTESTFLAGS to be the
name of the '.exp' file, optionally followed by (for some tests) an
equals and a file wildcard, like:
make check-gcc RUNTESTFLAGS="execute.exp=19980413-*"
Note that running the testsuite may require additional tools be
installed, such as TCL or dejagnu.
The toplevel tree from which you start GCC compilation is not the GCC
directory, but rather a complex Makefile that coordinates the various
steps of the build, including bootstrapping the compiler and using the
new compiler to build target libraries.
When GCC is configured for a native configuration, the default action
for 'make' is to do a full three-stage bootstrap. This means that GCC
is built three times--once with the native compiler, once with the
native-built compiler it just built, and once with the compiler it built
the second time. In theory, the last two should produce the same
results, which 'make compare' can check. Each stage is configured
separately and compiled into a separate directory, to minimize problems
due to ABI incompatibilities between the native compiler and GCC.
If you do a change, rebuilding will also start from the first stage and
"bubble" up the change through the three stages. Each stage is taken
from its build directory (if it had been built previously), rebuilt, and
copied to its subdirectory. This will allow you to, for example,
continue a bootstrap after fixing a bug which causes the stage2 build to
crash. It does not provide as good coverage of the compiler as
bootstrapping from scratch, but it ensures that the new code is
syntactically correct (e.g., that you did not use GCC extensions by
mistake), and avoids spurious bootstrap comparison failures(1).
Other targets available from the top level include:
'bootstrap-lean'
Like 'bootstrap', except that the various stages are removed once
they're no longer needed. This saves disk space.
'bootstrap2'
'bootstrap2-lean'
Performs only the first two stages of bootstrap. Unlike a
three-stage bootstrap, this does not perform a comparison to test
that the compiler is running properly. Note that the disk space
required by a "lean" bootstrap is approximately independent of the
number of stages.
'stageN-bubble (N = 1...4)'
Rebuild all the stages up to N, with the appropriate flags,
"bubbling" the changes as described above.
'all-stageN (N = 1...4)'
Assuming that stage N has already been built, rebuild it with the
appropriate flags. This is rarely needed.
'cleanstrap'
Remove everything ('make clean') and rebuilds ('make bootstrap').
'compare'
Compares the results of stages 2 and 3. This ensures that the
compiler is running properly, since it should produce the same
object files regardless of how it itself was compiled.
'profiledbootstrap'
Builds a compiler with profiling feedback information. For more
information, see *note Building with profile feedback:
(gccinstall)Building.
'restrap'
Restart a bootstrap, so that everything that was not built with the
system compiler is rebuilt.
'stageN-start (N = 1...4)'
For each package that is bootstrapped, rename directories so that,
for example, 'gcc' points to the stageN GCC, compiled with the
stageN-1 GCC(2).
You will invoke this target if you need to test or debug the stageN
GCC. If you only need to execute GCC (but you need not run 'make'
either to rebuild it or to run test suites), you should be able to
work directly in the 'stageN-gcc' directory. This makes it easier
to debug multiple stages in parallel.
'stage'
For each package that is bootstrapped, relocate its build directory
to indicate its stage. For example, if the 'gcc' directory points
to the stage2 GCC, after invoking this target it will be renamed to
'stage2-gcc'.
If you wish to use non-default GCC flags when compiling the stage2 and
stage3 compilers, set 'BOOT_CFLAGS' on the command line when doing
'make'.
Usually, the first stage only builds the languages that the compiler is
written in: typically, C and maybe Ada. If you are debugging a
miscompilation of a different stage2 front-end (for example, of the
Fortran front-end), you may want to have front-ends for other languages
in the first stage as well. To do so, set 'STAGE1_LANGUAGES' on the
command line when doing 'make'.
For example, in the aforementioned scenario of debugging a Fortran
front-end miscompilation caused by the stage1 compiler, you may need a
command like
make stage2-bubble STAGE1_LANGUAGES=c,fortran
Alternatively, you can use per-language targets to build and test
languages that are not enabled by default in stage1. For example, 'make
f951' will build a Fortran compiler even in the stage1 build directory.
---------- Footnotes ----------
(1) Except if the compiler was buggy and miscompiled some of the
files that were not modified. In this case, it's best to use 'make
restrap'.
(2) Customarily, the system compiler is also termed the 'stage0' GCC.

File: gccint.info, Node: Library Files, Next: Headers, Prev: Makefile, Up: gcc Directory
6.3.5 Library Source Files and Headers under the 'gcc' Directory
----------------------------------------------------------------
FIXME: list here, with explanation, all the C source files and headers
under the 'gcc' directory that aren't built into the GCC executable but
rather are part of runtime libraries and object files, such as
'crtstuff.c' and 'unwind-dw2.c'. *Note Headers Installed by GCC:
Headers, for more information about the 'ginclude' directory.

File: gccint.info, Node: Headers, Next: Documentation, Prev: Library Files, Up: gcc Directory
6.3.6 Headers Installed by GCC
------------------------------
In general, GCC expects the system C library to provide most of the
headers to be used with it. However, GCC will fix those headers if
necessary to make them work with GCC, and will install some headers
required of freestanding implementations. These headers are installed
in 'LIBSUBDIR/include'. Headers for non-C runtime libraries are also
installed by GCC; these are not documented here. (FIXME: document them
somewhere.)
Several of the headers GCC installs are in the 'ginclude' directory.
These headers, 'iso646.h', 'stdarg.h', 'stdbool.h', and 'stddef.h', are
installed in 'LIBSUBDIR/include', unless the target Makefile fragment
(*note Target Fragment::) overrides this by setting 'USER_H'.
In addition to these headers and those generated by fixing system
headers to work with GCC, some other headers may also be installed in
'LIBSUBDIR/include'. 'config.gcc' may set 'extra_headers'; this
specifies additional headers under 'config' to be installed on some
systems.
GCC installs its own version of '<float.h>', from 'ginclude/float.h'.
This is done to cope with command-line options that change the
representation of floating point numbers.
GCC also installs its own version of '<limits.h>'; this is generated
from 'glimits.h', together with 'limitx.h' and 'limity.h' if the system
also has its own version of '<limits.h>'. (GCC provides its own header
because it is required of ISO C freestanding implementations, but needs
to include the system header from its own header as well because other
standards such as POSIX specify additional values to be defined in
'<limits.h>'.) The system's '<limits.h>' header is used via
'LIBSUBDIR/include/syslimits.h', which is copied from 'gsyslimits.h' if
it does not need fixing to work with GCC; if it needs fixing,
'syslimits.h' is the fixed copy.
GCC can also install '<tgmath.h>'. It will do this when 'config.gcc'
sets 'use_gcc_tgmath' to 'yes'.

File: gccint.info, Node: Documentation, Next: Front End, Prev: Headers, Up: gcc Directory
6.3.7 Building Documentation
----------------------------
The main GCC documentation is in the form of manuals in Texinfo format.
These are installed in Info format; DVI versions may be generated by
'make dvi', PDF versions by 'make pdf', and HTML versions by 'make
html'. In addition, some man pages are generated from the Texinfo
manuals, there are some other text files with miscellaneous
documentation, and runtime libraries have their own documentation
outside the 'gcc' directory. FIXME: document the documentation for
runtime libraries somewhere.
* Menu:
* Texinfo Manuals:: GCC manuals in Texinfo format.
* Man Page Generation:: Generating man pages from Texinfo manuals.
* Miscellaneous Docs:: Miscellaneous text files with documentation.

File: gccint.info, Node: Texinfo Manuals, Next: Man Page Generation, Up: Documentation
6.3.7.1 Texinfo Manuals
.......................
The manuals for GCC as a whole, and the C and C++ front ends, are in
files 'doc/*.texi'. Other front ends have their own manuals in files
'LANGUAGE/*.texi'. Common files 'doc/include/*.texi' are provided which
may be included in multiple manuals; the following files are in
'doc/include':
'fdl.texi'
The GNU Free Documentation License.
'funding.texi'
The section "Funding Free Software".
'gcc-common.texi'
Common definitions for manuals.
'gpl.texi'
'gpl_v3.texi'
The GNU General Public License.
'texinfo.tex'
A copy of 'texinfo.tex' known to work with the GCC manuals.
DVI-formatted manuals are generated by 'make dvi', which uses
'texi2dvi' (via the Makefile macro '$(TEXI2DVI)'). PDF-formatted
manuals are generated by 'make pdf', which uses 'texi2pdf' (via the
Makefile macro '$(TEXI2PDF)'). HTML formatted manuals are generated by
'make html'. Info manuals are generated by 'make info' (which is run as
part of a bootstrap); this generates the manuals in the source
directory, using 'makeinfo' via the Makefile macro '$(MAKEINFO)', and
they are included in release distributions.
Manuals are also provided on the GCC web site, in both HTML and
PostScript forms. This is done via the script
'maintainer-scripts/update_web_docs'. Each manual to be provided online
must be listed in the definition of 'MANUALS' in that file; a file
'NAME.texi' must only appear once in the source tree, and the output
manual must have the same name as the source file. (However, other
Texinfo files, included in manuals but not themselves the root files of
manuals, may have names that appear more than once in the source tree.)
The manual file 'NAME.texi' should only include other files in its own
directory or in 'doc/include'. HTML manuals will be generated by
'makeinfo --html', PostScript manuals by 'texi2dvi' and 'dvips', and PDF
manuals by 'texi2pdf'. All Texinfo files that are parts of manuals must
be checked into SVN, even if they are generated files, for the
generation of online manuals to work.
The installation manual, 'doc/install.texi', is also provided on the
GCC web site. The HTML version is generated by the script
'doc/install.texi2html'.

File: gccint.info, Node: Man Page Generation, Next: Miscellaneous Docs, Prev: Texinfo Manuals, Up: Documentation
6.3.7.2 Man Page Generation
...........................
Because of user demand, in addition to full Texinfo manuals, man pages
are provided which contain extracts from those manuals. These man pages
are generated from the Texinfo manuals using 'contrib/texi2pod.pl' and
'pod2man'. (The man page for 'g++', 'cp/g++.1', just contains a '.so'
reference to 'gcc.1', but all the other man pages are generated from
Texinfo manuals.)
Because many systems may not have the necessary tools installed to
generate the man pages, they are only generated if the 'configure'
script detects that recent enough tools are installed, and the Makefiles
allow generating man pages to fail without aborting the build. Man
pages are also included in release distributions. They are generated in
the source directory.
Magic comments in Texinfo files starting '@c man' control what parts of
a Texinfo file go into a man page. Only a subset of Texinfo is
supported by 'texi2pod.pl', and it may be necessary to add support for
more Texinfo features to this script when generating new man pages. To
improve the man page output, some special Texinfo macros are provided in
'doc/include/gcc-common.texi' which 'texi2pod.pl' understands:
'@gcctabopt'
Use in the form '@table @gcctabopt' for tables of options, where
for printed output the effect of '@code' is better than that of
'@option' but for man page output a different effect is wanted.
'@gccoptlist'
Use for summary lists of options in manuals.
'@gol'
Use at the end of each line inside '@gccoptlist'. This is
necessary to avoid problems with differences in how the
'@gccoptlist' macro is handled by different Texinfo formatters.
FIXME: describe the 'texi2pod.pl' input language and magic comments in
more detail.

File: gccint.info, Node: Miscellaneous Docs, Prev: Man Page Generation, Up: Documentation
6.3.7.3 Miscellaneous Documentation
...................................
In addition to the formal documentation that is installed by GCC, there
are several other text files with miscellaneous documentation:
'ABOUT-GCC-NLS'
Notes on GCC's Native Language Support. FIXME: this should be part
of this manual rather than a separate file.
'ABOUT-NLS'
Notes on the Free Translation Project.
'COPYING'
The GNU General Public License.
'COPYING.LIB'
The GNU Lesser General Public License.
'*ChangeLog*'
'*/ChangeLog*'
Change log files for various parts of GCC.
'LANGUAGES'
Details of a few changes to the GCC front-end interface. FIXME:
the information in this file should be part of general
documentation of the front-end interface in this manual.
'ONEWS'
Information about new features in old versions of GCC. (For recent
versions, the information is on the GCC web site.)
'README.Portability'
Information about portability issues when writing code in GCC.
FIXME: why isn't this part of this manual or of the GCC Coding
Conventions?
FIXME: document such files in subdirectories, at least 'config', 'cp',
'objc', 'testsuite'.

File: gccint.info, Node: Front End, Next: Back End, Prev: Documentation, Up: gcc Directory
6.3.8 Anatomy of a Language Front End
-------------------------------------
A front end for a language in GCC has the following parts:
* A directory 'LANGUAGE' under 'gcc' containing source files for that
front end. *Note The Front End 'LANGUAGE' Directory: Front End
Directory, for details.
* A mention of the language in the list of supported languages in
'gcc/doc/install.texi'.
* A mention of the name under which the language's runtime library is
recognized by '--enable-shared=PACKAGE' in the documentation of
that option in 'gcc/doc/install.texi'.
* A mention of any special prerequisites for building the front end
in the documentation of prerequisites in 'gcc/doc/install.texi'.
* Details of contributors to that front end in
'gcc/doc/contrib.texi'. If the details are in that front end's own
manual then there should be a link to that manual's list in
'contrib.texi'.
* Information about support for that language in
'gcc/doc/frontends.texi'.
* Information about standards for that language, and the front end's
support for them, in 'gcc/doc/standards.texi'. This may be a link
to such information in the front end's own manual.
* Details of source file suffixes for that language and '-x LANG'
options supported, in 'gcc/doc/invoke.texi'.
* Entries in 'default_compilers' in 'gcc.c' for source file suffixes
for that language.
* Preferably testsuites, which may be under 'gcc/testsuite' or
runtime library directories. FIXME: document somewhere how to
write testsuite harnesses.
* Probably a runtime library for the language, outside the 'gcc'
directory. FIXME: document this further.
* Details of the directories of any runtime libraries in
'gcc/doc/sourcebuild.texi'.
If the front end is added to the official GCC source repository, the
following are also necessary:
* At least one Bugzilla component for bugs in that front end and
runtime libraries. This category needs to be mentioned in
'gcc/gccbug.in', as well as being added to the Bugzilla database.
* Normally, one or more maintainers of that front end listed in
'MAINTAINERS'.
* Mentions on the GCC web site in 'index.html' and 'frontends.html',
with any relevant links on 'readings.html'. (Front ends that are
not an official part of GCC may also be listed on 'frontends.html',
with relevant links.)
* A news item on 'index.html', and possibly an announcement on the
<gcc-announce@gcc.gnu.org> mailing list.
* The front end's manuals should be mentioned in
'maintainer-scripts/update_web_docs' (*note Texinfo Manuals::) and
the online manuals should be linked to from
'onlinedocs/index.html'.
* Any old releases or CVS repositories of the front end, before its
inclusion in GCC, should be made available on the GCC FTP site
<ftp://gcc.gnu.org/pub/gcc/old-releases/>.
* The release and snapshot script 'maintainer-scripts/gcc_release'
should be updated to generate appropriate tarballs for this front
end. The associated 'maintainer-scripts/snapshot-README' and
'maintainer-scripts/snapshot-index.html' files should be updated to
list the tarballs and diffs for this front end.
* If this front end includes its own version files that include the
current date, 'maintainer-scripts/update_version' should be updated
accordingly.
* Menu:
* Front End Directory:: The front end 'LANGUAGE' directory.
* Front End Config:: The front end 'config-lang.in' file.

File: gccint.info, Node: Front End Directory, Next: Front End Config, Up: Front End
6.3.8.1 The Front End 'LANGUAGE' Directory
..........................................
A front end 'LANGUAGE' directory contains the source files of that front
end (but not of any runtime libraries, which should be outside the 'gcc'
directory). This includes documentation, and possibly some subsidiary
programs build alongside the front end. Certain files are special and
other parts of the compiler depend on their names:
'config-lang.in'
This file is required in all language subdirectories. *Note The
Front End 'config-lang.in' File: Front End Config, for details of
its contents
'Make-lang.in'
This file is required in all language subdirectories. It contains
targets 'LANG.HOOK' (where 'LANG' is the setting of 'language' in
'config-lang.in') for the following values of 'HOOK', and any other
Makefile rules required to build those targets (which may if
necessary use other Makefiles specified in 'outputs' in
'config-lang.in', although this is deprecated). It also adds any
testsuite targets that can use the standard rule in
'gcc/Makefile.in' to the variable 'lang_checks'.
'all.cross'
'start.encap'
'rest.encap'
FIXME: exactly what goes in each of these targets?
'tags'
Build an 'etags' 'TAGS' file in the language subdirectory in
the source tree.
'info'
Build info documentation for the front end, in the build
directory. This target is only called by 'make bootstrap' if
a suitable version of 'makeinfo' is available, so does not
need to check for this, and should fail if an error occurs.
'dvi'
Build DVI documentation for the front end, in the build
directory. This should be done using '$(TEXI2DVI)', with
appropriate '-I' arguments pointing to directories of included
files.
'pdf'
Build PDF documentation for the front end, in the build
directory. This should be done using '$(TEXI2PDF)', with
appropriate '-I' arguments pointing to directories of included
files.
'html'
Build HTML documentation for the front end, in the build
directory.
'man'
Build generated man pages for the front end from Texinfo
manuals (*note Man Page Generation::), in the build directory.
This target is only called if the necessary tools are
available, but should ignore errors so as not to stop the
build if errors occur; man pages are optional and the tools
involved may be installed in a broken way.
'install-common'
Install everything that is part of the front end, apart from
the compiler executables listed in 'compilers' in
'config-lang.in'.
'install-info'
Install info documentation for the front end, if it is present
in the source directory. This target should have dependencies
on info files that should be installed.
'install-man'
Install man pages for the front end. This target should
ignore errors.
'srcextra'
Copies its dependencies into the source directory. This
generally should be used for generated files such as Bison
output files which are not present in CVS, but should be
included in any release tarballs. This target will be
executed during a bootstrap if
'--enable-generated-files-in-srcdir' was specified as a
'configure' option.
'srcinfo'
'srcman'
Copies its dependencies into the source directory. These
targets will be executed during a bootstrap if
'--enable-generated-files-in-srcdir' was specified as a
'configure' option.
'uninstall'
Uninstall files installed by installing the compiler. This is
currently documented not to be supported, so the hook need not
do anything.
'mostlyclean'
'clean'
'distclean'
'maintainer-clean'
The language parts of the standard GNU '*clean' targets.
*Note Standard Targets for Users: (standards)Standard Targets,
for details of the standard targets. For GCC,
'maintainer-clean' should delete all generated files in the
source directory that are not checked into CVS, but should not
delete anything checked into CVS.
'lang.opt'
This file registers the set of switches that the front end accepts
on the command line, and their '--help' text. *Note Options::.
'lang-specs.h'
This file provides entries for 'default_compilers' in 'gcc.c' which
override the default of giving an error that a compiler for that
language is not installed.
'LANGUAGE-tree.def'
This file, which need not exist, defines any language-specific tree
codes.

File: gccint.info, Node: Front End Config, Prev: Front End Directory, Up: Front End
6.3.8.2 The Front End 'config-lang.in' File
...........................................
Each language subdirectory contains a 'config-lang.in' file. In
addition the main directory contains 'c-config-lang.in', which contains
limited information for the C language. This file is a shell script
that may define some variables describing the language:
'language'
This definition must be present, and gives the name of the language
for some purposes such as arguments to '--enable-languages'.
'lang_requires'
If defined, this variable lists (space-separated) language front
ends other than C that this front end requires to be enabled (with
the names given being their 'language' settings). For example, the
Java front end depends on the C++ front end, so sets
'lang_requires=c++'.
'subdir_requires'
If defined, this variable lists (space-separated) front end
directories other than C that this front end requires to be
present. For example, the Objective-C++ front end uses source
files from the C++ and Objective-C front ends, so sets
'subdir_requires="cp objc"'.
'target_libs'
If defined, this variable lists (space-separated) targets in the
top level 'Makefile' to build the runtime libraries for this
language, such as 'target-libobjc'.
'lang_dirs'
If defined, this variable lists (space-separated) top level
directories (parallel to 'gcc'), apart from the runtime libraries,
that should not be configured if this front end is not built.
'build_by_default'
If defined to 'no', this language front end is not built unless
enabled in a '--enable-languages' argument. Otherwise, front ends
are built by default, subject to any special logic in
'configure.ac' (as is present to disable the Ada front end if the
Ada compiler is not already installed).
'boot_language'
If defined to 'yes', this front end is built in stage 1 of the
bootstrap. This is only relevant to front ends written in their
own languages.
'compilers'
If defined, a space-separated list of compiler executables that
will be run by the driver. The names here will each end with
'\$(exeext)'.
'outputs'
If defined, a space-separated list of files that should be
generated by 'configure' substituting values in them. This
mechanism can be used to create a file 'LANGUAGE/Makefile' from
'LANGUAGE/Makefile.in', but this is deprecated, building everything
from the single 'gcc/Makefile' is preferred.
'gtfiles'
If defined, a space-separated list of files that should be scanned
by gengtype.c to generate the garbage collection tables and
routines for this language. This excludes the files that are
common to all front ends. *Note Type Information::.

File: gccint.info, Node: Back End, Prev: Front End, Up: gcc Directory
6.3.9 Anatomy of a Target Back End
----------------------------------
A back end for a target architecture in GCC has the following parts:
* A directory 'MACHINE' under 'gcc/config', containing a machine
description 'MACHINE.md' file (*note Machine Descriptions: Machine
Desc.), header files 'MACHINE.h' and 'MACHINE-protos.h' and a
source file 'MACHINE.c' (*note Target Description Macros and
Functions: Target Macros.), possibly a target Makefile fragment
't-MACHINE' (*note The Target Makefile Fragment: Target Fragment.),
and maybe some other files. The names of these files may be
changed from the defaults given by explicit specifications in
'config.gcc'.
* If necessary, a file 'MACHINE-modes.def' in the 'MACHINE'
directory, containing additional machine modes to represent
condition codes. *Note Condition Code::, for further details.
* An optional 'MACHINE.opt' file in the 'MACHINE' directory,
containing a list of target-specific options. You can also add
other option files using the 'extra_options' variable in
'config.gcc'. *Note Options::.
* Entries in 'config.gcc' (*note The 'config.gcc' File: System
Config.) for the systems with this target architecture.
* Documentation in 'gcc/doc/invoke.texi' for any command-line options
supported by this target (*note Run-time Target Specification:
Run-time Target.). This means both entries in the summary table of
options and details of the individual options.
* Documentation in 'gcc/doc/extend.texi' for any target-specific
attributes supported (*note Defining target-specific uses of
'__attribute__': Target Attributes.), including where the same
attribute is already supported on some targets, which are
enumerated in the manual.
* Documentation in 'gcc/doc/extend.texi' for any target-specific
pragmas supported.
* Documentation in 'gcc/doc/extend.texi' of any target-specific
built-in functions supported.
* Documentation in 'gcc/doc/extend.texi' of any target-specific
format checking styles supported.
* Documentation in 'gcc/doc/md.texi' of any target-specific
constraint letters (*note Constraints for Particular Machines:
Machine Constraints.).
* A note in 'gcc/doc/contrib.texi' under the person or people who
contributed the target support.
* Entries in 'gcc/doc/install.texi' for all target triplets supported
with this target architecture, giving details of any special notes
about installation for this target, or saying that there are no
special notes if there are none.
* Possibly other support outside the 'gcc' directory for runtime
libraries. FIXME: reference docs for this. The libstdc++ porting
manual needs to be installed as info for this to work, or to be a
chapter of this manual.
If the back end is added to the official GCC source repository, the
following are also necessary:
* An entry for the target architecture in 'readings.html' on the GCC
web site, with any relevant links.