public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/44074]  New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
@ 2010-05-11  8:22 jay dot krell at cornell dot edu
  2010-05-11  8:26 ` [Bug c/44074] " ubizjak at gmail dot com
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: jay dot krell at cornell dot edu @ 2010-05-11  8:22 UTC (permalink / raw)
  To: gcc-bugs

Solaris 2.9 x86 gcc 4.5.0 configure -without-gnu-as -with-as=/usr/ccs/bin/as


 => Assembly syntax errors in gcov.c whereever there is lock prefix.


I was actually looking for a problem with lock prefixes on 4.3 -- testing
4.5.0,
 found this instead, which is about about the same.

See:
 http://gcc.gnu.org/viewcvs?view=revision&revision=127728
  for handling of the lock prefix in a separate instruction.

See:
http://developers.sun.com/sunstudio/downloads/ssx/express_Feb2008_readme.html
 "You can now place lock/rep/repnz/repz/repe/repne prefix on the same line as
the following instruction."

But I'd like to stay compatible with the existing Sun assembler at
/usr/ccs/bin/as.

I considered just changing them all to \;, like there is rep\;ret, but
I noticed this:
sync.md:  "lock{%;| }or{l}\t{$0, (%%esp)|DWORD PTR [esp], 0}"


which appears to be an attempt to output Microsoft/Intel assembly, so I went
with the space usually and ; only for Darwin/Solaris, like how sync.md
was already using ; for Darwin.


Proposed patch below.
I'll open a bug. And test it on some machines maybe.
Any marked with TARGET_64BIT I left alone. Maybe that is too inconsistent
though.


diff -uw /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/i386.c ./i386.c
--- /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/i386.c      Wed Apr  7
23:58:27 2010
+++ ./i386.c    Tue May 11 10:01:54 2010
@@ -11896,11 +11896,10 @@
          return;

        case ';':
-#if TARGET_MACHO
+         if (TARGET_MACHO || TARGET_SOLARIS)
          fputs (" ; ", file);
-#else
+         else
          putc (' ', file);
-#endif
          return;

        default:
diff -uw /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/i386.h ./i386.h
--- /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/i386.h      Wed Mar 24
21:44:48 2010
+++ ./i386.h    Tue May 11 09:59:01 2010
@@ -467,6 +467,9 @@
    redefines this to 1.  */
 #define TARGET_MACHO 0

+/* Like TARGET_MACHO, redefined in sol2.h. */
+#define TARGET_SOLARIS 0
+
 /* Likewise, for the Windows 64-bit ABI.  */
 #define TARGET_64BIT_MS_ABI (TARGET_64BIT && ix86_cfun_abi () == MS_ABI)

diff -uw /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/i386.md ./i386.md
--- /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/i386.md     Wed Mar 24
19:49:49 2010
+++ ./i386.md   Tue May 11 09:49:05 2010
@@ -13811,7 +13811,7 @@
   [(return)
    (unspec [(const_int 0)] UNSPEC_REP)]
   "reload_completed"
-  "rep\;ret"
+  "rep{%;| }ret"
   [(set_attr "length" "2")
    (set_attr "atom_unit" "jeu")
    (set_attr "length_immediate" "0")
@@ -17772,7 +17772,7 @@
        (mem:BLK (match_dup 4)))
    (use (match_dup 5))]
   "!TARGET_64BIT"
-  "rep movs{l|d}"
+  "rep{%;| }movs{l|d}"
   [(set_attr "type" "str")
    (set_attr "prefix_rep" "1")
    (set_attr "memory" "both")
@@ -17808,7 +17808,7 @@
        (mem:BLK (match_dup 4)))
    (use (match_dup 5))]
   "!TARGET_64BIT"
-  "rep movsb"
+  "rep{%;| }movsb"
   [(set_attr "type" "str")
    (set_attr "prefix_rep" "1")
    (set_attr "memory" "both")
@@ -18023,7 +18023,7 @@
    (use (match_operand:SI 2 "register_operand" "a"))
    (use (match_dup 4))]
   "!TARGET_64BIT"
-  "rep stos{l|d}"
+  "rep{%;| }stos{l|d}"
   [(set_attr "type" "str")
    (set_attr "prefix_rep" "1")
    (set_attr "memory" "store")
@@ -18056,7 +18056,7 @@
    (use (match_operand:QI 2 "register_operand" "a"))
    (use (match_dup 4))]
   "!TARGET_64BIT"
-  "rep stosb"
+  "rep{%;| }stosb"
   [(set_attr "type" "str")
    (set_attr "prefix_rep" "1")
    (set_attr "memory" "store")
@@ -18188,7 +18188,7 @@
    (clobber (match_operand:SI 1 "register_operand" "=D"))
    (clobber (match_operand:SI 2 "register_operand" "=c"))]
   "!TARGET_64BIT"
-  "repz cmpsb"
+  "repz{%;| }cmpsb"
   [(set_attr "type" "str")
    (set_attr "mode" "QI")
    (set_attr "prefix_rep" "1")])
@@ -18239,7 +18239,7 @@
    (clobber (match_operand:SI 1 "register_operand" "=D"))
    (clobber (match_operand:SI 2 "register_operand" "=c"))]
   "!TARGET_64BIT"
-  "repz cmpsb"
+  "repz{%;| }cmpsb"
   [(set_attr "type" "str")
    (set_attr "mode" "QI")
    (set_attr "prefix_rep" "1")])
@@ -18305,7 +18305,7 @@
    (clobber (match_operand:SI 1 "register_operand" "=D"))
    (clobber (reg:CC FLAGS_REG))]
   "!TARGET_64BIT"
-  "repnz scasb"
+  "repnz{%;| }scasb"
   [(set_attr "type" "str")
    (set_attr "mode" "QI")
    (set_attr "prefix_rep" "1")])
diff -uw /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/sol2.h ./sol2.h
--- /home/jkrell/src/orig/gcc-4.5.0/gcc/config/i386/sol2.h      Wed Mar 31
11:03:29 2010
+++ ./sol2.h    Tue May 11 10:02:17 2010
@@ -172,3 +172,6 @@
 #define TF_SIZE 113

 #define MD_UNWIND_SUPPORT "config/i386/sol2-unwind.h"
+
+#undef  TARGET_SOLARIS
+#define TARGET_SOLARIS 1


 - Jay


-- 
           Summary: Solaris 2.9 x86 Sun assembler doesn't like rep/lock
                    prefixes on same line
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jay dot krell at cornell dot edu
GCC target triplet: i386-pc-solaris2.9


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


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

* [Bug c/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
@ 2010-05-11  8:26 ` ubizjak at gmail dot com
  2010-05-12 10:03 ` [Bug target/44074] " ro at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ubizjak at gmail dot com @ 2010-05-11  8:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from ubizjak at gmail dot com  2010-05-11 08:26 -------
See the thread starting at [1].

[1] http://gcc.gnu.org/ml/gcc-patches/2010-05/msg00657.html


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ro at gcc dot gnu dot org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-05-11 08:26:22
               date|                            |


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
  2010-05-11  8:26 ` [Bug c/44074] " ubizjak at gmail dot com
