hotspot/src/share/vm/utilities/macros.hpp
changeset 40655 9f644073d3a0
parent 40015 524230a0f4ca
child 42062 473286891dd8
equal deleted inserted replaced
40654:d4f8e348420a 40655:9f644073d3a0
   484 #define OS_HEADER_INLINE(basename)     XSTR(OS_HEADER_STEM(basename).inline.hpp)
   484 #define OS_HEADER_INLINE(basename)     XSTR(OS_HEADER_STEM(basename).inline.hpp)
   485 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
   485 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
   486 #define OS_CPU_HEADER(basename)        XSTR(OS_CPU_HEADER_STEM(basename).hpp)
   486 #define OS_CPU_HEADER(basename)        XSTR(OS_CPU_HEADER_STEM(basename).hpp)
   487 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
   487 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
   488 
   488 
       
   489 // To use Atomic::inc(jshort* dest) and Atomic::dec(jshort* dest), the address must be specially
       
   490 // aligned, such that (*dest) occupies the upper 16 bits of an aligned 32-bit word. The best way to
       
   491 // achieve is to place your short value next to another short value, which doesn't need atomic ops.
       
   492 //
       
   493 // Example
       
   494 //  ATOMIC_SHORT_PAIR(
       
   495 //    volatile short _refcount,  // needs atomic operation
       
   496 //    unsigned short _length     // number of UTF8 characters in the symbol (does not need atomic op)
       
   497 //  );
       
   498 
       
   499 #ifdef VM_LITTLE_ENDIAN
       
   500   #define ATOMIC_SHORT_PAIR(atomic_decl, non_atomic_decl)  \
       
   501     non_atomic_decl;                                       \
       
   502     atomic_decl
       
   503 #else
       
   504   #define ATOMIC_SHORT_PAIR(atomic_decl, non_atomic_decl)  \
       
   505     atomic_decl;                                           \
       
   506     non_atomic_decl
       
   507 #endif
       
   508 
   489 #endif // SHARE_VM_UTILITIES_MACROS_HPP
   509 #endif // SHARE_VM_UTILITIES_MACROS_HPP