On 2/22/25 8:10 AM, Jan Dubiec wrote:
This patch fixes SFtype to UDWtype (aka float to unsigned long long)
conversion on targets without DFmode like e.g. H8/300H. It solely relies
on SFtype->UWtype and UWtype->UDWtype conversions/casts. The existing code
in line 2218 (counter = a) assigns/casts a float which is *always* not lesser
than Wtype_MAXp1_F to an UWtype int which of course does not have enough
capacity.

2025-02-22  Jan Dubiec  <j...@o2.pl>

     PR target/116363

libgcc/ChangeLog:

    * libgcc2.c (__fixunssfDI): Fix SFtype to UDWtype conversion for targets
     without LIBGCC2_HAS_DF_MODE defined
Sorry this has taken so long to resolve. Too much to do and patches affecting something like the H8 rarely bubble to the top.

Anyway, this has been repeatedly bootstrapped & regression tested on aarch64, ppc64le and other targets. It's also been many dozens of regression testing cycles on the various embedded targets.

Given it relies on intermediate casts working it should be quite safe. If that capability doesn't work, then we've got much bigger problems.

Pushed to the trunk.  Thanks again for your patience.

Jeff

Reply via email to