diff options
author | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-29 23:01:35 +0000 |
---|---|---|
committer | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-29 23:01:35 +0000 |
commit | 4d863ca508b647828659dee4015b28400bea2bcb (patch) | |
tree | 674d66090dc46dc021568756756f9d8190db5663 /libdecnumber | |
parent | 2136cd14292eca6dbc25f8f6013d4a2d5568cc1d (diff) | |
download | gcc-4d863ca508b647828659dee4015b28400bea2bcb.tar.gz |
libdecnumber/
* decExcept.c: New.
* decExcept.h: New.
libgcc/
* Makefile.in (dec-filenames): Add decExcept.
gcc/
* config/dfp-bit.c: Add parameterized support for fp exceptions.
* config/dfp-bit.h: Ditto.
gcc/testsuite/
* gcc.dg/dfp/dfp-except.h: New file.
* gcc.dg/dfp/fe-check.h: New file.
* gcc.dg/dfp/fe-binop.c: New test.
* gcc.dg/dfp/fe-convert-1.c: New test.
* gcc.dg/dfp/fe-convert-2.c: New test.
* gcc.dg/dfp/fe-convert-3.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121317 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libdecnumber')
-rw-r--r-- | libdecnumber/ChangeLog | 5 | ||||
-rw-r--r-- | libdecnumber/decExcept.c | 59 | ||||
-rw-r--r-- | libdecnumber/decExcept.h | 39 |
3 files changed, 103 insertions, 0 deletions
diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog index 0994aee40e7..3579b7c610b 100644 --- a/libdecnumber/ChangeLog +++ b/libdecnumber/ChangeLog @@ -1,3 +1,8 @@ +2007-01-29 Janis Johnson <janis187@us.ibm.com> + + * decExcept.c: New. + * decExcept.h: New. + 2006-11-29 Janis Johnson <janis187@us.ibm.com> * decRound.c: Move declarations to new file, update comments. diff --git a/libdecnumber/decExcept.c b/libdecnumber/decExcept.c new file mode 100644 index 00000000000..68217024206 --- /dev/null +++ b/libdecnumber/decExcept.c @@ -0,0 +1,59 @@ +/* Temporary library support for decimal floating point. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC 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. + + In addition to the permissions in the GNU General Public License, the + Free Software Foundation gives you unlimited permission to link the + compiled version of this file into combinations with other programs, + and to distribute those combinations without any restriction coming + from the use of this file. (The General Public License restrictions + do apply in other respects; for example, they cover modification of + the file, and distribution when not linked into a combine + executable.) + + GCC 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 GCC; see the file COPYING. If not, write to the Free + Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#include <fenv.h> +#include "config.h" +#include "decContext.h" +#include "decExcept.h" + +/* Internal, non-documented functions for testing libgcc functions. + This support is not sufficient for real use. */ + +static int __dfp_except_flags = 0; + +/* Clear the dummy exception flags. */ +void +__dfp_clear_except (void) +{ + __dfp_except_flags = 0; +} + +/* Return the dummy exception flags corresponding to the mask. */ +int +__dfp_test_except (int mask) +{ + return __dfp_except_flags & mask; +} + +/* Set dummy exception flags. */ +void +__dfp_raise_except (int flags) +{ + __dfp_except_flags |= flags; +} diff --git a/libdecnumber/decExcept.h b/libdecnumber/decExcept.h new file mode 100644 index 00000000000..12ba87d01fb --- /dev/null +++ b/libdecnumber/decExcept.h @@ -0,0 +1,39 @@ +/* Temporary library support for decimal floating point. + Copyright (C) 2006 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC 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. + + In addition to the permissions in the GNU General Public License, the + Free Software Foundation gives you unlimited permission to link the + compiled version of this file into combinations with other programs, + and to distribute those combinations without any restriction coming + from the use of this file. (The General Public License restrictions + do apply in other respects; for example, they cover modification of + the file, and distribution when not linked into a combine + executable.) + + GCC 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 GCC; see the file COPYING. If not, write to the Free + Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#include <fenv.h> +#include "config.h" +#include "decContext.h" + +#define DFP_EXCEPTIONS_ENABLED 1 +#define DFP_HANDLE_EXCEPTIONS(A) __dfp_raise_except(A) + +void __dfp_clear_except (void); +int __dfp_test_except (int); +void __dfp_raise_except (int); |