mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-25 15:08:53 +00:00
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) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82029 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);
|
return OSAtomicAdd64(v, (int64_t *) p);
|
||||||
#elif defined (__i386__) || defined(__x86_64__)
|
#elif defined (__i386__) || defined(__x86_64__)
|
||||||
|
#ifdef sun
|
||||||
AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
|
AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
|
||||||
{
|
{
|
||||||
__asm __volatile (
|
__asm __volatile (
|
||||||
#ifdef sun
|
|
||||||
" lock; xaddl %0, %1 ; "
|
" lock; xaddl %0, %1 ; "
|
||||||
#else
|
|
||||||
" lock xaddl %0, %1 ; "
|
|
||||||
#endif
|
|
||||||
: "+r" (v), /* 0 (result) */
|
: "+r" (v), /* 0 (result) */
|
||||||
"=m" (*p) /* 1 */
|
"=m" (*p) /* 1 */
|
||||||
: "m" (*p)); /* 2 */
|
: "m" (*p)); /* 2 */
|
||||||
return (v);
|
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 */
|
#else /* low performance version in utils.c */
|
||||||
AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
|
AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user