bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/20771] DC E0-E7 wrong opcode name


From: amodra at gmail dot com
Subject: [Bug binutils/20771] DC E0-E7 wrong opcode name
Date: Sun, 06 Nov 2016 23:32:47 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=20771

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |amodra at gmail dot com
         Resolution|---                         |WONTFIX

--- Comment #1 from Alan Modra <amodra at gmail dot com> ---
See this comment from include/opcode/i386.h

/* The SystemV/386 SVR3.2 assembler, and probably all AT&T derived
   ix86 Unix assemblers, generate floating point instructions with
   reversed source and destination registers in certain cases.
   Unfortunately, gcc and possibly many other programs use this
   reversed syntax, so we're stuck with it.

   eg. `fsub %st(3),%st' results in st = st - st(3) as expected, but
   `fsub %st,%st(3)' results in st(3) = st - st(3), rather than
   the expected st(3) = st(3) - st

   This happens with all the non-commutative arithmetic floating point
   operations with two register operands, where the source register is
   %st, and destination register is %st(i).

   The affected opcode map is dceX, dcfX, deeX, defX.  */

If you really care, you can define SYSV386_COMPAT to 0 but please read the
comment there too..

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]