public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/37179]  New: gcc emits bad opcode 'ffreep'
@ 2008-08-20 19:17 ebuddington at wesleyan dot edu
  2008-08-20 19:19 ` [Bug target/37179] " pinskia at gcc dot gnu dot org
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: ebuddington at wesleyan dot edu @ 2008-08-20 19:17 UTC (permalink / raw)
  To: gcc-bugs

The vortex86sx claims to be 486-compliant, but it gives "Illegal Instruction"
on ffreep.

GCC uses ffreep when compiling many pieces of software, rendering them unusable
on this processor.

I do not see any way to explicitly blacklist the opcode, and setting -march to
i486, i386, or native does not avoid the problem.

Could this be added as an architecture, or is there an existing solution that
I'm missing?


-- 
           Summary: gcc emits bad opcode 'ffreep'
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ebuddington at wesleyan dot edu
 GCC build triplet: vortex86-pc-linux
  GCC host triplet: vortex86-pc-linux
GCC target triplet: vortex86-pc-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
@ 2008-08-20 19:19 ` pinskia at gcc dot gnu dot org
  2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-08-20 19:19 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|enhancement                 |normal
          Component|c                           |target


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
  2008-08-20 19:19 ` [Bug target/37179] " pinskia at gcc dot gnu dot org
@ 2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
  2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-08-20 19:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2008-08-20 19:18 -------
*** Bug 37180 has been marked as a duplicate of this bug. ***


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
  2008-08-20 19:19 ` [Bug target/37179] " pinskia at gcc dot gnu dot org
  2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
@ 2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
  2009-05-07 17:54 ` sascha-web-gcc dot gnu dot org at silbe dot org
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-08-20 19:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2008-08-20 19:18 -------
http://www.pagetable.com/?p=16


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (2 preceding siblings ...)
  2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
@ 2009-05-07 17:54 ` sascha-web-gcc dot gnu dot org at silbe dot org
  2009-05-07 18:00 ` sascha-web-gcc dot gnu dot org at silbe dot org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: sascha-web-gcc dot gnu dot org at silbe dot org @ 2009-05-07 17:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from sascha-web-gcc dot gnu dot org at silbe dot org  2009-05-07 17:54 -------
This also affects (at least) the AMD Geode LX series of processors, used e.g.
in the OLPC XO-1 (i.e. a large number of computers).  olpc@debxo:~$ cat
/proc/cpuinfo  processor       : 0 vendor_id       : AuthenticAMD cpu family   
  : 5 model           : 10 model name      : Geode(TM) Integrated Processor by
AMD PCS stepping        : 2 cpu MHz         : 431.233 cache size      : 128 KB
fdiv_bug        : no hlt_bug         : no f00f_bug        : no coma_bug       
: no fpu             : yes fpu_exception   : yes cpuid level     : 1 wp        
     : yes flags           : fpu de pse tsc msr cx8 sep pge cmov clflush mmx
mmxext 3dnowext 3dnow bogomips        : 863.85 clflush size    : 32   


-- 

sascha-web-gcc dot gnu dot org at silbe dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sascha-web-gcc dot gnu dot
                   |                            |org at silbe dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (3 preceding siblings ...)
  2009-05-07 17:54 ` sascha-web-gcc dot gnu dot org at silbe dot org
@ 2009-05-07 18:00 ` sascha-web-gcc dot gnu dot org at silbe dot org
  2009-05-07 20:37 ` ubizjak at gmail dot com
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: sascha-web-gcc dot gnu dot org at silbe dot org @ 2009-05-07 18:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from sascha-web-gcc dot gnu dot org at silbe dot org  2009-05-07 18:00 -------

Seems like the relogin required because of NAT IP address change garbled the
text. Here it is again, hopefully properly formatted now:

This also affects (at least) the AMD Geode LX series of processors, used e.g.
in the OLPC XO-1 (i.e. a large number of computers).

olpc@debxo:~$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 5
model           : 10
model name      : Geode(TM) Integrated Processor by AMD PCS
stepping        : 2
cpu MHz         : 431.233
cache size      : 128 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu de pse tsc msr cx8 sep pge cmov clflush mmx mmxext
3dnowext 3dnow
bogomips        : 863.85
clflush size    : 32


