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 |