[LLVMdev] Question to use inline assemble in X86

Heyu Zhu zhu.heyu at gmail.com
Tue Dec 29 03:09:14 PST 2009


Hi everyone,

I try to add an instruction to x86. The instruction is a
multiply-add instruction
MULADD A, B, C; //A = A + B * C.
I use the instruction by inline assemble as below

int x, y, z;
.....  ....
x = 0;
asm("MULADD %0, %1, %2":"=r"(x):"0"(x), "r"(y), "r"(z));
..... ....

The backend does allocate registers %edx, %edi, %esi for x,y, z
respectively,
but its assemble output is
        MULADD %edx, %edx, %esi
I expects it could output:
        MULADD %edx, %edi, %esi

What's  matter with my constraints of inline asm?

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091229/b5e47b29/attachment.html>


More information about the llvm-dev mailing list