mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -786,19 +786,27 @@ AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
|
||||
{
|
||||
return OSAtomicAdd64(v, (int64_t *) p);
|
||||
#elif defined (__i386__)
|
||||
#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),
|
||||
{
|
||||
|
Reference in New Issue
Block a user