This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 3/4] Add ILP32 support to aarch64
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: "Ellcey, Steve" <Steve dot Ellcey at cavium dot com>, Joseph Myers <joseph at codesourcery dot com>
- Cc: nd <nd at arm dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>
- Date: Thu, 3 Aug 2017 22:32:54 +0000
- Subject: Re: [PATCH 3/4] Add ILP32 support to aarch64
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco dot Dijkstra at arm dot com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Steve Ellecy wrote:
> I hadn't considered that. So maybe I could save the environment
> (feholdexcept), do the calculation and see which exceptions, if any,
> got raised. Then restore the original environment (fesetenv) and raise
> one or the other exceptions if needed. Does that sound like a workable
> solution?
The fenv calls are slow on fast OoO cores so are a bad idea in fast paths.
The generic implementation may well be faster... I'm not sure where the
requirement of not raising inexact comes from (I don't see it in the definition
of lrint, and we generally don't care since inexact is set by almost every FP
calculation), but if it is absolutely required you'd special case values larger
than LONG_MAX.
Wilco