< prev index next >

src/share/vm/runtime/atomic.inline.hpp

Print this page
rev 7584 : reusability maximum


  49 # include "atomic_solaris_x86.inline.hpp"
  50 #endif
  51 #ifdef TARGET_OS_ARCH_solaris_sparc
  52 # include "atomic_solaris_sparc.inline.hpp"
  53 #endif
  54 
  55 // Windows
  56 #ifdef TARGET_OS_ARCH_windows_x86
  57 # include "atomic_windows_x86.inline.hpp"
  58 #endif
  59 
  60 // AIX
  61 #ifdef TARGET_OS_ARCH_aix_ppc
  62 # include "atomic_aix_ppc.inline.hpp"
  63 #endif
  64 
  65 // BSD
  66 #ifdef TARGET_OS_ARCH_bsd_x86
  67 # include "atomic_bsd_x86.inline.hpp"
  68 #endif

  69 #ifdef TARGET_OS_ARCH_bsd_zero
  70 # include "atomic_bsd_zero.inline.hpp"
  71 #endif
  72 
  73 // size_t casts...
  74 #if (SIZE_MAX != UINTPTR_MAX)
  75 #error size_t is not WORD_SIZE, interesting platform, but missing implementation here
  76 #endif
  77 
  78 inline size_t Atomic::add(size_t add_value, volatile size_t* dest) {
  79   return (size_t) add_ptr((intptr_t) add_value, (volatile intptr_t*) dest);
  80 }
  81 
  82 inline void Atomic::inc(volatile size_t* dest) {
  83   inc_ptr((volatile intptr_t*) dest);
  84 }
  85 
  86 inline void Atomic::dec(volatile size_t* dest) {
  87   dec_ptr((volatile intptr_t*) dest);
  88 }
  89 
  90 #ifndef VM_HAS_SPECIALIZED_CMPXCHG_BYTE
  91 // See comment in atomic.cpp how to override.
  92 inline jbyte Atomic::cmpxchg(jbyte exchange_value, volatile jbyte *dest, jbyte comparand)
  93 {
  94   return cmpxchg_general(exchange_value, dest, comparand);
  95 }
  96 #endif // VM_HAS_SPECIALIZED_CMPXCHG_BYTE
  97 
  98 #endif // SHARE_VM_RUNTIME_ATOMIC_INLINE_HPP


  49 # include "atomic_solaris_x86.inline.hpp"
  50 #endif
  51 #ifdef TARGET_OS_ARCH_solaris_sparc
  52 # include "atomic_solaris_sparc.inline.hpp"
  53 #endif
  54 
  55 // Windows
  56 #ifdef TARGET_OS_ARCH_windows_x86
  57 # include "atomic_windows_x86.inline.hpp"
  58 #endif
  59 
  60 // AIX
  61 #ifdef TARGET_OS_ARCH_aix_ppc
  62 # include "atomic_aix_ppc.inline.hpp"
  63 #endif
  64 
  65 // BSD
  66 #ifdef TARGET_OS_ARCH_bsd_x86
  67 # include "atomic_bsd_x86.inline.hpp"
  68 #endif
  69 
  70 #ifdef TARGET_OS_ARCH_bsd_zero
  71 # include "atomic_bsd_zero.inline.hpp"
  72 #endif
  73 
  74 // size_t casts...
  75 #if (SIZE_MAX != UINTPTR_MAX)
  76 #error size_t is not WORD_SIZE, interesting platform, but missing implementation here
  77 #endif
  78 
  79 inline size_t Atomic::add(size_t add_value, volatile size_t* dest) {
  80   return (size_t) add_ptr((intptr_t) add_value, (volatile intptr_t*) dest);
  81 }
  82 
  83 inline void Atomic::inc(volatile size_t* dest) {
  84   inc_ptr((volatile intptr_t*) dest);
  85 }
  86 
  87 inline void Atomic::dec(volatile size_t* dest) {
  88   dec_ptr((volatile intptr_t*) dest);
  89 }
  90 
  91 inline jbyte Atomic::cmpxchg(jbyte exchange_value, volatile jbyte* dest, jbyte compare_value) {
  92   return AtomicSuper::cmpxchg(exchange_value, dest, compare_value);



  93 }

  94 
  95 #endif // SHARE_VM_RUNTIME_ATOMIC_INLINE_HPP
< prev index next >