Decorate __exchange_and_add and __atomic_add

Jan Hubicka hubicka@ucw.cz
Sat Apr 18 21:49:00 GMT 2009


Hi,
these are quite verbose...
Tested on x86_64-linux, OK?
	* include/ext/atomicity.h
	(__exchange_and_add, __atomic_add): Mark throw ().
	* config/os/aix/atomicity.h
	* config/os/aix/atomicity.h
	* config/os/irix/atomicity.h
	* config/cpu/cris/atomicity.h
	* config/cpu/m68k/atomicity.h
	* config/cpu/hppa/atomicity.h
	* config/cpu/sparc/atomicity.h
	* config/cpu/i386/atomicity.h
	* config/cpu/i486/atomicity.h
	* config/cpu/sh/atomicity.h
	* config/cpu/generic/atomicity_mutex/atomicity.h
	* config/cpu/generic/atomicity_builtins/atomicity.h
	(__exchange_and_add, __atomic_add): Mark throw ().
Index: include/ext/atomicity.h
===================================================================
--- include/ext/atomicity.h	(revision 146329)
+++ include/ext/atomicity.h	(working copy)
@@ -51,11 +51,11 @@
 #else
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word*, int);
+  __exchange_and_add(volatile _Atomic_word*, int) throw ();
 
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word*, int);
+  __atomic_add(volatile _Atomic_word*, int) throw ();
 #endif
 
   static inline _Atomic_word
Index: config/os/aix/atomicity.h
===================================================================
--- config/os/aix/atomicity.h	(revision 146329)
+++ config/os/aix/atomicity.h	(working copy)
@@ -42,12 +42,12 @@
 
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add (volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add (volatile _Atomic_word* __mem, int __val) throw ()
   { return ::fetch_and_add(const_cast<atomic_p>(__mem), __val); }
 
   void
   __attribute__ ((__unused__))
-  __atomic_add (volatile _Atomic_word* __mem, int __val)
+  __atomic_add (volatile _Atomic_word* __mem, int __val) throw ()
   { (void) ::fetch_and_add(const_cast<atomic_p>(__mem), __val); }
 
 _GLIBCXX_END_NAMESPACE
Index: config/os/irix/atomicity.h
===================================================================
--- config/os/irix/atomicity.h	(revision 146329)
+++ config/os/irix/atomicity.h	(working copy)
@@ -28,11 +28,11 @@
 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
   _Atomic_word
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   { return (_Atomic_word) test_then_add((unsigned long*) const_cast<_Atomic_word*>(__mem), __val); }
 
   void
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   { __exchange_and_add(__mem, __val); }
 
 _GLIBCXX_END_NAMESPACE
Index: config/cpu/cris/atomicity.h
===================================================================
--- config/cpu/cris/atomicity.h	(revision 146329)
+++ config/cpu/cris/atomicity.h	(working copy)
@@ -27,7 +27,7 @@
 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
   _Atomic_word
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     int __tmp;
     _Atomic_word __result;
@@ -80,7 +80,7 @@
   }
 
   void
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   { __exchange_and_add(__mem, __val); }
 
 _GLIBCXX_END_NAMESPACE
Index: config/cpu/m68k/atomicity.h
===================================================================
--- config/cpu/m68k/atomicity.h	(revision 146329)
+++ config/cpu/m68k/atomicity.h	(working copy)
@@ -32,7 +32,7 @@
   // These variants support compare-and-swap.
   _Atomic_word 
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     register _Atomic_word __result = *__mem;
     register _Atomic_word __temp;
@@ -50,7 +50,7 @@
   // Disable interrupts, which we can do only from supervisor mode.
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word __result;
     short __level, __tmpsr;
@@ -79,7 +79,7 @@
   
   _Atomic_word 
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word __result;
     
@@ -119,7 +119,7 @@
 
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     // Careful: using add.l with a memory destination is not
     // architecturally guaranteed to be atomic.
Index: config/cpu/hppa/atomicity.h
===================================================================
--- config/cpu/hppa/atomicity.h	(revision 146329)
+++ config/cpu/hppa/atomicity.h	(working copy)
@@ -43,7 +43,7 @@
 
   int
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word result;
     int tmp;
