On 1/1/25 6:54 AM, Jiaxun Yang wrote:
As per architecture, SuperH has a reversed NaN signalling bit
vs IEEE754-2008, it also has a NaN propgation rule similar to
MIPS style.

Use mips style float format and mode for all float types, and
correct sfp-machine header accordingly.

        PR target/111814

gcc/ChangeLog:

        * config/sh/sh-modes.def (RESET_FLOAT_FORMAT): Use mips format.
        (FLOAT_MODE): Use mips mode.

libgcc/ChangeLog:

        * config/sh/sfp-machine.h (_FP_NANFRAC_B): Reverse signaling bit.
        (_FP_NANFRAC_H): Likewise.
        (_FP_NANFRAC_S): Likewise.
        (_FP_NANFRAC_D): Likewise.
        (_FP_NANFRAC_Q): Likewise.
        (_FP_KEEPNANFRACP): Enable for target.
        (_FP_QNANNEGATEDP): Enable for target.
        (_FP_CHOOSENAN): Port from MIPS.

gcc/testsuite/ChangeLog:

        * gcc.target/sh/pr111814.c: New test.
I haven't seen an explicit ack from Oleg, but he did signal in the PR trail that he was generally on board.

In the PR trail Joseph noted some desirable changes to glibc. We're in a bit of a chicken and the egg problem if I read things correctly. But if someone doesn't go first it'll never untangle.

So I'll go ahead and ACK for the trunk. We can backport to the release branches per Joseph's recommendation after it's been on the trunk a bit. Ideally the glibc side of this would get wrapped up before that project's fall release.

Jeff

Reply via email to