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
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to