PAPI 7.1.0.0
Loading...
Searching...
No Matches
hpc/ia64.h File Reference
Include dependency graph for hpc/ia64.h:

Go to the source code of this file.

Macros

#define AO_T_FASIZE   _FASZ_W
 
#define AO_T_SIZE   _SZ_W
 
#define AO_HAVE_nop_full
 
#define AO_HAVE_fetch_and_add1_acquire
 
#define AO_HAVE_fetch_and_add1_release
 
#define AO_HAVE_fetch_and_sub1_acquire
 
#define AO_HAVE_fetch_and_sub1_release
 
#define AO_HAVE_fetch_compare_and_swap_acquire
 
#define AO_HAVE_fetch_compare_and_swap_release
 
#define AO_HAVE_char_fetch_compare_and_swap_acquire
 
#define AO_HAVE_char_fetch_compare_and_swap_release
 
#define AO_HAVE_short_fetch_compare_and_swap_acquire
 
#define AO_HAVE_short_fetch_compare_and_swap_release
 
#define AO_T_IS_INT
 

Functions

AO_INLINE void AO_nop_full (void)
 
AO_INLINE AO_t AO_fetch_and_add1_acquire (volatile AO_t *p)
 
AO_INLINE AO_t AO_fetch_and_add1_release (volatile AO_t *p)
 
AO_INLINE AO_t AO_fetch_and_sub1_acquire (volatile AO_t *p)
 
AO_INLINE AO_t AO_fetch_and_sub1_release (volatile AO_t *p)
 
AO_INLINE AO_t AO_fetch_compare_and_swap_acquire (volatile AO_t *addr, AO_t old_val, AO_t new_val)
 
AO_INLINE AO_t AO_fetch_compare_and_swap_release (volatile AO_t *addr, AO_t old_val, AO_t new_val)
 
AO_INLINE unsigned char AO_char_fetch_compare_and_swap_acquire (volatile unsigned char *addr, unsigned char old_val, unsigned char new_val)
 
AO_INLINE unsigned char AO_char_fetch_compare_and_swap_release (volatile unsigned char *addr, unsigned char old_val, unsigned char new_val)
 
AO_INLINE unsigned short AO_short_fetch_compare_and_swap_acquire (volatile unsigned short *addr, unsigned short old_val, unsigned short new_val)
 
AO_INLINE unsigned short AO_short_fetch_compare_and_swap_release (volatile unsigned short *addr, unsigned short old_val, unsigned short new_val)
 

Macro Definition Documentation

◆ AO_HAVE_char_fetch_compare_and_swap_acquire

#define AO_HAVE_char_fetch_compare_and_swap_acquire

Definition at line 114 of file hpc/ia64.h.

◆ AO_HAVE_char_fetch_compare_and_swap_release

#define AO_HAVE_char_fetch_compare_and_swap_release

Definition at line 124 of file hpc/ia64.h.

◆ AO_HAVE_fetch_and_add1_acquire

#define AO_HAVE_fetch_and_add1_acquire

Definition at line 59 of file hpc/ia64.h.

◆ AO_HAVE_fetch_and_add1_release

#define AO_HAVE_fetch_and_add1_release

Definition at line 67 of file hpc/ia64.h.

◆ AO_HAVE_fetch_and_sub1_acquire

#define AO_HAVE_fetch_and_sub1_acquire

Definition at line 75 of file hpc/ia64.h.

◆ AO_HAVE_fetch_and_sub1_release

#define AO_HAVE_fetch_and_sub1_release

Definition at line 83 of file hpc/ia64.h.

◆ AO_HAVE_fetch_compare_and_swap_acquire

#define AO_HAVE_fetch_compare_and_swap_acquire

Definition at line 94 of file hpc/ia64.h.

◆ AO_HAVE_fetch_compare_and_swap_release

#define AO_HAVE_fetch_compare_and_swap_release

Definition at line 104 of file hpc/ia64.h.

◆ AO_HAVE_nop_full

#define AO_HAVE_nop_full

Definition at line 50 of file hpc/ia64.h.

◆ AO_HAVE_short_fetch_compare_and_swap_acquire

#define AO_HAVE_short_fetch_compare_and_swap_acquire

Definition at line 135 of file hpc/ia64.h.

◆ AO_HAVE_short_fetch_compare_and_swap_release

#define AO_HAVE_short_fetch_compare_and_swap_release

Definition at line 146 of file hpc/ia64.h.

◆ AO_T_FASIZE

#define AO_T_FASIZE   _FASZ_W

Definition at line 41 of file hpc/ia64.h.

◆ AO_T_IS_INT

#define AO_T_IS_INT

Definition at line 149 of file hpc/ia64.h.

◆ AO_T_SIZE

#define AO_T_SIZE   _SZ_W

Definition at line 42 of file hpc/ia64.h.

Function Documentation

◆ AO_char_fetch_compare_and_swap_acquire()

