forked from boostorg/smart_ptr
Make assembly functions inline to prevent multiple definitions. Required to change from function level assembly to regular functions with statement level assembly.
[SVN r28133]
This commit is contained in:
@ -32,7 +32,9 @@ namespace boost
|
||||
namespace detail
|
||||
{
|
||||
|
||||
asm void atomic_increment( register long * pw )
|
||||
inline void atomic_increment( register long * pw )
|
||||
{
|
||||
asm
|
||||
{
|
||||
loop:
|
||||
|
||||
@ -41,8 +43,11 @@ loop:
|
||||
stwcx. r4, 0, r3
|
||||
bne- loop
|
||||
}
|
||||
}
|
||||
|
||||
asm long atomic_decrement( register long * pw )
|
||||
inline long atomic_decrement( register long * pw )
|
||||
{
|
||||
asm
|
||||
{
|
||||
sync
|
||||
|
||||
@ -57,8 +62,11 @@ loop:
|
||||
|
||||
isync
|
||||
}
|
||||
}
|
||||
|
||||
asm long atomic_conditional_increment( register long * pw )
|
||||
inline long atomic_conditional_increment( register long * pw )
|
||||
{
|
||||
asm
|
||||
{
|
||||
loop:
|
||||
|
||||
@ -75,6 +83,7 @@ store:
|
||||
|
||||
mr r3, r4
|
||||
}
|
||||
}
|
||||
|
||||
class sp_counted_base
|
||||
{
|
||||
|
Reference in New Issue
Block a user