mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-14 08:30:43 +08:00
m68k.c (notice_update_cc): Clear cc status for shifts and rotates.
* config/m68k/m68k.c (notice_update_cc): Clear cc status for shifts and rotates. From-SVN: r73073
This commit is contained in:
parent
03d1cb6dc6
commit
a126dc3a79
@ -1,3 +1,8 @@
|
||||
2003-10-29 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/m68k/m68k.c (notice_update_cc): Clear cc status for
|
||||
shifts and rotates.
|
||||
|
||||
2003-10-30 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* config/rs6000/rs6000.md: Remove duplicate pattern.
|
||||
|
@ -2595,12 +2595,17 @@ notice_update_cc (rtx exp, rtx insn)
|
||||
if (cc_status.value2 != 0)
|
||||
switch (GET_CODE (cc_status.value2))
|
||||
{
|
||||
case PLUS: case MINUS: case MULT:
|
||||
case DIV: case UDIV: case MOD: case UMOD: case NEG:
|
||||
#if 0 /* These instructions always clear the overflow bit */
|
||||
case ASHIFT: case ASHIFTRT: case LSHIFTRT:
|
||||
case ROTATE: case ROTATERT:
|
||||
#endif
|
||||
/* These instructions always clear the overflow bit, and set
|
||||
the carry to the bit shifted out. */
|
||||
/* ??? We don't currently have a way to signal carry not valid,
|
||||
nor do we check for it in the branch insns. */
|
||||
CC_STATUS_INIT;
|
||||
break;
|
||||
|
||||
case PLUS: case MINUS: case MULT:
|
||||
case DIV: case UDIV: case MOD: case UMOD: case NEG:
|
||||
if (GET_MODE (cc_status.value2) != VOIDmode)
|
||||
cc_status.flags |= CC_NO_OVERFLOW;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user