This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c/7723: Internal compiler error - Pentium3 sse - gcc 3.2
- From: morandini at aero dot polimi dot it
- To: gcc-gnats at gcc dot gnu dot org
- Date: 26 Aug 2002 10:01:50 -0000
- Subject: c/7723: Internal compiler error - Pentium3 sse - gcc 3.2
- Reply-to: morandini at aero dot polimi dot it
>Number: 7723
>Category: c
>Synopsis: Internal compiler error - Pentium3 sse - gcc 3.2
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Mon Aug 26 03:06:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: morandini@aero.polimi.it
>Release: gcc version 3.2
>Organization:
>Environment:
SuSE Linux 8.0, kernle 2.4.18, dual pentiun 3
gcc -v:
Reading specs from /home2/marco/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/specs
Configured with: ../configure --enable-threads=posix --enable-languages=c,c++,f77 --prefix=/home2/marco/local : (reconfigured) ../configure --enable-languages=c,c++,f77 --enable-__cxa_atexit --prefix=/home2/marco/local : (reconfigured) ../configure --enable-languages=c,c++,f77 --enable-__cxa_atexit --prefix=/home2/marco/local
Thread model: posix
gcc version 3.2
>Description:
1)
with this code:
/*-------------------*/
typedef int v4sf __attribute__ ((mode(V4SF)));
int main(void) {
v4sf a={0.,0.,0.,0.};
return 0;
};
/*------------------*/
marco@pc-31c:~> gcc -msse -march=pentium3 -mfpmath=sse main1.c: In function `main':
main1.c:5: Internal compiler error in instantiate_virtual_regs_1, at function.c:3972
2)this code is compiled, but the program gives a SIGSEGV. What's wrong?
(binutils 2.13.90.0.4 20020814)
/*------------------*/
typedef int v4sf __attribute__ ((mode(V4SF)));
int main(void) {
v4sf a={1.,1.,1.,1.};
v4sf b={2.,2.,2.,2.};
v4sf c;
c=__builtin_ia32_addss (a, b);
return 0;
};
/*----------------*/
Here is the assembly of the second program:
.file "main.c"
.text
.align 2
.globl main
.type main,@function
main:
pushl %ebp
movl %esp, %ebp
subl $56, %esp
andl $-16, %esp
movl $0, %eax
subl %eax, %esp
movl $0x3f800000, -24(%ebp)
movl $0x3f800000, -20(%ebp)
movl $0x3f800000, -16(%ebp)
movl $0x3f800000, -12(%ebp)
movl $0x40000000, -40(%ebp)
movl $0x40000000, -36(%ebp)
movl $0x40000000, -32(%ebp)
movl $0x40000000, -28(%ebp)
movaps -24(%ebp), %xmm0
addss -40(%ebp), %xmm0
movaps %xmm0, -56(%ebp)
movl $0, %eax
leave
ret
.Lfe1:
.size main,.Lfe1-main
.ident "GCC: (GNU) 3.2"
>How-To-Repeat:
see description
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: