This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Commit: MSP430: Fix addsi splitter (PR 64160)
- From: Nick Clifton <nickc at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 24 Dec 2014 13:36:02 +0000
- Subject: Commit: MSP430: Fix addsi splitter (PR 64160)
- Authentication-results: sourceware.org; auth=none
Hi Guys.
I am applying the patch below to fix PR 64160 for the MSP430.
Cheers
Nick
gcc/ChangeLog
2014-12-24 Nick Clifton <nickc@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]);
"
)