hotspot/src/share/vm/runtime/vmStructs.cpp
changeset 15484 7395ace8a11a
parent 15429 c9c2bb7e4b56
parent 15483 113ca9e9c1bb
child 15497 cba24d845969
equal deleted inserted replaced
15470:998186997e90 15484:7395ace8a11a
    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,