PAPI 7.1.0.0
Loading...
Searching...
No Matches
double_atomic_load_store.h File Reference

Go to the source code of this file.

Macros

#define AO_HAVE_double_load
 
#define AO_HAVE_double_store
 

Functions

AO_INLINE AO_double_t AO_double_load (const volatile AO_double_t *addr)
 
AO_INLINE void AO_double_store (volatile AO_double_t *addr, AO_double_t new_val)
 

Macro Definition Documentation

◆ AO_HAVE_double_load

#define AO_HAVE_double_load

Definition at line 40 of file double_atomic_load_store.h.

◆ AO_HAVE_double_store

#define AO_HAVE_double_store

Definition at line 50 of file double_atomic_load_store.h.

Function Documentation

◆ AO_double_load()

AO_INLINE AO_double_t AO_double_load ( const volatile AO_double_t addr)

Definition at line 29 of file double_atomic_load_store.h.

30{
32
33# ifdef AO_ACCESS_double_CHECK_ALIGNED
35# endif
36 /* Cast away the volatile in case it adds fence semantics. */
37 result.AO_whole = ((const AO_double_t *)addr)->AO_whole;
38 return result;
39}
volatile int result
#define AO_ASSERT_ADDR_ALIGNED(addr)
Definition: atomic_ops.h:266

◆ AO_double_store()

AO_INLINE void AO_double_store ( volatile AO_double_t addr,
AO_double_t  new_val 
)

Definition at line 43 of file double_atomic_load_store.h.

44{
45# ifdef AO_ACCESS_double_CHECK_ALIGNED
47# endif
48 ((AO_double_t *)addr)->AO_whole = new_val.AO_whole;
49}
double_ptr_storage AO_whole