[Bug c/68044] New: ceil() with -O3 and -masm=intel fails to compile
janisozaur+gcc at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Oct 21 21:43:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68044
Bug ID: 68044
Summary: ceil() with -O3 and -masm=intel fails to compile
Product: gcc
Version: 5.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: janisozaur+gcc at gmail dot com
Target Milestone: ---
Created attachment 36559
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36559&action=edit
test case file
on Arch Linux with gcc 5.2.0, glibc 2.22-3
Test case to be compiled with:
gcc test.c -o test -m32 -O3 -masm=intel
the ceil() function is taken from /usr/include/bits/mathinline.h, verbatim
provided here:
__inline_mathcodeNP (ceil, __x, \
register long double __value; \
register int __ignore; \
unsigned short int __cw; \
unsigned short int __cwtmp; \
__asm __volatile ("fnstcw %3\n\t" \
"movzwl %3, %1\n\t" \
"andl $0xf3ff, %1\n\t" \
"orl $0x0800, %1\n\t" /* rounding up */ \
"movw %w1, %2\n\t" \
"fldcw %2\n\t" \
"frndint\n\t" \
"fldcw %3" \
: "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), \
"=m" (__cw) \
: "0" (__x)); \
return __value)
This works fine without -masm=intel
More information about the Gcc-bugs
mailing list