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.