Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Dec 2004 06:40:23 GMT
From:      Dan Nelson <dnelson@allantgroup.com>
To:        freebsd-sparc64@FreeBSD.org
Subject:   Re: sparc64/73782: libc is missing the _Qp_cmp function
Message-ID:  <200412240640.iBO6eNgA071736@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR sparc64/73782; it has been noted by GNATS.

From: Dan Nelson <dnelson@allantgroup.com>
To: "R. Tyler Ballance" <tyler@tamu.edu>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: sparc64/73782: libc is missing the _Qp_cmp function
Date: Fri, 24 Dec 2004 00:37:34 -0600

 In the last episode (Dec 22), R. Tyler Ballance said:
 > Isn't the functionality of the _Qp_cmp function from NetBSD done by
 > _our Qp_f function (found on line 90 of fpu_qp.c)
 
 Probably.  It looks like _Qp_cmp does them all in one function, and can
 also tell you whether two floads are unordered relative to each other. 
 If gcc can be told to never emit calls to _qp_cmp, maybe it won't be
 needed.
 
 Here's a testcase that at least on Solaris 9/gcc-3.4.2 generates a call
 _to Qp_cmp.  The C99 unordered() function from <math.h> is probably
 what is generating the call in Pike.
 
 main()
 {
 	long double a, b;
 	return __builtin_isunordered(a,b);
 }
 
 > Along those lines, how come that file defines the macro _QP_CMP and
 > then the function 'int _Qp_f(u_int *a, u_int *b)' from what I can
 > tell by glancing over the code, it's got the functionalty of the
 > _Qp_cmp function, why is it not named as such (especially if it's
 > defined in the sparc standard, i'm looking for it in there now)
 
 That's just a macro definition; it pastes the first argument of the
 macro onto "_Qp_f", so _QP_CMP(eq,0,FCC_EQ) generates a function named
 _Qp_feq.
 
 -- 
 	Dan Nelson
 	dnelson@allantgroup.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412240640.iBO6eNgA071736>