The MIPS O32 FPXX ABI exposes a bug in regcprop where call part clobbered information is not checked when calculating clobbered registers. This is only one of many places that regs_invalidated_by_call is used without also checking HARD_REGNO_CALL_PART_CLOBBERED. This patch ensures that a part clobbered register is treated as if fully clobbered.
Other places where this same issue occurs are not so easily fixed as they do not always have mode information available when calculating clobbered registers. A solution to the larger problem will be significantly more involved. Exposed in a testcase as part of: http://gcc.gnu.org/ml/gcc-patches/2014-05/msg00401.html Regards, Matthew 2014-05-07 Matthew Fortune <matthew.fort...@imgtec.com> gcc/ * regcprop.c (copyprop_hardreg_forward_1): Account for HARD_REGNO_CALL_PART_CLOBBERED.
0001-copyprop-part-clobbered.patch
Description: 0001-copyprop-part-clobbered.patch