From 2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 7 Feb 1992 22:28:19 -0500 Subject: [PATCH] *** empty log message *** From-SVN: r291 --- gcc/reload1.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/gcc/reload1.c b/gcc/reload1.c index 566b18fbb23..3121b8b0210 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -2163,9 +2163,16 @@ set_label_offsets (x, insn, initial_p) else if (x == insn && (tem = prev_nonnote_insn (insn)) != 0 && GET_CODE (tem) == BARRIER) - for (i = 0; i < NUM_ELIMINABLE_REGS; i++) - reg_eliminate[i].offset = reg_eliminate[i].previous_offset - = offsets_at[CODE_LABEL_NUMBER (x)][i]; + { + num_not_at_initial_offset = 0; + for (i = 0; i < NUM_ELIMINABLE_REGS; i++) + { + reg_eliminate[i].offset = reg_eliminate[i].previous_offset + = offsets_at[CODE_LABEL_NUMBER (x)][i]; + if (reg_eliminate[i].offset != reg_eliminate[i].initial_offset) + num_not_at_initial_offset++; + } + } else /* If neither of the above cases is true, compare each offset @@ -3215,9 +3222,16 @@ reload_as_needed (first, live_known) /* If we pass a label, copy the offsets from the label information into the current offsets of each elimination. */ if (GET_CODE (insn) == CODE_LABEL) - for (i = 0; i < NUM_ELIMINABLE_REGS; i++) - reg_eliminate[i].offset = reg_eliminate[i].previous_offset - = offsets_at[CODE_LABEL_NUMBER (insn)][i]; + { + num_not_at_initial_offset = 0; + for (i = 0; i < NUM_ELIMINABLE_REGS; i++) + { + reg_eliminate[i].offset = reg_eliminate[i].previous_offset + = offsets_at[CODE_LABEL_NUMBER (insn)][i]; + if (reg_eliminate[i].offset != reg_eliminate[i].initial_offset) + num_not_at_initial_offset++; + } + } else if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') {