General observation: I see no documentation (no changes to .texi files) 
anywhere in this patch series.  I also don't see updates to config-list.mk 
to add RISC-V targets to the set that builds.  (You should make sure the 
port builds cleanly when built with current mainline GCC and configured 
with --enable-werror-always; config-list.mk uses --enable-werror-always 
and it's a rough way of making sure in a cross build that there aren't 
warnings that would make a native bootstrap fail.  It should build cleanly 
for both 32-bit and 64-bit hosts.)

See sourcebuild.texi, "Back End", for a description of various places that 
may need updating for a new port, including lots of things that need 
documenting if your port has them (not all ports will have all those 
target-specific features).  That includes website updates.

Regarding binutils support: to be clear, does 2.28 branch have all the 
features / fixes known to be required at present and will subsequent fixes 
go on there as needed?

Regarding Linux kernel support: how confident are you that the signal 
frame ABI, to the extent that this patch embeds it in linux-unwind.h, will 
remain unchanged?  To what extent has that port been reviewed by Linux 
kernel people familiar with the right way to add new Linux kernel ports?

Looking at the architecture specification to resolve some questions about 
the port, I see the statement (section 7.4 Subnormal Arithmetic) "In the 
parlance of the IEEE standard, tininess is detected after rounding---that 
is, the underflow exception is raised only if the rounded result is 
subnormal, even if the unrounded result would have been subnormal.".  
That "that is" is *not* an accurate description of what after-rounding 
tininess detection means.  After-rounding tininess detection means the 
result is tiny if the result *rounded to normal precision but with 
infinite exponent range* has an exponent outside the normal range.  This 
means that some results that round to the least normal value (given the 
actual finite exponent range) count as tiny (the exact range of results 
with that property depends on the rounding mode - in round-to-nearest, for 
example, if s is the greatest subnormal and s+u is the least normal, it's 
the half-open interval [s + u/2, s + 3u/4)).  If your processor behaves as 
described in "that is", that does not conform to IEEE 754-2008 and you 
won't get clean glibc test results, for example.

I also see the architecture has roundTiesToAway support for your hardware 
binary floating point.  Do you intend to support that rounding mode from C 
code?  (I expect a fair number of glibc changes would be needed to do so, 
although the soft-fp part shouldn't be that big.)

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to