@ 2010-05-12 10:03 ` ro at gcc dot gnu dot org
  2010-05-12 10:50 ` jay dot krell at cornell dot edu
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ro at gcc dot gnu dot org @ 2010-05-12 10:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from ro at gcc dot gnu dot org  2010-05-12 10:02 -------
Mine. patch in progress.

Using something like TARGET_SOLARIS is wrong: this is just a bug in older Sun
as
versions; a feature test macro to enable this will be autoconfigured.


-- 

ro at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |ro at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
          Component|c                           |target
      Known to fail|                            |4.4.2 4.5.0
   Last reconfirmed|2010-05-11 08:26:22         |2010-05-12 10:02:48
               date|                            |


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
  2010-05-11  8:26 ` [Bug c/44074] " ubizjak at gmail dot com
  2010-05-12 10:03 ` [Bug target/44074] " ro at gcc dot gnu dot org
@ 2010-05-12 10:50 ` jay dot krell at cornell dot edu
  2010-05-12 11:50 ` ro at CeBiTec dot Uni-Bielefeld dot DE
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jay dot krell at cornell dot edu @ 2010-05-12 10:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from jay dot krell at cornell dot edu  2010-05-12 10:50 -------
 > Using something like TARGET_SOLARIS is wrong: this is just a bug in older
