BLOCK_NUM (insn) = i;
- /* Don't separare a CALL_INSN from following CLOBBER insns. This is
+ /* Don't separate a CALL_INSN from following CLOBBER insns. This is
a kludge that will go away when each CALL_INSN records its
USE and CLOBBERs. */
if (GET_CODE (insn) == JUMP_INSN
&& GET_CODE (PATTERN (insn)) == SET
&& SET_DEST (PATTERN (insn)) == pc_rtx
- && GET_CODE (SET_SRC (PATTERN (insn))) == REG)
+ && (GET_CODE (SET_SRC (PATTERN (insn))) == REG
+ || GET_CODE (SET_SRC (PATTERN (insn))) == MEM))
{
rtx x;
for (x = label_value_list; x; x = XEXP (x, 1))
NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
NOTE_SOURCE_FILE (insn) = 0;
+ /* CC0 is now known to be dead. Either this insn used it,
+ in which case it doesn't anymore, or clobbered it,
+ so the next insn can't use it. */
+ cc0_live = 0;
+
/* If this insn is copying the return value from a library call,
delete the entire library call. */
if (libcall_is_dead)