inline assembly
Scott Wood
scottwood at freescale.com
Thu Jun 5 05:45:04 EST 2008
Kevin Diggs wrote:
> Hi,
>
> When doing inline assembly, is there a way to get the compiler to
> assign "extra" (one not specified for inputs and outputs) registers? In
> the following:
>
> __asm__ __volatile__ (
> "addi 5,%1,-1\n"
> "andc 5,%1,5\n"
> "cntlzw 5,5\n"
> "subfic %0,5,31":
> "=r"(j):
> "r"(i)
> );
>
> Can I get the compiler to choose a register for r5?
Yes, like this:
int tmp;
asm volatile("addi %1, %2, -1;"
"andc %1, %2, %1;"
"cntlzw %1, %1;"
"subfic %0, %1, 31" : "=r" (j), "=&r" (tmp) : "r" (i));
However, it'd be better to let the compiler do more, by just using the
existing cntlzw() function.
-Scott
More information about the Linuxppc-dev
mailing list