atomicity.h (__exchange_and_add, [...]): Only .set mips2 for the o32 ABI.
authorAlexandre Oliva <aoliva@redhat.com>
Thu, 20 Mar 2003 02:30:42 +0000 (02:30 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Thu, 20 Mar 2003 02:30:42 +0000 (02:30 +0000)
* config/cpu/mips/atomicity.h (__exchange_and_add, __atomic_add):
Only .set mips2 for the o32 ABI.

From-SVN: r64604

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

index 13a6576e05bdf21f67888b0d734496341233b7d1..1d7d2d84aef1c52aa62d1a8b947f4ef22917114e 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/cpu/mips/atomicity.h (__exchange_and_add, __atomic_add):
+       Only .set mips2 for the o32 ABI.
+
 2003-03-19  Paolo Carlini  <pcarlini@unitus.it>
 
        * testsuite/21_strings/char_traits/requirements/char/1.cc:
index 447355b7a6df03dc855325b251b9d5dbbf44d023..098d06309ace7e58d2ba2dd89f00122948e015bb 100644 (file)
@@ -1,6 +1,6 @@
 // Low-level functions for atomic operations.
 
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -42,7 +42,9 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
     ("/* Inline exchange & add */\n\t"
      "1:\n\t"
      ".set     push\n\t"
+#if _MIPS_SIM == _MIPS_SIM_ABI32
      ".set     mips2\n\t"
+#endif
      "ll       %0,%3\n\t"
      "addu     %1,%4,%0\n\t"
      "sc       %1,%2\n\t"
@@ -66,7 +68,9 @@ __atomic_add (volatile _Atomic_word *__mem, int __val)
     ("/* Inline atomic add */\n\t"
      "1:\n\t"
      ".set     push\n\t"
+#if _MIPS_SIM == _MIPS_SIM_ABI32
      ".set     mips2\n\t"
+#endif
      "ll       %0,%2\n\t"
      "addu     %0,%3,%0\n\t"
      "sc       %0,%1\n\t"