From 8720914be356a666c811a881e02ce92c3c9e4f92 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Mon, 5 Feb 2001 23:57:14 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/extend.texi | 15 +++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2d78026ecc1..5556e8385cd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2001-02-06 Hans-Peter Nilsson + + * 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 * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias). diff --git a/gcc/extend.texi b/gcc/extend.texi index 0c42d959b32..c1d523378ee 100644 --- a/gcc/extend.texi +++ b/gcc/extend.texi @@ -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}. You can put multiple assembler instructions together in a single -@code{asm} template, separated either with newlines (written as -@samp{\n}) or with semicolons if the assembler allows such semicolons. -The GNU assembler allows semicolons and most Unix assemblers seem to do -so. The input operands are guaranteed not to use any of the clobbered +@code{asm} template, separated by the characters normally used in assembly +code for the system. A combination that works in most places is a newline +to break the line, plus a tab character to move to the instruction field +(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 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 subroutine @code{_foo} accepts arguments in registers 9 and 10: @example -asm ("movl %0,r9;movl %1,r10;call _foo" +asm ("movl %0,r9\n\tmovl %1,r10\n\tcall _foo" : /* no outputs */ : "g" (from), "g" (to) : "r9", "r10"); @@ -2987,7 +2990,7 @@ instruction, you must include a branch and a label in the @code{asm} construct, as follows: @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" (input)); @end example -- 2.30.2