------- Comment #2 from kkojima at gcc dot gnu dot org  2009-08-09 22:44 -------
I've confirmed that 4.5 has the same problem and 4.3 doesn't.

> In this code, "tst r9,r9" is moved to wrong place as if
> "t" bit is not clobbered in __udiv_qrnnd_16.
> 
> I guessed that missing "t" bit constraint in udiv_qrnnd macro
> caused this problem. So I tried following patch, but there was
> no effect.

I think you are right.  Also your patch solves the problem in my
tests.  Did you make strtod_l.i change as your patch does for
longlong.h?


-- 

kkojima at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |wrong-code
      Known to fail|                            |4.4.1 4.5.0
      Known to work|                            |4.3.4
           Priority|P3                          |P4
   Last reconfirmed|0000-00-00 00:00:00         |2009-08-09 22:44:43
               date|                            |
            Summary|[4.4 Regression] SH:        |[4.4/4.5 Regression] SH:
                   |miscompilation for sh4-linux|miscompilation for sh4-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41015

Reply via email to