re PR target/19065 (Make CRIS libstdc++ asms autoincrement-safe)
authorHans-Peter Nilsson <hp@axis.com>
Mon, 28 Feb 2005 02:33:39 +0000 (02:33 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Mon, 28 Feb 2005 02:33:39 +0000 (02:33 +0000)
PR target/19065
* config/cpu/cris/atomicity.h (__exchange_and_add): In asm, use
'Q' constraint, not 'm'.

From-SVN: r95648

libstdc++-v3/ChangeLog
libstdc++-v3/config/cpu/cris/atomicity.h

index 441bb58ad3eab8b75f28af1f276ff651ac8e30c0..56bc43ce8e7027fdeff96452eb367d186711a99a 100644 (file)
@@ -1,3 +1,9 @@
+2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/19065
+       * config/cpu/cris/atomicity.h (__exchange_and_add): In asm, use
+       'Q' constraint, not 'm'.
+
 2005-02-26  Earl Chew  <earl_chew@agilent.com>
            Christopher Jefferson  <chris@bubblescope.net>
 
index 3162f6ada3b77c3d35a86a4843a95dd77683261a..38ae0de330cb65d9889ea0df91866de0be5c563a 100644 (file)
@@ -1,6 +1,6 @@
 // Low-level functions for atomic operations: CRIS version  -*- C++ -*-
 
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -47,8 +47,8 @@ namespace __gnu_cxx
                        " move.d %2,[%3]        \n"
                        " bwf 0b                \n"
                        " clearf                \n"
-                       :  "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
-                       : "r" (__mem), "g" (__val), "m" (*__mem)
+                       :  "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp)
+                       : "r" (__mem), "g" (__val), "Q" (*__mem)
                        /* The memory clobber must stay, regardless of
                           current uses of this function.  */
                        : "memory");
@@ -60,8 +60,8 @@ namespace __gnu_cxx
                        " add.d %0,%2           \n"
                        " move.d %2,[%3]        \n"
                        " move $r9,$ccr         \n"
-                       :  "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
-                       : "r" (__mem), "g" (__val), "m" (*__mem)
+                       :  "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp)
+                       : "r" (__mem), "g" (__val), "Q" (*__mem)
                        : "r9",
                          /* The memory clobber must stay, regardless of
                             current uses of this function.  */