[asterisk-commits] tilghman: trunk r82029 - in /trunk: ./ include/asterisk/lock.h
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sat Sep 8 21:45:07 CDT 2007
Author: tilghman
Date: Sat Sep 8 21:45:06 2007
New Revision: 82029
URL: http://svn.digium.com/view/asterisk?view=rev&rev=82029
Log:
Merged revisions 82028 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r82028 | tilghman | 2007-09-08 21:35:18 -0500 (Sat, 08 Sep 2007) | 2 lines
Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?) (closes issue #10675)
........
Modified:
trunk/ (props changed)
trunk/include/asterisk/lock.h
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/include/asterisk/lock.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/lock.h?view=diff&rev=82029&r1=82028&r2=82029
==============================================================================
--- trunk/include/asterisk/lock.h (original)
+++ trunk/include/asterisk/lock.h Sat Sep 8 21:45:06 2007
@@ -786,19 +786,27 @@
{
return OSAtomicAdd64(v, (int64_t *) p);
#elif defined (__i386__) || defined(__x86_64__)
+#ifdef sun
AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
{
__asm __volatile (
-#ifdef sun
" lock; xaddl %0, %1 ; "
-#else
- " lock xaddl %0, %1 ; "
-#endif
: "+r" (v), /* 0 (result) */
"=m" (*p) /* 1 */
: "m" (*p)); /* 2 */
return (v);
})
+#else /* ifndef sun */
+AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
+{
+ __asm __volatile (
+ " lock xaddl %0, %1 ; "
+ : "+r" (v), /* 0 (result) */
+ "=m" (*p) /* 1 */
+ : "m" (*p)); /* 2 */
+ return (v);
+})
+#endif
#else /* low performance version in utils.c */
AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
{
More information about the asterisk-commits
mailing list