aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2014-08-04 10:06:28 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2014-08-04 10:06:28 +0000
commite7a45277aa2ed5b30f96ac55bf9c1de47cb36f95 (patch)
treed43087527edd7bf3ca97c48b0e11cf87bcc14945 /gcc/doc
parent97334291c223eea459531b1c0691da465387b6a2 (diff)
downloadgcc-e7a45277aa2ed5b30f96ac55bf9c1de47cb36f95.zip
gcc-e7a45277aa2ed5b30f96ac55bf9c1de47cb36f95.tar.gz
gcc-e7a45277aa2ed5b30f96ac55bf9c1de47cb36f95.tar.bz2
[doc] Document clrsb optab and fix some inconsistencies.
* doc/md.texi (clrsb): Document. (clz): Change reference to x into operand 1. (ctz): Likewise. (popcount): Likewise. Co-Authored-By: James Greenhalgh <james.greenhalgh@arm.com> From-SVN: r213557
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/md.texi22
1 files changed, 15 insertions, 7 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index fde67d7..dd78611 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -5316,10 +5316,18 @@ generating the instruction.
The @code{ffs} built-in function of C always uses the mode which
corresponds to the C data type @code{int}.
+@cindex @code{clrsb@var{m}2} instruction pattern
+@item @samp{clrsb@var{m}2}
+Count leading redundant sign bits.
+Store into operand 0 the number of redundant sign bits in operand 1, starting
+at the most significant bit position.
+A redundant sign bit is defined as any sign bit after the first. As such,
+this count will be one less than the count of leading sign bits.
+
@cindex @code{clz@var{m}2} instruction pattern
@item @samp{clz@var{m}2}
-Store into operand 0 the number of leading 0-bits in @var{x}, starting
-at the most significant bit position. If @var{x} is 0, the
+Store into operand 0 the number of leading 0-bits in operand 1, starting
+at the most significant bit position. If operand 1 is 0, the
@code{CLZ_DEFINED_VALUE_AT_ZERO} (@pxref{Misc}) macro defines if
the result is undefined or has a useful value.
@var{m} is the mode of operand 0; operand 1's mode is
@@ -5328,8 +5336,8 @@ operand to that mode before generating the instruction.
@cindex @code{ctz@var{m}2} instruction pattern
@item @samp{ctz@var{m}2}
-Store into operand 0 the number of trailing 0-bits in @var{x}, starting
-at the least significant bit position. If @var{x} is 0, the
+Store into operand 0 the number of trailing 0-bits in operand 1, starting
+at the least significant bit position. If operand 1 is 0, the
@code{CTZ_DEFINED_VALUE_AT_ZERO} (@pxref{Misc}) macro defines if
the result is undefined or has a useful value.
@var{m} is the mode of operand 0; operand 1's mode is
@@ -5338,15 +5346,15 @@ operand to that mode before generating the instruction.
@cindex @code{popcount@var{m}2} instruction pattern
@item @samp{popcount@var{m}2}
-Store into operand 0 the number of 1-bits in @var{x}. @var{m} is the
+Store into operand 0 the number of 1-bits in operand 1. @var{m} is the
mode of operand 0; operand 1's mode is specified by the instruction
pattern, and the compiler will convert the operand to that mode before
generating the instruction.
@cindex @code{parity@var{m}2} instruction pattern
@item @samp{parity@var{m}2}
-Store into operand 0 the parity of @var{x}, i.e.@: the number of 1-bits
-in @var{x} modulo 2. @var{m} is the mode of operand 0; operand 1's mode
+Store into operand 0 the parity of operand 1, i.e.@: the number of 1-bits
+in operand 1 modulo 2. @var{m} is the mode of operand 0; operand 1's mode
is specified by the instruction pattern, and the compiler will convert
the operand to that mode before generating the instruction.