diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-20 10:03:36 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-20 10:03:36 +0000 |
commit | 7f8cb26b7cd1706b4f293f6d991bdc9502e5fbe1 (patch) | |
tree | 5f9c3ba9af36829f0d25dc8c9d0972426410d458 /gcc/sched-deps.c | |
parent | cb77e60d0bf54f3cfa78ed62af62a22db8eb1c61 (diff) | |
download | gcc-7f8cb26b7cd1706b4f293f6d991bdc9502e5fbe1.tar.gz |
* sched-deps.c (sched_analyze): Check HARD_REGNO_CALL_PART_CLOBBERED.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59300 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r-- | gcc/sched-deps.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index cf762cccb58..98b0732291b 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -1287,8 +1287,12 @@ sched_analyze (deps, head, tail) SET_REGNO_REG_SET (reg_pending_sets, i); SET_REGNO_REG_SET (reg_pending_uses, i); } - /* Other call-clobbered hard regs may be clobbered. */ - else if (TEST_HARD_REG_BIT (regs_invalidated_by_call, i)) + /* Other call-clobbered hard regs may be clobbered. + Since we only have a choice between 'might be clobbered' + and 'definitely not clobbered', we must include all + partly call-clobbered registers here. */ + else if (HARD_REGNO_CALL_PART_CLOBBERED (i, reg_raw_mode[i]) + || TEST_HARD_REG_BIT (regs_invalidated_by_call, i)) SET_REGNO_REG_SET (reg_pending_clobbers, i); /* We don't know what set of fixed registers might be used by the function, but it is certain that the stack pointer |