This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/32496] New: fno-builtin-* not working
- From: "malitzke at metronets dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Jun 2007 13:41:46 -0000
- Subject: [Bug c/32496] New: fno-builtin-* not working
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
_______ added for emphasis
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.3.0/configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --disable-nls --disable-multilib --disable-werror
--disable-libunwind-exceptions --disable-checking --disable-decimal-float
--enable-shared --enable-tls --enable-threads=posix --enable-bootstrap
--enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++,fortran
--with-cpu=pentium3 --with-system-zlib
Thread model: posix
gcc version 4.3.0 20070624 (experimental)
/usr/libexec/gcc/i686-pc-linux-gnu/4.3.0/cc1 -E -quiet -v rmg3.c
-mtune=pentium3 ______-fno-builtin-__udivdi3______ -O2 -fpch-preprocess -o
rmg3.i
ignoring nonexistent directory
"/usr/lib/gcc/i686-pc-linux-gnu/4.3.0/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/lib/gcc/i686-pc-linux-gnu/4.3.0/include
/usr/lib/gcc/i686-pc-linux-gnu/4.3.0/include-fixed
/usr/include
End of search list.
/usr/libexec/gcc/i686-pc-linux-gnu/4.3.0/cc1 -fpreprocessed rmg3.i -quiet
-dumpbase rmg3.c -mtune=pentium3 -auxbase-strip rmg3_nobuiltin.s -O2 -version
______-fno-builtin-__udivdi3______ -o rmg3_nobuiltin.s
GNU C version 4.3.0 20070624 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 4.3.0 20070624 (experimental), GMP version
4.2.1, MPFR version 2.2.1-p5.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 081e2e4443ad5c116718923aa10a21d4
.file "rmg3.c"
______.globl __udivdi3_______
.text
.p2align 4,,15
.globl rmg
.type rmg, @function
rmg:
pushl %ebp
movl %esp, %ebp
pushl %edi
movl $-1000000000, %edi
pushl %ebx
subl $48, %esp
movl nsec.1646, %eax
movl nsec.1646+4, %edx
movl %eax, -16(%ebp)
movl sec.1647, %eax
movl %edx, -12(%ebp)
testl %eax, %eax
jg .L10
.p2align 4,,15
.L5:
movl -16(%ebp), %edx
movl -12(%ebp), %ecx
addl $1, %edx
adcl $0, %ecx
cmpl $0, %ecx
jbe .L11
.L7:
addl $-1000000000, %edx
adcl $-1, %ecx
incl %eax
addl $-999999999, -16(%ebp)
movl %edx, -32(%ebp)
movl $1000000000, %edx
adcl $-1, -12(%ebp)
movl %ecx, -28(%ebp)
movl %edx, 8(%esp)
movl -12(%ebp), %ecx
movl -16(%ebp), %edx
movl %eax, -20(%ebp)
xorl %eax, %eax
movl %eax, 12(%esp)
movl %ecx, 4(%esp)
movl %edx, (%esp)
call ______ __udivdi3 ______
imull $-1000000000, %edx, %ecx
movl %eax, %ebx
subl %eax, %ecx
mull %edi
movl %edx, -36(%ebp)
addl %ecx, %edx
movl %eax, -40(%ebp)
movl -20(%ebp), %eax
movl %edx, -36(%ebp)
movl -40(%ebp), %edx
addl -32(%ebp), %edx
movl -36(%ebp), %ecx
adcl -28(%ebp), %ecx
addl %ebx, %eax
movl %edx, -16(%ebp)
movl %ecx, -12(%ebp)
.p2align 4,,15
.L12:
testl %eax, %eax
jle .L5
.L10:
movl -16(%ebp), %edx
movl -12(%ebp), %ecx
movl %eax, sec.1647
movl %edx, nsec.1646
movl %ecx, nsec.1646+4
addl $48, %esp
popl %ebx
popl %edi
popl %ebp
ret
.p2align 4,,10
.p2align 3
.L11:
cmpl $999999999, %edx
ja .L7
movl %edx, -16(%ebp)
movl %ecx, -12(%ebp)
jmp .L12
.size rmg, .-rmg
.p2align 4,,15
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
pushl %ecx
subl $4, %esp
call rmg
popl %ecx
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.local sec.1647
.comm sec.1647,4,4
.local nsec.1646
.comm nsec.1646,8,8
.ident "GCC: (GNU) 4.3.0 20070624 (experimental)"
.section .note.GNU-stack,"",@progbits
#define NSEC_PER_SEC 1000000000UL
int rmg(void);
int main(void)
{
/* int sec; */
return rmg();
}
int rmg(void)
{
static unsigned long long nsec = 0;
static int sec = 0;
while (sec < 1 ) {
nsec++;
if (nsec < NSEC_PER_SEC, 0) ;
else
while (__builtin_expect( nsec >= NSEC_PER_SEC, 0) ) {
nsec -= NSEC_PER_SEC;
++sec;
}
}
return sec;
}
# 1 "rmg3.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "rmg3.c"
int rmg(void);
int main(void)
{
return rmg();
}
int rmg(void)
{
static unsigned long long nsec = 0;
static int sec = 0;
while (sec < 1 ) {
nsec++;
if (nsec < 1000000000UL, 0) ;
else
while (__builtin_expect( nsec >= 1000000000UL, 0) ) {
nsec -= 1000000000UL;
++sec;
}
}
return sec;
}
--
Summary: fno-builtin-* not working
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: malitzke at metronets dot com
GCC build triplet: i686-pc-linux.gnu
GCC host triplet: i686-pc-linux.gnu
GCC target triplet: i686-pc-linux.gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32496