-- 

sascha-web-gcc dot gnu dot org at silbe dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   GCC host triplet|vortex86-pc-linux           |
      Known to fail|                            |4.3.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (4 preceding siblings ...)
  2009-05-07 18:00 ` sascha-web-gcc dot gnu dot org at silbe dot org
@ 2009-05-07 20:37 ` ubizjak at gmail dot com
  2009-05-10 10:07 ` sascha-web-gcc dot gnu dot org at silbe dot org
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: ubizjak at gmail dot com @ 2009-05-07 20:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from ubizjak at gmail dot com  2009-05-07 20:37 -------
(In reply to comment #0)

> I do not see any way to explicitly blacklist the opcode, and setting -march to
> i486, i386, or native does not avoid the problem.
> 
> Could this be added as an architecture, or is there an existing solution that
> I'm missing?

Hm, ffreep is enabled only for:

  /* X86_TUNE_USE_FFREEP */
  m_AMD_MULTIPLE,

where

#define m_AMD_MULTIPLE  (m_K8 | m_ATHLON | m_AMDFAM10)

So, adding -march=i486 should fix this problem.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (5 preceding siblings ...)
  2009-05-07 20:37 ` ubizjak at gmail dot com
@ 2009-05-10 10:07 ` sascha-web-gcc dot gnu dot org at silbe dot org
  2009-05-10 14:28 ` ubizjak at gmail dot com
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: sascha-web-gcc dot gnu dot org at silbe dot org @ 2009-05-10 10:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from sascha-web-gcc dot gnu dot org at silbe dot org  2009-05-10 10:07 -------

>  /* X86_TUNE_USE_FFREEP */
>  m_AMD_MULTIPLE,
Without having dug into the source, I'd guess that this is the exact location
of the bug.

> #define m_AMD_MULTIPLE  (m_K8 | m_ATHLON | m_AMDFAM10)
If AMDFAM10 is the AMD Geode series of processors and all of them don't support
ffreep (needs checking), then the above line should read

/* X86_TUNE_USE_FFREEP */
(m_K8 | m_ATHLON),

instead.

The bug indeed seems only to happen for -march=native (haven't tested anything
besides native yet), BTW. I.e. if you don't specify an architecture at all,
ffreep won't get issued.


-- 

sascha-web-gcc dot gnu dot org at silbe dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  GCC build triplet|vortex86-pc-linux           |
 GCC target triplet|vortex86-pc-linux           |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (6 preceding siblings ...)
  2009-05-10 10:07 ` sascha-web-gcc dot gnu dot org at silbe dot org
@ 2009-05-10 14:28 ` ubizjak at gmail dot com
  2009-05-10 17:12 ` sascha-web-gcc dot gnu dot org at silbe dot org
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: ubizjak at gmail dot com @ 2009-05-10 14:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from ubizjak at gmail dot com  2009-05-10 14:28 -------
(In reply to comment #6)
> >  /* X86_TUNE_USE_FFREEP */
> >  m_AMD_MULTIPLE,
> Without having dug into the source, I'd guess that this is the exact location
> of the bug.
> 
> > #define m_AMD_MULTIPLE  (m_K8 | m_ATHLON | m_AMDFAM10)
> If AMDFAM10 is the AMD Geode series of processors and all of them don't 

No. You should look for m_GEODE.

> The bug indeed seems only to happen for -march=native (haven't tested anything
> besides native yet), BTW. I.e. if you don't specify an architecture at all,
> ffreep won't get issued.

Can you send the output of "gcc -march=native -v"? It looks that the driver
doesn't detect correctly the type of your CPU.

BTW: -march=geode should work OK.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (7 preceding siblings ...)
  2009-05-10 14:28 ` ubizjak at gmail dot com
@ 2009-05-10 17:12 ` sascha-web-gcc dot gnu dot org at silbe dot org
  2009-05-10 17:51 ` ubizjak at gmail dot com
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: sascha-web-gcc dot gnu dot org at silbe dot org @ 2009-05-10 17:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from sascha-web-gcc dot gnu dot org at silbe dot org  2009-05-10 17:12 -------

