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

Steve Ellcey <sje at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vmakarov at gcc dot gnu.org
            Summary|GCC incorrectly compiles    |[4.9 Regression] GCC
                   |s_csinh function on MIPS32  |incorrectly compiles
                   |(32bit fp)                  |s_csinh function on MIPS32
                   |                            |(32bit fp)

--- Comment #5 from Steve Ellcey <sje at gcc dot gnu.org> ---
I have tracked this problem down to this checkin:

commit 284f069678f0b28c57e62b5da9b6dfed77d4d700
Author: vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Wed Oct 30 14:27:25 2013 +0000

    2013-10-30  Vladimir Makarov  <vmaka...@redhat.com>

        * regmove.c: Remove.
        * tree-pass.h (make_pass_regmove): Remove.
        * timevar.def (TV_REGMOVE): Remove.
        (etc.......)


Note that after this checkin GCC for mips does not build, it gets a 
seg fault while compiling the run-time libraries.  I did verify that
the cc1 that we have with this checkin generates the bad code though (moving
$f12 into $2 and $3, instead of putting $f12 into $3 and $f13 into $2).

The complete build starts working again with
682e13bb33f851d8d89507918abf1da1a554c5fc and that version also gives us bad
code.

Before this patch GCC did not use $f12 and $f13 at all so the issue of moving
them incorrectly does not come up.

It looks like this is new for 4.9 so I am going to mark this as a 4.9
regression.

Reply via email to