99 #include "runtime/virtualspace.hpp" |
99 #include "runtime/virtualspace.hpp" |
100 #include "runtime/vmStructs.hpp" |
100 #include "runtime/vmStructs.hpp" |
101 #include "utilities/array.hpp" |
101 #include "utilities/array.hpp" |
102 #include "utilities/globalDefinitions.hpp" |
102 #include "utilities/globalDefinitions.hpp" |
103 #include "utilities/hashtable.hpp" |
103 #include "utilities/hashtable.hpp" |
|
104 #include "utilities/macros.hpp" |
104 #ifdef TARGET_ARCH_x86 |
105 #ifdef TARGET_ARCH_x86 |
105 # include "vmStructs_x86.hpp" |
106 # include "vmStructs_x86.hpp" |
106 #endif |
107 #endif |
107 #ifdef TARGET_ARCH_sparc |
108 #ifdef TARGET_ARCH_sparc |
108 # include "vmStructs_sparc.hpp" |
109 # include "vmStructs_sparc.hpp" |
144 # include "vmStructs_bsd_x86.hpp" |
145 # include "vmStructs_bsd_x86.hpp" |
145 #endif |
146 #endif |
146 #ifdef TARGET_OS_ARCH_bsd_zero |
147 #ifdef TARGET_OS_ARCH_bsd_zero |
147 # include "vmStructs_bsd_zero.hpp" |
148 # include "vmStructs_bsd_zero.hpp" |
148 #endif |
149 #endif |
149 #ifndef SERIALGC |
150 #if INCLUDE_ALL_GCS |
150 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" |
151 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" |
151 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" |
152 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" |
152 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" |
153 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" |
153 #include "gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp" |
154 #include "gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp" |
154 #include "gc_implementation/parNew/parNewGeneration.hpp" |
155 #include "gc_implementation/parNew/parNewGeneration.hpp" |
159 #include "gc_implementation/parallelScavenge/psOldGen.hpp" |
160 #include "gc_implementation/parallelScavenge/psOldGen.hpp" |
160 #include "gc_implementation/parallelScavenge/psVirtualspace.hpp" |
161 #include "gc_implementation/parallelScavenge/psVirtualspace.hpp" |
161 #include "gc_implementation/parallelScavenge/psYoungGen.hpp" |
162 #include "gc_implementation/parallelScavenge/psYoungGen.hpp" |
162 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp" |
163 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp" |
163 #include "gc_implementation/g1/vmStructs_g1.hpp" |
164 #include "gc_implementation/g1/vmStructs_g1.hpp" |
164 #endif |
165 #endif // INCLUDE_ALL_GCS |
165 #ifdef COMPILER2 |
166 #ifdef COMPILER2 |
166 #include "opto/addnode.hpp" |
167 #include "opto/addnode.hpp" |
167 #include "opto/block.hpp" |
168 #include "opto/block.hpp" |
168 #include "opto/callnode.hpp" |
169 #include "opto/callnode.hpp" |
169 #include "opto/cfgnode.hpp" |
170 #include "opto/cfgnode.hpp" |
2783 GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY, |
2784 GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY, |
2784 GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, |
2785 GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY, |
2785 GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, |
2786 GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY, |
2786 GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY) |
2787 GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY) |
2787 |
2788 |
2788 #ifndef SERIALGC |
2789 #if INCLUDE_ALL_GCS |
2789 VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2790 VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2790 GENERATE_STATIC_VM_STRUCT_ENTRY) |
2791 GENERATE_STATIC_VM_STRUCT_ENTRY) |
2791 |
2792 |
2792 VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2793 VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2793 GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2794 GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2794 GENERATE_STATIC_VM_STRUCT_ENTRY) |
2795 GENERATE_STATIC_VM_STRUCT_ENTRY) |
2795 |
2796 |
2796 VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2797 VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2797 GENERATE_STATIC_VM_STRUCT_ENTRY) |
2798 GENERATE_STATIC_VM_STRUCT_ENTRY) |
2798 #endif // SERIALGC |
2799 #endif // INCLUDE_ALL_GCS |
2799 |
2800 |
2800 VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2801 VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2801 GENERATE_STATIC_VM_STRUCT_ENTRY, |
2802 GENERATE_STATIC_VM_STRUCT_ENTRY, |
2802 GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, |
2803 GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY, |
2803 GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2804 GENERATE_NONSTATIC_VM_STRUCT_ENTRY, |
2827 GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY, |
2828 GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY, |
2828 GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY, |
2829 GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY, |
2829 GENERATE_C2_VM_TYPE_ENTRY, |
2830 GENERATE_C2_VM_TYPE_ENTRY, |
2830 GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY) |
2831 GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY) |
2831 |
2832 |
2832 #ifndef SERIALGC |
2833 #if INCLUDE_ALL_GCS |
2833 VM_TYPES_PARALLELGC(GENERATE_VM_TYPE_ENTRY, |
2834 VM_TYPES_PARALLELGC(GENERATE_VM_TYPE_ENTRY, |
2834 GENERATE_TOPLEVEL_VM_TYPE_ENTRY) |
2835 GENERATE_TOPLEVEL_VM_TYPE_ENTRY) |
2835 |
2836 |
2836 VM_TYPES_CMS(GENERATE_VM_TYPE_ENTRY, |
2837 VM_TYPES_CMS(GENERATE_VM_TYPE_ENTRY, |
2837 GENERATE_TOPLEVEL_VM_TYPE_ENTRY) |
2838 GENERATE_TOPLEVEL_VM_TYPE_ENTRY) |
2838 |
2839 |
2839 VM_TYPES_PARNEW(GENERATE_VM_TYPE_ENTRY) |
2840 VM_TYPES_PARNEW(GENERATE_VM_TYPE_ENTRY) |
2840 |
2841 |
2841 VM_TYPES_G1(GENERATE_VM_TYPE_ENTRY, |
2842 VM_TYPES_G1(GENERATE_VM_TYPE_ENTRY, |
2842 GENERATE_TOPLEVEL_VM_TYPE_ENTRY) |
2843 GENERATE_TOPLEVEL_VM_TYPE_ENTRY) |
2843 #endif // SERIALGC |
2844 #endif // INCLUDE_ALL_GCS |
2844 |
2845 |
2845 VM_TYPES_CPU(GENERATE_VM_TYPE_ENTRY, |
2846 VM_TYPES_CPU(GENERATE_VM_TYPE_ENTRY, |
2846 GENERATE_TOPLEVEL_VM_TYPE_ENTRY, |
2847 GENERATE_TOPLEVEL_VM_TYPE_ENTRY, |
2847 GENERATE_OOP_VM_TYPE_ENTRY, |
2848 GENERATE_OOP_VM_TYPE_ENTRY, |
2848 GENERATE_INTEGER_VM_TYPE_ENTRY, |
2849 GENERATE_INTEGER_VM_TYPE_ENTRY, |
2869 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, |
2870 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, |
2870 GENERATE_C1_VM_INT_CONSTANT_ENTRY, |
2871 GENERATE_C1_VM_INT_CONSTANT_ENTRY, |
2871 GENERATE_C2_VM_INT_CONSTANT_ENTRY, |
2872 GENERATE_C2_VM_INT_CONSTANT_ENTRY, |
2872 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY) |
2873 GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY) |
2873 |
2874 |
2874 #ifndef SERIALGC |
2875 #if INCLUDE_ALL_GCS |
2875 VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY) |
2876 VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY) |
2876 |
2877 |
2877 VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY) |
2878 VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY) |
2878 #endif // SERIALGC |
2879 #endif // INCLUDE_ALL_GCS |
2879 |
2880 |
2880 VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY, |
2881 VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY, |
2881 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, |
2882 GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY, |
2882 GENERATE_C1_VM_INT_CONSTANT_ENTRY, |
2883 GENERATE_C1_VM_INT_CONSTANT_ENTRY, |
2883 GENERATE_C2_VM_INT_CONSTANT_ENTRY, |
2884 GENERATE_C2_VM_INT_CONSTANT_ENTRY, |
2927 CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY, |
2928 CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY, |
2928 CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY, |
2929 CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY, |
2929 CHECK_NO_OP, |
2930 CHECK_NO_OP, |
2930 CHECK_NO_OP); |
2931 CHECK_NO_OP); |
2931 |
2932 |
2932 #ifndef SERIALGC |
2933 #if INCLUDE_ALL_GCS |
2933 VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2934 VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2934 CHECK_STATIC_VM_STRUCT_ENTRY); |
2935 CHECK_STATIC_VM_STRUCT_ENTRY); |
2935 |
2936 |
2936 VM_STRUCTS_CMS(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2937 VM_STRUCTS_CMS(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2937 CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY, |
2938 CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY, |
2938 CHECK_STATIC_VM_STRUCT_ENTRY); |
2939 CHECK_STATIC_VM_STRUCT_ENTRY); |
2939 |
2940 |
2940 VM_STRUCTS_G1(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2941 VM_STRUCTS_G1(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2941 CHECK_STATIC_VM_STRUCT_ENTRY); |
2942 CHECK_STATIC_VM_STRUCT_ENTRY); |
2942 #endif // SERIALGC |
2943 #endif // INCLUDE_ALL_GCS |
2943 |
2944 |
2944 VM_STRUCTS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2945 VM_STRUCTS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY, |
2945 CHECK_STATIC_VM_STRUCT_ENTRY, |
2946 CHECK_STATIC_VM_STRUCT_ENTRY, |
2946 CHECK_NO_OP, |
2947 CHECK_NO_OP, |
2947 CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY, |
2948 CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY, |
2966 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
2967 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
2967 CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY, |
2968 CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY, |
2968 CHECK_C2_VM_TYPE_ENTRY, |
2969 CHECK_C2_VM_TYPE_ENTRY, |
2969 CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY); |
2970 CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY); |
2970 |
2971 |
2971 #ifndef SERIALGC |
2972 #if INCLUDE_ALL_GCS |
2972 VM_TYPES_PARALLELGC(CHECK_VM_TYPE_ENTRY, |
2973 VM_TYPES_PARALLELGC(CHECK_VM_TYPE_ENTRY, |
2973 CHECK_SINGLE_ARG_VM_TYPE_NO_OP); |
2974 CHECK_SINGLE_ARG_VM_TYPE_NO_OP); |
2974 |
2975 |
2975 VM_TYPES_CMS(CHECK_VM_TYPE_ENTRY, |
2976 VM_TYPES_CMS(CHECK_VM_TYPE_ENTRY, |
2976 CHECK_SINGLE_ARG_VM_TYPE_NO_OP); |
2977 CHECK_SINGLE_ARG_VM_TYPE_NO_OP); |
2977 |
2978 |
2978 VM_TYPES_PARNEW(CHECK_VM_TYPE_ENTRY) |
2979 VM_TYPES_PARNEW(CHECK_VM_TYPE_ENTRY) |
2979 |
2980 |
2980 VM_TYPES_G1(CHECK_VM_TYPE_ENTRY, |
2981 VM_TYPES_G1(CHECK_VM_TYPE_ENTRY, |
2981 CHECK_SINGLE_ARG_VM_TYPE_NO_OP); |
2982 CHECK_SINGLE_ARG_VM_TYPE_NO_OP); |
2982 #endif // SERIALGC |
2983 #endif // INCLUDE_ALL_GCS |
2983 |
2984 |
2984 VM_TYPES_CPU(CHECK_VM_TYPE_ENTRY, |
2985 VM_TYPES_CPU(CHECK_VM_TYPE_ENTRY, |
2985 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
2986 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
2986 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
2987 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
2987 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
2988 CHECK_SINGLE_ARG_VM_TYPE_NO_OP, |
3032 ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, |
3033 ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, |
3033 ENSURE_C1_FIELD_TYPE_PRESENT, |
3034 ENSURE_C1_FIELD_TYPE_PRESENT, |
3034 ENSURE_C2_FIELD_TYPE_PRESENT, |
3035 ENSURE_C2_FIELD_TYPE_PRESENT, |
3035 CHECK_NO_OP, |
3036 CHECK_NO_OP, |
3036 CHECK_NO_OP)); |
3037 CHECK_NO_OP)); |
3037 #ifndef SERIALGC |
3038 #if INCLUDE_ALL_GCS |
3038 debug_only(VM_STRUCTS_PARALLELGC(ENSURE_FIELD_TYPE_PRESENT, |
3039 debug_only(VM_STRUCTS_PARALLELGC(ENSURE_FIELD_TYPE_PRESENT, |
3039 ENSURE_FIELD_TYPE_PRESENT)); |
3040 ENSURE_FIELD_TYPE_PRESENT)); |
3040 debug_only(VM_STRUCTS_CMS(ENSURE_FIELD_TYPE_PRESENT, |
3041 debug_only(VM_STRUCTS_CMS(ENSURE_FIELD_TYPE_PRESENT, |
3041 ENSURE_FIELD_TYPE_PRESENT, |
3042 ENSURE_FIELD_TYPE_PRESENT, |
3042 ENSURE_FIELD_TYPE_PRESENT)); |
3043 ENSURE_FIELD_TYPE_PRESENT)); |
3043 debug_only(VM_STRUCTS_G1(ENSURE_FIELD_TYPE_PRESENT, |
3044 debug_only(VM_STRUCTS_G1(ENSURE_FIELD_TYPE_PRESENT, |
3044 ENSURE_FIELD_TYPE_PRESENT)); |
3045 ENSURE_FIELD_TYPE_PRESENT)); |
3045 #endif // SERIALGC |
3046 #endif // INCLUDE_ALL_GCS |
3046 debug_only(VM_STRUCTS_CPU(ENSURE_FIELD_TYPE_PRESENT, |
3047 debug_only(VM_STRUCTS_CPU(ENSURE_FIELD_TYPE_PRESENT, |
3047 ENSURE_FIELD_TYPE_PRESENT, |
3048 ENSURE_FIELD_TYPE_PRESENT, |
3048 CHECK_NO_OP, |
3049 CHECK_NO_OP, |
3049 ENSURE_FIELD_TYPE_PRESENT, |
3050 ENSURE_FIELD_TYPE_PRESENT, |
3050 ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, |
3051 ENSURE_NONPRODUCT_FIELD_TYPE_PRESENT, |