Remove no-longer-needed fp-bit target macros.
authorJoseph Myers <joseph@codesourcery.com>
Mon, 8 Sep 2014 12:22:56 +0000 (13:22 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Mon, 8 Sep 2014 12:22:56 +0000 (13:22 +0100)
gcc:
* defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
Remove.
* doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
Remove.
* doc/tm.texi: Regenerate.
* system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
Poison.
* config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
* config/cris/cris.h (__make_dp): Remove.

libgcc:
* fp-bit.c (pack_d, unpack_d): Remove LARGEST_EXPONENT_IS_NORMAL
and ROUND_TOWARDS_ZERO conditionals.

From-SVN: r215013

gcc/ChangeLog
gcc/config/arm/arm.h
gcc/config/cris/cris.h
gcc/defaults.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/system.h
libgcc/ChangeLog
libgcc/fp-bit.c

index f25d4e4591555c6c8a8775d84b602d65d8ee8cf9..4d882a16691c4da29a1709bd7eb8048dbf2cc0c4 100644 (file)
@@ -1,3 +1,15 @@
+2014-09-08  Joseph Myers  <joseph@codesourcery.com>
+
+       * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
+       Remove.
+       * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
+       Remove.
+       * doc/tm.texi: Regenerate.
+       * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
+       Poison.
+       * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
+       * config/cris/cris.h (__make_dp): Remove.
+
 2014-09-08  Richard Biener  <rguenther@suse.de>
 
        PR bootstrap/63204
index 96e8626c5cf11b47b8ced86f8f3db7cbcf914ec5..ff4ddace2b5e27dba01d18e68924acc5355f6c33 100644 (file)
@@ -440,9 +440,6 @@ extern int arm_fpu_attr;
 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
 #endif
 
-#define LARGEST_EXPONENT_IS_NORMAL(bits) \
-    ((bits) == 16 && arm_fp16_format == ARM_FP16_FORMAT_ALTERNATIVE)
-
 #ifndef ARM_DEFAULT_ABI
 #define ARM_DEFAULT_ABI ARM_ABI_APCS
 #endif
index 12b1ea88b050400fe98644440e118db51a939ca1..fb8ec933cbdfa067c39136f5ef3c712aec18e0bd 100644 (file)
@@ -80,14 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 /* Which CPU version this is.  The parsed and adjusted cris_cpu_str.  */
 extern int cris_cpu_version;
 
-/* Changing the order used to be necessary to put the fourth __make_dp
-   argument (a DImode parameter) in registers, to fit with the libfunc
-   parameter passing scheme used for intrinsic functions.  FIXME: Check
-   performance.  */
-#ifdef IN_LIBGCC2
-#define __make_dp(a,b,c,d) __cris_make_dp(d,a,b,c)
-#endif
-
 
 /* Node: Driver */
 
index 1a9950dd4f6eee60c0ba8f4f07e844142dfe7edc..c1776b05690537424cdfdd6e35a45577cf707713 100644 (file)
@@ -926,14 +926,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define PREFERRED_DEBUGGING_TYPE NO_DEBUG
 #endif
 
-#ifndef LARGEST_EXPONENT_IS_NORMAL
-#define LARGEST_EXPONENT_IS_NORMAL(SIZE) 0
-#endif
-
-#ifndef ROUND_TOWARDS_ZERO
-#define ROUND_TOWARDS_ZERO 0
-#endif
-
 #ifndef FLOAT_LIB_COMPARE_RETURNS_BOOL
 #define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) false
 #endif
index 94964771d526425e7531083ec0351c32b8848d3a..904ee5af3ef5e2bf078ad15f72c60297ac6b5f2f 100644 (file)
@@ -1341,27 +1341,6 @@ Return machine mode to be used for @code{_Unwind_Word} type.
 The default is to use @code{word_mode}.
 @end deftypefn
 
-@defmac ROUND_TOWARDS_ZERO
-If defined, this macro should be true if the prevailing rounding
-mode is towards zero.
-
-Defining this macro only affects the way @file{libgcc.a} emulates
-floating-point arithmetic.
-
-Not defining this macro is equivalent to returning zero.
-@end defmac
-
-@defmac LARGEST_EXPONENT_IS_NORMAL (@var{size})
-This macro should return true if floats with @var{size}
-bits do not have a NaN or infinity representation, but use the largest
-exponent for normal numbers instead.
-
-Defining this macro only affects the way @file{libgcc.a} emulates
-floating-point arithmetic.
-
-The default definition of this macro returns false for all sizes.
-@end defmac
-
 @deftypefn {Target Hook} bool TARGET_MS_BITFIELD_LAYOUT_P (const_tree @var{record_type})
 This target hook returns @code{true} if bit-fields in the given
 @var{record_type} are to be laid out following the rules of Microsoft
index 152d37d8f5575bd2ce35e1d10008a7eae985e0d2..50d1ac1cff80e9cab22436e02c38d7a9c7b3092f 100644 (file)
@@ -1255,27 +1255,6 @@ pattern needs to support both a 32- and a 64-bit mode.
 
 @hook TARGET_UNWIND_WORD_MODE
 
-@defmac ROUND_TOWARDS_ZERO
-If defined, this macro should be true if the prevailing rounding
-mode is towards zero.
-
-Defining this macro only affects the way @file{libgcc.a} emulates
-floating-point arithmetic.
-
-Not defining this macro is equivalent to returning zero.
-@end defmac
-
-@defmac LARGEST_EXPONENT_IS_NORMAL (@var{size})
-This macro should return true if floats with @var{size}
-bits do not have a NaN or infinity representation, but use the largest
-exponent for normal numbers instead.
-
-Defining this macro only affects the way @file{libgcc.a} emulates
-floating-point arithmetic.
-
-The default definition of this macro returns false for all sizes.
-@end defmac
-
 @hook TARGET_MS_BITFIELD_LAYOUT_P
 
 @hook TARGET_DECIMAL_FLOAT_SUPPORTED_P
index a2c8f7767cde1e0a9eae5313d0f6b0e500ed8911..a1e89f4fb2269b05963c15987c77462d65f03195 100644 (file)
@@ -934,7 +934,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
        REG_CLASS_FROM_CONSTRAINT REG_CLASS_FOR_CONSTRAINT                 \
        EXTRA_CONSTRAINT_STR EXTRA_MEMORY_CONSTRAINT                       \
        EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P          \
-       CALLER_SAVE_PROFITABLE
+       CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL                  \
+       ROUND_TOWARDS_ZERO
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \
index 4ab05ef8f948abed846e0257f96c0cd9ac23d186..8133025a6482c8abfe6c57623825d198d57b9863 100644 (file)
@@ -1,3 +1,8 @@
+2014-09-08  Joseph Myers  <joseph@codesourcery.com>
+
+       * fp-bit.c (pack_d, unpack_d): Remove LARGEST_EXPONENT_IS_NORMAL
+       and ROUND_TOWARDS_ZERO conditionals.
+
 2014-09-07  Nathan sidwell  <nathan@acm.org>
 
        * libgcov-interface.c (STRONG_ALIAS): Rename to ...
index 4155fae28cafcf3d7bb5d9ec594bac084eec8f0e..5f67e07d57ae7a2a844cfda545b1d954f2c93998 100644 (file)
@@ -202,15 +202,7 @@ pack_d (const fp_number_type *src)
   int sign = src->sign;
   int exp = 0;
 
-  if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && (isnan (src) || isinf (src)))
-    {
-      /* We can't represent these values accurately.  By using the
-        largest possible magnitude, we guarantee that the conversion
-        of infinity is at least as big as any finite number.  */
-      exp = EXPMAX;
-      fraction = ((fractype) 1 << FRACBITS) - 1;
-    }
-  else if (isnan (src))
+  if (isnan (src))
     {
       exp = EXPMAX;
       /* Restore the NaN's payload.  */
@@ -291,8 +283,7 @@ pack_d (const fp_number_type *src)
          fraction >>= NGARDS;
 #endif /* NO_DENORMALS */
        }
