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>
|
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
|
* 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;
|
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:
|
try_libcall:
|
||||||
/* Now try a library call in this mode. */
|
/* Now try a library call in this mode. */
|
||||||
if (unoptab->handlers[(int) mode].libfunc)
|
if (unoptab->handlers[(int) mode].libfunc)
|
||||||
|
|
Loading…
Reference in New Issue