1997-08-22 06:57:35 +08:00
|
|
|
#include <ansidecl.h>
|
|
|
|
|
|
|
|
#ifdef __IEEE_BIG_ENDIAN
|
|
|
|
|
|
|
|
typedef union
|
|
|
|
{
|
|
|
|
double value;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned int sign : 1;
|
|
|
|
unsigned int exponent: 11;
|
|
|
|
unsigned int fraction0:4;
|
|
|
|
unsigned int fraction1:16;
|
|
|
|
unsigned int fraction2:16;
|
|
|
|
unsigned int fraction3:16;
|
|
|
|
|
|
|
|
} number;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned int sign : 1;
|
|
|
|
unsigned int exponent: 11;
|
|
|
|
unsigned int quiet:1;
|
|
|
|
unsigned int function0:3;
|
|
|
|
unsigned int function1:16;
|
|
|
|
unsigned int function2:16;
|
|
|
|
unsigned int function3:16;
|
|
|
|
} nan;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned long msw;
|
|
|
|
unsigned long lsw;
|
|
|
|
} parts;
|
|
|
|
long aslong[2];
|
|
|
|
} __ieee_double_shape_type;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __IEEE_LITTLE_ENDIAN
|
|
|
|
|
|
|
|
typedef union
|
|
|
|
{
|
|
|
|
double value;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
#ifdef __SMALL_BITFIELDS
|
|
|
|
unsigned int fraction3:16;
|
|
|
|
unsigned int fraction2:16;
|
|
|
|
unsigned int fraction1:16;
|
|
|
|
unsigned int fraction0: 4;
|
|
|
|
#else
|
|
|
|
unsigned int fraction1:32;
|
|
|
|
unsigned int fraction0:20;
|
|
|
|
#endif
|
|
|
|
unsigned int exponent :11;
|
|
|
|
unsigned int sign : 1;
|
|
|
|
} number;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
#ifdef __SMALL_BITFIELDS
|
|
|
|
unsigned int function3:16;
|
|
|
|
unsigned int function2:16;
|
|
|
|
unsigned int function1:16;
|
|
|
|
unsigned int function0:3;
|
|
|
|
#else
|
|
|
|
unsigned int function1:32;
|
|
|
|
unsigned int function0:19;
|
|
|
|
#endif
|
|
|
|
unsigned int quiet:1;
|
|
|
|
unsigned int exponent: 11;
|
|
|
|
unsigned int sign : 1;
|
|
|
|
} nan;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned long lsw;
|
|
|
|
unsigned long msw;
|
|
|
|
} parts;
|
|
|
|
|
|
|
|
long aslong[2];
|
|
|
|
|
|
|
|
} __ieee_double_shape_type;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __IEEE_BIG_ENDIAN
|
|
|
|
typedef union
|
|
|
|
{
|
|
|
|
float value;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned int sign : 1;
|
|
|
|
unsigned int exponent: 8;
|
|
|
|
unsigned int fraction0: 7;
|
|
|
|
unsigned int fraction1: 16;
|
|
|
|
} number;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned int sign:1;
|
|
|
|
unsigned int exponent:8;
|
|
|
|
unsigned int quiet:1;
|
|
|
|
unsigned int function0:6;
|
|
|
|
unsigned int function1:16;
|
|
|
|
} nan;
|
|
|
|
long p1;
|
|
|
|
|
|
|
|
} __ieee_float_shape_type;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __IEEE_LITTLE_ENDIAN
|
|
|
|
typedef union
|
|
|
|
{
|
|
|
|
float value;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned int fraction0: 7;
|
|
|
|
unsigned int fraction1: 16;
|
|
|
|
unsigned int exponent: 8;
|
|
|
|
unsigned int sign : 1;
|
|
|
|
} number;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
unsigned int function1:16;
|
|
|
|
unsigned int function0:6;
|
|
|
|
unsigned int quiet:1;
|
|
|
|
unsigned int exponent:8;
|
|
|
|
unsigned int sign:1;
|
|
|
|
} nan;
|
|
|
|
long p1;
|
|
|
|
|
|
|
|
} __ieee_float_shape_type;
|
|
|
|
#endif
|
|
|
|
|
2002-01-23 04:03:29 +08:00
|
|
|
#if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN)
|
1997-08-22 06:57:35 +08:00
|
|
|
|
2003-04-15 11:35:47 +08:00
|
|
|
double
|
demangle.h: Remove uses of PARAMS.
include/
2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
* demangle.h: Remove uses of PARAMS.
* libiberty.h (ANSI_PROTOTYPES): Remove guard since
ANSI_PROTOTYPES is always assumed.
Remove uses of PARAMS throughout.
libiberty/
2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert libiberty to use ISO C prototype style 2/n.
* cp-demangle.h: Remove uses of PARAMS.
* cp-demangle.c: Likewise.
(d_dump, cplus_demangle_fill_name,
cplus_demangle_fill_extended_operator,
cplus_demangle_fill_ctor,
cplus_demangle_fill_dtor, d_make_empty, d_make_comp,
d_make_name,
d_make_builtin_type, d_make_operator,
d_make_extended_operator,
d_make_ctor, d_make_dtor, d_make_template_param, d_make_sub,
cplus_demangle_mangled_name, has_return_type,
is_ctor_dtor_or_conversion, d_encoding, d_name, d_nested_name,
d_prefix, d_unqualified_name, d_source_name, d_number,
d_identifier, d_operator_name, d_special_name, d_call_offset,
d_ctor_dtor_name, cplus_demangle_type, d_cv_qualifiers,
d_function_type, d_bare_function_type, d_class_enum_type,
d_array_type, d_pointer_to_member_type, d_template_param,
d_template_args, d_template_arg, d_expression, d_expr_primary,
d_local_name, d_discriminator, d_add_substitution,
d_substitution, d_print_resize, d_print_append_char,
d_print_append_buffer, d_print_error, cplus_demangle_print,
d_print_comp, d_print_java_identifier, d_print_mod_list,
d_print_mod, d_print_function_type, d_print_array_type,
d_print_expr_op, d_print_cast, cplus_demangle_init_info,
d_demangle, __cxa_demangle, cplus_demangle_v3,
java_demangle_v3,
is_ctor_or_dtor, is_gnu_v3_mangled_ctor,
is_gnu_v3_mangled_dtor,
print_usage, main):
2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert libiberty to ISO C prototype style 1/n.
* _doprnt.c: Remove conditional #include <varargs.h> on
ANSI_PROTOTYPES as the latter is always assumed.
(_doprnt, checkit, main): Use ISO C prototype.
* alloca.c (find_stack_direction, C_alloca): Use ISO C
prototype.
* argv.c: Remove conditional #includes on ANSI_PROTOTYPES.
(dupargv, freeargv, buildargv, main): Use ISO C prototype.
* atexit.c (atexit): Likewise
* asprintf.c: Remove conditional include on ANSI_PROTOTYPES.
(asprintf): Use ISO C prototype.
* basename.c (basename): Likewise
* bcmp.c (bcmp): Likewise.
* bcopy.c (bcopy): Likewise.
* bzero.c (bzero): Likewise.
* bsearch.c (bsearch): Likewise. Improve const-correctness.
* choose-temp.c (choose_temp_base): Likewise.
* calloc.c: Remove conditional #include on ANSI_PROTOTYPES.
(calloc): Use ISO C prototype.
* clock.c (clock): Likewise.
* concat.c: Remove conditional #include on ANSI_PROTOTYPES.
(vconcat_length, vconcat_copy, concat_length, concat_copy,
concat_copy2, concat, reconcat, main): Use ISO C prototype.
* copysign.c (copysign): Likewise.
From-SVN: r97085
2005-03-27 03:24:33 +08:00
|
|
|
copysign (double x, double y)
|
1997-08-22 06:57:35 +08:00
|
|
|
{
|
|
|
|
__ieee_double_shape_type a,b;
|
|
|
|
b.value = y;
|
|
|
|
a.value = x;
|
|
|
|
a.number.sign =b.number.sign;
|
|
|
|
return a.value;
|
|
|
|
}
|
2002-01-23 04:03:29 +08:00
|
|
|
|
|
|
|
#else
|
|
|
|
|
2003-04-15 11:35:47 +08:00
|
|
|
double
|
demangle.h: Remove uses of PARAMS.
include/
2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
* demangle.h: Remove uses of PARAMS.
* libiberty.h (ANSI_PROTOTYPES): Remove guard since
ANSI_PROTOTYPES is always assumed.
Remove uses of PARAMS throughout.
libiberty/
2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert libiberty to use ISO C prototype style 2/n.
* cp-demangle.h: Remove uses of PARAMS.
* cp-demangle.c: Likewise.
(d_dump, cplus_demangle_fill_name,
cplus_demangle_fill_extended_operator,
cplus_demangle_fill_ctor,
cplus_demangle_fill_dtor, d_make_empty, d_make_comp,
d_make_name,
d_make_builtin_type, d_make_operator,
d_make_extended_operator,
d_make_ctor, d_make_dtor, d_make_template_param, d_make_sub,
cplus_demangle_mangled_name, has_return_type,
is_ctor_dtor_or_conversion, d_encoding, d_name, d_nested_name,
d_prefix, d_unqualified_name, d_source_name, d_number,
d_identifier, d_operator_name, d_special_name, d_call_offset,
d_ctor_dtor_name, cplus_demangle_type, d_cv_qualifiers,
d_function_type, d_bare_function_type, d_class_enum_type,
d_array_type, d_pointer_to_member_type, d_template_param,
d_template_args, d_template_arg, d_expression, d_expr_primary,
d_local_name, d_discriminator, d_add_substitution,
d_substitution, d_print_resize, d_print_append_char,
d_print_append_buffer, d_print_error, cplus_demangle_print,
d_print_comp, d_print_java_identifier, d_print_mod_list,
d_print_mod, d_print_function_type, d_print_array_type,
d_print_expr_op, d_print_cast, cplus_demangle_init_info,
d_demangle, __cxa_demangle, cplus_demangle_v3,
java_demangle_v3,
is_ctor_or_dtor, is_gnu_v3_mangled_ctor,
is_gnu_v3_mangled_dtor,
print_usage, main):
2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert libiberty to ISO C prototype style 1/n.
* _doprnt.c: Remove conditional #include <varargs.h> on
ANSI_PROTOTYPES as the latter is always assumed.
(_doprnt, checkit, main): Use ISO C prototype.
* alloca.c (find_stack_direction, C_alloca): Use ISO C
prototype.
* argv.c: Remove conditional #includes on ANSI_PROTOTYPES.
(dupargv, freeargv, buildargv, main): Use ISO C prototype.
* atexit.c (atexit): Likewise
* asprintf.c: Remove conditional include on ANSI_PROTOTYPES.
(asprintf): Use ISO C prototype.
* basename.c (basename): Likewise
* bcmp.c (bcmp): Likewise.
* bcopy.c (bcopy): Likewise.
* bzero.c (bzero): Likewise.
* bsearch.c (bsearch): Likewise. Improve const-correctness.
* choose-temp.c (choose_temp_base): Likewise.
* calloc.c: Remove conditional #include on ANSI_PROTOTYPES.
(calloc): Use ISO C prototype.
* clock.c (clock): Likewise.
* concat.c: Remove conditional #include on ANSI_PROTOTYPES.
(vconcat_length, vconcat_copy, concat_length, concat_copy,
concat_copy2, concat, reconcat, main): Use ISO C prototype.
* copysign.c (copysign): Likewise.
From-SVN: r97085
2005-03-27 03:24:33 +08:00
|
|
|
copysign (double x, double y)
|
2002-01-23 04:03:29 +08:00
|
|
|
{
|
|
|
|
if ((x < 0 && y > 0) || (x > 0 && y < 0))
|
|
|
|
return -x;
|
|
|
|
return x;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|