rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT and SIGN_EXTRACT.
authorRoger Sayle <roger@eyesopen.com>
Fri, 18 Apr 2003 13:30:26 +0000 (13:30 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Fri, 18 Apr 2003 13:30:26 +0000 (13:30 +0000)
* rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
and SIGN_EXTRACT.

From-SVN: r65782

gcc/ChangeLog
gcc/rtlanal.c

index 68c3d86de6c389158159c721d63736653604d929..78b0a8ac04560b019f2e053e33c2a865376df902 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-18  Roger Sayle  <roger@eyesopen.com>
+
+       * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
+       and SIGN_EXTRACT.
+
 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR optimization/7675
index 3b024adc89d0402dba162b420c19a858b27dc72e..80fff6310bf3e7f0d3c1f6fb50a0da44363f8c86 100644 (file)
@@ -1573,7 +1573,9 @@ reg_overlap_mentioned_p (x, in)
   unsigned int regno, endregno;
 
   /* Overly conservative.  */
-  if (GET_CODE (x) == STRICT_LOW_PART)
+  if (GET_CODE (x) == STRICT_LOW_PART
+      || GET_CODE (x) == ZERO_EXTRACT
+      || GET_CODE (x) == SIGN_EXTRACT)
     x = XEXP (x, 0);
 
   /* If either argument is a constant, then modifying X can not affect IN.  */