From 15cec1c308576e361b23dc23aeab88a786489785 Mon Sep 17 00:00:00 2001 From: law Date: Sun, 29 Aug 1999 01:42:28 +0000 Subject: * jump.c (jump_optimize_1): Do not delete assignments to internal_arg_pointer. * cse.c (delete_trivially_dead_insns): Always consider a set of the internal_arg_pointer live. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28957 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/jump.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gcc/jump.c') diff --git a/gcc/jump.c b/gcc/jump.c index 7a4caaae13c..c5e27801bf2 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -290,7 +290,12 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only) might arrange to use that reg for real. */ && REGNO_LAST_NOTE_UID (REGNO (SET_DEST (set))) == INSN_UID (insn) && ! side_effects_p (SET_SRC (set)) - && ! find_reg_note (insn, REG_RETVAL, 0)) + && ! find_reg_note (insn, REG_RETVAL, 0) + /* An ADDRESSOF expression can turn into a use of the internal arg + pointer, so do not delete the initialization of the internal + arg pointer yet. If it is truly dead, flow will delete the + initializing insn. */ + && SET_DEST (set) != current_function_internal_arg_pointer) delete_insn (insn); } -- cgit v1.2.1