+Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz>
+
+ * function.c (epilogue_done): Pass whole insn to record_insns.
+
Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz>
* cse.c (CSE_ADDRESS_COST): Remove.
|| GET_CODE (reg) == ZERO_EXTRACT
|| GET_CODE (reg) == SIGN_EXTRACT
|| GET_CODE (reg) == STRICT_LOW_PART);
+ if (GET_CODE (reg) == MEM)
+ break;
not_dead = REGNO_REG_SET_P (pbi->reg_live, REGNO (reg));
/* FALLTHRU */
basic_block bb = e->src;
rtx insn = bb->end;
rtx i;
+ rtx newinsn;
if (GET_CODE (insn) != CALL_INSN
|| ! SIBLING_CALL_P (insn))
end_sequence ();
i = PREV_INSN (insn);
- emit_insn_before (seq, insn);
+ newinsn = emit_insn_before (seq, insn);
/* Update the UID to basic block map. */
for (i = NEXT_INSN (i); i != insn; i = NEXT_INSN (i))
/* Retain a map of the epilogue insns. Used in life analysis to
avoid getting rid of sibcall epilogue insns. */
- record_insns (seq, &sibcall_epilogue);
+ record_insns (GET_CODE (seq) == SEQUENCE
+ ? seq : newinsn, &sibcall_epilogue);
}
#endif
}