Module Name: src Committed By: matt Date: Thu Jan 30 19:06:54 UTC 2014
Added Files: src/lib/libc/softfloat: unordtf2.c Log Message: unord for float128 long double To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/lib/libc/softfloat/unordtf2.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Added files: Index: src/lib/libc/softfloat/unordtf2.c diff -u /dev/null src/lib/libc/softfloat/unordtf2.c:1.1 --- /dev/null Thu Jan 30 19:06:54 2014 +++ src/lib/libc/softfloat/unordtf2.c Thu Jan 30 19:06:54 2014 @@ -0,0 +1,28 @@ +/* $NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $ */ + +/* + * Written by Richard Earnshaw, 2003. This file is in the Public Domain. + */ + +#include "softfloat-for-gcc.h" +#include "milieu.h" +#include "softfloat.h" + +#include <sys/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $"); +#endif /* LIBC_SCCS and not lint */ + +flag __unordtf2(float128, float128); + +flag +__unordtf2(float128 a, float128 b) +{ + /* + * The comparison is unordered if either input is a NaN. + * Test for this by comparing each operand with itself. + * We must perform both comparisons to correctly check for + * signalling NaNs. + */ + return 1 ^ (float128_eq(a, a) & float128_eq(b, b)); +}