Skip site navigation (1)Skip section navigation (2)
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>