This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: -msse producing sse2 instructions (test case included!)
- From: Jan Hubicka <jh at suse dot cz>
- To: Dylan Cuthbert <dylan at q-games dot com>
- Cc: Andreas Jaeger <aj at suse dot de>, gcc at gcc dot gnu dot org,Jan Hubicka <jh at suse dot cz>, tprince at computer dot org
- Date: Mon, 22 Jul 2002 12:19:45 +0200
- Subject: Re: -msse producing sse2 instructions (test case included!)
- References: <u83cudhw0n.fsf@gromit.moeb> <006f01c23130$5f222660$2801a8c0@dcuthbert2k>
> Hi all,
>
> I managed to whittle it down to the place where the instruction is being
> generated.. and the resulting executable produces an Illegal Instruction if
> run on Athlon 4 machines, but not on Athlon MP/XP or Pentium 4s.
>
> The line to compile with:
>
> $>
> g++ -mcpu=pentium3 -march=pentium3 -msse -mfpmath=387 -mpreferred-stack-boun
> dary=4 -fno-implement-inlines -Werror -Wall -Dstdext=__gnu_cxx -O2 -mno-cyg
> win -mwin32 test.cpp -o test.exe
>
> Compiling with -march=athlon-4 -mcpu=athlon-4 also causes the same code to
> be generated.
>
> On another note, I also get an illegal instruction error on this:
>
> movss 0xfffffffc(%ebp),%xmm0
>
> Seems to be in the integer->float conversion code tho. so I hope this helps.
You must have disabled SSE support on your Athlon machine. This happends
for out of date bioses. I believe there should be BOIS update for you
and also there is kernel patch around to do the trick.
Honza