[Top] [All Lists]

Re: some question about Extended Asm

To: loody <>
Subject: Re: some question about Extended Asm
From: "Maciej W. Rozycki" <>
Date: Sun, 10 Jan 2010 17:14:48 +0000 (GMT)
Cc: Linux MIPS Mailing List <>
In-reply-to: <>
References: <> <> <>
User-agent: Alpine 2.00 (LFD 1167 2008-08-23)
On Mon, 11 Jan 2010, loody wrote:

> I have some question about extended assembly in mips
> 1. is mips assembly in AT&T syntax?
>     from the document I google from the web, they emphasize that the
> GNU C compiler use AT&T syntax, and they list some example about intel
> instructions.

 I'm not sure if the "AT&T syntax" term has any meaning except for Intel 
architecture processors.

> But when I write the extended assembly in mips, I find it seem not AT&T 
> syntax.
> The order of input and output is still the same as original mips instructions.
> Does that mean GNU compiler for mips doesn't use AT&T syntax?

 GNU as for MIPS processors uses the same syntax original tools provided 
by MIPS Computer Systems and Silicon Graphics companies used.  This syntax 
is used throughout all the documentation available and has nothing to do 
with the syntax used for Intel architecture processors (in particular, the 
specific instruction and not the data flow direction determines the order 
of operands).

> 2. how do we know which parameter is for %0,%1,etc?
> suppose my src is as below
>  asm(
>                 "add %0, %1, %2\n"
>                 "sub %0,%2, %1\n"
>                 :"=r" (count)
>                 :"r" (temp), "r" (count)
>         );
> how do I know which parameter is %0, %1 and %2?
> there 2 variable, count and temp above, but in assembly it use 3 parameters.
> how to match them?

 See the Extended Asm chapter of the GCC manual.


<Prev in Thread] Current Thread [Next in Thread>