This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RFC [libstdc++v3] target-specific cpu_limits.h
- From: Danny Smith <danny_r_smith_2001 at yahoo dot co dot nz>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 9 Mar 2002 13:25:52 +1100 (EST)
- Subject: RFC [libstdc++v3] target-specific cpu_limits.h
I note that files cpu-limits.h in various libstdc++-v3/config/cpu/*/bits/
dirs don't have much to say about fp environment, other than size of long
double.
In local build tree I have added following file in cpu subdir as
libstdc++-v3/config/cpu/i386/mingw32/bits/cpu-limits.h and modified
configure.target accordingly. The file defines constants based on the
default behavior of native C-runtime (default i387 fpu mode is set at CRT
startup).
My question: Is this the place to add these defines? Can I put something
like this (after more testing and discussion with other mingw developers)
in FSF tree?
Here is the file:
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you
compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
#ifndef _GLIBCPP_CPU_LIMITS
#define _GLIBCPP_CPU_LIMITS 1
extern const float __QNANF, __SNANF, __INFF, __DENORMF;
extern const double __QNAN, __SNAN, __INF, __DENORM;
#define __glibcpp_long_double_bits 64
// float
#define __glibcpp_float_has_infinity true
#define __glibcpp_float_has_quiet_NaN true
#define __glibcpp_float_has_signaling_NaN true
#define __glibcpp_float_has_denorm denorm_present
#define __glibcpp_float_has_denorm_loss true
#define __glibcpp_float_infinity __INFF
#define __glibcpp_float_quiet_NaN __QNANF
#define __glibcpp_float_signaling_NaN __SNANF
#define __glibcpp_float_denorm_min __DENORMF
#define __glibcpp_float_is_iec559 true
#define __glibcpp_float_is_bounded true
#define __glibcpp_float_is_modulo false
#define __glibcpp_float_traps true
#define __glibcpp_float_tinyness_before true
#define __glibcpp_float_round_style round_to_nearest
// double
#define __glibcpp_double_has_infinity true
#define __glibcpp_double_has_quiet_NaN true
#define __glibcpp_double_has_signaling_NaN true
#define __glibcpp_double_has_denorm denorm_present
#define __glibcpp_double_has_denorm_loss true
#define __glibcpp_double_infinity __INF
#define __glibcpp_double_quiet_NaN __QNAN
#define __glibcpp_double_signaling_NaN __SNAN
#define __glibcpp_double_denorm_min __DENORM
#define __glibcpp_double_is_iec559 true
#define __glibcpp_double_is_bounded true
#define __glibcpp_double_is_modulo false
#define __glibcpp_double_traps true
#define __glibcpp_double_tinyness_before true
#define __glibcpp_double_round_style round_to_nearest
#endif
http://movies.yahoo.com.au - Yahoo! Movies
- Vote for your nominees in our online Oscars pool.