< prev index next >

src/hotspot/share/utilities/macros.hpp

Print this page




 592 // the command line, the name of platform dependent files to be included.
 593 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_sparc
 594 //   CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_sparc.inline.hpp
 595 //   OS_CPU_HEADER(vmStructs)          --> vmStructs_linux_sparc.hpp
 596 //
 597 // basename<cpu>.hpp / basename<cpu>.inline.hpp
 598 #define CPU_HEADER_H(basename)         XSTR(CPU_HEADER_STEM(basename).h)
 599 #define CPU_HEADER(basename)           XSTR(CPU_HEADER_STEM(basename).hpp)
 600 #define CPU_HEADER_INLINE(basename)    XSTR(CPU_HEADER_STEM(basename).inline.hpp)
 601 // basename<os>.hpp / basename<os>.inline.hpp
 602 #define OS_HEADER_H(basename)          XSTR(OS_HEADER_STEM(basename).h)
 603 #define OS_HEADER(basename)            XSTR(OS_HEADER_STEM(basename).hpp)
 604 #define OS_HEADER_INLINE(basename)     XSTR(OS_HEADER_STEM(basename).inline.hpp)
 605 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
 606 #define OS_CPU_HEADER(basename)        XSTR(OS_CPU_HEADER_STEM(basename).hpp)
 607 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
 608 // basename<compiler>.hpp / basename<compiler>.inline.hpp
 609 #define COMPILER_HEADER(basename)        XSTR(COMPILER_HEADER_STEM(basename).hpp)
 610 #define COMPILER_HEADER_INLINE(basename) XSTR(COMPILER_HEADER_STEM(basename).inline.hpp)
 611 
 612 // To use Atomic::inc(jshort* dest) and Atomic::dec(jshort* dest), the address must be specially
 613 // aligned, such that (*dest) occupies the upper 16 bits of an aligned 32-bit word. The best way to
 614 // achieve is to place your short value next to another short value, which doesn't need atomic ops.
 615 //
 616 // Example
 617 //  ATOMIC_SHORT_PAIR(
 618 //    volatile short _refcount,  // needs atomic operation
 619 //    unsigned short _length     // number of UTF8 characters in the symbol (does not need atomic op)
 620 //  );
 621 
 622 #ifdef VM_LITTLE_ENDIAN
 623   #define ATOMIC_SHORT_PAIR(atomic_decl, non_atomic_decl)  \
 624     non_atomic_decl;                                       \
 625     atomic_decl
 626 #else
 627   #define ATOMIC_SHORT_PAIR(atomic_decl, non_atomic_decl)  \
 628     atomic_decl;                                           \
 629     non_atomic_decl
 630 #endif
 631 
 632 #if INCLUDE_CDS && INCLUDE_G1GC && defined(_LP64) && !defined(_WINDOWS)
 633 #define INCLUDE_CDS_JAVA_HEAP 1
 634 #define CDS_JAVA_HEAP_ONLY(x) x
 635 #define NOT_CDS_JAVA_HEAP(x)
 636 #define NOT_CDS_JAVA_HEAP_RETURN
 637 #define NOT_CDS_JAVA_HEAP_RETURN_(code)
 638 #else
 639 #define INCLUDE_CDS_JAVA_HEAP 0
 640 #define CDS_JAVA_HEAP_ONLY(x)
 641 #define NOT_CDS_JAVA_HEAP(x) x
 642 #define NOT_CDS_JAVA_HEAP_RETURN        {}
 643 #define NOT_CDS_JAVA_HEAP_RETURN_(code) { return code; }
 644 #endif
 645 
 646 #endif // SHARE_VM_UTILITIES_MACROS_HPP


 592 // the command line, the name of platform dependent files to be included.
 593 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_sparc
 594 //   CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_sparc.inline.hpp
 595 //   OS_CPU_HEADER(vmStructs)          --> vmStructs_linux_sparc.hpp
 596 //
 597 // basename<cpu>.hpp / basename<cpu>.inline.hpp
 598 #define CPU_HEADER_H(basename)         XSTR(CPU_HEADER_STEM(basename).h)
 599 #define CPU_HEADER(basename)           XSTR(CPU_HEADER_STEM(basename).hpp)
 600 #define CPU_HEADER_INLINE(basename)    XSTR(CPU_HEADER_STEM(basename).inline.hpp)
 601 // basename<os>.hpp / basename<os>.inline.hpp
 602 #define OS_HEADER_H(basename)          XSTR(OS_HEADER_STEM(basename).h)
 603 #define OS_HEADER(basename)            XSTR(OS_HEADER_STEM(basename).hpp)
 604 #define OS_HEADER_INLINE(basename)     XSTR(OS_HEADER_STEM(basename).inline.hpp)
 605 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
 606 #define OS_CPU_HEADER(basename)        XSTR(OS_CPU_HEADER_STEM(basename).hpp)
 607 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
 608 // basename<compiler>.hpp / basename<compiler>.inline.hpp
 609 #define COMPILER_HEADER(basename)        XSTR(COMPILER_HEADER_STEM(basename).hpp)
 610 #define COMPILER_HEADER_INLINE(basename) XSTR(COMPILER_HEADER_STEM(basename).inline.hpp)
 611 




















 612 #if INCLUDE_CDS && INCLUDE_G1GC && defined(_LP64) && !defined(_WINDOWS)
 613 #define INCLUDE_CDS_JAVA_HEAP 1
 614 #define CDS_JAVA_HEAP_ONLY(x) x
 615 #define NOT_CDS_JAVA_HEAP(x)
 616 #define NOT_CDS_JAVA_HEAP_RETURN
 617 #define NOT_CDS_JAVA_HEAP_RETURN_(code)
 618 #else
 619 #define INCLUDE_CDS_JAVA_HEAP 0
 620 #define CDS_JAVA_HEAP_ONLY(x)
 621 #define NOT_CDS_JAVA_HEAP(x) x
 622 #define NOT_CDS_JAVA_HEAP_RETURN        {}
 623 #define NOT_CDS_JAVA_HEAP_RETURN_(code) { return code; }
 624 #endif
 625 
 626 #endif // SHARE_VM_UTILITIES_MACROS_HPP
< prev index next >