2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Nov 2006 13:16:41 +0000 (13:16 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Nov 2006 13:16:41 +0000 (13:16 +0000)
    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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118855 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/combine.c

index 25b1813..9ebae9c 100644 (file)
@@ -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.
index e85e9d1..7f75f9d 100644 (file)
@@ -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