]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
combine.c (simplify_rtx, case ABS): Don't get confused by a VOIDmode operand.
authorBernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>
Fri, 19 Dec 1997 08:53:18 +0000 (08:53 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 19 Dec 1997 08:53:18 +0000 (01:53 -0700)
        * combine.c (simplify_rtx, case ABS): Don't get confused by a
        VOIDmode operand.
Another x86 codegen bug exposed by latest glibc.

From-SVN: r17152

gcc/ChangeLog
gcc/combine.c

index 48ff04514d357c6ae355312d5d10a049ec1b4b10..5c4d14fc458a54066af0166a36d3cf122043b650 100644 (file)
@@ -1,5 +1,8 @@
 Fri Dec 19 09:50:30 1997  Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>
 
+       * combine.c (simplify_rtx, case ABS): Don't get confused by a
+       VOIDmode operand.
+
        * i386.c (notice_update_cc): Remove bogus pentium GCC code.
 
 Fri Dec 19 09:39:48 1997  Jeffrey A Law  (law@cygnus.com)
index bcb6fe9c783f3c6d9e915c6b66aba2a93869b649..2fd6246e2ef394a90515b66b0491aa69d828b746 100644 (file)
@@ -4036,6 +4036,11 @@ simplify_rtx (x, op0_mode, last, in_dest)
       if (GET_CODE (XEXP (x, 0)) == NEG)
        SUBST (XEXP (x, 0), XEXP (XEXP (x, 0), 0));
 
+      /* If the mode of the operand is VOIDmode (i.e. if it is ASM_OPERANDS),
+        do nothing.  */
+      if (GET_MODE (XEXP (x, 0)) == VOIDmode)
+       break;
+
       /* If operand is something known to be positive, ignore the ABS.  */
       if (GET_CODE (XEXP (x, 0)) == FFS || GET_CODE (XEXP (x, 0)) == ABS
          || ((GET_MODE_BITSIZE (GET_MODE (XEXP (x, 0)))