Annotation of GNUtools/libg++/include/ieee-float.h, revision 1.1

1.1     ! root        1: /* IEEE floating point support declarations, for GDB, the GNU Debugger.
        !             2:    Copyright (C) 1991 Free Software Foundation, Inc.
        !             3: 
        !             4: This file is part of GDB.
        !             5: 
        !             6: This program 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 2 of the License, or
        !             9: (at your option) any later version.
        !            10: 
        !            11: This program is distributed in the hope that it will be useful,
        !            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 this program; if not, write to the Free Software
        !            18: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !            19: 
        !            20: #if !defined (IEEE_FLOAT_H)
        !            21: #define IEEE_FLOAT_H 1
        !            22: 
        !            23: #include "ansidecl.h"
        !            24: 
        !            25: /* Parameters for extended float format:  */
        !            26: 
        !            27: struct ext_format {
        !            28:   unsigned totalsize;          /* Total size of extended number */
        !            29:   unsigned signbyte;           /* Byte number of sign bit */
        !            30:   unsigned char signmask;      /* Mask for sign bit */
        !            31:   unsigned expbyte_h;          /* High byte of exponent */
        !            32:   unsigned expbyte_l;          /* Low  byte of exponent */
        !            33:   unsigned manbyte_h;          /* High byte of mantissa */
        !            34:   unsigned manbyte_l;          /* Low  byte of mantissa */
        !            35: };
        !            36: 
        !            37: #define        TOTALSIZE       ext_format->totalsize
        !            38: #define        SIGNBYTE        ext_format->signbyte
        !            39: #define        SIGNMASK        ext_format->signmask
        !            40: #define EXPBYTE_H      ext_format->expbyte_h
        !            41: #define EXPBYTE_L      ext_format->expbyte_l
        !            42: #define        MANBYTE_H       ext_format->manbyte_h
        !            43: #define        MANBYTE_L       ext_format->manbyte_l
        !            44: 
        !            45: /* Actual ext_format structs for various machines are in the *-tdep.c file
        !            46:    for each machine.  */
        !            47: 
        !            48: #define        EXT_EXP_NAN     0x7FFF  /* Exponent value that indicates NaN */
        !            49: #define        EXT_EXP_BIAS    0x3FFF  /* Amount added to "true" exponent for ext */
        !            50: #define        DBL_EXP_BIAS     0x3FF  /* Ditto, for doubles */
        !            51: 
        !            52: /* Convert an IEEE extended float to a double.
        !            53:    FROM is the address of the extended float.
        !            54:    Store the double in *TO.  */
        !            55: 
        !            56: extern void
        !            57: ieee_extended_to_double PARAMS ((const struct ext_format *, char *, double *));
        !            58: 
        !            59: /* The converse: convert the double *FROM to an extended float
        !            60:    and store where TO points.  */
        !            61: 
        !            62: extern void
        !            63: double_to_ieee_extended PARAMS ((const struct ext_format *, double *, char *));
        !            64: 
        !            65: #endif /* defined (IEEE_FLOAT_H) */

unix.superglobalmegacorp.com

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