> Can you send the output of "gcc -march=native -v"? It looks that the driver doesn't detect correctly the type of your CPU.
=== Begin ===
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.3-3'
--with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3
--program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug
--enable-objc-gc --enable-mpfr --enable-targets=all --enable-cld
--with-tune=generic --enable-checking=release --build=i486-linux-gnu
--host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.3 (Debian 4.3.3-3) 
=== End ===

> BTW: -march=geode should work OK.
Will try that, thanks!


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (8 preceding siblings ...)
  2009-05-10 17:12 ` sascha-web-gcc dot gnu dot org at silbe dot org
@ 2009-05-10 17:51 ` ubizjak at gmail dot com
  2009-05-10 18:05 ` sascha-web-gcc dot gnu dot org at silbe dot org
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: ubizjak at gmail dot com @ 2009-05-10 17:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from ubizjak at gmail dot com  2009-05-10 17:51 -------
(In reply to comment #8)
> > Can you send the output of "gcc -march=native -v"? It looks that the driver doesn't detect correctly the type of your CPU.

Uh, I mean "gcc -march=native -### hello.c"

It should return something like:

...
COLLECT_GCC_OPTIONS=
 "/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.4.0/cc1" "-quiet" "hello.c"
"-march=core2" "-mcx16" "-msahf" "--param" "l1-cache-size=32" "--param"
"l1-cache-line-size=64" "--param" "l2-cache-size=4096" "-mtune=core2" "-quiet"
"-dumpbase" "hello.c" "-auxbase" "hello" "-o" "/tmp/cc63O3Mc.s"
...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (9 preceding siblings ...)
  2009-05-10 17:51 ` ubizjak at gmail dot com
@ 2009-05-10 18:05 ` sascha-web-gcc dot gnu dot org at silbe dot org
  2009-05-10 20:56 ` ubizjak at gmail dot com
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: sascha-web-gcc dot gnu dot org at silbe dot org @ 2009-05-10 18:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from sascha-web-gcc dot gnu dot org at silbe dot org  2009-05-10 18:05 -------
Here you go:

olpc@debxo:~$ gcc -march=native -### hello.c
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.3-3'
--with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3
--program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug
--enable-objc-gc --enable-mpfr --enable-targets=all --enable-cld
--with-tune=generic --enable-checking=release --build=i486-linux-gnu
--host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.3 (Debian 4.3.3-3) 
COLLECT_GCC_OPTIONS=
 "/usr/lib/gcc/i486-linux-gnu/4.3.3/cc1" "-quiet" "hello.c" "-march=athlon"
"--param" "l1-cache-size=64" "--param" "l1-cache-line-size=32" "-mtune=athlon"
"-quiet" "-dumpbase" "hello.c" "-auxbase" "hello" "-o" "/tmp/ccRiDtte.s"
COLLECT_GCC_OPTIONS=
 "as" "-Qy" "-o" "/tmp/ccIqPlGi.o" "/tmp/ccRiDtte.s"
COMPILER_PATH=/usr/lib/gcc/i486-linux-gnu/4.3.3/:/usr/lib/gcc/i486-linux-gnu/4.3.3/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.3.3/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.3.3/:/usr/lib/gcc/i486-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/i486-linux-gnu/4.3.3/:/usr/lib/gcc/i486-linux-gnu/4.3.3/:/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS=
 "/usr/lib/gcc/i486-linux-gnu/4.3.3/collect2" "--eh-frame-hdr" "-m" "elf_i386"
