[LLVMbugs] [Bug 1212] NEW: CBE doesn't strip {} delimiters from inline asm

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Feb 19 14:23:50 PST 2007


http://llvm.org/bugs/show_bug.cgi?id=1212

           Summary: CBE doesn't strip {} delimiters from inline asm
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: baldrick at free.fr


Consider the following (essentially from x86 glibc):

double atan (double x)
{
  register double value;
  __asm__ ("fld1; fpatan" : "=t" (value) : "0" (x) : "st(1)");
  return value;
}

$ gcc -c atan.c -emit-llvm
$ llc -march=c atan.o
$ gcc -c atan.o.cbe.c
atan.o.cbe.c:107: warning: conflicting types for built-in function ‘malloc’
atan.o.cbe.c: In function ‘atan’:
atan.o.cbe.c:147: error: invalid punctuation ‘{’ in constraint
atan.o.cbe.c:144: error: invalid punctuation ‘{’ in constraint

Indeed, there are extra curly brackets in the C output (they come from
the LLVM assembly):
__asm__ volatile ("fld1; 
fpatan" :"={st}"(ltmp_7_1) :"0"(ltmp_6_1) :"{st(1)}");



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list