summaryrefslogtreecommitdiffstats
path: root/gcc/doc
diff options
context:
space:
mode:
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2003-04-26 20:44:30 +0000
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2003-04-26 20:44:30 +0000
commite91abd92494ecf4c26740189bce8e74d338be267 (patch)
treebfbdbe4fa86ef8e6019e8119026700d36ca99abe /gcc/doc
parent3510ca443571ab99c122cbd5b53a2f260171c6b1 (diff)
downloadppe42-gcc-e91abd92494ecf4c26740189bce8e74d338be267.tar.gz
ppe42-gcc-e91abd92494ecf4c26740189bce8e74d338be267.zip
gcc:
* doc/md.texi (cmpstr): Document additional restrictions. testsuite: * gcc.c-torture/execute/string-opt-8.c: Don't perform cmpstr checks for __pj__, but do them for !__OPTIMIZE__ and __s390__. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66116 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/md.texi9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index da7e38b0eab..c808d494e9a 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -2788,9 +2788,12 @@ The use for multiple @code{clrstr@var{m}} is as for @code{movstr@var{m}}.
Block compare instruction, with five operands. Operand 0 is the output;
it has mode @var{m}. The remaining four operands are like the operands
of @samp{movstr@var{m}}. The two memory blocks specified are compared
-byte by byte in lexicographic order. The effect of the instruction is
-to store a value in operand 0 whose sign indicates the result of the
-comparison.
+byte by byte in lexicographic order starting at the beginning of each
+string. The instruction is not allowed to prefetch more than one byte
+at a time since either string may end in the first byte and reading past
+that may access an invalid page or segment and cause a fault. The
+effect of the instruction is to store a value in operand 0 whose sign
+indicates the result of the comparison.
@cindex @code{strlen@var{m}} instruction pattern
@item @samp{strlen@var{m}}
OpenPOWER on IntegriCloud