--- boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp.orig 2009-03-02 11:22:16.000000000 -0500 +++ boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp 2009-11-12 09:51:25.000000000 -0500 @@ -30,10 +30,10 @@ inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ ) { - __asm__ __volatile__( "cas %0, %2, %1" - : "+m" (*dest_), "+r" (swap_) - : "r" (compare_) - : "memory" ); + __asm__ __volatile__( "casa [%3] 0x80, %2, %1" + : "=m" (*dest_), "=r" (swap_) + : "r" (compare_), "r" (dest_), "1" (swap_), "m" (*dest_) + : "memory" ); return swap_; }