"--hash-style=both" "-dynamic-linker" "/lib/ld-linux.so.2"
"/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/crt1.o"
"/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/crti.o"
"/usr/lib/gcc/i486-linux-gnu/4.3.3/crtbegin.o"
"-L/usr/lib/gcc/i486-linux-gnu/4.3.3" "-L/usr/lib/gcc/i486-linux-gnu/4.3.3"
"-L/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib" "-L/lib/../lib"
"-L/usr/lib/../lib" "-L/usr/lib/gcc/i486-linux-gnu/4.3.3/../../.."
"/tmp/ccIqPlGi.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc"
"-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
"/usr/lib/gcc/i486-linux-gnu/4.3.3/crtend.o"
"/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/crtn.o"
olpc@debxo:~$ 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (10 preceding siblings ...)
  2009-05-10 18:05 ` sascha-web-gcc dot gnu dot org at silbe dot org
@ 2009-05-10 20:56 ` ubizjak at gmail dot com
  2009-05-10 21:22 ` sascha-web-gcc dot gnu dot org at silbe dot org
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: ubizjak at gmail dot com @ 2009-05-10 20:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from ubizjak at gmail dot com  2009-05-10 20:55 -------
(In reply to comment #10)

> COLLECT_GCC_OPTIONS=
>  "/usr/lib/gcc/i486-linux-gnu/4.3.3/cc1" "-quiet" "hello.c" "-march=athlon"
> "--param" "l1-cache-size=64" "--param" "l1-cache-line-size=32" "-mtune=athlon"
> "-quiet" "-dumpbase" "hello.c" "-auxbase" "hello" "-o" "/tmp/ccRiDtte.s"

Your geode processor is detected as athlon by gcc driver (see
gcc/config/i386/driver-i386.c). The problem is in "AuthenticAMD" vendor_id
signature that tricks the driver into thinking, that it is running on an AMD
processor.

I guess that the detection procedure needs to be fixed, it is still expecting
"Geode by NSC" string.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-05-10 20:55:57
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (11 preceding siblings ...)
  2009-05-10 20:56 ` ubizjak at gmail dot com
@ 2009-05-10 21:22 ` sascha-web-gcc dot gnu dot org at silbe dot org
  2009-05-10 22:00 ` ubizjak at gmail dot com
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: sascha-web-gcc dot gnu dot org at silbe dot org @ 2009-05-10 21:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from sascha-web-gcc dot gnu dot org at silbe dot org  2009-05-10 21:21 -------
"Geode by NSC" seems to be the "original" Geode series developed by National
Semiconductor. According to Wikipedia [1], AMD bought the Geode "business",
released the original design as "GX series" as well as a GX-derived "LX series"
and an Athlon-derived "NX series".

My guess is that GX and LX lack ffreep, but NX does support it (because it's
derived from the Athlon core). Unfortunately, unlike the LX series datasheet,
the NX series one doesn't include an instruction listing, so I cannot verify
this assumption.

PS: -march=geode seems to be working fine (no SIGILL so far), thanks!


[1] http://en.wikipedia.org/wiki/Geode_(processor)
[2]
http://www.amd.com/files/connectivitysolutions/geode/geode_nx/31177H_nx_databook.pdf


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (12 preceding siblings ...)
  2009-05-10 21:22 ` sascha-web-gcc dot gnu dot org at silbe dot org
@ 2009-05-10 22:00 ` ubizjak at gmail dot com
  2009-05-12 12:08 ` ubizjak at gmail dot com
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: ubizjak at gmail dot com @ 2009-05-10 22:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from ubizjak at gmail dot com  2009-05-10 22:00 -------
Created an attachment (id=17848)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17848&action=view)
Patch

This patch looks at processor name to detect AMD geode CPU. As far as gcc is
concerned, "-march=geode" means AMD geode with 3dnow-a extensions.

Other geodes are handled by generic processor detection, since we really have
no better idea.

Can someone please test attached patch with -march=native on geode?


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
                   |dot org                     |
             Status|NEW                         |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (13 preceding siblings ...)
  2009-05-10 22:00 ` ubizjak at gmail dot com
@ 2009-05-12 12:08 ` ubizjak at gmail dot com
  2009-05-12 16:33 ` hjl at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: ubizjak at gmail dot com @ 2009-05-12 12:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from ubizjak at gmail dot com  2009-05-12 12:08 -------
