Commit 5704db33 by Nick Clifton Committed by Nick Clifton

re PR target/64160 (msp430 code generation error adding 32-bit integers)

	PR target/64160
	* config/msp430/msp430.md (addsi splitter): Do not split when the
	destination partially overlaps the source.

From-SVN: r219058
parent 923d093a
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.
2014-12-22 Zhouyi Zhou <yizhouzhou@ict.ac.cn> 2014-12-22 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
* ira-build.c (ira_flattening): Add the current * ira-build.c (ira_flattening): Add the current
...@@ -402,14 +402,16 @@ ...@@ -402,14 +402,16 @@
operands[6] = msp430_subreg (HImode, operands[0], SImode, 2); operands[6] = msp430_subreg (HImode, operands[0], SImode, 2);
operands[7] = msp430_subreg (HImode, operands[1], SImode, 2); operands[7] = msp430_subreg (HImode, operands[1], SImode, 2);
operands[8] = msp430_subreg (HImode, operands[2], 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) if (GET_CODE (operands[5]) == CONST_INT)
{ operands[9] = GEN_INT (INTVAL (operands[5]) & 0xffff);
operands[9] = GEN_INT (INTVAL (operands[5]) & 0xffff);
}
else else
{ operands[9] = gen_rtx_ZERO_EXTEND (SImode, operands[5]);
operands[9] = gen_rtx_ZERO_EXTEND (SImode, operands[5]);
}
" "
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment