From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.2 Received: from mother.openwall.net (mother.openwall.net [195.42.179.200]) by inbox.vuxu.org (OpenSMTPD) with SMTP id 4999a1d8 for ; Sun, 23 Feb 2020 08:35:19 +0000 (UTC) Received: (qmail 1098 invoked by uid 550); 23 Feb 2020 08:35:18 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 1077 invoked from network); 23 Feb 2020 08:35:16 -0000 X-Authentication-Warning: key0.esi.com.au: damianm owned process doing -bs Date: Sun, 23 Feb 2020 19:35:03 +1100 (AEDT) From: Damian McGuckin To: musl@lists.openwall.com In-Reply-To: <20200223062513.GN1663@brightrain.aerifal.cx> Message-ID: References: <20200124045554.GR30412@brightrain.aerifal.cx> <20200124134402.GS30412@brightrain.aerifal.cx> <20200125001100.GY30412@brightrain.aerifal.cx> <20200203020945.GK1663@brightrain.aerifal.cx> <20200222201704.GL1663@brightrain.aerifal.cx> <20200223062513.GN1663@brightrain.aerifal.cx> User-Agent: Alpine 2.02 (LRH 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Subject: Re: [musl] Considering x86-64 fenv.s to C On Sun, 23 Feb 2020, Rich Felker wrote: > On Sun, Feb 23, 2020 at 04:41:31PM +1100, Damian McGuckin wrote: >> On Sat, 22 Feb 2020, Rich Felker wrote: >> >>> First comment: I couldn't find (maybe I missed?) what you intend fore >>> the contents of fenv-generic.c and fenv-trivial.c to be, but I don't >>> see what you want them for. fenv.c should just use the macros/inlines >>> the fenv_arch.h defines, naturally collapsing to empty functions when >>> they do nothing (for softfloat archs). >> >> I agree. I was seduced by what I thought was a better way. >> >> I assume that I can also have a >> >> fenv_arch_soft_float.h > > I don't follow what this would be for. Presumably > arch/generic/fenv_arch.h would be empty and the internal header that > includes fenv_arch.h would define dummy fenv accessor helpers in the > absence of any defined by fenv_arch.h, or similar. In arch/generic/bits/fenv.h You have #define FE_ALL_EXCEPT 0 #define FE_TONEAREST 0 typedef unsigned long fexcept_t; typedef struct { unsigned long __cw; } fenv_t; #define FE_DFL_ENV ((const fenv_t *) -1) If you effectively #include this file into the generic code, it should do as you suggest. I think. See below. It does rely on FE_INVALID not being defined. If I fudge it on my X86_64, every routine just does xorl %eax, %eax i.e. return 0 except for fesetround: .LFB12: .cfi_startproc cmpl $1, %edi sbbl %eax, %eax notl %eax ret fegetexceptflag: .LFB18: .cfi_startproc movq $0, (%rdi) xorl %eax, %eax ret Also __flt_rounds() returns 1 which means round to nearest style which it should. Regards - Damian Pacific Engineering Systems International, 277-279 Broadway, Glebe NSW 2037 Ph:+61-2-8571-0847 .. Fx:+61-2-9692-9623 | unsolicited email not wanted here Views & opinions here are mine and not those of any past or present employer