merge from gcc

This commit is contained in:
DJ Delorie
2005-03-28 02:09:01 +00:00
parent 6770045840
commit 49b1fae430
63 changed files with 517 additions and 777 deletions

View File

@@ -46,18 +46,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define NAN (0.0 / 0.0)
#endif
static unsigned long get_field PARAMS ((const unsigned char *,
enum floatformat_byteorders,
unsigned int,
unsigned int,
unsigned int));
static int floatformat_always_valid PARAMS ((const struct floatformat *fmt,
const char *from));
static unsigned long get_field (const unsigned char *,
enum floatformat_byteorders,
unsigned int,
unsigned int,
unsigned int);
static int floatformat_always_valid (const struct floatformat *fmt,
const char *from);
static int
floatformat_always_valid (fmt, from)
const struct floatformat *fmt ATTRIBUTE_UNUSED;
const char *from ATTRIBUTE_UNUSED;
floatformat_always_valid (const struct floatformat *fmt ATTRIBUTE_UNUSED,
const char *from ATTRIBUTE_UNUSED)
{
return 1;
}
@@ -108,12 +107,10 @@ const struct floatformat floatformat_ieee_double_littlebyte_bigword =
floatformat_always_valid
};
static int floatformat_i387_ext_is_valid PARAMS ((const struct floatformat *fmt, const char *from));
static int floatformat_i387_ext_is_valid (const struct floatformat *fmt, const char *from);
static int
floatformat_i387_ext_is_valid (fmt, from)
const struct floatformat *fmt;
const char *from;
floatformat_i387_ext_is_valid (const struct floatformat *fmt, const char *from)
{
/* In the i387 double-extended format, if the exponent is all ones,
then the integer bit must be set. If the exponent is neither 0
@@ -220,12 +217,8 @@ const struct floatformat floatformat_ia64_quad_little =
/* Extract a field which starts at START and is LEN bits long. DATA and
TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER. */
static unsigned long
get_field (data, order, total_len, start, len)
const unsigned char *data;
enum floatformat_byteorders order;
unsigned int total_len;
unsigned int start;
unsigned int len;
get_field (const unsigned char *data, enum floatformat_byteorders order,
unsigned int total_len, unsigned int start, unsigned int len)
{
unsigned long result;
unsigned int cur_byte;
@@ -273,10 +266,8 @@ get_field (data, order, total_len, start, len)
Store the double in *TO. */
void
floatformat_to_double (fmt, from, to)
const struct floatformat *fmt;
const char *from;
double *to;
floatformat_to_double (const struct floatformat *fmt,
const char *from, double *to)
{
const unsigned char *ufrom = (const unsigned char *)from;
double dto;
@@ -381,22 +372,18 @@ floatformat_to_double (fmt, from, to)
*to = dto;
}
static void put_field PARAMS ((unsigned char *, enum floatformat_byteorders,
unsigned int,
unsigned int,
unsigned int,
unsigned long));
static void put_field (unsigned char *, enum floatformat_byteorders,
unsigned int,
unsigned int,
unsigned int,
unsigned long);
/* Set a field which starts at START and is LEN bits long. DATA and
TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER. */
static void
put_field (data, order, total_len, start, len, stuff_to_put)
unsigned char *data;
enum floatformat_byteorders order;
unsigned int total_len;
unsigned int start;
unsigned int len;
unsigned long stuff_to_put;
put_field (unsigned char *data, enum floatformat_byteorders order,
unsigned int total_len, unsigned int start, unsigned int len,
unsigned long stuff_to_put)
{
unsigned int cur_byte;
int cur_bitshift;
@@ -443,10 +430,8 @@ put_field (data, order, total_len, start, len, stuff_to_put)
restrictions. */
void
floatformat_from_double (fmt, from, to)
const struct floatformat *fmt;
const double *from;
char *to;
floatformat_from_double (const struct floatformat *fmt,
const double *from, char *to)
{
double dfrom;
int exponent;
@@ -541,9 +526,7 @@ floatformat_from_double (fmt, from, to)
/* Return non-zero iff the data at FROM is a valid number in format FMT. */
int
floatformat_is_valid (fmt, from)
const struct floatformat *fmt;
const char *from;
floatformat_is_valid (const struct floatformat *fmt, const char *from)
{
return fmt->is_valid (fmt, from);
}
@@ -556,8 +539,7 @@ floatformat_is_valid (fmt, from)
/* This is to be run on a host which uses IEEE floating point. */
void
ieee_test (n)
double n;
ieee_test (double n)
{
double result;
@@ -597,7 +579,7 @@ ieee_test (n)
}
int
main ()
main (void)
{
ieee_test (0.0);
ieee_test (0.5);