On Fri, 13 May 2022 12:57:35 PDT (-0700), ma...@embecosm.com wrote:
On Fri, 13 May 2022, Palmer Dabbelt wrote:
Yep. We should have a NEWS entry, though, as this one is user-visible and may
be tricky to sort out if it turns out there is some HW lurking around that has
the old behavior.
Hmm, should we? We only support `-misa-spec=<2.2|20190608|20191213>'
already and this update is fine for r.2.2+. If someone has pre-r.2.2 hw,
then it's been already unsupported even before this change (as from GCC 11
AFAICS). Have I missed anything?
I have no idea, but either you did or I did...
IIUC this actually changed for version 2.2 of the F extension, which
happened well after version 2.2 of the ISA manual. I see eb78171 ("F/D
extensions to v2.2") both changing the version and noting the change,
with cd20cee ("FMIN/FMAX now implement minimumNumber/maximumNumber, not
minNum/maxNum") actually making the change and also adding some notation
about this being a draft of version 2.3 of the ISA manual (which was
presumably never released as 2.3 but instead one of those other tags).
It also calls this out as F 2.0, but I'm assuming that's non-canonical
because this is a draft.
Complicating this is that there's some HW that predates that next spec
but implements some of the post-2.2 behavior like this -- IIUC that's
how the SiFive FE510-G000 (on the HiFive Unleashed) works and that's the
only hardware any of us know about from that timeframe, but in practice
there's a lot of HW floating around that we don't know of and it's going
to be all but impossible to tell what ended up implemented in that
two-year gap between releases.
I do now remember having some discussions on this and things getting so
complicated I gave up, not sure if I just care enough to chase it down
this time or if it was something else -- it's first thing on Saturday
morning so it could go either way :)