1 /*
2 * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
403 #define LINUX_ONLY(code)
404 #define NOT_LINUX(code) code
405 #endif
406
407 #ifdef __APPLE__
408 #define MACOS_ONLY(code) code
409 #define NOT_MACOS(code)
410 #else
411 #define MACOS_ONLY(code)
412 #define NOT_MACOS(code) code
413 #endif
414
415 #ifdef AIX
416 #define AIX_ONLY(code) code
417 #define NOT_AIX(code)
418 #else
419 #define AIX_ONLY(code)
420 #define NOT_AIX(code) code
421 #endif
422
423 #ifdef SOLARIS
424 #define SOLARIS_ONLY(code) code
425 #define NOT_SOLARIS(code)
426 #else
427 #define SOLARIS_ONLY(code)
428 #define NOT_SOLARIS(code) code
429 #endif
430
431 #ifdef _WINDOWS
432 #define WINDOWS_ONLY(code) code
433 #define NOT_WINDOWS(code)
434 #else
435 #define WINDOWS_ONLY(code)
436 #define NOT_WINDOWS(code) code
437 #endif
438
439 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
440 #ifndef BSD
441 #define BSD
442 #endif // BSD defined in <sys/param.h>
443 #define BSD_ONLY(code) code
444 #define NOT_BSD(code)
445 #else
446 #define BSD_ONLY(code)
447 #define NOT_BSD(code) code
448 #endif
449
450 #ifdef _WIN64
492 #define IA64_ONLY(code)
493 #define NOT_IA64(code) code
494 #endif
495
496 #ifdef AMD64
497 #define AMD64_ONLY(code) code
498 #define NOT_AMD64(code)
499 #else
500 #define AMD64_ONLY(code)
501 #define NOT_AMD64(code) code
502 #endif
503
504 #ifdef S390
505 #define S390_ONLY(code) code
506 #define NOT_S390(code)
507 #else
508 #define S390_ONLY(code)
509 #define NOT_S390(code) code
510 #endif
511
512 #ifdef SPARC
513 #define SPARC_ONLY(code) code
514 #define NOT_SPARC(code)
515 #else
516 #define SPARC_ONLY(code)
517 #define NOT_SPARC(code) code
518 #endif
519
520 #if defined(PPC32) || defined(PPC64)
521 #ifndef PPC
522 #define PPC
523 #endif
524 #define PPC_ONLY(code) code
525 #define NOT_PPC(code)
526 #else
527 #undef PPC
528 #define PPC_ONLY(code)
529 #define NOT_PPC(code) code
530 #endif
531
532 #ifdef PPC32
533 #define PPC32_ONLY(code) code
534 #define NOT_PPC32(code)
535 #else
536 #define PPC32_ONLY(code)
537 #define NOT_PPC32(code) code
538 #endif
539
584 #define LITTLE_ENDIAN_ONLY(code) code
585 #define BIG_ENDIAN_ONLY(code)
586 #else
587 #define LITTLE_ENDIAN_ONLY(code)
588 #define BIG_ENDIAN_ONLY(code) code
589 #endif
590
591 #define define_pd_global(type, name, value) const type pd_##name = value;
592
593 // Helper macros for constructing file names for includes.
594 #define CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_CPU)
595 #define OS_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_OS)
596 #define OS_CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, PASTE_TOKENS(INCLUDE_SUFFIX_OS, INCLUDE_SUFFIX_CPU))
597 #define COMPILER_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_COMPILER)
598
599 // Include platform dependent files.
600 //
601 // This macro constructs from basename and INCLUDE_SUFFIX_OS /
602 // INCLUDE_SUFFIX_CPU / INCLUDE_SUFFIX_COMPILER, which are set on
603 // the command line, the name of platform dependent files to be included.
604 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_sparc
605 // CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_sparc.inline.hpp
606 // OS_CPU_HEADER(vmStructs) --> vmStructs_linux_sparc.hpp
607 //
608 // basename<cpu>.hpp / basename<cpu>.inline.hpp
609 #define CPU_HEADER_H(basename) XSTR(CPU_HEADER_STEM(basename).h)
610 #define CPU_HEADER(basename) XSTR(CPU_HEADER_STEM(basename).hpp)
611 #define CPU_HEADER_INLINE(basename) XSTR(CPU_HEADER_STEM(basename).inline.hpp)
612 // basename<os>.hpp / basename<os>.inline.hpp
613 #define OS_HEADER_H(basename) XSTR(OS_HEADER_STEM(basename).h)
614 #define OS_HEADER(basename) XSTR(OS_HEADER_STEM(basename).hpp)
615 #define OS_HEADER_INLINE(basename) XSTR(OS_HEADER_STEM(basename).inline.hpp)
616 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
617 #define OS_CPU_HEADER(basename) XSTR(OS_CPU_HEADER_STEM(basename).hpp)
618 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
619 // basename<compiler>.hpp / basename<compiler>.inline.hpp
620 #define COMPILER_HEADER(basename) XSTR(COMPILER_HEADER_STEM(basename).hpp)
621 #define COMPILER_HEADER_INLINE(basename) XSTR(COMPILER_HEADER_STEM(basename).inline.hpp)
622
623 #if INCLUDE_CDS && INCLUDE_G1GC && defined(_LP64) && !defined(_WINDOWS)
624 #define INCLUDE_CDS_JAVA_HEAP 1
625 #define CDS_JAVA_HEAP_ONLY(x) x
626 #define NOT_CDS_JAVA_HEAP(x)
|
1 /*
2 * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
403 #define LINUX_ONLY(code)
404 #define NOT_LINUX(code) code
405 #endif
406
407 #ifdef __APPLE__
408 #define MACOS_ONLY(code) code
409 #define NOT_MACOS(code)
410 #else
411 #define MACOS_ONLY(code)
412 #define NOT_MACOS(code) code
413 #endif
414
415 #ifdef AIX
416 #define AIX_ONLY(code) code
417 #define NOT_AIX(code)
418 #else
419 #define AIX_ONLY(code)
420 #define NOT_AIX(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 #if defined(PPC32) || defined(PPC64)
505 #ifndef PPC
506 #define PPC
507 #endif
508 #define PPC_ONLY(code) code
509 #define NOT_PPC(code)
510 #else
511 #undef PPC
512 #define PPC_ONLY(code)
513 #define NOT_PPC(code) code
514 #endif
515
516 #ifdef PPC32
517 #define PPC32_ONLY(code) code
518 #define NOT_PPC32(code)
519 #else
520 #define PPC32_ONLY(code)
521 #define NOT_PPC32(code) code
522 #endif
523
568 #define LITTLE_ENDIAN_ONLY(code) code
569 #define BIG_ENDIAN_ONLY(code)
570 #else
571 #define LITTLE_ENDIAN_ONLY(code)
572 #define BIG_ENDIAN_ONLY(code) code
573 #endif
574
575 #define define_pd_global(type, name, value) const type pd_##name = value;
576
577 // Helper macros for constructing file names for includes.
578 #define CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_CPU)
579 #define OS_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_OS)
580 #define OS_CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, PASTE_TOKENS(INCLUDE_SUFFIX_OS, INCLUDE_SUFFIX_CPU))
581 #define COMPILER_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_COMPILER)
582
583 // Include platform dependent files.
584 //
585 // This macro constructs from basename and INCLUDE_SUFFIX_OS /
586 // INCLUDE_SUFFIX_CPU / INCLUDE_SUFFIX_COMPILER, which are set on
587 // the command line, the name of platform dependent files to be included.
588 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_x86
589 // CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_x86.inline.hpp
590 // OS_CPU_HEADER(vmStructs) --> vmStructs_linux_x86.hpp
591 //
592 // basename<cpu>.hpp / basename<cpu>.inline.hpp
593 #define CPU_HEADER_H(basename) XSTR(CPU_HEADER_STEM(basename).h)
594 #define CPU_HEADER(basename) XSTR(CPU_HEADER_STEM(basename).hpp)
595 #define CPU_HEADER_INLINE(basename) XSTR(CPU_HEADER_STEM(basename).inline.hpp)
596 // basename<os>.hpp / basename<os>.inline.hpp
597 #define OS_HEADER_H(basename) XSTR(OS_HEADER_STEM(basename).h)
598 #define OS_HEADER(basename) XSTR(OS_HEADER_STEM(basename).hpp)
599 #define OS_HEADER_INLINE(basename) XSTR(OS_HEADER_STEM(basename).inline.hpp)
600 // basename<os><cpu>.hpp / basename<os><cpu>.inline.hpp
601 #define OS_CPU_HEADER(basename) XSTR(OS_CPU_HEADER_STEM(basename).hpp)
602 #define OS_CPU_HEADER_INLINE(basename) XSTR(OS_CPU_HEADER_STEM(basename).inline.hpp)
603 // basename<compiler>.hpp / basename<compiler>.inline.hpp
604 #define COMPILER_HEADER(basename) XSTR(COMPILER_HEADER_STEM(basename).hpp)
605 #define COMPILER_HEADER_INLINE(basename) XSTR(COMPILER_HEADER_STEM(basename).inline.hpp)
606
607 #if INCLUDE_CDS && INCLUDE_G1GC && defined(_LP64) && !defined(_WINDOWS)
608 #define INCLUDE_CDS_JAVA_HEAP 1
609 #define CDS_JAVA_HEAP_ONLY(x) x
610 #define NOT_CDS_JAVA_HEAP(x)
|