Annotation of gcc/real.h, revision 1.1.1.2

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: 
1.1.1.2 ! root        6: GNU CC is free software; you can redistribute it and/or modify
        !             7: it under the terms of the GNU General Public License as published by
        !             8: the Free Software Foundation; either version 1, or (at your option)
        !             9: any later version.
        !            10: 
1.1       root       11: GNU CC is distributed in the hope that it will be useful,
1.1.1.2 ! root       12: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            14: GNU General Public License for more details.
        !            15: 
        !            16: You should have received a copy of the GNU General Public License
        !            17: along with GNU CC; see the file COPYING.  If not, write to
        !            18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
1.1       root       19: 
                     20: /* If we are not cross-compiling, use a `double' to represent the
                     21:    floating-point value.  Otherwise, use some other type
                     22:    (probably a struct containing an array of longs).  */
                     23: #ifndef REAL_VALUE_TYPE
                     24: #define REAL_VALUE_TYPE double
                     25: #else
                     26: #define REAL_IS_NOT_DOUBLE
                     27: #endif
                     28: 
                     29: /* Compare two floating-point values for equality.  */
                     30: #ifndef REAL_VALUES_EQUAL
                     31: #define REAL_VALUES_EQUAL(x,y) ((x) == (y))
                     32: #endif
                     33: 
                     34: /* Compare two floating-point values for less than.  */
                     35: #ifndef REAL_VALUES_LESS
                     36: #define REAL_VALUES_LESS(x,y) ((x) < (y))
                     37: #endif
                     38: 
                     39: /* Scale X by Y powers of 2.  */
                     40: #ifndef REAL_VALUE_LDEXP
                     41: #define REAL_VALUE_LDEXP(x,y) ldexp (x, y)
                     42: extern double ldexp ();
                     43: #endif
                     44: 
                     45: /* Convert the string X to a floating-point value.  */
                     46: #ifndef REAL_VALUE_ATOF
                     47: #define REAL_VALUE_ATOF(x) atof (x)
                     48: extern double atof ();
                     49: #endif
                     50: 
                     51: /* Negate the floating-point value X.  */
                     52: #ifndef REAL_VALUE_NEGATE
                     53: #define REAL_VALUE_NEGATE(x) (- (x))
                     54: #endif
                     55: 
                     56: /* Truncate the floating-point value X to single-precision.  */
                     57: #ifndef REAL_VALUE_TRUNCATE
                     58: #define REAL_VALUE_TRUNCATE(x) ((float) (x))
                     59: #endif
                     60: 
                     61: /* Union type used for extracting real values from CONST_DOUBLEs
                     62:    or putting them in.  */
                     63: 
                     64: union real_extract 
                     65: {
                     66:   REAL_VALUE_TYPE d;
                     67:   int i[sizeof (REAL_VALUE_TYPE) / sizeof (int)];
                     68: };
                     69: 
                     70: /* For a CONST_DOUBLE:
                     71:    The usual two ints that hold the value.
                     72:    For a DImode, that is all there are.
                     73:    For a float, the number of ints varies,
                     74:    so use &CONST_DOUBLE_LOW(r) as the address of an array of them.  */
                     75: #define CONST_DOUBLE_LOW(r) XINT (r, 2)
                     76: #define CONST_DOUBLE_HIGH(r) XINT (r, 3)
                     77: 
                     78: /* Link for chain of all CONST_DOUBLEs in use in current function.  */
                     79: #define CONST_DOUBLE_CHAIN(r) XEXP (r, 1)
                     80: /* The MEM which represents this CONST_DOUBLE's value in memory,
                     81:    or const0_rtx if no MEM has been made for it yet,
                     82:    or cc0_rtx if it is not on the chain.  */
                     83: #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.