From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31792 invoked by alias); 15 Oct 2019 19:03:39 -0000 Mailing-List: contact glibc-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: , Sender: glibc-cvs-owner@sourceware.org List-Subscribe: Received: (qmail 31702 invoked by uid 10126); 15 Oct 2019 19:03:39 -0000 Date: Tue, 15 Oct 2019 19:03:00 -0000 Message-ID: <20191015190339.31701.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Gabriel F.T.Gomes To: glibc-cvs@sourceware.org Subject: [glibc/gabriel/powerpc-ieee128-printscan] Refactor *cvt functions implementation (2/5) X-Act-Checkin: glibc X-Git-Author: Gabriel F. T. Gomes X-Git-Refname: refs/heads/gabriel/powerpc-ieee128-printscan X-Git-Oldrev: 516e87fea648cb1993df6991219cc6d0728e2429 X-Git-Newrev: 6d9910ed3409f42705a5335202f80f9e740510a7 X-SW-Source: 2019-q4/txt/msg00059.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6d9910ed3409f42705a5335202f80f9e740510a7 commit 6d9910ed3409f42705a5335202f80f9e740510a7 Author: Gabriel F. T. Gomes Date: Thu Jul 11 11:48:12 2019 -0300 Refactor *cvt functions implementation (2/5) This patch is to be squashed with the other n/5 refactoring patches. This patch only moves and merges the contents of misc/efgcvt-template.c and misc/efgcvt_r-template.c into misc/efgcvt-dbl-macros.h. Diff: --- misc/efgcvt-dbl-macros.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ misc/efgcvt-template.c | 25 ----------------------- misc/efgcvt_r-template.c | 33 ------------------------------ 3 files changed, 52 insertions(+), 58 deletions(-) diff --git a/misc/efgcvt-dbl-macros.h b/misc/efgcvt-dbl-macros.h new file mode 100644 index 0000000..08640e9 --- /dev/null +++ b/misc/efgcvt-dbl-macros.h @@ -0,0 +1,52 @@ +/* Macros for the implementation of *cvt functions, double version. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +#define FLOAT_TYPE double +#define FUNC_PREFIX +#define FLOAT_FMT_FLAG +#define FLOAT_NAME_EXT +#define FLOAT_MIN_10_EXP DBL_MIN_10_EXP +/* Actually we have to write (DBL_DIG + log10 (DBL_MAX_10_EXP)) but we + don't have log10 available in the preprocessor. */ +#define MAXDIG (NDIGIT_MAX + 3) +#define FCVT_MAXDIG (DBL_MAX_10_EXP + MAXDIG) +#if DBL_MANT_DIG == 53 +# define NDIGIT_MAX 17 +#elif DBL_MANT_DIG == 24 +# define NDIGIT_MAX 9 +#elif DBL_MANT_DIG == 56 +# define NDIGIT_MAX 18 +#else +/* See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a + compile time constant here, so we cannot use it. */ +# error "NDIGIT_MAX must be precomputed" +# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0))) +#endif +#if DBL_MIN_10_EXP == -37 +# define FLOAT_MIN_10_NORM 1.0e-37 +#elif DBL_MIN_10_EXP == -307 +# define FLOAT_MIN_10_NORM 1.0e-307 +#elif DBL_MIN_10_EXP == -4931 +# define FLOAT_MIN_10_NORM 1.0e-4931 +#else +/* libc can't depend on libm. */ +# error "FLOAT_MIN_10_NORM must be precomputed" +# define FLOAT_MIN_10_NORM exp10 (DBL_MIN_10_EXP) +#endif diff --git a/misc/efgcvt-template.c b/misc/efgcvt-template.c index 492e4e8..f8650a9 100644 --- a/misc/efgcvt-template.c +++ b/misc/efgcvt-template.c @@ -20,34 +20,9 @@ #include #include #include -#include #include #include -#ifndef FLOAT_TYPE -# define FLOAT_TYPE double -# define FUNC_PREFIX -# define FLOAT_FMT_FLAG -/* Actually we have to write (DBL_DIG + log10 (DBL_MAX_10_EXP)) but we - don't have log10 available in the preprocessor. */ -# define MAXDIG (NDIGIT_MAX + 3) -# define FCVT_MAXDIG (DBL_MAX_10_EXP + MAXDIG) -# if DBL_MANT_DIG == 53 -# define NDIGIT_MAX 17 -# elif DBL_MANT_DIG == 24 -# define NDIGIT_MAX 9 -# elif DBL_MANT_DIG == 56 -# define NDIGIT_MAX 18 -# else -/* See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a - compile time constant here, so we cannot use it. */ -# error "NDIGIT_MAX must be precomputed" -# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0))) -# endif -#else -# define LONG_DOUBLE_CVT -#endif - #define APPEND(a, b) APPEND2 (a, b) #define APPEND2(a, b) a##b #define __APPEND(a, b) __APPEND2 (a, b) diff --git a/misc/efgcvt_r-template.c b/misc/efgcvt_r-template.c index 30d25ff..2194093 100644 --- a/misc/efgcvt_r-template.c +++ b/misc/efgcvt_r-template.c @@ -17,7 +17,6 @@ . */ #include -#include #include #include #include @@ -26,38 +25,6 @@ #include #include -#ifndef FLOAT_TYPE -# define FLOAT_TYPE double -# define FUNC_PREFIX -# define FLOAT_FMT_FLAG -# define FLOAT_NAME_EXT -# define FLOAT_MIN_10_EXP DBL_MIN_10_EXP -# if DBL_MANT_DIG == 53 -# define NDIGIT_MAX 17 -# elif DBL_MANT_DIG == 24 -# define NDIGIT_MAX 9 -# elif DBL_MANT_DIG == 56 -# define NDIGIT_MAX 18 -# else -/* See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a - compile time constant here, so we cannot use it. */ -# error "NDIGIT_MAX must be precomputed" -# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0))) -# endif -# if DBL_MIN_10_EXP == -37 -# define FLOAT_MIN_10_NORM 1.0e-37 -# elif DBL_MIN_10_EXP == -307 -# define FLOAT_MIN_10_NORM 1.0e-307 -# elif DBL_MIN_10_EXP == -4931 -# define FLOAT_MIN_10_NORM 1.0e-4931 -# else -/* libc can't depend on libm. */ -# error "FLOAT_MIN_10_NORM must be precomputed" -# define FLOAT_MIN_10_NORM exp10 (DBL_MIN_10_EXP) -# endif -#else -# define LONG_DOUBLE_CVT -#endif #define APPEND(a, b) APPEND2 (a, b) #define APPEND2(a, b) a##b