diff options
author | Rask Ingemann Lambertsen <rask@sygehus.dk> | 2006-11-15 14:16:41 +0100 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2006-11-15 13:16:41 +0000 |
commit | c78ba53a65fdd2586b93937e6a757e652149e37f (patch) | |
tree | 6f16d2e835736ab38f9954de751e2dcfd3b78e74 /gcc | |
parent | 6b97a4396460b02c90e9166776361322ee783424 (diff) | |
download | gcc-c78ba53a65fdd2586b93937e6a757e652149e37f.zip gcc-c78ba53a65fdd2586b93937e6a757e652149e37f.tar.gz gcc-c78ba53a65fdd2586b93937e6a757e652149e37f.tar.bz2 |
combine.c (likely_spilled_retval_1): Fix masking operation.
2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
J"orn Rennecke <joern.rennecke@st.com>
* combine.c (likely_spilled_retval_1): Fix masking operation.
(likely_spilled_retval_p): Use proper pattern for call to
likely_spilled_retval_1.
Co-Authored-By: J"orn Rennecke <joern.rennecke@st.com>
From-SVN: r118855
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/combine.c | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 25b1813..9ebae9c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk> + J"orn Rennecke <joern.rennecke@st.com> + + * combine.c (likely_spilled_retval_1): Fix masking operation. + (likely_spilled_retval_p): Use proper pattern for call to + likely_spilled_retval_1. + 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com> * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting. diff --git a/gcc/combine.c b/gcc/combine.c index e85e9d1..7f75f9d 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1659,7 +1659,7 @@ likely_spilled_retval_1 (rtx x, rtx set, void *data) new_mask >>= info->regno - regno; else new_mask <<= regno - info->regno; - info->mask &= new_mask; + info->mask &= ~new_mask; } /* Return nonzero iff part of the return value is live during INSN, and @@ -1695,7 +1695,8 @@ likely_spilled_retval_p (rtx insn) info.nregs = nregs; info.mask = mask; for (p = PREV_INSN (use); info.mask && p != insn; p = PREV_INSN (p)) - note_stores (PATTERN (insn), likely_spilled_retval_1, &info); + if (INSN_P (p)) + note_stores (PATTERN (p), likely_spilled_retval_1, &info); mask = info.mask; /* Check if any of the (probably) live return value registers is |