From 60ffd2fe0956983ed8a8ea30be2a3c6790408fb2 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Tue, 27 Jan 2004 18:03:17 +0000 Subject: [PATCH] rtl.texi (Arithmetic): Rewrite entries for PLUS, SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS. * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS, SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS. From-SVN: r76735 --- gcc/ChangeLog | 5 ++++ gcc/doc/rtl.texi | 68 +++++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 33 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a6c57b6130..e0eef50673d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-01-27 Zack Weinberg + + * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS, + SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS. + 2004-01-27 Zack Weinberg PR 7198 diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index 6fcce634f81..49af4f3add2 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -1749,51 +1749,53 @@ second operand. @table @code @findex plus -@cindex RTL addition +@findex ss_plus +@findex us_plus @cindex RTL sum +@cindex RTL addition +@cindex RTL addition with signed saturation +@cindex RTL addition with unsigned saturation @item (plus:@var{m} @var{x} @var{y}) -Represents the sum of the values represented by @var{x} and @var{y} -carried out in machine mode @var{m}. +@itemx (ss_plus:@var{m} @var{x} @var{y}) +@itemx (us_plus:@var{m} @var{x} @var{y}) -@findex lo_sum -@item (lo_sum:@var{m} @var{x} @var{y}) -Like @code{plus}, except that it represents that sum of @var{x} and the -low-order bits of @var{y}. The number of low order bits is -machine-dependent but is normally the number of bits in a @code{Pmode} -item minus the number of bits set by the @code{high} code -(@pxref{Constants}). +These three expressions all represent the sum of the values +represented by @var{x} and @var{y} carried out in machine mode +@var{m}. They differ in their behavior on overflow of integer modes. +@code{plus} wraps round modulo the width of @var{m}; @code{ss_plus} +saturates at the maximum signed value representable in @var{m}; +@code{us_plus} saturates at the maximum unsigned value. -@var{m} should be @code{Pmode}. +@c ??? What happens on overflow of floating point modes? -@findex minus -@cindex RTL subtraction -@cindex RTL difference -@item (minus:@var{m} @var{x} @var{y}) -Like @code{plus} but represents subtraction. - -@findex ss_plus -@cindex RTL addition with signed saturation -@item (ss_plus:@var{m} @var{x} @var{y}) +@findex lo_sum +@item (lo_sum:@var{m} @var{x} @var{y}) -Like @code{plus}, but using signed saturation in case of an overflow. +This expression represents the sum of @var{x} and the low-order bits +of @var{y}. It is used with @code{high} (@pxref{Constants}) to +represent the typical two-instruction sequence used in RISC machines +to reference a global memory location. -@findex us_plus -@cindex RTL addition with unsigned saturation -@item (us_plus:@var{m} @var{x} @var{y}) +The number of low order bits is machine-dependent but is +normally the number of bits in a @code{Pmode} item minus the number of +bits set by @code{high}. -Like @code{plus}, but using unsigned saturation in case of an overflow. +@var{m} should be @code{Pmode}. +@findex minus @findex ss_minus -@cindex RTL addition with signed saturation -@item (ss_minus:@var{m} @var{x} @var{y}) - -Like @code{minus}, but using signed saturation in case of an overflow. - @findex us_minus -@cindex RTL addition with unsigned saturation -@item (us_minus:@var{m} @var{x} @var{y}) +@cindex RTL difference +@cindex RTL subtraction +@cindex RTL subtraction with signed saturation +@cindex RTL subtraction with unsigned saturation +@item (minus:@var{m} @var{x} @var{y}) +@itemx (ss_minus:@var{m} @var{x} @var{y}) +@itemx (us_minus:@var{m} @var{x} @var{y}) -Like @code{minus}, but using unsigned saturation in case of an overflow. +These three expressions represent the result of subtracting @var{y} +from @var{x}, carried out in mode @var{M}. Behavior on overflow is +the same as for the three variants of @code{plus} (see above). @findex compare @cindex RTL comparison -- 2.30.2