optabs.c (expand_unop): Try implementing negation using subtraction from zero.
* optabs.c (expand_unop): Try implementing negation using subtraction from zero. From-SVN: r81933
This commit is contained in:
parent
15581992c8
commit
d83aba0f8b
@ -1,3 +1,8 @@
|
||||
2004-05-17 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* optabs.c (expand_unop): Try implementing negation using subtraction
|
||||
from zero.
|
||||
|
||||
2004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
* pa.md: Fix typo from last change. Remove DFmode move to and from
|
||||
|
@ -2737,6 +2737,15 @@ expand_unop (enum machine_mode mode, optab unoptab, rtx op0, rtx target,
|
||||
return temp;
|
||||
}
|
||||
|
||||
/* If there is no negation pattern, try subtracting from zero. */
|
||||
if (unoptab == neg_optab && class == MODE_INT)
|
||||
{
|
||||
temp = expand_binop (mode, sub_optab, CONST0_RTX (mode), op0,
|
||||
target, unsignedp, OPTAB_DIRECT);
|
||||
if (temp)
|
||||
return temp;
|
||||
}
|
||||
|
||||
try_libcall:
|
||||
/* Now try a library call in this mode. */
|
||||
if (unoptab->handlers[(int) mode].libfunc)
|
||||
|
Loading…
Reference in New Issue
Block a user