Author: uros
Date: Tue May 12 11:42:53 2009
New Revision: 147429

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147429
Log:
        PR target/37197
        * config/i386/driver-i386.c (processor_signatures): New enum.
        (SIG_GEODE): Move from vendor_signatures to processor_signatures.
        (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
        processor signature to detect geode processor.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/driver-i386.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (14 preceding siblings ...)
  2009-05-12 12:08 ` ubizjak at gmail dot com
@ 2009-05-12 16:33 ` hjl at gcc dot gnu dot org
  2009-05-13 10:06 ` uros at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hjl at gcc dot gnu dot org @ 2009-05-12 16:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from hjl at gcc dot gnu dot org  2009-05-12 16:33 -------
Subject: Bug 37179

Author: hjl
Date: Tue May 12 16:33:14 2009
New Revision: 147441

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147441
Log:
        PR target/37179:
        * Correct PR number for revision 147429.

Modified:
    trunk/gcc/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (15 preceding siblings ...)
  2009-05-12 16:33 ` hjl at gcc dot gnu dot org
@ 2009-05-13 10:06 ` uros at gcc dot gnu dot org
  2009-05-14  8:23 ` uros at gcc dot gnu dot org
  2009-05-14  8:25 ` ubizjak at gmail dot com
  18 siblings, 0 replies; 20+ messages in thread
From: uros at gcc dot gnu dot org @ 2009-05-13 10:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from uros at gcc dot gnu dot org  2009-05-13 10:06 -------
Subject: Bug 37179

Author: uros
Date: Wed May 13 10:05:48 2009
New Revision: 147469

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147469
Log:
        PR target/37179
        * config/i386/driver-i386.c (processor_signatures): New enum.
        (SIG_GEODE): Move from vendor_signatures to processor_signatures.
        (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
        processor signature to detect geode processor.


Modified:
    branches/gcc-4_4-branch/gcc/ChangeLog
    branches/gcc-4_4-branch/gcc/config/i386/driver-i386.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (16 preceding siblings ...)
  2009-05-13 10:06 ` uros at gcc dot gnu dot org
@ 2009-05-14  8:23 ` uros at gcc dot gnu dot org
  2009-05-14  8:25 ` ubizjak at gmail dot com
  18 siblings, 0 replies; 20+ messages in thread
From: uros at gcc dot gnu dot org @ 2009-05-14  8:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from uros at gcc dot gnu dot org  2009-05-14 08:23 -------
Subject: Bug 37179

Author: uros
Date: Thu May 14 08:23:31 2009
New Revision: 147522

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147522
Log:
        PR target/37179
        * config/i386/driver-i386.c (vendor_signatures): New enum.
        (processor_signatures): Ditto.
        (host_detect_local_cpu): Use vendor_signatures and
        processor_signatures enums.  For SIG_AMD vendor, check for
        SIG_GEODE processor signature to detect geode processor.


Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/config/i386/driver-i386.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug target/37179] gcc emits bad opcode 'ffreep'
  2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
                   ` (17 preceding siblings ...)
  2009-05-14  8:23 ` uros at gcc dot gnu dot org
@ 2009-05-14  8:25 ` ubizjak at gmail dot com
  18 siblings, 0 replies; 20+ messages in thread
From: ubizjak at gmail dot com @ 2009-05-14  8:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from ubizjak at gmail dot com  2009-05-14 08:25 -------
Fixed.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37179


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2009-05-14  8:25 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-20 19:17 [Bug c/37179] New: gcc emits bad opcode 'ffreep' ebuddington at wesleyan dot edu
2008-08-20 19:19 ` [Bug target/37179] " pinskia at gcc dot gnu dot org
2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
2008-08-20 19:20 ` pinskia at gcc dot gnu dot org
2009-05-07 17:54 ` sascha-web-gcc dot gnu dot org at silbe dot org
2009-05-07 18:00 ` sascha-web-gcc dot gnu dot org at silbe dot org
2009-05-07 20:37 ` ubizjak at gmail dot com
2009-05-10 10:07 ` sascha-web-gcc dot gnu dot org at silbe dot org
2009-05-10 14:28 ` ubizjak at gmail dot com
2009-05-10 17:12 ` sascha-web-gcc dot gnu dot org at silbe dot org
2009-05-10 17:51 ` ubizjak at gmail dot com
2009-05-10 18:05 ` sascha-web-gcc dot gnu dot org at silbe dot org
2009-05-10 20:56 ` ubizjak at gmail dot com
2009-05-10 21:22 ` sascha-web-gcc dot gnu dot org at silbe dot org
2009-05-10 22:00 ` ubizjak at gmail dot com
2009-05-12 12:08 ` ubizjak at gmail dot com
2009-05-12 16:33 ` hjl at gcc dot gnu dot org
2009-05-13 10:06 ` uros at gcc dot gnu dot org
2009-05-14  8:23 ` uros at gcc dot gnu dot org
2009-05-14  8:25 ` ubizjak at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).