>Hi Baruch,

> 

>thank you for doing this.

> 

>Can you, please, post your code here (I guess, it is a header file like

>sp_counted_base_gcc_ia64.hpp)?. It will be reviewed by the Boost community

>and we'll review it at HP. And, then, it can be added to Boost, hopefully,

>in Boost 1.35 time frame.

> 

>Thanks again,

>  Boris

 

I copy the file sp_counted_base_gcc_ia64.hpp to sp_counted_base_acc_ia64.hpp and change the following methods:

atomic_increment(),atomic_decrement() and atomic_conditional_increment()

 

The change was:

 

#include <machine/sys/inline.h>

 

inline void atomic_increment( int * pw )

{

    _Asm_mf();

    static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, (void*)pw, +1, _LDHINT_NONE) + 1);

}

 

inline int atomic_decrement( int * pw )

{

    _Asm_mf();

    return (static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, (void*)pw, -1, _LDHINT_NONE) - 1) - 1);

}

 

inline int atomic_conditional_increment( int * pw )

{

    return _Asm_mov_to_ar((_Asm_app_reg)_AREG_CCV,

                          *pw,

                          (_Asm_fence)(_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE)),

                         _Asm_mf(),

                         (_Asm_cmpxchg((_Asm_sz)4,

                                       (_Asm_sem)_SEM_REL,

                                        pw,

                                        *pw + 1,

                         (_Asm_ldhint)_LDHINT_NONE));

}

 

Thanks

Baruch

This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement,
you may review at http://www.amdocs.com/email_disclaimer.asp