summaryrefslogtreecommitdiff
path: root/gcc/doc/extend.texi
diff options
context:
space:
mode:
authorhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-23 12:17:53 +0000
committerhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-23 12:17:53 +0000
commit3d52d3059d783b8939e882ae1369314fb0a7f80d (patch)
tree56ebdba2b6bc8f32c6001ce4d254da31225d2b75 /gcc/doc/extend.texi
parent417e646b014743998818d252a93ab79846d60b56 (diff)
downloadgcc-3d52d3059d783b8939e882ae1369314fb0a7f80d.tar.gz
* doc/extend.texi (Extended Asm): Clarify that overlap between
asm-declared register variables used in an asm and the asm clobber list is not allowed. * stmt.c (decl_conflicts_with_clobbers_p): New function. (expand_asm_operands): Keep track of clobbered registers. Call decl_conflicts_with_clobbers_p for each input and output operand. If no conflicts found before, also do conflict sanity check when emitting clobbers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57437 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/extend.texi')
-rw-r--r--gcc/doc/extend.texi5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 68b306c4b79..9e121e4fc09 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -3700,7 +3700,10 @@ asm volatile ("movc3 %0,%1,%2"
You may not write a clobber description in a way that overlaps with an
input or output operand. For example, you may not have an operand
describing a register class with one member if you mention that register
-in the clobber list. There is no way for you to specify that an input
+in the clobber list. Variables declared to live in specific registers
+(@pxref{Explicit Reg Vars}), and used as asm input or output operands must
+have no part mentioned in the clobber description.
+There is no way for you to specify that an input
operand is modified without also specifying it as an output
operand. Note that if all the output operands you specify are for this
purpose (and hence unused), you will then also need to specify