@@ -68,7 +68,7 @@
   
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     int tmp;
     volatile int& lock = _Atomicity_lock<0>::_S_atomicity_lock;
Index: config/cpu/sparc/atomicity.h
===================================================================
--- config/cpu/sparc/atomicity.h	(revision 146329)
+++ config/cpu/sparc/atomicity.h	(working copy)
@@ -30,7 +30,7 @@
 #ifdef __arch64__
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word __tmp1, __tmp2;
     _Atomic_word __val_extended = __val;
@@ -48,7 +48,7 @@
   
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word __tmp1, __tmp2;
     _Atomic_word __val_extended = __val;
@@ -78,7 +78,7 @@
   
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word __result, __tmp;
     
@@ -100,7 +100,7 @@
   
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word __tmp;
     
Index: config/cpu/i386/atomicity.h
===================================================================
--- config/cpu/i386/atomicity.h	(revision 146329)
+++ config/cpu/i386/atomicity.h	(working copy)
@@ -39,7 +39,7 @@
   
   _Atomic_word 
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     register _Atomic_word __result, __tmp = 1;
     
@@ -64,7 +64,7 @@
   
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   { __exchange_and_add(__mem, __val); }
 
 _GLIBCXX_END_NAMESPACE
Index: config/cpu/i486/atomicity.h
===================================================================
--- config/cpu/i486/atomicity.h	(revision 146329)
+++ config/cpu/i486/atomicity.h	(working copy)
@@ -28,7 +28,7 @@
 
   _Atomic_word 
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     register _Atomic_word __result;
     __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}"
@@ -39,7 +39,7 @@
   
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
 			  : "=m" (*__mem) : "ir" (__val), "m" (*__mem));
Index: config/cpu/sh/atomicity.h
===================================================================
--- config/cpu/sh/atomicity.h	(revision 146329)
+++ config/cpu/sh/atomicity.h	(working copy)
@@ -33,7 +33,7 @@
 
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add (volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add (volatile _Atomic_word* __mem, int __val) throw ()
   {
     _Atomic_word __result;
 
@@ -54,7 +54,7 @@
 
   void
   __attribute__ ((__unused__))
-  __atomic_add (volatile _Atomic_word* __mem, int __val)
+  __atomic_add (volatile _Atomic_word* __mem, int __val) throw ()
   {
     asm("0:\n"
 	"\tmovli.l\t@%1,r0\n"
@@ -84,7 +84,7 @@
 
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     __gnu_cxx::__scoped_lock sentry(atomic_mutex);
     _Atomic_word __result;
@@ -95,7 +95,7 @@
 
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   { __exchange_and_add(__mem, __val); }
 
 _GLIBCXX_END_NAMESPACE
Index: config/cpu/generic/atomicity_mutex/atomicity.h
===================================================================
--- config/cpu/generic/atomicity_mutex/atomicity.h	(revision 146329)
+++ config/cpu/generic/atomicity_mutex/atomicity.h	(working copy)
@@ -44,7 +44,7 @@
 
   _Atomic_word
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   {
     __gnu_cxx::__scoped_lock sentry(get_atomic_mutex());
     _Atomic_word __result;
@@ -55,7 +55,7 @@
 
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   { __exchange_and_add(__mem, __val); }
 
 _GLIBCXX_END_NAMESPACE
Index: config/cpu/generic/atomicity_builtins/atomicity.h
===================================================================
--- config/cpu/generic/atomicity_builtins/atomicity.h	(revision 146329)
+++ config/cpu/generic/atomicity_builtins/atomicity.h	(working copy)
@@ -34,12 +34,12 @@
 
   _Atomic_word 
   __attribute__ ((__unused__))
-  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
   { return __sync_fetch_and_add(__mem, __val); }
 
   void
   __attribute__ ((__unused__))
-  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
   { __sync_fetch_and_add(__mem, __val); }
 
 _GLIBCXX_END_NAMESPACE



More information about the Libstdc++ mailing list