Paul Richards ea8c7ac7d0 GDB-4.12 from ports with support for shlibs but not the kernel.
This is a greatly pared down version of the full gdb-4.12, all the
config stuff has been removed and the supporting libraries have
been stripped to a minimum. This is a 1.1.5 only port, I'll do a
more complete port for 2.0 which will have all the config stuff
and will install the gnu support libraries as system libraries like
we do for readline.

There wasn't much point for 1.1.5 since only gdb would use them so I
went for saving space instead. For 2.0 I'll config all the
other gnu tools to use them as well.
1994-06-10 13:42:18 +00:00

66 lines
2.3 KiB
C

/* IEEE floating point support declarations, for GDB, the GNU Debugger.
Copyright (C) 1991 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (IEEE_FLOAT_H)
#define IEEE_FLOAT_H 1
#include "ansidecl.h"
/* Parameters for extended float format: */
struct ext_format {
unsigned totalsize; /* Total size of extended number */
unsigned signbyte; /* Byte number of sign bit */
unsigned char signmask; /* Mask for sign bit */
unsigned expbyte_h; /* High byte of exponent */
unsigned expbyte_l; /* Low byte of exponent */
unsigned manbyte_h; /* High byte of mantissa */
unsigned manbyte_l; /* Low byte of mantissa */
};
#define TOTALSIZE ext_format->totalsize
#define SIGNBYTE ext_format->signbyte
#define SIGNMASK ext_format->signmask
#define EXPBYTE_H ext_format->expbyte_h
#define EXPBYTE_L ext_format->expbyte_l
#define MANBYTE_H ext_format->manbyte_h
#define MANBYTE_L ext_format->manbyte_l
/* Actual ext_format structs for various machines are in the *-tdep.c file
for each machine. */
#define EXT_EXP_NAN 0x7FFF /* Exponent value that indicates NaN */
#define EXT_EXP_BIAS 0x3FFF /* Amount added to "true" exponent for ext */
#define DBL_EXP_BIAS 0x3FF /* Ditto, for doubles */
/* Convert an IEEE extended float to a double.
FROM is the address of the extended float.
Store the double in *TO. */
extern void
ieee_extended_to_double PARAMS ((const struct ext_format *, char *, double *));
/* The converse: convert the double *FROM to an extended float
and store where TO points. */
extern void
double_to_ieee_extended PARAMS ((const struct ext_format *, double *, char *));
#endif /* defined (IEEE_FLOAT_H) */