re PR target/53272 (wrong condition-codes for strict-low-part destination and small-integer source)

PR target/53272
	* config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
	when a constant source operand matches an "I" constraint, the "no
	CC0 change" applies to a register-destination only, not a
	strict_low_part-destination.

From-SVN: r187285
This commit is contained in:
Hans-Peter Nilsson 2012-05-08 15:27:03 +00:00 committed by Hans-Peter Nilsson
parent e91f7c80f6
commit f64968b6f5
2 changed files with 9 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2012-05-08 Hans-Peter Nilsson <hp@axis.com>
PR target/53272
* config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
when a constant source operand matches an "I" constraint, the "no
CC0 change" applies to a register-destination only, not a
strict_low_part-destination.
2012-05-07 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
Backport from mainline:

View File

@ -1695,6 +1695,7 @@ cris_normal_notice_update_cc (rtx exp, rtx insn)
&& (REGNO (SET_SRC (exp))
> CRIS_LAST_GENERAL_REGISTER))
|| (TARGET_V32
&& REG_P (SET_DEST (exp))
&& satisfies_constraint_I (SET_SRC (exp))))
{
/* There's no CC0 change for this case. Just check