Sun

I don't completely agree.
 - I regularly do cross builds.
   What will you do for that? Assume the old version? I think so. Since the
result works the same on all versions. So you might as well just do that for
cross and native imho.

 - I want to build a gcc on 2.10 that works on 2.9..er..well, that's not quite
right. For that I'll build it on 2.9. But the cross build scenario is relevant.

 - Look at what Darwin/Macho does -- that is also only for older versions, but
they just do it unconditionally. (Might be good to check for TARGET_64BIT
though, since that probably implies a new enough assembler?)


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (2 preceding siblings ...)
  2010-05-12 10:50 ` jay dot krell at cornell dot edu
@ 2010-05-12 11:50 ` ro at CeBiTec dot Uni-Bielefeld dot DE
  2010-05-12 12:02 ` jay dot krell at cornell dot edu
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld dot DE @ 2010-05-12 11:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from ro at CeBiTec dot Uni-Bielefeld dot DE  2010-05-12 11:50 -------
Subject: Re:  Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on
same line

> ------- Comment #3 from jay dot krell at cornell dot edu  2010-05-12 10:50 -------
>  > Using something like TARGET_SOLARIS is wrong: this is just a bug in older
> Sun
>
> I don't completely agree.
>  - I regularly do cross builds.
>    What will you do for that? Assume the old version? I think so. Since the
> result works the same on all versions. So you might as well just do that for
> cross and native imho.

No, I just test if rep <insn> works or if rep; <insn> is required
instead and use the result of that test.  It works in both native and
cross environments.

>  - I want to build a gcc on 2.10 that works on 2.9..er..well, that's not quite
> right. For that I'll build it on 2.9. But the cross build scenario is relevant.

That's not going to work in the general case: the Solaris 10 gcc may
well use features that just don't exist in the Solaris 9 assembler
and/or linker, so you're out of luck.

>  - Look at what Darwin/Macho does -- that is also only for older versions, but
> they just do it unconditionally. (Might be good to check for TARGET_64BIT
> though, since that probably implies a new enough assembler?)

This hardcoding is wrong in the general case, even if the Mach-O guys
did otherwise.  Why follow a bad example?  And why use implicit tests if
you can explicitly test for the feature (or bug) you're looking for?

        Rainer


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (3 preceding siblings ...)
  2010-05-12 11:50 ` ro at CeBiTec dot Uni-Bielefeld dot DE
@ 2010-05-12 12:02 ` jay dot krell at cornell dot edu
  2010-05-13  7:56 ` jay dot krell at cornell dot edu
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jay dot krell at cornell dot edu @ 2010-05-12 12:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jay dot krell at cornell dot edu  2010-05-12 12:02 -------
Rainer, sorry, I meant cross build a native gcc.
build=whatever
host=target=solaris

Not cross compiling with gcc itself (other than to build gcc).


Old versions accept a certain syntax.
New versions accept a superset.
Just stick with old and it always works.
It's not a bug. It's just that the syntax grew.
The old syntax was ok.
Not everything should be configurable.
The environment/tool to probe is not necessarily available.
  Countless times besides I've seen the probe and later
  use disagree, like there are some #defines in the actual
  code that the configure didn't #define.
  Better just to minimize autoconf rather than forever chase these problems.]
  I think this feature testing may have gotten out of hand,
  and it fails extremely often in my experience.

Some things should just work. This is an easy one.
You don't even need if macho|solaris -- gas always is ok with
the semicolon so you can just always put it in. Leaving just
the att syntax or not, space or semicolon.


I've already applied the #ifdef SOLARIS thing locally.
I was curious how you'd handle this..where would the #define
go, what name chosen. But I was pretty sure I was following
a good example in the Macho thing, and still am.


