m68k.c (notice_update_cc): Handle register conflict with PRE_DEC.

* config/m68k/m68k.c (notice_update_cc): Handle register conflict
with PRE_DEC.

From-SVN: r203922
This commit is contained in:
Andreas Schwab 2013-10-22 12:36:08 +00:00 committed by Andreas Schwab
parent be194e0e30
commit 1adb2fb9ce
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2013-10-22 Andreas Schwab <schwab@suse.de>
* config/m68k/m68k.c (notice_update_cc): Handle register conflict
with PRE_DEC.
2013-10-22 Paolo Carlini <paolo.carlini@oracle.com>
* doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],

View File

@ -4209,6 +4209,13 @@ notice_update_cc (rtx exp, rtx insn)
&& cc_status.value2
&& reg_overlap_mentioned_p (cc_status.value1, cc_status.value2))
cc_status.value2 = 0;
/* Check for PRE_DEC in dest modifying a register used in src. */
if (cc_status.value1 && GET_CODE (cc_status.value1) == MEM
&& GET_CODE (XEXP (cc_status.value1, 0)) == PRE_DEC
&& cc_status.value2
&& reg_overlap_mentioned_p (XEXP (XEXP (cc_status.value1, 0), 0),
cc_status.value2))
cc_status.value2 = 0;
if (((cc_status.value1 && FP_REG_P (cc_status.value1))
|| (cc_status.value2 && FP_REG_P (cc_status.value2))))
cc_status.flags = CC_IN_68881;