summaryrefslogtreecommitdiff
path: root/libgcc/soft-fp/unorddf2.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-11-06 22:46:39 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2013-11-06 22:46:39 +0000
commit9954c743b9e985bd30194525464a0a8a64697b68 (patch)
treea0be3468d26216a37289e1817e7dbfea037f2f7c /libgcc/soft-fp/unorddf2.c
parent3c40bae1c50f4fd8c23ee04d7fe768d7df68f2e6 (diff)
float128-cmp-invalid.c, [...]: New tests.
gcc/testsuite: * gcc.dg/torture/float128-cmp-invalid.c, gcc.dg/torture/float128-div-underflow.c, gcc.dg/torture/float128-extend-nan.c, gcc.dg/torture/fp-int-convert-float128-timode-3.c: New tests. libgcc: * soft-fp/README: Update. * soft-fp/adddf3.c: Update from glibc. * soft-fp/addsf3.c: Likewise. * soft-fp/addtf3.c: Likewise. * soft-fp/divdf3.c: Likewise. * soft-fp/divsf3.c: Likewise. * soft-fp/divtf3.c: Likewise. * soft-fp/double.h: Likewise. * soft-fp/eqdf2.c: Likewise. * soft-fp/eqsf2.c: Likewise. * soft-fp/eqtf2.c: Likewise. * soft-fp/extenddftf2.c: Likewise. * soft-fp/extended.h: Likewise. * soft-fp/extendsfdf2.c: Likewise. * soft-fp/extendsftf2.c: Likewise. * soft-fp/extendxftf2.c: Likewise. * soft-fp/fixdfdi.c: Likewise. * soft-fp/fixdfsi.c: Likewise. * soft-fp/fixdfti.c: Likewise. * soft-fp/fixsfdi.c: Likewise. * soft-fp/fixsfsi.c: Likewise. * soft-fp/fixsfti.c: Likewise. * soft-fp/fixtfdi.c: Likewise. * soft-fp/fixtfsi.c: Likewise. * soft-fp/fixtfti.c: Likewise. * soft-fp/fixunsdfdi.c: Likewise. * soft-fp/fixunsdfsi.c: Likewise. * soft-fp/fixunsdfti.c: Likewise. * soft-fp/fixunssfdi.c: Likewise. * soft-fp/fixunssfsi.c: Likewise. * soft-fp/fixunssfti.c: Likewise. * soft-fp/fixunstfdi.c: Likewise. * soft-fp/fixunstfsi.c: Likewise. * soft-fp/fixunstfti.c: Likewise. * soft-fp/floatdidf.c: Likewise. * soft-fp/floatdisf.c: Likewise. * soft-fp/floatditf.c: Likewise. * soft-fp/floatsidf.c: Likewise. * soft-fp/floatsisf.c: Likewise. * soft-fp/floatsitf.c: Likewise. * soft-fp/floattidf.c: Likewise. * soft-fp/floattisf.c: Likewise. * soft-fp/floattitf.c: Likewise. * soft-fp/floatundidf.c: Likewise. * soft-fp/floatundisf.c: Likewise. * soft-fp/floatunditf.c: Likewise. * soft-fp/floatunsidf.c: Likewise. * soft-fp/floatunsisf.c: Likewise. * soft-fp/floatunsitf.c: Likewise. * soft-fp/floatuntidf.c: Likewise. * soft-fp/floatuntisf.c: Likewise. * soft-fp/floatuntitf.c: Likewise. * soft-fp/gedf2.c: Likewise. * soft-fp/gesf2.c: Likewise. * soft-fp/getf2.c: Likewise. * soft-fp/ledf2.c: Likewise. * soft-fp/lesf2.c: Likewise. * soft-fp/letf2.c: Likewise. * soft-fp/muldf3.c: Likewise. * soft-fp/mulsf3.c: Likewise. * soft-fp/multf3.c: Likewise. * soft-fp/negdf2.c: Likewise. * soft-fp/negsf2.c: Likewise. * soft-fp/negtf2.c: Likewise. * soft-fp/op-1.h: Likewise. * soft-fp/op-2.h: Likewise. * soft-fp/op-4.h: Likewise. * soft-fp/op-8.h: Likewise. * soft-fp/op-common.h: Likewise. * soft-fp/quad.h: Likewise. * soft-fp/single.h: Likewise. * soft-fp/soft-fp.h: Likewise. * soft-fp/subdf3.c: Likewise. * soft-fp/subsf3.c: Likewise. * soft-fp/subtf3.c: Likewise. * soft-fp/truncdfsf2.c: Likewise. * soft-fp/trunctfdf2.c: Likewise. * soft-fp/trunctfsf2.c: Likewise. * soft-fp/trunctfxf2.c: Likewise. * soft-fp/unorddf2.c: Likewise. * soft-fp/unordsf2.c: Likewise. * soft-fp/unordtf2.c: Likewise. From-SVN: r204489
Diffstat (limited to 'libgcc/soft-fp/unorddf2.c')
-rw-r--r--libgcc/soft-fp/unorddf2.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/libgcc/soft-fp/unorddf2.c b/libgcc/soft-fp/unorddf2.c
index 2e77f2d8ff7..641c8697251 100644
--- a/libgcc/soft-fp/unorddf2.c
+++ b/libgcc/soft-fp/unorddf2.c
@@ -30,14 +30,21 @@
#include "soft-fp.h"
#include "double.h"
-CMPtype __unorddf2(DFtype a, DFtype b)
+CMPtype
+__unorddf2 (DFtype a, DFtype b)
{
- FP_DECL_D(A); FP_DECL_D(B);
+ FP_DECL_EX;
+ FP_DECL_D (A);
+ FP_DECL_D (B);
CMPtype r;
- FP_UNPACK_RAW_D(A, a);
- FP_UNPACK_RAW_D(B, b);
- FP_CMP_UNORD_D(r, A, B);
+ FP_INIT_EXCEPTIONS;
+ FP_UNPACK_RAW_D (A, a);
+ FP_UNPACK_RAW_D (B, b);
+ FP_CMP_UNORD_D (r, A, B);
+ if (r && (FP_ISSIGNAN_D (A) || FP_ISSIGNAN_D (B)))
+ FP_SET_EXCEPTION (FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
return r;
}