]> gcc.gnu.org Git - gcc.git/commitdiff
md.texi (Standard Names): Clarify when movX is needed.
authorHans-Peter Nilsson <hp@axis.com>
Wed, 5 Apr 2000 21:14:53 +0000 (21:14 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Wed, 5 Apr 2000 21:14:53 +0000 (21:14 +0000)
* md.texi (Standard Names): Clarify when movX is needed.

* combine.c (simplify_comparison) [MINUS]: Do not replace
all (op (minus A B) 0) with (op A B).

From-SVN: r32940

gcc/ChangeLog
gcc/combine.c
gcc/md.texi

index 43c4ef820a2afce1484d96a02dd9ec2b3e0634a8..2fb37dce27bf14203dbcfb3ef611676a857294ef 100644 (file)
@@ -4,6 +4,11 @@ Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
        from the insn where REG_RETVAL is added.
        (emit_no_conflict_block): Ditto.
 
+       * md.texi (Standard Names): Clarify when movX is needed.
+
+       * combine.c (simplify_comparison) [MINUS]: Do not replace
+       all (op (minus A B) 0) with (op A B).
+
 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
                           J"orn Rennecke <amylaar@cygnus.co.uk>
 
index 2d46a69b54f2ed46b065912c4913925dde8b11cd..911ebbf8c9eba6464076c09a7e76d72eb8dc89fe 100644 (file)
@@ -10452,13 +10452,10 @@ simplify_comparison (code, pop0, pop1)
          break;
 
        case MINUS:
-         /* (op (minus A B) 0) -> (op A B) */
-         if (op1 == const0_rtx)
-           {
-             op1 = XEXP (op0, 1);
-             op0 = XEXP (op0, 0);
-             continue;
-           }
+         /* We used to optimize signed comparisons against zero, but that
+            was incorrect.  Unsigned comparisons against zero (GTU, LEU)
+            arrive here as equality comparisons, or (GEU, LTU) are
+            optimized away.  No need to special-case them.  */
 
          /* (eq (minus A B) C) -> (eq A (plus B C)) or
             (eq B (minus A C)), whichever simplifies.  We can only do
index c019312e4ebbe97e2827db8094fc693a561bf9bf..0b46d8164ee18a646508cf6385d0d24acb5c25ea 100644 (file)
@@ -1822,8 +1822,10 @@ to store the specified value in the part of the register that corresponds
 to mode @var{m}.  The effect on the rest of the register is undefined.
 
 This class of patterns is special in several ways.  First of all, each
-of these names @emph{must} be defined, because there is no other way
-to copy a datum from one place to another.
+of these names up to and including full word size @emph{must} be defined,
+because there is no other way to copy a datum from one place to another.
+If there are patterns accepting operands in larger modes,
+@samp{mov@var{m}} must be defined for integer modes of those sizes.
 
 Second, these patterns are not used solely in the RTL generation pass.
 Even the reload pass can generate move insns to copy values from stack
This page took 0.11445 seconds and 5 git commands to generate.