public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/27968]  New: gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs
@ 2006-06-09  0:00 digitale at digitaleric dot net
  2006-06-09  0:17 ` [Bug target/27968] " pinskia at gcc dot gnu dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: digitale at digitaleric dot net @ 2006-06-09  0:00 UTC (permalink / raw)
  To: gcc-bugs

GCC emits the (undefined) instruction ffreep when TARGET_USE_FFREEP is set
(which happens when -mtune opteron or -mtune athlon is passed on the command
line.

As of the latest available build, Solaris' /usr/ccs/bin/as doesn't understand
this opcode and barfs.

The use of ffreep seems to have been introduced and discussed in this thread:
http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01386.html.


-- 
           Summary: gcc emits (undefined) ffreep opcode which is not
                    understood by Solaris' /usr/ccs/bin/as when tuning for
                    Athlon or Opteron CPUs
           Product: gcc
           Version: 4.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: digitale at digitaleric dot net
  GCC host triplet: i386-pc-solaris2.11
GCC target triplet: i386-pc-solaris2.11


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


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

* [Bug target/27968] gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs
  2006-06-09  0:00 [Bug c/27968] New: gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs digitale at digitaleric dot net
@ 2006-06-09  0:17 ` pinskia at gcc dot gnu dot org
  2006-06-09  5:46 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-06-09  0:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2006-06-09 00:05 -------
One thing is to use GNU binutil's as instead.  The other thing to do is to file
a bug with Sun (which is better anyways).


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|c                           |target


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


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

* [Bug target/27968] gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs
  2006-06-09  0:00 [Bug c/27968] New: gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs digitale at digitaleric dot net
  2006-06-09  0:17 ` [Bug target/27968] " pinskia at gcc dot gnu dot org
@ 2006-06-09  5:46 ` pinskia at gcc dot gnu dot org
  2006-06-10 18:52 ` digitale at digitaleric dot net
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-06-09  5:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2006-06-09 05:37 -------
First off this instruction has been in x87 since at least 287, see
http://www.sandpile.org/post/msgs/20000234.htm.


-- 


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


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

* [Bug target/27968] gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs
  2006-06-09  0:00 [Bug c/27968] New: gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs digitale at digitaleric dot net
  2006-06-09  0:17 ` [Bug target/27968] " pinskia at gcc dot gnu dot org
  2006-06-09  5:46 ` pinskia at gcc dot gnu dot org
@ 2006-06-10 18:52 ` digitale at digitaleric dot net
  2006-07-07  0:13 ` sayle at gcc dot gnu dot org
  2006-10-05 15:44 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: digitale at digitaleric dot net @ 2006-06-10 18:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from digitale at digitaleric dot net  2006-06-10 18:01 -------
Subject: Re:  gcc emits (undefined) ffreep opcode which
        is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or
        Opteron CPUs

> ------- Comment #1 from pinskia at gcc dot gnu dot org  2006-06-09 00:05 -------
> One thing is to use GNU binutil's as instead.  The other thing to do is to file
> a bug with Sun (which is better anyways).

I have filed a bug with Sun.  But I think it would be good to fix gcc too.

Jan Hubicka's comment on the adding the ffreep support to gcc was:

"The instruction is not documented by IA-32 description, but all CPUs in
existence support it and majorty of assemblers seems to know it too.  In case
we will hit assembler that don't I will add configure script code for that."


I also question if it is a mistake for gcc to emit this opcode so readily. 
Quoting the Intel IA-32 manual: "all blanks in the opcode map are reserved and
should not be used.  Do not depend on the operation on these undefined opcodes"
(this is below the opcode map, where the row for ffreep is blank).

-Eric


-- 


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


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

* [Bug target/27968] gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs
  2006-06-09  0:00 [Bug c/27968] New: gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs digitale at digitaleric dot net
                   ` (2 preceding siblings ...)
  2006-06-10 18:52 ` digitale at digitaleric dot net
@ 2006-07-07  0:13 ` sayle at gcc dot gnu dot org
  2006-10-05 15:44 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: sayle at gcc dot gnu dot org @ 2006-07-07  0:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from sayle at gcc dot gnu dot org  2006-07-07 00:13 -------
Subject: Bug 27968

Author: sayle
Date: Fri Jul  7 00:13:14 2006
New Revision: 115237

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115237
Log:

        PR target/27968
        * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether 
        the configured assembler supports the x87's ffreep mnemonic.
        * configure: Regenerate.
        * config.in: Regenerate.

        * config/i386/i386.c (output_387_ffreep): New function.
        (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
        (output_387_reg_move): Likewise.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config.in
    trunk/gcc/config/i386/i386.c
    trunk/gcc/configure
    trunk/gcc/configure.ac


-- 


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


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

* [Bug target/27968] gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs
  2006-06-09  0:00 [Bug c/27968] New: gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs digitale at digitaleric dot net
                   ` (3 preceding siblings ...)
  2006-07-07  0:13 ` sayle at gcc dot gnu dot org
@ 2006-10-05 15:44 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-10-05 15:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pinskia at gcc dot gnu dot org  2006-10-05 15:44 -------
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.2.0


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


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

end of thread, other threads:[~2006-10-05 15:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-09  0:00 [Bug c/27968] New: gcc emits (undefined) ffreep opcode which is not understood by Solaris' /usr/ccs/bin/as when tuning for Athlon or Opteron CPUs digitale at digitaleric dot net
2006-06-09  0:17 ` [Bug target/27968] " pinskia at gcc dot gnu dot org
2006-06-09  5:46 ` pinskia at gcc dot gnu dot org
2006-06-10 18:52 ` digitale at digitaleric dot net
2006-07-07  0:13 ` sayle at gcc dot gnu dot org
2006-10-05 15:44 ` pinskia at gcc dot gnu dot org

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).