Previously I did have to probe my Darwin assembler and
recommend an upgrade if it didn't allow "rep ". Now
I can remove that since gcc just works with all versions.


Anyway, your mail thread on this was very helpful to me.


 - Jay


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (4 preceding siblings ...)
  2010-05-12 12:02 ` jay dot krell at cornell dot edu
@ 2010-05-13  7:56 ` jay dot krell at cornell dot edu
  2010-05-17 18:29 ` ro at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jay dot krell at cornell dot edu @ 2010-05-13  7:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jay dot krell at cornell dot edu  2010-05-13 07:56 -------
Another I didn't understand from the other mail thread: why not always output
;?
In particular, the warning that would be disabled -- that is for hand written
assembly only, right? Is it disable for the entire file? So it would affect
hand written intermixed with compiler generated? Or only those particular
lines? If it just the lines, then there's nothing wrong there -- gcc outputs
them correctly, doesn't need gas checking it. If it disables it for the entire
file, that I understand. For now I just changed mine to always output ;, for
all platforms, if syntax==att.


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (5 preceding siblings ...)
  2010-05-13  7:56 ` jay dot krell at cornell dot edu
@ 2010-05-17 18:29 ` ro at gcc dot gnu dot org
  2010-05-17 20:30 ` ro at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ro at gcc dot gnu dot org @ 2010-05-17 18:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from ro at gcc dot gnu dot org  2010-05-17 18:29 -------
Posted new patch.


-- 

ro at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2010-
                   |                            |05/msg01260.html
           Keywords|                            |patch


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (6 preceding siblings ...)
  2010-05-17 18:29 ` ro at gcc dot gnu dot org
@ 2010-05-17 20:30 ` ro at gcc dot gnu dot org
  2010-05-19 17:33 ` ro at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ro at gcc dot gnu dot org @ 2010-05-17 20:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from ro at gcc dot gnu dot org  2010-05-17 20:29 -------
Subject: Bug 44074

Author: ro
Date: Mon May 17 20:28:56 2010
New Revision: 159512

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=159512
Log:
        PR target/44074
        * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config/i386/i386.c (print_operand) <case ;>: Also print ; if
        !HAVE_AS_IX86_REP_LOCK_PREFIX.
        Don't emit whitespace.
        * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
        (*rep_movsi): Likewise.
        (*rep_movsi_rex64): Likewise.
        (*rep_movqi): Likewise.
        (*rep_movqi_rex64): Likewise.
        (*rep_stosdi_rex64): Likewise.
        (*rep_stossi): Likewise.
        (*rep_stossi_rex64): Likewise.
        (*rep_stosqi): Likewise.
        (*rep_stosqi_rex64): Likewise.
        (*cmpstrnqi_nz_1): Use {%;} after repz.
        (*cmpstrnqi_nz_rex_1): Likewise.
        (*cmpstrnqi_1): Likewise.
        (*cmpstrnqi_rex_1): Likewise.
        (*strlenqi_1): Use {%;} after repnz.
        (*strlenqi_rex_1): Likewise.
        * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
        (*sync_compare_and_swap<mode>): Likewise.
        (sync_double_compare_and_swap<mode>): Likewise.
        (*sync_double_compare_and_swapdi_pic): Likewise.
        (sync_old_add<mode>): Likewise.
        (sync_add<mode>): Likewise.
        (sync_sub<mode>): Likewise.
        (sync_<code><mode>): Likewise.

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


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (7 preceding siblings ...)
  2010-05-17 20:30 ` ro at gcc dot gnu dot org
@ 2010-05-19 17:33 ` ro at gcc dot gnu dot org
  2010-05-19 17:42 ` ro at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ro at gcc dot gnu dot org @ 2010-05-19 17:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from ro at gcc dot gnu dot org  2010-05-19 17:33 -------
Subject: Bug 44074

