* [Ada] Swapped inputs and outputs in UG Inline Assembler section
@ 2012-03-07 14:16 Arnaud Charlet
0 siblings, 0 replies; only message in thread
From: Arnaud Charlet @ 2012-03-07 14:16 UTC (permalink / raw)
To: gcc-patches; +Cc: Eric Botcazou
[-- Attachment #1: Type: text/plain, Size: 303 bytes --]
This corrects the order of Input and Output operands in the documentation on
machine language insertions.
Tested on x86_64-pc-linux-gnu, committed on trunk
2012-03-07 Eric Botcazou <ebotcazou@adacore.com>
* gnat_ugn.texi (Inline Assembler): Fix swapping of Input and
Output operands throughout.
[-- Attachment #2: difs --]
[-- Type: text/plain, Size: 2571 bytes --]
Index: gnat_ugn.texi
===================================================================
--- gnat_ugn.texi (revision 185043)
+++ gnat_ugn.texi (working copy)
@@ -26107,8 +26107,8 @@
Result : Unsigned_32;
begin
Asm ("incl %0",
- Inputs => Unsigned_32'Asm_Input ("a", Value),
- Outputs => Unsigned_32'Asm_Output ("=a", Result));
+ Outputs => Unsigned_32'Asm_Output ("=a", Result),
+ Inputs => Unsigned_32'Asm_Input ("a", Value));
return Result;
end Incr;
@@ -26134,10 +26134,8 @@
You can have multiple input variables, in the same way that you can have more
than one output variable.
-The parameter count (%0, %1) etc, now starts at the first input
-statement, and continues with the output statements.
-When both parameters use the same variable, the
-compiler will treat them as the same %n operand, which is the case here.
+The parameter count (%0, %1) etc, still starts at the first output statement,
+and continues with the input statements.
Just as the @code{Outputs} parameter causes the register to be stored into the
target variable after execution of the assembler statements, so does the
@@ -26191,8 +26189,8 @@
Result : Unsigned_32;
begin
Asm ("incl %0",
- Inputs => Unsigned_32'Asm_Input ("a", Value),
- Outputs => Unsigned_32'Asm_Output ("=a", Result));
+ Outputs => Unsigned_32'Asm_Output ("=a", Result),
+ Inputs => Unsigned_32'Asm_Input ("a", Value));
return Result;
end Incr;
pragma Inline (Increment);
@@ -26274,8 +26272,8 @@
@group
Asm ("movl %0, %%ebx" & LF & HT &
"movl %%ebx, %1",
- Inputs => Unsigned_32'Asm_Input ("g", Var_In),
- Outputs => Unsigned_32'Asm_Output ("=g", Var_Out));
+ Outputs => Unsigned_32'Asm_Output ("=g", Var_Out),
+ Inputs => Unsigned_32'Asm_Input ("g", Var_In));
@end group
@end smallexample
@noindent
@@ -26289,8 +26287,8 @@
@group
Asm ("movl %0, %%ebx" & LF & HT &
"movl %%ebx, %1",
- Inputs => Unsigned_32'Asm_Input ("g", Var_In),
Outputs => Unsigned_32'Asm_Output ("=g", Var_Out),
+ Inputs => Unsigned_32'Asm_Input ("g", Var_In),
Clobber => "ebx");
@end group
@end smallexample
@@ -26324,8 +26322,8 @@
@group
Asm ("movl %0, %%ebx" & LF & HT &
"movl %%ebx, %1",
- Inputs => Unsigned_32'Asm_Input ("g", Var_In),
Outputs => Unsigned_32'Asm_Output ("=g", Var_Out),
+ Inputs => Unsigned_32'Asm_Input ("g", Var_In),
Clobber => "ebx",
Volatile => True);
@end group
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2012-03-07 14:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-07 14:16 [Ada] Swapped inputs and outputs in UG Inline Assembler section Arnaud Charlet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).