diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-02-07 22:28:19 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-02-07 22:28:19 -0500 |
commit | 2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4 (patch) | |
tree | 6b5d659cfea73d2944f991313366c392b465d311 /gcc | |
parent | 67f2de4154173a8f544d55b60048b8cb4b88a1df (diff) | |
download | gcc-2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4.zip gcc-2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4.tar.gz gcc-2a4b5f3bf0cea5b5b36db724a05f850a2813b6a4.tar.bz2 |
*** empty log message ***
From-SVN: r291
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload1.c | 26 |
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') { |