Annotation of gcc/real.h, revision 1.1.1.1

1.1       root        1: /* Front-end tree definitions for GNU compiler.
                      2:    Copyright (C) 1989 Free Software Foundation, Inc.
                      3: 
                      4: This file is part of GNU CC.
                      5: 
                      6: GNU CC is distributed in the hope that it will be useful,
                      7: but WITHOUT ANY WARRANTY.  No author or distributor
                      8: accepts responsibility to anyone for the consequences of using it
                      9: or for whether it serves any particular purpose or works at all,
                     10: unless he says so in writing.  Refer to the GNU CC General Public
                     11: License for full details.
                     12: 
                     13: Everyone is granted permission to copy, modify and redistribute
                     14: GNU CC, but only under the conditions described in the
                     15: GNU CC General Public License.   A copy of this license is
                     16: supposed to have been given to you along with GNU CC so you
                     17: can know your rights and responsibilities.  It should be in a
                     18: file named COPYING.  Among other things, the copyright notice
                     19: and this notice must be preserved on all copies.  */
                     20: 
                     21: /* If we are not cross-compiling, use a `double' to represent the
                     22:    floating-point value.  Otherwise, use some other type
                     23:    (probably a struct containing an array of longs).  */
                     24: #ifndef REAL_VALUE_TYPE
                     25: #define REAL_VALUE_TYPE double
                     26: #else
                     27: #define REAL_IS_NOT_DOUBLE
                     28: #endif
                     29: 
                     30: /* Compare two floating-point values for equality.  */
                     31: #ifndef REAL_VALUES_EQUAL
                     32: #define REAL_VALUES_EQUAL(x,y) ((x) == (y))
                     33: #endif
                     34: 
                     35: /* Compare two floating-point values for less than.  */
                     36: #ifndef REAL_VALUES_LESS
                     37: #define REAL_VALUES_LESS(x,y) ((x) < (y))
                     38: #endif
                     39: 
                     40: /* Scale X by Y powers of 2.  */
                     41: #ifndef REAL_VALUE_LDEXP
                     42: #define REAL_VALUE_LDEXP(x,y) ldexp (x, y)
                     43: extern double ldexp ();
                     44: #endif
                     45: 
                     46: /* Convert the string X to a floating-point value.  */
                     47: #ifndef REAL_VALUE_ATOF
                     48: #define REAL_VALUE_ATOF(x) atof (x)
                     49: extern double atof ();
                     50: #endif
                     51: 
                     52: /* Negate the floating-point value X.  */
                     53: #ifndef REAL_VALUE_NEGATE
                     54: #define REAL_VALUE_NEGATE(x) (- (x))
                     55: #endif
                     56: 
                     57: /* Truncate the floating-point value X to single-precision.  */
                     58: #ifndef REAL_VALUE_TRUNCATE
                     59: #define REAL_VALUE_TRUNCATE(x) ((float) (x))
                     60: #endif
                     61: 
                     62: /* Union type used for extracting real values from CONST_DOUBLEs
                     63:    or putting them in.  */
                     64: 
                     65: union real_extract 
                     66: {
                     67:   REAL_VALUE_TYPE d;
                     68:   int i[sizeof (REAL_VALUE_TYPE) / sizeof (int)];
                     69: };
                     70: 
                     71: /* For a CONST_DOUBLE:
                     72:    The usual two ints that hold the value.
                     73:    For a DImode, that is all there are.
                     74:    For a float, the number of ints varies,
                     75:    so use &CONST_DOUBLE_LOW(r) as the address of an array of them.  */
                     76: #define CONST_DOUBLE_LOW(r) XINT (r, 2)
                     77: #define CONST_DOUBLE_HIGH(r) XINT (r, 3)
                     78: 
                     79: /* Link for chain of all CONST_DOUBLEs in use in current function.  */
                     80: #define CONST_DOUBLE_CHAIN(r) XEXP (r, 1)
                     81: /* The MEM which represents this CONST_DOUBLE's value in memory,
                     82:    or const0_rtx if no MEM has been made for it yet,
                     83:    or cc0_rtx if it is not on the chain.  */
                     84: #define CONST_DOUBLE_MEM(r) XEXP (r, 0)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.