------- 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