395 #define LP64_ONLY(code)
396 #define NOT_LP64(code) code
397 #endif // _LP64
398
399 #ifdef LINUX
400 #define LINUX_ONLY(code) code
401 #define NOT_LINUX(code)
402 #else
403 #define LINUX_ONLY(code)
404 #define NOT_LINUX(code) code
405 #endif
406
407 #ifdef AIX
408 #define AIX_ONLY(code) code
409 #define NOT_AIX(code)
410 #else
411 #define AIX_ONLY(code)
412 #define NOT_AIX(code) code
413 #endif
414
415 #ifdef SOLARIS
416 #define SOLARIS_ONLY(code) code
417 #define NOT_SOLARIS(code)
418 #else
419 #define SOLARIS_ONLY(code)
420 #define NOT_SOLARIS(code) code
421 #endif
422
423 #ifdef _WINDOWS
424 #define WINDOWS_ONLY(code) code
425 #define NOT_WINDOWS(code)
426 #else
427 #define WINDOWS_ONLY(code)
428 #define NOT_WINDOWS(code) code
429 #endif
430
431 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
432 #ifndef BSD
433 #define BSD
434 #endif // BSD defined in <sys/param.h>
435 #define BSD_ONLY(code) code
436 #define NOT_BSD(code)
437 #else
438 #define BSD_ONLY(code)
439 #define NOT_BSD(code) code
440 #endif
441
442 #ifdef _WIN64
484 #define IA64_ONLY(code)
485 #define NOT_IA64(code) code
486 #endif
487
488 #ifdef AMD64
489 #define AMD64_ONLY(code) code
490 #define NOT_AMD64(code)
491 #else
492 #define AMD64_ONLY(code)
493 #define NOT_AMD64(code) code
494 #endif
495
496 #ifdef S390
497 #define S390_ONLY(code) code
498 #define NOT_S390(code)
499 #else
500 #define S390_ONLY(code)
501 #define NOT_S390(code) code
502 #endif
503
504 #ifdef SPARC
505 #define SPARC_ONLY(code) code
506 #define NOT_SPARC(code)
507 #else
508 #define SPARC_ONLY(code)
509 #define NOT_SPARC(code) code
510 #endif
511
512 #if defined(PPC32) || defined(PPC64)
513 #ifndef PPC
514 #define PPC
515 #endif
516 #define PPC_ONLY(code) code
517 #define NOT_PPC(code)
518 #else
519 #undef PPC
520 #define PPC_ONLY(code)
521 #define NOT_PPC(code) code
522 #endif
523
524 #ifdef PPC32
525 #define PPC32_ONLY(code) code
526 #define NOT_PPC32(code)
527 #else
528 #define PPC32_ONLY(code)
529 #define NOT_PPC32(code) code
530 #endif
531
576 #define LITTLE_ENDIAN_ONLY(code) code
577 #define BIG_ENDIAN_ONLY(code)
578 #else
579 #define LITTLE_ENDIAN_ONLY(code)
580 #define BIG_ENDIAN_ONLY(code) code
581 #endif
582
583 #define define_pd_global(type, name, value) const type pd_##name = value;
584
585 // Helper macros for constructing file names for includes.
586 #define CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_CPU)
587 #define OS_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_OS)
588 #define OS_CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, PASTE_TOKENS(INCLUDE_SUFFIX_OS, INCLUDE_SUFFIX_CPU))
589 #define COMPILER_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_COMPILER)
590
591 // Include platform dependent files.
592 //
593 // This macro constructs from basename and INCLUDE_SUFFIX_OS /
594 // INCLUDE_SUFFIX_CPU / INCLUDE_SUFFIX_COMPILER, which are set on
595 // the command line, the name of platform dependent files to be included.
596 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_sparc
597 // CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_sparc.inline.hpp
598 // OS_CPU_HEADER(vmStructs) --> vmStructs_linux_sparc.hpp
599 //
600 // basename<cpu>.hpp / basename<cpu>.inline.hpp
601 #define CPU_HEADER_H(basename) XSTR(CPU_HEADER_STEM(basename).h)
602 #define CPU_HEADER(basename) XSTR(CPU_HEADER_STEM(basename).hpp)
603 #define CPU_HEADER_INLINE(basename) XSTR(CPU_HEADER_STEM(basename).inline.hpp)
604 // basename<os>.hpp / basename<os>.inline.hpp
605 #define OS_HEADER_H(basename) XSTR(OS_HEADER_STEM(basename).h)
606 #define OS_HEADER(basename) XSTR(OS_HEADER_STEM(basename).hpp)
607 #define OS_HEADER_INLINE(basename) XSTR(OS_HEADER_STEM(basename).inline.hpp)
608 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
609 #define OS_CPU_HEADER(basename) XSTR(OS_CPU_HEADER_STEM(basename).hpp)
610 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
611 // basename<compiler>.hpp / basename<compiler>.inline.hpp
612 #define COMPILER_HEADER(basename) XSTR(COMPILER_HEADER_STEM(basename).hpp)
613 #define COMPILER_HEADER_INLINE(basename) XSTR(COMPILER_HEADER_STEM(basename).inline.hpp)
614
615 #if INCLUDE_CDS && INCLUDE_G1GC && defined(_LP64) && !defined(_WINDOWS)
616 #define INCLUDE_CDS_JAVA_HEAP 1
617 #define CDS_JAVA_HEAP_ONLY(x) x
618 #define NOT_CDS_JAVA_HEAP(x)
|
395 #define LP64_ONLY(code)
396 #define NOT_LP64(code) code
397 #endif // _LP64
398
399 #ifdef LINUX
400 #define LINUX_ONLY(code) code
401 #define NOT_LINUX(code)
402 #else
403 #define LINUX_ONLY(code)
404 #define NOT_LINUX(code) code
405 #endif
406
407 #ifdef AIX
408 #define AIX_ONLY(code) code
409 #define NOT_AIX(code)
410 #else
411 #define AIX_ONLY(code)
412 #define NOT_AIX(code) code
413 #endif
414
415 #ifdef _WINDOWS
416 #define WINDOWS_ONLY(code) code
417 #define NOT_WINDOWS(code)
418 #else
419 #define WINDOWS_ONLY(code)
420 #define NOT_WINDOWS(code) code
421 #endif
422
423 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
424 #ifndef BSD
425 #define BSD
426 #endif // BSD defined in <sys/param.h>
427 #define BSD_ONLY(code) code
428 #define NOT_BSD(code)
429 #else
430 #define BSD_ONLY(code)
431 #define NOT_BSD(code) code
432 #endif
433
434 #ifdef _WIN64
476 #define IA64_ONLY(code)
477 #define NOT_IA64(code) code
478 #endif
479
480 #ifdef AMD64
481 #define AMD64_ONLY(code) code
482 #define NOT_AMD64(code)
483 #else
484 #define AMD64_ONLY(code)
485 #define NOT_AMD64(code) code
486 #endif
487
488 #ifdef S390
489 #define S390_ONLY(code) code
490 #define NOT_S390(code)
491 #else
492 #define S390_ONLY(code)
493 #define NOT_S390(code) code
494 #endif
495
496 #if defined(PPC32) || defined(PPC64)
497 #ifndef PPC
498 #define PPC
499 #endif
500 #define PPC_ONLY(code) code
501 #define NOT_PPC(code)
502 #else
503 #undef PPC
504 #define PPC_ONLY(code)
505 #define NOT_PPC(code) code
506 #endif
507
508 #ifdef PPC32
509 #define PPC32_ONLY(code) code
510 #define NOT_PPC32(code)
511 #else
512 #define PPC32_ONLY(code)
513 #define NOT_PPC32(code) code
514 #endif
515
560 #define LITTLE_ENDIAN_ONLY(code) code
561 #define BIG_ENDIAN_ONLY(code)
562 #else
563 #define LITTLE_ENDIAN_ONLY(code)
564 #define BIG_ENDIAN_ONLY(code) code
565 #endif
566
567 #define define_pd_global(type, name, value) const type pd_##name = value;
568
569 // Helper macros for constructing file names for includes.
570 #define CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_CPU)
571 #define OS_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_OS)
572 #define OS_CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, PASTE_TOKENS(INCLUDE_SUFFIX_OS, INCLUDE_SUFFIX_CPU))
573 #define COMPILER_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_COMPILER)
574
575 // Include platform dependent files.
576 //
577 // This macro constructs from basename and INCLUDE_SUFFIX_OS /
578 // INCLUDE_SUFFIX_CPU / INCLUDE_SUFFIX_COMPILER, which are set on
579 // the command line, the name of platform dependent files to be included.
580 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_x86
581 // CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_x86.inline.hpp
582 // OS_CPU_HEADER(vmStructs) --> vmStructs_linux_x86.hpp
583 //
584 // basename<cpu>.hpp / basename<cpu>.inline.hpp
585 #define CPU_HEADER_H(basename) XSTR(CPU_HEADER_STEM(basename).h)
586 #define CPU_HEADER(basename) XSTR(CPU_HEADER_STEM(basename).hpp)
587 #define CPU_HEADER_INLINE(basename) XSTR(CPU_HEADER_STEM(basename).inline.hpp)
588 // basename<os>.hpp / basename<os>.inline.hpp
589 #define OS_HEADER_H(basename) XSTR(OS_HEADER_STEM(basename).h)
590 #define OS_HEADER(basename) XSTR(OS_HEADER_STEM(basename).hpp)
591 #define OS_HEADER_INLINE(basename) XSTR(OS_HEADER_STEM(basename).inline.hpp)
592 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
593 #define OS_CPU_HEADER(basename) XSTR(OS_CPU_HEADER_STEM(basename).hpp)
594 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
595 // basename<compiler>.hpp / basename<compiler>.inline.hpp
596 #define COMPILER_HEADER(basename) XSTR(COMPILER_HEADER_STEM(basename).hpp)
597 #define COMPILER_HEADER_INLINE(basename) XSTR(COMPILER_HEADER_STEM(basename).inline.hpp)
598
599 #if INCLUDE_CDS && INCLUDE_G1GC && defined(_LP64) && !defined(_WINDOWS)
600 #define INCLUDE_CDS_JAVA_HEAP 1
601 #define CDS_JAVA_HEAP_ONLY(x) x
602 #define NOT_CDS_JAVA_HEAP(x)
|