aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-02-07 22:28:19 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1992-02-07 22:28:19 -0500
commit2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4 (patch)
tree6b5d659cfea73d2944f991313366c392b465d311
parent67f2de4154173a8f544d55b60048b8cb4b88a1df (diff)
downloadgcc-2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4.zip
gcc-2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4.tar.gz
gcc-2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4.tar.bz2
*** empty log message ***
From-SVN: r291
-rw-r--r--gcc/reload1.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 566b18f..3121b8b 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')
{