From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/14669 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: [PATCH] mips: add single-instruction math functions Date: Fri, 13 Sep 2019 14:31:23 -0400 Message-ID: <20190913183123.GI9017@brightrain.aerifal.cx> References: <20190911103224.504A15C44C@mx7.valuehost.ru> Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="189635"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.5.21 (2010-09-15) Cc: musl@lists.openwall.com To: info@mobile-stream.com Original-X-From: musl-return-14685-gllmg-musl=m.gmane.org@lists.openwall.com Fri Sep 13 20:31:47 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1i8qMA-000n8r-3D for gllmg-musl@m.gmane.org; Fri, 13 Sep 2019 20:31:42 +0200 Original-Received: (qmail 22233 invoked by uid 550); 13 Sep 2019 18:31:39 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 22215 invoked from network); 13 Sep 2019 18:31:38 -0000 Content-Disposition: inline In-Reply-To: <20190911103224.504A15C44C@mx7.valuehost.ru> Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:14669 Archived-At: On Wed, Sep 11, 2019 at 01:05:04PM +0300, info@mobile-stream.com wrote: > > non-commit text: > gcc puts annoying nop into the delay slot for these functions, e.g.: > abs.d $f0,$f12 > jr $ra > nop > is there any way to get rid of this without using pure .S? > > > > SQRT.fmt exists on MIPS II+ (float), MIPS III+ (double). > > ABS.fmt exists on MIPS I+ but only cores with ABS2008 flag in FCSR > implement the required behaviour. > --- > src/math/mips/fabs.c | 16 ++++++++++++++++ > src/math/mips/fabsf.c | 16 ++++++++++++++++ > src/math/mips/sqrt.c | 16 ++++++++++++++++ > src/math/mips/sqrtf.c | 16 ++++++++++++++++ > 4 files changed, 64 insertions(+) > create mode 100644 src/math/mips/fabs.c > create mode 100644 src/math/mips/fabsf.c > create mode 100644 src/math/mips/sqrt.c > create mode 100644 src/math/mips/sqrtf.c > > diff --git a/src/math/mips/fabs.c b/src/math/mips/fabs.c > new file mode 100644 > index 00000000..0a5aa3b1 > --- /dev/null > +++ b/src/math/mips/fabs.c > @@ -0,0 +1,16 @@ > +#if !defined(__mips_soft_float) && defined(__mips_abs2008) Why is this dependent on __mips_abs2008? Rich