Hi Guys. I am applying the patch below to fix PR 64160 for the MSP430.
Cheers Nick gcc/ChangeLog 2014-12-24 Nick Clifton <ni...@redhat.com> PR target/64160 * config/msp430/msp430.md (addsi splitter): Do not split when the destination partially overlaps the source. Index: config/msp430/msp430.md =================================================================== --- config/msp430/msp430.md (revision 219057) +++ config/msp430/msp430.md (working copy) @@ -402,14 +402,16 @@ operands[6] = msp430_subreg (HImode, operands[0], SImode, 2); operands[7] = msp430_subreg (HImode, operands[1], SImode, 2); operands[8] = msp430_subreg (HImode, operands[2], SImode, 2); + + /* BZ 64160: Do not use this splitter when the dest partially overlaps the source. */ + if (reg_overlap_mentioned_p (operands[3], operands[7]) + || reg_overlap_mentioned_p (operands[3], operands[8])) + FAIL; + if (GET_CODE (operands[5]) == CONST_INT) - { - operands[9] = GEN_INT (INTVAL (operands[5]) & 0xffff); - } + operands[9] = GEN_INT (INTVAL (operands[5]) & 0xffff); else - { - operands[9] = gen_rtx_ZERO_EXTEND (SImode, operands[5]); - } + operands[9] = gen_rtx_ZERO_EXTEND (SImode, operands[5]); " )