diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-12-21 13:59:01 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-12-21 13:59:01 +0000 |
commit | 2d5f6d3c1e2780698d60b53144be4d7eb7df2a02 (patch) | |
tree | 4ef5de50928d3637f7cf6e978a5fc2ea84332013 /gcc/doc/tm.texi | |
parent | 89011aed2df43a3ea68ba208d8cacdb9d52a61c1 (diff) | |
download | gcc-2d5f6d3c1e2780698d60b53144be4d7eb7df2a02.tar.gz |
2012-12-21 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 194659 using svnmerge.py
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@194661 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/tm.texi')
-rw-r--r-- | gcc/doc/tm.texi | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 3ab99871c3b..75aa8672758 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -6024,25 +6024,27 @@ You should define this macro if and only if you define extra CC modes in @file{@var{machine}-modes.def}. @end defmac -@defmac CANONICALIZE_COMPARISON (@var{code}, @var{op0}, @var{op1}) +@deftypefn {Target Hook} void TARGET_CANONICALIZE_COMPARISON (int *@var{code}, rtx *@var{op0}, rtx *@var{op1}, bool @var{op0_preserve_value}) (@var{code}, @var{op0}, @var{op1}, @var{op0_preserve_value}) On some machines not all possible comparisons are defined, but you can convert an invalid comparison into a valid one. For example, the Alpha does not have a @code{GT} comparison, but you can use an @code{LT} comparison instead and swap the order of the operands. -On such machines, define this macro to be a C statement to do any -required conversions. @var{code} is the initial comparison code -and @var{op0} and @var{op1} are the left and right operands of the -comparison, respectively. You should modify @var{code}, @var{op0}, and -@var{op1} as required. +On such machines, implement this hook to do any required conversions. +@var{code} is the initial comparison code and @var{op0} and @var{op1} +are the left and right operands of the comparison, respectively. If +@var{op0_preserve_value} is @code{true} the implementation is not +allowed to change the value of @var{op0} since the value might be used +in RTXs which aren't comparisons. E.g. the implementation is not +allowed to swap operands in that case. GCC will not assume that the comparison resulting from this macro is valid but will see if the resulting insn matches a pattern in the @file{md} file. -You need not define this macro if it would never change the comparison -code or operands. -@end defmac +You need not to implement this hook if it would never change the +comparison code or operands. +@end deftypefn @defmac REVERSIBLE_CC_MODE (@var{mode}) A C expression whose value is one if it is always safe to reverse a |