Commit 8720914b by Hans-Peter Nilsson Committed by Hans-Peter Nilsson

extend.texi (Extended Asm): Do not say that semicolon is always a valid…

extend.texi (Extended Asm): Do not say that semicolon is always a valid line-breaking character for GNU...

	* extend.texi (Extended Asm): Do not say that semicolon is always
	a valid line-breaking character for GNU assemblers.  Use
	newline-tab as the most commonly supported syntax.  Use
	newline-tab rather than semicolon in multi-insn examples.

From-SVN: r39471
parent 6d091870
2001-02-06 Hans-Peter Nilsson <hp@axis.com>
* extend.texi (Extended Asm): Do not say that semicolon is always
a valid line-breaking character for GNU assemblers. Use
newline-tab as the most commonly supported syntax. Use
newline-tab rather than semicolon in multi-insn examples.
2001-02-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 2001-02-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias). * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias).
......
...@@ -2959,17 +2959,20 @@ inputs or outputs of the @code{asm}, as the @samp{memory} clobber does ...@@ -2959,17 +2959,20 @@ inputs or outputs of the @code{asm}, as the @samp{memory} clobber does
not count as a side-effect of the @code{asm}. not count as a side-effect of the @code{asm}.
You can put multiple assembler instructions together in a single You can put multiple assembler instructions together in a single
@code{asm} template, separated either with newlines (written as @code{asm} template, separated by the characters normally used in assembly
@samp{\n}) or with semicolons if the assembler allows such semicolons. code for the system. A combination that works in most places is a newline
The GNU assembler allows semicolons and most Unix assemblers seem to do to break the line, plus a tab character to move to the instruction field
so. The input operands are guaranteed not to use any of the clobbered (written as @samp{\n\t}). Sometimes semicolons can be used, if the
assembler allows semicolons as a line-breaking character. Note that some
assembler dialects use semicolons to start a comment.
The input operands are guaranteed not to use any of the clobbered
registers, and neither will the output operands' addresses, so you can registers, and neither will the output operands' addresses, so you can
read and write the clobbered registers as many times as you like. Here read and write the clobbered registers as many times as you like. Here
is an example of multiple instructions in a template; it assumes the is an example of multiple instructions in a template; it assumes the
subroutine @code{_foo} accepts arguments in registers 9 and 10: subroutine @code{_foo} accepts arguments in registers 9 and 10:
@example @example
asm ("movl %0,r9;movl %1,r10;call _foo" asm ("movl %0,r9\n\tmovl %1,r10\n\tcall _foo"
: /* no outputs */ : /* no outputs */
: "g" (from), "g" (to) : "g" (from), "g" (to)
: "r9", "r10"); : "r9", "r10");
...@@ -2987,7 +2990,7 @@ instruction, you must include a branch and a label in the @code{asm} ...@@ -2987,7 +2990,7 @@ instruction, you must include a branch and a label in the @code{asm}
construct, as follows: construct, as follows:
@example @example
asm ("clr %0;frob %1;beq 0f;mov #1,%0;0:" asm ("clr %0\n\tfrob %1\n\tbeq 0f\n\tmov #1,%0\n0:"
: "g" (result) : "g" (result)
: "g" (input)); : "g" (input));
@end example @end example
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment