Date: Thu, 11 Jan 2018 15:26:23 -0800 From: John Baldwin <jhb@freebsd.org> To: freebsd-mips@freebsd.org Cc: Warner Losh <imp@bsdimp.com>, Alex Zepeda <mips@inferiorhumanorgans.com> Subject: Re: Switch to hard-float by default? Message-ID: <18788446.orHcog1a1k@ralph.baldwin.cx> In-Reply-To: <CANCZdfq7QeZCHAe8P=TSgKEZj=3%2BfTAH6u1eSqxxEgOdA47DJA@mail.gmail.com> References: <CANCZdfp=82mpjO3C3L_RXrPa66nouFfgpKxtzezxoe1S2RzCzQ@mail.gmail.com> <20180111004929.GA17499@bloaty> <CANCZdfq7QeZCHAe8P=TSgKEZj=3%2BfTAH6u1eSqxxEgOdA47DJA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, January 10, 2018 08:10:23 PM Warner Losh wrote: > On Wed, Jan 10, 2018 at 5:49 PM, Alex Zepeda <mips@inferiorhumanorgans.com> > wrote: > > > > On Wed, Jan 10, 2018 at 12:54 PM, John Baldwin <jhb@freebsd.org> wrote: > > > > > > > I have been working on LLVM libunwind patches for MIPS and the last > > round > > > > has > > > > been to teach the unwinder to handle hard-float. As part of this I > > just > > > > fixed > > > > a bug which had broken HF support for N32 (in review now), and I have a > > > > working 'mipsn32hf' world that boots under qemu. However, if I add > > > > 'mipsn32hf' to the list of known targets that is yet another world to > > add > > > > to make universe. I wonder if instead we should consider switching > > MIPS to > > > > assume hard-float by default? We made that change for 32-bit arm > > recently. > > > > > > > > The simplest approach would be to add 'mipsn32hf' and then remove all > > the > > > > non '*hf' targets from Makefile.inc1 (if we only wanted to support > > HF). A > > > > more drastic approach would be to change the existing 'mips*' targets > > to > > > > assume hard-float, remove all the '*hf' targets (which are only in 12 > > > > anyway > > > > I think?) and add in explicit '*sf' targets if anyone has a need for > > them. > > > > Given that none of the *hf targets have been MFC'd are only present in > > 12 > > > > anyway, maybe the more drastic route is actually better? If we do go > > that > > > > route, does anyone have a use case for a '*sf' target? That is, is > > anyone > > > > running FreeBSD/mips on a processor that does not include an FPA? > > > > > > > > > > I think that I retired the last set of SoCs that only had soft float. > > > > > > I think this is a good idea. > > > > > > The only use case I can think of is if I'm wrong and some of the early > > > Atheros SoCs can do soft float. But then we'd just have one supported > > > soft-float platform to worry about rather than the full generality we > > have > > > now. > > > > > > Warner > > > > Are you sure? I'm pretty sure a lot of the 32 bit SoCs don't have FPUs > > standard. I'm currently poking at a MediaTek 7621 board (EdgeRouter X) > > and it doesn't have an FPU. Looking through the MediaTek documents it > > looks > > like FPUs are an optional accessory on many of their SoCs. > > > > You may be right about that... > > I think there's a good case to be made for going the <foo>sf route here for > those that need it. I can think of other alternatives, but this is the > least bad one. If it is only 32-bit CPUs that need soft-float as an option then we could perhaps have mips64 and mipsn32 assume hard-float with 'mipshf' for 32-bit hard-float and leave 'mips' as-is. It would perhaps be less confusing in the long run (and consistent with other FreeBSD platforms) to go the *sf route though and have 'mipssf'. If we don't need mipsn32sf and mips64sf then supporting both hard and soft for 32-bit mips is not quite as onerous in terms of exploding the worlds built for 'make tinderbox', etc. If there are boards people are still using that don't support hard-float we should keep soft-float around though. I think it's mostly a matter of figuring out which combinations of ABI x big/little x hard/soft that are worth supporting. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?18788446.orHcog1a1k>