...
 
Commits (434)
*~
*.a
*.cache
*.jmprel
*.log
*.map
*.o
*.os
*.out
*.so
*.so.*
*.symlist
*.tmp
config.h
config.status
configure.scan
Makefile
libdfp-test-ulps.h
stamp-h*
sysd-versions
Versions.all
Versions.sysdeps
\ No newline at end of file
Contribution Statement:
Since Libdfp is a Free Software Foundation project any 'legally
significant' contribution requires that the contributor go through the FSF
Copyright Assignment process.
This webpage describes the copyright assignment requirements:
http://www.gnu.org/prep/maintain/maintain.html#Legally-Significant
The maintainer of this library also requires that each individual change be
accompanied by a DCO that is outlined as follows.
Process For Accepting Third Party Code Contributions:
To improve tracking of contributions to this project we will use a process
modeled on the modified Developers Certificate of Origin (DCO 1.1) and use a
"sign-off" procedure on patches that are being emailed around or contributed
in any other way.
The sign-off is a simple line at the end of the explanation for the patch,
which certifies that you wrote it or otherwise have the right to pass it on as
an open-source patch. The rules are pretty simple: if you can certify the
below:
By making a contribution to this project, I certify that:
(a)The contribution was created in whole or in part by me and I have the right
to submit it under the open source license indicated in the file; or
(b)The contribution is based upon previous work that, to the best of my
knowledge, is covered under an appropriate open source License and I have the
right under that license to submit that work with modifications, whether
created in whole or in part by me, under the same open source license (unless
I am permitted to submit under a different license), as indicated in the file;
or
(c)The contribution was provided directly to me by some other person who
certified (a), (b) or (c) and I have not modified it.
(d)The contribution is made free of any other party's intellectual property
claims or rights.
(e)I understand and agree that this project and the contribution are public
and that a record of the contribution (including all personal information I
submit with it, including my sign-off) is maintained indefinitely and may be
redistributed consistent with this project or the open source license(s)
involved.
Then you just add a line saying:
Signed-off-by: Random J Developer random@developer.org>
Maintainers:
Base: Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
PowerPC Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
s390: Paul E. Murphy <murphyp@linux.vnet.ibm.com>
x86(64): Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Contributors:
Ryan S. Arnold <rsa@us.ibm.com>
Peter Eberlein <eberlein@us.ibm.com>
Joseph Kerian <kerian@us.ibm.com>
Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
Luis Machado <luisgpm@br.ibm.com>
Adhemerval Zanella <azanella@br.ibm.com>
Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
Stefan Liebler <stli@linux.vnet.ibm.com>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Decimal Floating Point C Library - history of user-visible changes.
Copyright (C) 2014-2015 Free Software Foundation, Inc.
See the end for copyright conditions.
Version 1.0.10
* Added BID support for x86_64 and x86.
* Fixes to avoid external PLT calls to internal supplied symbols.
* Add optimized fabsd[32|64|128], and copysignd[32|64|128] for PowerPC
with DFP hardware support.
----------------------------------------------------------------------
Version 1.0.9
* Support for powerpc64le has beed added.
* Various fixes for LE build.
* Support for configure with --with-cpu=power8 has been added.
* Fix for isinfd[32|64|128]: it now follow GLIBC convention and returns
1 for plus infinity and -1 for minus infinity.
* Fix finited result to return a positive argument for any normal
number.
* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
It is based on draft TS 18661.
* New llogbd[32|64|128] implementation to return the logb result as
long int.
* New roundevend[32|64|128] implementation that rounds its argument to the
nearest integer value in floating-point format, rounding halfway cases
to even (that is, to the nearest value whose least significant bit 0),
regardless of the current rounding direction.
It is based on draft 18661-2.
* Add optimized ceild[32|64|128], truncd[32|64|128], floord[32|64|128],
nearbyintd[32|64|128], roundd[32|64|128], and roundevend[32|64|128]
for PowerPC with DFP hardware support.
* New quantumd[32|64|128] implementation that compute the quantum of a
finite argument.
It is based on draft 18661-2.
* Add optimized quantumd[32|64|128] and samequantumd[32|64|128]
implementation for PowerPC with DFP hardware support.
----------------------------------------------------------------------
Copyright information:
Copyright (C) 2007-2014 Free Software Foundation, Inc.
he Decimal Floating Point C Library is free software; you can
redistribute it and/or modify it under the terms of the GNU Lesser
General Public License version 2.1.
The Decimal Floating Point 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 version 2.1 for more details.
You should have received a copy of the GNU Lesser General Public
License version 2.1 along with the Decimal Floating Point C Library;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA.
Please see libdfp/COPYING.txt for more information.
This diff is collapsed.
===========================================================================
Libdfp
The "Decimal Floating Point C Library" Maintainer's Guide
for the GNU/Linux OS and GLIBC 2.10+
Contributed by IBM Corporation
Copyright (C) 2011-2014 Free Software Foundation
===========================================================================
NOTE:Eight space tabs are the optimum editor setting for reading this file.
===========================================================================
Author(s) : Ryan S. Arnold <rsa@us.ibm.com>
Date Created: February 9, 2011
---------------------------------------------------------------------------
Table of Contents:
1. Introduction
2. Libdfp API Changes
3. Libdfp ABI Changes
4. Versioning
5. Contributing
---------------------------------------------------------------------------
2. Libdfp API Changes
When new functions or interfaces are added to Libdfp then the API has changed
and the library version must change. For guidelines on adding new symbols to
a particular version see README.developer.
---------------------------------------------------------------------------
3. Libdfp API Changes
TODO
---------------------------------------------------------------------------
4. Versioning
TODO
---------------------------------------------------------------------------
5. Contributing
Libdfp is developed now using GIT SCM at github. Main site is:
https://github.com/libdfp/libdfp
General developement follows the simple guideline:
1. Make sure you have a GitHub account
2. Fork the repository to your account.
3. Make the changes and run the testcases. We only take pull requests
with passing tests.
4. If it is applicable, improve or add the current testcases to cover
for the new functionality.
5. Libdfp also uses the ChangeLog with the same format and rules as
the GLIBC one.
6. Push to your fork and submit a pull request.
This diff is collapsed.
Add tests/test-getexp to determine whether the hardware dfp version stores the
proper sign of the exponent with the stfiwx call.
Make get_digits calls use getexp_d* rather than computing the exponent
directly.
Upgrade libdecnumber version.
Upgrade autoconf version
Add @docdir@ to Makefile (supported in autoconf 2.6.0).
test make install headers with dfp/decimal/ headers.
Add testcase to verify soft-dfp TLS version of rounding mode functions.
Add printf_dfp test which change the rounding mode.
Add --with-cross feature to prevent the make check suite from being executed
on the build machine.
Add --export-test feature to export the test-suite into stand-alone static
test cases.
Finish make check test suite.
Clear up symbols and hidden symbol usage and export and make sure we aren't
using the PLT from within libdfp.
Optimize the math routines for hardware dfp support.
Implement dpd backend for x86 and x86_64.
Prototype versioned symbols support.
Implement libbid backend for x86_64.
Write Man Page
Write User's guide in docbook format, .i.e. info file.
[DONE] Configure runtime test for decimal floating point support in compiler.
[DONE] Configure test for glibc 2.10 headers.
[DONE] Configure runtime test for glibc 2.10 based on register_printf_type()
function..
[DONE] Write User's guide
[DONE] If system glibc is 2.10 then make check shouldn't need all the GLIBC build
scaffolding for executing and debugging tests.
[DONE] Clear up make clean
[DONE] Work on make distclean.
[DONE] Clear up dependency issue so that libdfp.so.1 is rebuilt when a .c
file changes.
libdfp {
LIBDFP_1.0.0 {
decoded32;
decoded64;
decoded128;
# These are the old callbacks. They don't work anymore.
# fmt_d32;
# fmt_d64;
# fmt_d128;
fe_dec_getround;
fe_dec_setround;
register_printf_dfp;
printf_dfp;
strtod32;
strtod64;
strtod128;
wcstod32;
wcstod64;
wcstod128;
}
LIBDFP_PRIVATE {
__decoded32;
__decoded64;
__decoded128;
__fmt_d32;
__fmt_d64;
__fmt_d128;
__host_to_ieee_32;
__ieee_32_to_host;
__host_to_ieee_64;
__ieee_64_to_host;
__host_to_ieee_128;
__ieee_128_to_host;
__fe_dec_getround;
__fe_dec_setround;
}
}
libdfp {
LIBDFP_1.0.0
LIBDFP_1.0.2
LIBDFP_1.0.3
LIBDFP_1.0.4
LIBDFP_1.0.5
LIBDFP_1.0.6
LIBDFP_1.0.7
LIBDFP_1.0.8
LIBDFP_1.0.9
LIBDFP_1.0.10
LIBDFP_1.0.13
LIBDFP_PRIVATE
}
# Copyright (C) 2015 Free Software Foundation, Inc.
#
# This file is part of the Decimal Floating Point C Library.
#
# The Decimal Floating Point C Library is free software; you can
# redistribute it and/or modify it under the terms of the GNU Lesser
# General Public License version 2.1.
#
# The Decimal Floating Point 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 version 2.1 for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License version 2.1 along with the Decimal Floating Point C Library;
# if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA.
#
# Please see libdfp/COPYING.txt for more information. */
libdfp_files += addsd3 adddd3 addtd3 \
divsd3 divdd3 divtd3 \
eqsd2 eqdd2 eqtd2 \
extendsddd2 extendsdtd2 extendddtd2 \
extendsfsd extendsddf extendsdtf \
extendsfdd extenddfdd extendddtf \
extendsftd extenddftd extendtftd \
fixsdsi fixddsi fixtdsi \
fixsddi fixdddi fixtddi \
fixunssdsi fixunsddsi fixunstdsi \
fixunssddi fixunsdddi fixunstddi \
floatsisd floatsidd floatsitd \
floatdisd floatdidd floatditd \
floatunssisd floatunssidd floatunssitd \
floatunsdisd floatunsdidd floatunsditd \
gesd2 gedd2 getd2 \
gtsd2 gtdd2 gttd2 \
lesd2 ledd2 letd2 \
ltsd2 ltdd2 lttd2 \
mulsd3 muldd3 multd3 \
nesd2 nedd2 netd2 \
subsd3 subdd3 subtd3 \
truncddsd2 trunctddd2 trunctdsd2 \
truncsdsf truncdfsd trunctfsd \
truncddsf truncdddf trunctfdd \
trunctdsf trunctddf trunctdtf \
unordsd2 unorddd2 unordtd2 \
classify
libdfp_ti_files += fixsdti fixddti \
fixunssdti fixunsddti \
fixtdti fixunstdti \
floattitd floatunstitd \
floattidd floatunstidd \
floattisd floatunstisd
These functions match what is implemented as part of libgcc for DFP. They are
intended to be compiled with DFP hardware support in order to override the
software DFP libgcc.a symbols. This set doesn't provide overrides for
binary->decimal and decimal->binary trunc and extend functions.
# Since the symbols in base-math are prefixed with either __dpd_ or __bid_ the
# Versions files in sysdeps/dpd/ and sysdeps/bid are used for the functions
# defined in this directory. So don't define any symbols in this file.
/* Decimal Floating Point function intended to override the libgcc version.
Copyright (C) 2008-2016 Free Software Foundation, Inc.
This file is part of the Decimal Floating Point C Library.
Author(s): Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
The Decimal Floating Point C Library is free software; you can
redistribute it and/or modify it under the terms of the GNU Lesser
General Public License version 2.1.
The Decimal Floating Point 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 version 2.1 for more details.
You should have received a copy of the GNU Lesser General Public
License version 2.1 along with the Decimal Floating Point C Library;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA.
Please see libdfp/COPYING.txt for more information. */
#include <dfpacc.h>
_Decimal64
__BACKEND_(adddd3) (_Decimal64 x, _Decimal64 y)
{
return x + y;
}
hidden_def (__BACKEND_(adddd3))
/* Decimal Floating Point function intended to override the libgcc version.
Copyright (C) 2009-2016 Free Software Foundation, Inc.
This file is part of the Decimal Floating Point C Library.
Author(s): Ryan S. Arnold <rsa@us.ibm.com>
The Decimal Floating Point C Library is free software; you can
redistribute it and/or modify it under the terms of the GNU Lesser
General Public License version 2.1.
The Decimal Floating Point 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 version 2.1 for more details.
You should have received a copy of the GNU Lesser General Public
License version 2.1 along with the Decimal Floating Point C Library;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA.
Please see libdfp/COPYING.txt for more information. */
#include <dfpacc.h>
_Decimal32
__BACKEND_(addsd3) (_Decimal32 x, _Decimal32 y)
{
return (_Decimal32)((_Decimal64)x + (_Decimal64)y);
}
hidden_def (__BACKEND_(addsd3))
/* Decimal Floating Point function intended to override the libgcc version.
Copyright (C) 2008-2016 Free Software Foundation, Inc.
This file is part of the Decimal Floating Point C Library.
Author(s): Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
The Decimal Floating Point C Library is free software; you can
redistribute it and/or modify it under the terms of the GNU Lesser
General Public License version 2.1.
The Decimal Floating Point 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 version 2.1 for more details.
You should have received a copy of the GNU Lesser General Public
License version 2.1 along with the Decimal Floating Point C Library;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA.
Please see libdfp/COPYING.txt for more information. */
#include <dfpacc.h>
_Decimal128
__BACKEND_(addtd3) (_Decimal128 x, _Decimal128 y)
{
return x + y;
}
hidden_def (__BACKEND_(addtd3))
/* Classification functions for binary floating point types
Copyright (C) 2007, 2008 IBM Corporation.
Copyright (C) 2008-2015 Free Software Foundation, Inc.
This file is part of the Decimal Floating Point C Library.
Author(s): Pete Eberlein <eberlein@us.ibm.com>
The Decimal Floating Point C Library is free software; you can
redistribute it and/or modify it under the terms of the GNU Lesser
General Public License version 2.1.
The Decimal Floating Point 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 version 2.1 for more details.
You should have received a copy of the GNU Lesser General Public
License version 2.1 along with the Decimal Floating Point C Library;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA.
Please see libdfp/COPYING.txt for more information. */
#include <math.h>
#include <math_private.h>
#include "convert.h"
extern int __dfp_classify_sf (float a);
int __dfp_classify_sf (float a)
{
uint32_t wx;
if (a == 0.0f)
return FP_ZERO;
GET_FLOAT_WORD (wx, a);
wx = wx & 0x7fffffff;
if (wx >= 0x7f800000)
return (wx > 0x7f800000) ? FP_NAN : FP_INFINITE;
return FP_NORMAL;
}
extern int __dfp_classify_df (double a);