[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