(expand_abs): When OP0 and TARGET are the same pseudo register, it is
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 12 Aug 1996 03:12:40 +0000 (23:12 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 12 Aug 1996 03:12:40 +0000 (23:12 -0400)
safe to use TARGET.

From-SVN: r12619

gcc/optabs.c

index ba4b72f147d303940c3339829c94526971ea7d2d..8f4a640d996ce4a3863d005371e9ac2865c127db 100644 (file)
@@ -2118,6 +2118,13 @@ expand_abs (mode, op0, target, unsignedp, safe)
     }
 
   /* If that does not win, use conditional jump and negate.  */
+
+  /* It is safe to use the target if it is the same
+     as the source if this is also a pseudo register */
+  if (op0 == target && GET_CODE (op0) == REG
+      && REGNO (op0) >= FIRST_PSEUDO_REGISTER)
+    safe = 1;
+
   op1 = gen_label_rtx ();
   if (target == 0 || ! safe
       || GET_MODE (target) != mode