From: Doug Evans Date: Thu, 17 Nov 1994 20:14:21 +0000 (+0000) Subject: (expand_unop): Try subtraction from zero if there isn't a X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b82b6eea9339954d55d1e189565f8574bd95f9e3;p=gcc.git (expand_unop): Try subtraction from zero if there isn't a negate library function. From-SVN: r8485 --- diff --git a/gcc/optabs.c b/gcc/optabs.c index db68da8f9fb..724f36b58cb 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -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; }