diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-11-09 20:07:35 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-11-09 20:07:35 +0000 |
commit | 31335c66ed628f4f89e0b1049a69ba35338903fe (patch) | |
tree | 06d7bab74438525a186eec6837d7829c5a3562a1 /gcc/caller-save.c | |
parent | 75f9a6ea69cef4a16b0a7f7cbd7a03f4ab51803c (diff) | |
download | gcc-31335c66ed628f4f89e0b1049a69ba35338903fe.tar.gz |
(save_call_clobbered_regs): Ensure any insns we add
are in the same basic block as the insn we added them for.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2726 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/caller-save.c')
-rw-r--r-- | gcc/caller-save.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/caller-save.c b/gcc/caller-save.c index 4c921599974..f77eda9ae06 100644 --- a/gcc/caller-save.c +++ b/gcc/caller-save.c @@ -374,6 +374,7 @@ save_call_clobbered_regs (insn_mode) for (b = 0; b < n_basic_blocks; b++) { regset regs_live = basic_block_live_at_start[b]; + rtx prev_block_last = PREV_INSN (basic_block_head[b]); REGSET_ELT_TYPE bit; int offset, i, j; int regno; @@ -490,6 +491,9 @@ save_call_clobbered_regs (insn_mode) ? insn : NEXT_INSN (insn)), 0, regno, insn_mode, MOVE_MAX / UNITS_PER_WORD); + /* If we added any insns at the start of the block, update the start + of the block to point at those insns. */ + basic_block_head[b] = NEXT_INSN (prev_block_last); } } |