diff options
Diffstat (limited to 'gcc/config/fp-bit.c')
-rw-r--r-- | gcc/config/fp-bit.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/gcc/config/fp-bit.c b/gcc/config/fp-bit.c index d7bc3de38f4..fc496c0f059 100644 --- a/gcc/config/fp-bit.c +++ b/gcc/config/fp-bit.c @@ -1,7 +1,7 @@ /* This is a software floating point library which can be used instead of the floating point routines in libgcc1.c for targets without hardware floating point. - Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1994-1998, 2000 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -78,6 +78,8 @@ Boston, MA 02111-1307, USA. */ #define L_lt_df #define L_le_sf #define L_le_df +#define L_unord_sf +#define L_unord_df #define L_si_to_sf #define L_si_to_df #define L_sf_to_si @@ -268,6 +270,7 @@ typedef unsigned int UDItype __attribute__ ((mode (DI))); # define _ge_f2 __gesf2 # define _lt_f2 __ltsf2 # define _le_f2 __lesf2 +# define _unord_f2 __unordsf2 # define si_to_float __floatsisf # define float_to_si __fixsfsi # define float_to_usi __fixunssfsi @@ -285,6 +288,7 @@ typedef unsigned int UDItype __attribute__ ((mode (DI))); # define _ge_f2 __gedf2 # define _lt_f2 __ltdf2 # define _le_f2 __ledf2 +# define _unord_f2 __unorddf2 # define si_to_float __floatsidf # define float_to_si __fixdfsi # define float_to_usi __fixunsdfsi @@ -1370,6 +1374,24 @@ _le_f2 (FLO_type arg_a, FLO_type arg_b) } #endif +#if defined(L_unord_sf) || defined(L_unord_df) +CMPtype +_unord_f2 (FLO_type arg_a, FLO_type arg_b) +{ + fp_number_type a; + fp_number_type b; + FLO_union_type au, bu; + + au.value = arg_a; + bu.value = arg_b; + + unpack_d (&au, &a); + unpack_d (&bu, &b); + + return (isnan (&a) || isnan (&b); +} +#endif + #endif /* ! US_SOFTWARE_GOFAST */ #if defined(L_si_to_sf) || defined(L_si_to_df) |