Author: ro
Date: Wed May 19 17:32:43 2010
New Revision: 159590

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=159590
Log:
        Backport from mainline:
        2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        PR target/44074
        * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config/i386/i386.c (print_operand) <case ;>: Also print ; if
        !HAVE_AS_IX86_REP_LOCK_PREFIX.
        Don't emit whitespace.
        * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
        (*rep_movsi): Likewise.
        (*rep_movsi_rex64): Likewise.
        (*rep_movqi): Likewise.
        (*rep_movqi_rex64): Likewise.
        (*rep_stosdi_rex64): Likewise.
        (*rep_stossi): Likewise.
        (*rep_stossi_rex64): Likewise.
        (*rep_stosqi): Likewise.
        (*rep_stosqi_rex64): Likewise.
        (*cmpstrnqi_nz_1): Use {%;} after repz.
        (*cmpstrnqi_nz_rex_1): Likewise.
        (*cmpstrnqi_1): Likewise.
        (*cmpstrnqi_rex_1): Likewise.
        (*strlenqi_1): Use {%;} after repnz.
        (*strlenqi_rex_1): Likewise.
        * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
        (*sync_compare_and_swap<mode>): Likewise.
        (sync_double_compare_and_swap<mode>): Likewise.
        (*sync_double_compare_and_swapdi_pic): Likewise.
        (sync_old_add<mode>): Likewise.
        (sync_add<mode>): Likewise.
        (sync_sub<mode>): Likewise.
        (sync_<code><mode>): Likewise.

Modified:
    branches/gcc-4_5-branch/gcc/ChangeLog
    branches/gcc-4_5-branch/gcc/config.in
    branches/gcc-4_5-branch/gcc/config/i386/i386.c
    branches/gcc-4_5-branch/gcc/config/i386/i386.md
    branches/gcc-4_5-branch/gcc/config/i386/sync.md
    branches/gcc-4_5-branch/gcc/configure
    branches/gcc-4_5-branch/gcc/configure.ac


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (8 preceding siblings ...)
  2010-05-19 17:33 ` ro at gcc dot gnu dot org
@ 2010-05-19 17:42 ` ro at gcc dot gnu dot org
  2010-05-19 17:44 ` ro at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ro at gcc dot gnu dot org @ 2010-05-19 17:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from ro at gcc dot gnu dot org  2010-05-19 17:42 -------
Subject: Bug 44074

Author: ro
Date: Wed May 19 17:42:00 2010
New Revision: 159591

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=159591
Log:
        Backport from mainline:
        2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        PR target/44074
        * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config/i386/i386.c (print_operand) <case ;>: Also print ; if
        !HAVE_AS_IX86_REP_LOCK_PREFIX.
        Don't emit whitespace.
        * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
        (*rep_movsi): Likewise.
        (*rep_movsi_rex64): Likewise.
        (*rep_movqi): Likewise.
        (*rep_movqi_rex64): Likewise.
        (*rep_stosdi_rex64): Likewise.
        (*rep_stossi): Likewise.
        (*rep_stossi_rex64): Likewise.
        (*rep_stosqi): Likewise.
        (*rep_stosqi_rex64): Likewise.
        (*cmpstrnqi_nz_1): Use {%;} after repz.
        (*cmpstrnqi_nz_rex_1): Likewise.
        (*cmpstrnqi_1): Likewise.
        (*cmpstrnqi_rex_1): Likewise.
        (*strlenqi_1): Use {%;} after repnz.
        (*strlenqi_rex_1): Likewise.
        * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
        (*sync_compare_and_swap<mode>): Likewise.
        (sync_double_compare_and_swap<mode>): Likewise.
        (*sync_double_compare_and_swapdi_pic): Likewise.
        (sync_old_add<mode>): Likewise.
        (sync_add<mode>): Likewise.
        (sync_sub<mode>): Likewise.
        (sync_<code><mode>): Likewise.

Modified:
    branches/gcc-4_4-branch/gcc/ChangeLog
    branches/gcc-4_4-branch/gcc/config.in
    branches/gcc-4_4-branch/gcc/config/i386/i386.c
    branches/gcc-4_4-branch/gcc/config/i386/i386.md
    branches/gcc-4_4-branch/gcc/config/i386/sync.md
    branches/gcc-4_4-branch/gcc/configure
    branches/gcc-4_4-branch/gcc/configure.ac


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (9 preceding siblings ...)
  2010-05-19 17:42 ` ro at gcc dot gnu dot org
