[LLVMdev] how to handle inline asm code when converting c++ to C

Sandeep Gupta gupta.sandeep at gmail.com
Mon Oct 4 15:00:40 PDT 2010


Hi,
 I am using llvm to convert some C++ code to C. However the C++ code has
couple of lines of assembly that is supposed to be inlined.  I am using
__asm__ directive.
However the resulting C code  has syntax errors:

main.c: In function ‘_Z23atomic_exchange_and_addPii’:
main.c:397: error: expected ‘:’ or ‘)’ before string constant
main.c: In function ‘_Z16atomic_incrementPi’:
main.c:421: error: expected ‘:’ or ‘)’ before string constant

For reference here is the line in the code that is causing the above errors:

__asm__ volatile ("lock\n\txadd %1, %0"
        :"=m"(llvm_cbe_asmtmp)"=r"(llvm_cbe_tmp__5)
        :"m"(*(llvm_cbe_tmp__6))"1"(llvm_cbe_tmp__6)"cc""memory");


I am new to the llvm so if this is not the right forum do let me know.

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


More information about the llvm-dev mailing list