support COFF on ELF systems
[deliverable/binutils-gdb.git] / include / ieee-float.h
CommitLineData
d7e1be46
PB
1/* IEEE floating point support declarations, for GDB, the GNU Debugger.
2 Copyright (C) 1991 Free Software Foundation, Inc.
3
4This file is part of GDB.
5
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program; if not, write to the Free Software
18Foundation, 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
27struct 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
56extern void
57ieee_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
62extern void
63double_to_ieee_extended PARAMS ((const struct ext_format *, double *, char *));
64
65#endif /* defined (IEEE_FLOAT_H) */
This page took 0.043193 seconds and 4 git commands to generate.