AO_INLINE unsigned char AO_char_fetch_compare_and_swap_acquire ( volatile unsigned char *  addr,
unsigned char  old_val,
unsigned char  new_val 
)

Definition at line 107 of file hpc/ia64.h.

109{
110 _Asm_mov_to_ar(_AREG_CCV, old_val, _DOWN_MEM_FENCE);
111 return _Asm_cmpxchg(_SZ_B, _SEM_ACQ, addr,
112 new_val, _LDHINT_NONE, _DOWN_MEM_FENCE);
113}

◆ AO_char_fetch_compare_and_swap_release()

AO_INLINE unsigned char AO_char_fetch_compare_and_swap_release ( volatile unsigned char *  addr,
unsigned char  old_val,
unsigned char  new_val 
)

Definition at line 117 of file hpc/ia64.h.

119{
120 _Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
121 return _Asm_cmpxchg(_SZ_B, _SEM_REL, addr,
122 new_val, _LDHINT_NONE, _UP_MEM_FENCE);
123}

◆ AO_fetch_and_add1_acquire()

AO_INLINE AO_t AO_fetch_and_add1_acquire ( volatile AO_t p)

Definition at line 54 of file hpc/ia64.h.

55{
56 return _Asm_fetchadd(AO_T_FASIZE, _SEM_ACQ, p, 1,
57 _LDHINT_NONE, _DOWN_MEM_FENCE);
58}
#define AO_T_FASIZE
Definition: hpc/ia64.h:41

◆ AO_fetch_and_add1_release()

AO_INLINE AO_t AO_fetch_and_add1_release ( volatile AO_t p)

Definition at line 62 of file hpc/ia64.h.

63{
64 return _Asm_fetchadd(AO_T_FASIZE, _SEM_REL, p, 1,
65 _LDHINT_NONE, _UP_MEM_FENCE);
66}

◆ AO_fetch_and_sub1_acquire()

AO_INLINE AO_t AO_fetch_and_sub1_acquire ( volatile AO_t p)

Definition at line 70 of file hpc/ia64.h.

71{
72 return _Asm_fetchadd(AO_T_FASIZE, _SEM_ACQ, p, -1,
73 _LDHINT_NONE, _DOWN_MEM_FENCE);
74}

◆ AO_fetch_and_sub1_release()

AO_INLINE AO_t AO_fetch_and_sub1_release ( volatile AO_t p)

Definition at line 78 of file hpc/ia64.h.

79{
80 return _Asm_fetchadd(AO_T_FASIZE, _SEM_REL, p, -1,
81 _LDHINT_NONE, _UP_MEM_FENCE);
82}

◆ AO_fetch_compare_and_swap_acquire()

AO_INLINE AO_t AO_fetch_compare_and_swap_acquire ( volatile AO_t addr,
AO_t  old_val,
AO_t  new_val 
)

Definition at line 87 of file hpc/ia64.h.

89{
90 _Asm_mov_to_ar(_AREG_CCV, old_val, _DOWN_MEM_FENCE);
91 return _Asm_cmpxchg(AO_T_SIZE, _SEM_ACQ, addr,
92 new_val, _LDHINT_NONE, _DOWN_MEM_FENCE);
93}
#define AO_T_SIZE
Definition: hpc/ia64.h:42

◆ AO_fetch_compare_and_swap_release()

AO_INLINE AO_t AO_fetch_compare_and_swap_release ( volatile AO_t addr,
AO_t  old_val,
AO_t  new_val 
)

Definition at line 97 of file hpc/ia64.h.

99{
100 _Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
101 return _Asm_cmpxchg(AO_T_SIZE, _SEM_REL, addr,
102 new_val, _LDHINT_NONE, _UP_MEM_FENCE);
103}

◆ AO_nop_full()

AO_INLINE void AO_nop_full ( void  )

Definition at line 46 of file hpc/ia64.h.

47{
48 _Asm_mf();
49}

◆ AO_short_fetch_compare_and_swap_acquire()

AO_INLINE unsigned short AO_short_fetch_compare_and_swap_acquire ( volatile unsigned short *  addr,
unsigned short  old_val,
unsigned short  new_val 
)

Definition at line 127 of file hpc/ia64.h.

130{
131 _Asm_mov_to_ar(_AREG_CCV, old_val, _DOWN_MEM_FENCE);
132 return _Asm_cmpxchg(_SZ_B, _SEM_ACQ, addr,
133 new_val, _LDHINT_NONE, _DOWN_MEM_FENCE);
134}

◆ AO_short_fetch_compare_and_swap_release()

AO_INLINE unsigned short AO_short_fetch_compare_and_swap_release ( volatile unsigned short *  addr,
unsigned short  old_val,
unsigned short  new_val 
)

Definition at line 138 of file hpc/ia64.h.

141{
142 _Asm_mov_to_ar(_AREG_CCV, old_val, _UP_MEM_FENCE);
143 return _Asm_cmpxchg(_SZ_B, _SEM_REL, addr,
144 new_val, _LDHINT_NONE, _UP_MEM_FENCE);
145}