-      else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS)
-              && __builtin_expect (src->normal_exp > EXPBIAS, 0))
+      else if (__builtin_expect (src->normal_exp > EXPBIAS, 0))
        {
          exp = EXPMAX;
          fraction = 0;
@@ -300,35 +291,25 @@ pack_d (const fp_number_type *src)
       else
        {
          exp = src->normal_exp + EXPBIAS;
-         if (!ROUND_TOWARDS_ZERO)
+         /* IF the gard bits are the all zero, but the first, then we're
+            half way between two numbers, choose the one which makes the
+            lsb of the answer 0.  */
+         if ((fraction & GARDMASK) == GARDMSB)
            {
-             /* IF the gard bits are the all zero, but the first, then we're
-                half way between two numbers, choose the one which makes the
-                lsb of the answer 0.  */
-             if ((fraction & GARDMASK) == GARDMSB)
-               {
-                 if (fraction & (1 << NGARDS))
-                   fraction += GARDROUND + 1;
-               }
-             else
-               {
-                 /* Add a one to the guards to round up */
-                 fraction += GARDROUND;
-               }
-             if (fraction >= IMPLICIT_2)
-               {
-                 fraction >>= 1;
-                 exp += 1;
-               }
+             if (fraction & (1 << NGARDS))
+               fraction += GARDROUND + 1;
            }
-         fraction >>= NGARDS;
-
-         if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp > EXPMAX)
+         else
+           {
+             /* Add a one to the guards to round up */
+             fraction += GARDROUND;
+           }
+         if (fraction >= IMPLICIT_2)
            {
-             /* Saturate on overflow.  */
-             exp = EXPMAX;
-             fraction = ((fractype) 1 << FRACBITS) - 1;
+             fraction >>= 1;
+             exp += 1;
            }
+         fraction >>= NGARDS;
        }
     }
 
@@ -556,8 +537,7 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
          dst->fraction.ll = fraction;
        }
     }
-  else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS)
-          && __builtin_expect (exp == EXPMAX, 0))
+  else if (__builtin_expect (exp == EXPMAX, 0))
     {
       /* Huge exponent*/
       if (fraction == 0)
@@ -915,7 +895,7 @@ _fpmul_parts ( fp_number_type *  a,
       low <<= 1;
     }
 
-  if (!ROUND_TOWARDS_ZERO && (high & GARDMASK) == GARDMSB)
+  if ((high & GARDMASK) == GARDMSB)
     {
       if (high & (1 << NGARDS))
        {
@@ -1035,7 +1015,7 @@ _fpdiv_parts (fp_number_type * a,
        numerator *= 2;
       }
 
-    if (!ROUND_TOWARDS_ZERO && (quotient & GARDMASK) == GARDMSB)
+    if ((quotient & GARDMASK) == GARDMSB)
       {
        if (quotient & (1 << NGARDS))
          {