Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2005 10:17:49 +0200
From:      Stefan Farfeleder <stefan@fafoe.narf.at>
To:        Marius Strobl <marius@alchemy.franken.de>
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/lib/libc/sparc64/fpu fpu_qp.c
Message-ID:  <20050623081744.GO9313@wombat.fafoe.narf.at>
In-Reply-To: <20050622202802.B54619@newtrinity.zeist.de>
References:  <200506212113.j5LLD8Zi074085@repoman.freebsd.org> <20050622202802.B54619@newtrinity.zeist.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jun 22, 2005 at 08:28:02PM +0200, Marius Strobl wrote:
> On Tue, Jun 21, 2005 at 09:13:07PM +0000, Stefan Farfeleder wrote:
> > stefanf     2005-06-21 21:13:07 UTC
> > 
> >   Add the functions _Qp_cmp() and _Qp_cmpe() as described in the Sparc
> >   Compliance Definition.  On sparc64, GCC emits _Qp_cmp() calls for its
> >   __builtin_isfoo() functions which are used for C99's isfoo() macros.
> 
> Thanks!

You're welcome.  Another issue is that the SCD states ``Exceptions mimic
fcmpeq.'' for _Qp_{fge,fgt,fle,flt}().  This means they should set the
cmpe flag when calling __fpu_compare().

Index: fpu_qp.c
===================================================================
RCS file: /home/ncvs/src/lib/libc/sparc64/fpu/fpu_qp.c,v
retrieving revision 1.7
diff -I.svn -u -r1.7 fpu_qp.c
--- fpu_qp.c	21 Jun 2005 21:13:07 -0000	1.7
+++ fpu_qp.c	23 Jun 2005 08:06:01 -0000
@@ -139,10 +139,10 @@
 _QP_QTOT(ux,	x,	u_long,	&u.a)
 
 _QP_CMP(feq,	0,	FCC_EQ)
-_QP_CMP(fge,	0,	FCC_GE)
-_QP_CMP(fgt,	0,	FCC_GT)
-_QP_CMP(fle,	0,	FCC_LE)
-_QP_CMP(flt,	0,	FCC_LT)
+_QP_CMP(fge,	1,	FCC_GE)
+_QP_CMP(fgt,	1,	FCC_GT)
+_QP_CMP(fle,	1,	FCC_LE)
+_QP_CMP(flt,	1,	FCC_LT)
 _QP_CMP(fne,	0, 	FCC_NE)
 _QP_CMP(cmp,	0, 	FCC_ID)
 _QP_CMP(cmpe,	1, 	FCC_ID)

Stefan



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