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.

Attachment: 0001-copyprop-part-clobbered.patch
Description: 0001-copyprop-part-clobbered.patch

Reply via email to