@ 2010-05-19 17:44 ` ro at gcc dot gnu dot org
  2010-05-20 10:29 ` jakub at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ro at gcc dot gnu dot org @ 2010-05-19 17:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from ro at gcc dot gnu dot org  2010-05-19 17:44 -------
Fixed for 4.4.5, 4.5.1, 4.6.0.


-- 

ro at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
      Known to work|                            |4.4.5 4.5.1 4.6.0
         Resolution|                            |FIXED
   Target Milestone|---                         |4.5.1


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (10 preceding siblings ...)
  2010-05-19 17:44 ` ro at gcc dot gnu dot org
@ 2010-05-20 10:29 ` jakub at gcc dot gnu dot org
  2010-05-20 10:31 ` jakub at gcc dot gnu dot org
  2010-05-20 10:33 ` ro at CeBiTec dot Uni-Bielefeld dot DE
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu dot org @ 2010-05-20 10:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from jakub at gcc dot gnu dot org  2010-05-20 10:29 -------
Subject: Bug 44074

Author: jakub
Date: Thu May 20 10:28:36 2010
New Revision: 159622

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=159622
Log:
        PR target/44074
        * configure: Regenerate.

Modified:
    branches/gcc-4_4-branch/gcc/ChangeLog
    branches/gcc-4_4-branch/gcc/configure


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (11 preceding siblings ...)
  2010-05-20 10:29 ` jakub at gcc dot gnu dot org
@ 2010-05-20 10:31 ` jakub at gcc dot gnu dot org
  2010-05-20 10:33 ` ro at CeBiTec dot Uni-Bielefeld dot DE
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu dot org @ 2010-05-20 10:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from jakub at gcc dot gnu dot org  2010-05-20 10:30 -------
Patching in configure pieces generated with autoconf 2.64 into autoconf 2.59
generated configure totally broke the branch, configure after a few errors kept
printing y in an endless loop.


-- 


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


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

* [Bug target/44074] Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line
  2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
                   ` (12 preceding siblings ...)
  2010-05-20 10:31 ` jakub at gcc dot gnu dot org
@ 2010-05-20 10:33 ` ro at CeBiTec dot Uni-Bielefeld dot DE
  13 siblings, 0 replies; 15+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld dot DE @ 2010-05-20 10:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from ro at CeBiTec dot Uni-Bielefeld dot DE  2010-05-20 10:32 -------
Subject: Re:  Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on
same line

> ------- Comment #13 from jakub at gcc dot gnu dot org  2010-05-20 10:30 -------
> Patching in configure pieces generated with autoconf 2.64 into autoconf 2.59
> generated configure totally broke the branch, configure after a few errors kept
> printing y in an endless loop.

Sorry about the mess, will be more careful next time.

        Rainer


-- 


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


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

end of thread, other threads:[~2010-05-20 10:33 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-11  8:22 [Bug c/44074] New: Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line jay dot krell at cornell dot edu
2010-05-11  8:26 ` [Bug c/44074] " ubizjak at gmail dot com
2010-05-12 10:03 ` [Bug target/44074] " ro at gcc dot gnu dot org
2010-05-12 10:50 ` jay dot krell at cornell dot edu
2010-05-12 11:50 ` ro at CeBiTec dot Uni-Bielefeld dot DE
2010-05-12 12:02 ` jay dot krell at cornell dot edu
2010-05-13  7:56 ` jay dot krell at cornell dot edu
2010-05-17 18:29 ` ro at gcc dot gnu dot org
2010-05-17 20:30 ` ro at gcc dot gnu dot org
2010-05-19 17:33 ` ro at gcc dot gnu dot org
2010-05-19 17:42 ` ro at gcc dot gnu dot org
2010-05-19 17:44 ` ro at gcc dot gnu dot org
2010-05-20 10:29 ` jakub at gcc dot gnu dot org
2010-05-20 10:31 ` jakub at gcc dot gnu dot org
2010-05-20 10:33 ` ro at CeBiTec dot Uni-Bielefeld dot DE

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