(expand_unop): Try subtraction from zero if there isn't a
authorDoug Evans <dje@gnu.org>
Thu, 17 Nov 1994 20:14:21 +0000 (20:14 +0000)
committerDoug Evans <dje@gnu.org>
Thu, 17 Nov 1994 20:14:21 +0000 (20:14 +0000)
negate library function.

From-SVN: r8485

gcc/optabs.c

index db68da8f9fb4943ef02222e1b5f320b396bbccf8..724f36b58cba7432914363c50a5c7eb67490c8d1 100644 (file)
@@ -2041,6 +2041,17 @@ expand_unop (mode, unoptab, op0, target, unsignedp)
        }
     }
 
+  /* If there is no negate operation, try doing a subtract from zero.
+     The US Software GOFAST library needs this.  */
+  if (unoptab == neg_optab)
+    {    
+      rtx temp;
+      temp = expand_binop (mode, sub_optab, CONST0_RTX (mode), op0,
+                          target, unsignedp, OPTAB_LIB_WIDEN);
+      if (temp)
+       return temp;
+    }
+      
   return 0;
 }
 \f