< prev index next >

src/share/vm/runtime/vmStructs.cpp

Print this page




  90 #include "runtime/deoptimization.hpp"
  91 #include "runtime/vframeArray.hpp"
  92 #include "runtime/globals.hpp"
  93 #include "runtime/java.hpp"
  94 #include "runtime/javaCalls.hpp"
  95 #include "runtime/perfMemory.hpp"
  96 #include "runtime/serviceThread.hpp"
  97 #include "runtime/sharedRuntime.hpp"
  98 #include "runtime/stubRoutines.hpp"
  99 #include "runtime/thread.inline.hpp"
 100 #include "runtime/virtualspace.hpp"
 101 #include "runtime/vmStructs.hpp"
 102 #include "utilities/array.hpp"
 103 #include "utilities/globalDefinitions.hpp"
 104 #include "utilities/hashtable.hpp"
 105 #include "utilities/macros.hpp"
 106 
 107 #ifdef TARGET_ARCH_x86
 108 # include "vmStructs_x86.hpp"
 109 #endif



 110 #ifdef TARGET_ARCH_sparc
 111 # include "vmStructs_sparc.hpp"
 112 #endif
 113 #ifdef TARGET_ARCH_zero
 114 # include "vmStructs_zero.hpp"
 115 #endif
 116 #ifdef TARGET_ARCH_arm
 117 # include "vmStructs_arm.hpp"
 118 #endif
 119 #ifdef TARGET_ARCH_ppc
 120 # include "vmStructs_ppc.hpp"
 121 #endif
 122 #ifdef TARGET_OS_ARCH_linux_x86
 123 # include "vmStructs_linux_x86.hpp"
 124 #endif



 125 #ifdef TARGET_OS_ARCH_linux_sparc
 126 # include "vmStructs_linux_sparc.hpp"
 127 #endif
 128 #ifdef TARGET_OS_ARCH_linux_zero
 129 # include "vmStructs_linux_zero.hpp"
 130 #endif
 131 #ifdef TARGET_OS_ARCH_solaris_x86
 132 # include "vmStructs_solaris_x86.hpp"
 133 #endif
 134 #ifdef TARGET_OS_ARCH_solaris_sparc
 135 # include "vmStructs_solaris_sparc.hpp"
 136 #endif
 137 #ifdef TARGET_OS_ARCH_windows_x86
 138 # include "vmStructs_windows_x86.hpp"
 139 #endif
 140 #ifdef TARGET_OS_ARCH_linux_arm
 141 # include "vmStructs_linux_arm.hpp"
 142 #endif
 143 #ifdef TARGET_OS_ARCH_linux_ppc
 144 # include "vmStructs_linux_ppc.hpp"


 150 # include "vmStructs_bsd_x86.hpp"
 151 #endif
 152 #ifdef TARGET_OS_ARCH_bsd_zero
 153 # include "vmStructs_bsd_zero.hpp"
 154 #endif
 155 #if INCLUDE_ALL_GCS
 156 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
 157 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp"
 158 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
 159 #include "gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp"
 160 #include "gc_implementation/parNew/parNewGeneration.hpp"
 161 #include "gc_implementation/parNew/vmStructs_parNew.hpp"
 162 #include "gc_implementation/parallelScavenge/asPSOldGen.hpp"
 163 #include "gc_implementation/parallelScavenge/asPSYoungGen.hpp"
 164 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
 165 #include "gc_implementation/parallelScavenge/psOldGen.hpp"
 166 #include "gc_implementation/parallelScavenge/psVirtualspace.hpp"
 167 #include "gc_implementation/parallelScavenge/psYoungGen.hpp"
 168 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp"
 169 #include "gc_implementation/g1/vmStructs_g1.hpp"

 170 #endif // INCLUDE_ALL_GCS
 171 
 172 #ifdef COMPILER2
 173 #include "opto/addnode.hpp"
 174 #include "opto/block.hpp"
 175 #include "opto/callnode.hpp"
 176 #include "opto/cfgnode.hpp"
 177 #include "opto/chaitin.hpp"
 178 #include "opto/divnode.hpp"
 179 #include "opto/locknode.hpp"
 180 #include "opto/loopnode.hpp"
 181 #include "opto/machnode.hpp"
 182 #include "opto/matcher.hpp"
 183 #include "opto/mathexactnode.hpp"
 184 #include "opto/mulnode.hpp"
 185 #include "opto/phaseX.hpp"
 186 #include "opto/parse.hpp"
 187 #include "opto/regalloc.hpp"
 188 #include "opto/rootnode.hpp"
 189 #include "opto/subnode.hpp"
 190 #include "opto/vectornode.hpp"
 191 #if defined ADGLOBALS_MD_HPP
 192 # include ADGLOBALS_MD_HPP
 193 #elif defined TARGET_ARCH_MODEL_x86_32
 194 # include "adfiles/adGlobals_x86_32.hpp"
 195 #elif defined TARGET_ARCH_MODEL_x86_64
 196 # include "adfiles/adGlobals_x86_64.hpp"


 197 #elif defined TARGET_ARCH_MODEL_sparc
 198 # include "adfiles/adGlobals_sparc.hpp"
 199 #elif defined TARGET_ARCH_MODEL_zero
 200 # include "adfiles/adGlobals_zero.hpp"
 201 #elif defined TARGET_ARCH_MODEL_ppc_64
 202 # include "adfiles/adGlobals_ppc_64.hpp"
 203 #endif
 204 #endif // COMPILER2
 205 
 206 // Note: the cross-product of (c1, c2, product, nonproduct, ...),
 207 // (nonstatic, static), and (unchecked, checked) has not been taken.
 208 // Only the macros currently needed have been defined.
 209 
 210 // A field whose type is not checked is given a null string as the
 211 // type name, indicating an "opaque" type to the serviceability agent.
 212 
 213 // NOTE: there is an interdependency between this file and
 214 // HotSpotTypeDataBase.java, which parses the type strings.
 215 
 216 #ifndef REG_COUNT


2198   /****************/                                                      \
2199                                                                           \
2200   declare_constant(oopSize)                                               \
2201   declare_constant(LogBytesPerWord)                                       \
2202   declare_constant(BytesPerWord)                                          \
2203   declare_constant(BytesPerLong)                                          \
2204                                                                           \
2205   declare_constant(LogKlassAlignmentInBytes)                              \
2206                                                                           \
2207   /********************************************/                          \
2208   /* Generation and Space Hierarchy Constants */                          \
2209   /********************************************/                          \
2210                                                                           \
2211   declare_constant(ageTable::table_size)                                  \
2212                                                                           \
2213   declare_constant(BarrierSet::ModRef)                                    \
2214   declare_constant(BarrierSet::CardTableModRef)                           \
2215   declare_constant(BarrierSet::CardTableExtension)                        \
2216   declare_constant(BarrierSet::G1SATBCT)                                  \
2217   declare_constant(BarrierSet::G1SATBCTLogging)                           \

2218   declare_constant(BarrierSet::Other)                                     \
2219                                                                           \
2220   declare_constant(BlockOffsetSharedArray::LogN)                          \
2221   declare_constant(BlockOffsetSharedArray::LogN_words)                    \
2222   declare_constant(BlockOffsetSharedArray::N_bytes)                       \
2223   declare_constant(BlockOffsetSharedArray::N_words)                       \
2224                                                                           \
2225   declare_constant(BlockOffsetArray::N_words)                             \
2226                                                                           \
2227   declare_constant(CardTableModRefBS::clean_card)                         \
2228   declare_constant(CardTableModRefBS::last_card)                          \
2229   declare_constant(CardTableModRefBS::dirty_card)                         \
2230   declare_constant(CardTableModRefBS::Precise)                            \
2231   declare_constant(CardTableModRefBS::ObjHeadPreciseArray)                \
2232   declare_constant(CardTableModRefBS::card_shift)                         \
2233   declare_constant(CardTableModRefBS::card_size)                          \
2234   declare_constant(CardTableModRefBS::card_size_in_words)                 \
2235                                                                           \
2236   declare_constant(CardTableRS::youngergen_card)                          \
2237                                                                           \
2238   declare_constant(CollectedHeap::Abstract)                               \
2239   declare_constant(CollectedHeap::SharedHeap)                             \
2240   declare_constant(CollectedHeap::GenCollectedHeap)                       \

2241                                                                           \
2242   declare_constant(GenCollectedHeap::max_gens)                            \
2243                                                                           \
2244   /* constants from Generation::Name enum */                              \
2245                                                                           \
2246   declare_constant(Generation::DefNew)                                    \
2247   declare_constant(Generation::MarkSweepCompact)                          \
2248   declare_constant(Generation::Other)                                     \
2249                                                                           \
2250   declare_constant(Generation::LogOfGenGrain)                             \
2251   declare_constant(Generation::GenGrain)                                  \
2252                                                                           \
2253   declare_constant(HeapWordSize)                                          \
2254   declare_constant(LogHeapWordSize)                                       \
2255                                                                           \
2256                                                                           \
2257   /************************/                                              \
2258   /* PerfMemory - jvmstat */                                              \
2259   /************************/                                              \
2260                                                                           \


2898              GENERATE_STATIC_VM_STRUCT_ENTRY,
2899              GENERATE_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY,
2900              GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2901              GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2902              GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2903              GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY,
2904              GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2905              GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2906              GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2907 
2908 #if INCLUDE_ALL_GCS
2909   VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2910                         GENERATE_STATIC_VM_STRUCT_ENTRY)
2911 
2912   VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2913                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2914                  GENERATE_STATIC_VM_STRUCT_ENTRY)
2915 
2916   VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2917                 GENERATE_STATIC_VM_STRUCT_ENTRY)





2918 #endif // INCLUDE_ALL_GCS
2919 
2920   VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2921                  GENERATE_STATIC_VM_STRUCT_ENTRY,
2922                  GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2923                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2924                  GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2925                  GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2926                  GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2927                  GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2928 
2929   VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2930                     GENERATE_STATIC_VM_STRUCT_ENTRY,
2931                     GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2932                     GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2933                     GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2934                     GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2935                     GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2936                     GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2937 


2943   VM_TYPES(GENERATE_VM_TYPE_ENTRY,
2944            GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
2945            GENERATE_OOP_VM_TYPE_ENTRY,
2946            GENERATE_INTEGER_VM_TYPE_ENTRY,
2947            GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
2948            GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
2949            GENERATE_C2_VM_TYPE_ENTRY,
2950            GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
2951 
2952 #if INCLUDE_ALL_GCS
2953   VM_TYPES_PARALLELGC(GENERATE_VM_TYPE_ENTRY,
2954                       GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
2955 
2956   VM_TYPES_CMS(GENERATE_VM_TYPE_ENTRY,
2957                GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
2958 
2959   VM_TYPES_PARNEW(GENERATE_VM_TYPE_ENTRY)
2960 
2961   VM_TYPES_G1(GENERATE_VM_TYPE_ENTRY,
2962               GENERATE_TOPLEVEL_VM_TYPE_ENTRY)




2963 #endif // INCLUDE_ALL_GCS
2964 
2965   VM_TYPES_CPU(GENERATE_VM_TYPE_ENTRY,
2966                GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
2967                GENERATE_OOP_VM_TYPE_ENTRY,
2968                GENERATE_INTEGER_VM_TYPE_ENTRY,
2969                GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
2970                GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
2971                GENERATE_C2_VM_TYPE_ENTRY,
2972                GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
2973 
2974   VM_TYPES_OS_CPU(GENERATE_VM_TYPE_ENTRY,
2975                   GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
2976                   GENERATE_OOP_VM_TYPE_ENTRY,
2977                   GENERATE_INTEGER_VM_TYPE_ENTRY,
2978                   GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
2979                   GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
2980                   GENERATE_C2_VM_TYPE_ENTRY,
2981                   GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
2982 
2983   GENERATE_VM_TYPE_LAST_ENTRY()
2984 };
2985 
2986 VMIntConstantEntry VMStructs::localHotSpotVMIntConstants[] = {
2987 
2988   VM_INT_CONSTANTS(GENERATE_VM_INT_CONSTANT_ENTRY,
2989                    GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
2990                    GENERATE_C1_VM_INT_CONSTANT_ENTRY,
2991                    GENERATE_C2_VM_INT_CONSTANT_ENTRY,
2992                    GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
2993 
2994 #if INCLUDE_ALL_GCS
2995   VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY)
2996 
2997   VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY)



2998 #endif // INCLUDE_ALL_GCS
2999 
3000   VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3001                        GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3002                        GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3003                        GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3004                        GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3005 
3006   VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3007                           GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3008                           GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3009                           GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3010                           GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3011 
3012   GENERATE_VM_INT_CONSTANT_LAST_ENTRY()
3013 };
3014 
3015 VMLongConstantEntry VMStructs::localHotSpotVMLongConstants[] = {
3016 
3017   VM_LONG_CONSTANTS(GENERATE_VM_LONG_CONSTANT_ENTRY,


3044              CHECK_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY,
3045              CHECK_NO_OP,
3046              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3047              CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3048              CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY,
3049              CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3050              CHECK_NO_OP,
3051              CHECK_NO_OP);
3052 
3053 #if INCLUDE_ALL_GCS
3054   VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3055              CHECK_STATIC_VM_STRUCT_ENTRY);
3056 
3057   VM_STRUCTS_CMS(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3058              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3059              CHECK_STATIC_VM_STRUCT_ENTRY);
3060 
3061   VM_STRUCTS_G1(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3062                 CHECK_STATIC_VM_STRUCT_ENTRY);
3063 




3064 #endif // INCLUDE_ALL_GCS
3065 
3066   VM_STRUCTS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3067                  CHECK_STATIC_VM_STRUCT_ENTRY,
3068                  CHECK_NO_OP,
3069                  CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3070                  CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3071                  CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3072                  CHECK_NO_OP,
3073                  CHECK_NO_OP);
3074 
3075   VM_STRUCTS_OS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3076                     CHECK_STATIC_VM_STRUCT_ENTRY,
3077                     CHECK_NO_OP,
3078                     CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3079                     CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3080                     CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3081                     CHECK_NO_OP,
3082                     CHECK_NO_OP);
3083 


3085            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3086            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3087            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3088            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3089            CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3090            CHECK_C2_VM_TYPE_ENTRY,
3091            CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3092 
3093 #if INCLUDE_ALL_GCS
3094   VM_TYPES_PARALLELGC(CHECK_VM_TYPE_ENTRY,
3095                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3096 
3097   VM_TYPES_CMS(CHECK_VM_TYPE_ENTRY,
3098                CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3099 
3100   VM_TYPES_PARNEW(CHECK_VM_TYPE_ENTRY)
3101 
3102   VM_TYPES_G1(CHECK_VM_TYPE_ENTRY,
3103               CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3104 



3105 #endif // INCLUDE_ALL_GCS
3106 
3107   VM_TYPES_CPU(CHECK_VM_TYPE_ENTRY,
3108                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3109                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3110                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3111                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3112                CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3113                CHECK_C2_VM_TYPE_ENTRY,
3114                CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3115 
3116   VM_TYPES_OS_CPU(CHECK_VM_TYPE_ENTRY,
3117                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3118                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3119                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3120                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3121                   CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3122                   CHECK_C2_VM_TYPE_ENTRY,
3123                   CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3124 




  90 #include "runtime/deoptimization.hpp"
  91 #include "runtime/vframeArray.hpp"
  92 #include "runtime/globals.hpp"
  93 #include "runtime/java.hpp"
  94 #include "runtime/javaCalls.hpp"
  95 #include "runtime/perfMemory.hpp"
  96 #include "runtime/serviceThread.hpp"
  97 #include "runtime/sharedRuntime.hpp"
  98 #include "runtime/stubRoutines.hpp"
  99 #include "runtime/thread.inline.hpp"
 100 #include "runtime/virtualspace.hpp"
 101 #include "runtime/vmStructs.hpp"
 102 #include "utilities/array.hpp"
 103 #include "utilities/globalDefinitions.hpp"
 104 #include "utilities/hashtable.hpp"
 105 #include "utilities/macros.hpp"
 106 
 107 #ifdef TARGET_ARCH_x86
 108 # include "vmStructs_x86.hpp"
 109 #endif
 110 #ifdef TARGET_ARCH_aarch64
 111 # include "vmStructs_aarch64.hpp"
 112 #endif
 113 #ifdef TARGET_ARCH_sparc
 114 # include "vmStructs_sparc.hpp"
 115 #endif
 116 #ifdef TARGET_ARCH_zero
 117 # include "vmStructs_zero.hpp"
 118 #endif
 119 #ifdef TARGET_ARCH_arm
 120 # include "vmStructs_arm.hpp"
 121 #endif
 122 #ifdef TARGET_ARCH_ppc
 123 # include "vmStructs_ppc.hpp"
 124 #endif
 125 #ifdef TARGET_OS_ARCH_linux_x86
 126 # include "vmStructs_linux_x86.hpp"
 127 #endif
 128 #ifdef TARGET_OS_ARCH_linux_aarch64
 129 # include "vmStructs_linux_aarch64.hpp"
 130 #endif
 131 #ifdef TARGET_OS_ARCH_linux_sparc
 132 # include "vmStructs_linux_sparc.hpp"
 133 #endif
 134 #ifdef TARGET_OS_ARCH_linux_zero
 135 # include "vmStructs_linux_zero.hpp"
 136 #endif
 137 #ifdef TARGET_OS_ARCH_solaris_x86
 138 # include "vmStructs_solaris_x86.hpp"
 139 #endif
 140 #ifdef TARGET_OS_ARCH_solaris_sparc
 141 # include "vmStructs_solaris_sparc.hpp"
 142 #endif
 143 #ifdef TARGET_OS_ARCH_windows_x86
 144 # include "vmStructs_windows_x86.hpp"
 145 #endif
 146 #ifdef TARGET_OS_ARCH_linux_arm
 147 # include "vmStructs_linux_arm.hpp"
 148 #endif
 149 #ifdef TARGET_OS_ARCH_linux_ppc
 150 # include "vmStructs_linux_ppc.hpp"


 156 # include "vmStructs_bsd_x86.hpp"
 157 #endif
 158 #ifdef TARGET_OS_ARCH_bsd_zero
 159 # include "vmStructs_bsd_zero.hpp"
 160 #endif
 161 #if INCLUDE_ALL_GCS
 162 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
 163 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp"
 164 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
 165 #include "gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp"
 166 #include "gc_implementation/parNew/parNewGeneration.hpp"
 167 #include "gc_implementation/parNew/vmStructs_parNew.hpp"
 168 #include "gc_implementation/parallelScavenge/asPSOldGen.hpp"
 169 #include "gc_implementation/parallelScavenge/asPSYoungGen.hpp"
 170 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
 171 #include "gc_implementation/parallelScavenge/psOldGen.hpp"
 172 #include "gc_implementation/parallelScavenge/psVirtualspace.hpp"
 173 #include "gc_implementation/parallelScavenge/psYoungGen.hpp"
 174 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp"
 175 #include "gc_implementation/g1/vmStructs_g1.hpp"
 176 #include "gc_implementation/shenandoah/vmStructs_shenandoah.hpp"
 177 #endif // INCLUDE_ALL_GCS
 178 
 179 #ifdef COMPILER2
 180 #include "opto/addnode.hpp"
 181 #include "opto/block.hpp"
 182 #include "opto/callnode.hpp"
 183 #include "opto/cfgnode.hpp"
 184 #include "opto/chaitin.hpp"
 185 #include "opto/divnode.hpp"
 186 #include "opto/locknode.hpp"
 187 #include "opto/loopnode.hpp"
 188 #include "opto/machnode.hpp"
 189 #include "opto/matcher.hpp"
 190 #include "opto/mathexactnode.hpp"
 191 #include "opto/mulnode.hpp"
 192 #include "opto/phaseX.hpp"
 193 #include "opto/parse.hpp"
 194 #include "opto/regalloc.hpp"
 195 #include "opto/rootnode.hpp"
 196 #include "opto/subnode.hpp"
 197 #include "opto/vectornode.hpp"
 198 #if defined ADGLOBALS_MD_HPP
 199 # include ADGLOBALS_MD_HPP
 200 #elif defined TARGET_ARCH_MODEL_x86_32
 201 # include "adfiles/adGlobals_x86_32.hpp"
 202 #elif defined TARGET_ARCH_MODEL_x86_64
 203 # include "adfiles/adGlobals_x86_64.hpp"
 204 #elif defined TARGET_ARCH_MODEL_aarch64
 205 # include "adfiles/adGlobals_aarch64.hpp"
 206 #elif defined TARGET_ARCH_MODEL_sparc
 207 # include "adfiles/adGlobals_sparc.hpp"
 208 #elif defined TARGET_ARCH_MODEL_zero
 209 # include "adfiles/adGlobals_zero.hpp"
 210 #elif defined TARGET_ARCH_MODEL_ppc_64
 211 # include "adfiles/adGlobals_ppc_64.hpp"
 212 #endif
 213 #endif // COMPILER2
 214 
 215 // Note: the cross-product of (c1, c2, product, nonproduct, ...),
 216 // (nonstatic, static), and (unchecked, checked) has not been taken.
 217 // Only the macros currently needed have been defined.
 218 
 219 // A field whose type is not checked is given a null string as the
 220 // type name, indicating an "opaque" type to the serviceability agent.
 221 
 222 // NOTE: there is an interdependency between this file and
 223 // HotSpotTypeDataBase.java, which parses the type strings.
 224 
 225 #ifndef REG_COUNT


2207   /****************/                                                      \
2208                                                                           \
2209   declare_constant(oopSize)                                               \
2210   declare_constant(LogBytesPerWord)                                       \
2211   declare_constant(BytesPerWord)                                          \
2212   declare_constant(BytesPerLong)                                          \
2213                                                                           \
2214   declare_constant(LogKlassAlignmentInBytes)                              \
2215                                                                           \
2216   /********************************************/                          \
2217   /* Generation and Space Hierarchy Constants */                          \
2218   /********************************************/                          \
2219                                                                           \
2220   declare_constant(ageTable::table_size)                                  \
2221                                                                           \
2222   declare_constant(BarrierSet::ModRef)                                    \
2223   declare_constant(BarrierSet::CardTableModRef)                           \
2224   declare_constant(BarrierSet::CardTableExtension)                        \
2225   declare_constant(BarrierSet::G1SATBCT)                                  \
2226   declare_constant(BarrierSet::G1SATBCTLogging)                           \
2227   declare_constant(BarrierSet::ShenandoahBarrierSet)                      \
2228   declare_constant(BarrierSet::Other)                                     \
2229                                                                           \
2230   declare_constant(BlockOffsetSharedArray::LogN)                          \
2231   declare_constant(BlockOffsetSharedArray::LogN_words)                    \
2232   declare_constant(BlockOffsetSharedArray::N_bytes)                       \
2233   declare_constant(BlockOffsetSharedArray::N_words)                       \
2234                                                                           \
2235   declare_constant(BlockOffsetArray::N_words)                             \
2236                                                                           \
2237   declare_constant(CardTableModRefBS::clean_card)                         \
2238   declare_constant(CardTableModRefBS::last_card)                          \
2239   declare_constant(CardTableModRefBS::dirty_card)                         \
2240   declare_constant(CardTableModRefBS::Precise)                            \
2241   declare_constant(CardTableModRefBS::ObjHeadPreciseArray)                \
2242   declare_constant(CardTableModRefBS::card_shift)                         \
2243   declare_constant(CardTableModRefBS::card_size)                          \
2244   declare_constant(CardTableModRefBS::card_size_in_words)                 \
2245                                                                           \
2246   declare_constant(CardTableRS::youngergen_card)                          \
2247                                                                           \
2248   declare_constant(CollectedHeap::Abstract)                               \
2249   declare_constant(CollectedHeap::SharedHeap)                             \
2250   declare_constant(CollectedHeap::GenCollectedHeap)                       \
2251   declare_constant(CollectedHeap::ShenandoahHeap)                         \
2252                                                                           \
2253   declare_constant(GenCollectedHeap::max_gens)                            \
2254                                                                           \
2255   /* constants from Generation::Name enum */                              \
2256                                                                           \
2257   declare_constant(Generation::DefNew)                                    \
2258   declare_constant(Generation::MarkSweepCompact)                          \
2259   declare_constant(Generation::Other)                                     \
2260                                                                           \
2261   declare_constant(Generation::LogOfGenGrain)                             \
2262   declare_constant(Generation::GenGrain)                                  \
2263                                                                           \
2264   declare_constant(HeapWordSize)                                          \
2265   declare_constant(LogHeapWordSize)                                       \
2266                                                                           \
2267                                                                           \
2268   /************************/                                              \
2269   /* PerfMemory - jvmstat */                                              \
2270   /************************/                                              \
2271                                                                           \


2909              GENERATE_STATIC_VM_STRUCT_ENTRY,
2910              GENERATE_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY,
2911              GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2912              GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2913              GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2914              GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY,
2915              GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2916              GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2917              GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2918 
2919 #if INCLUDE_ALL_GCS
2920   VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2921                         GENERATE_STATIC_VM_STRUCT_ENTRY)
2922 
2923   VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2924                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2925                  GENERATE_STATIC_VM_STRUCT_ENTRY)
2926 
2927   VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2928                 GENERATE_STATIC_VM_STRUCT_ENTRY)
2929 
2930   VM_STRUCTS_SHENANDOAH(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2931                         GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2932                         GENERATE_STATIC_VM_STRUCT_ENTRY)
2933 
2934 #endif // INCLUDE_ALL_GCS
2935 
2936   VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2937                  GENERATE_STATIC_VM_STRUCT_ENTRY,
2938                  GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2939                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2940                  GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2941                  GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2942                  GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2943                  GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2944 
2945   VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2946                     GENERATE_STATIC_VM_STRUCT_ENTRY,
2947                     GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2948                     GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2949                     GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2950                     GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2951                     GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2952                     GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2953 


2959   VM_TYPES(GENERATE_VM_TYPE_ENTRY,
2960            GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
2961            GENERATE_OOP_VM_TYPE_ENTRY,
2962            GENERATE_INTEGER_VM_TYPE_ENTRY,
2963            GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
2964            GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
2965            GENERATE_C2_VM_TYPE_ENTRY,
2966            GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
2967 
2968 #if INCLUDE_ALL_GCS
2969   VM_TYPES_PARALLELGC(GENERATE_VM_TYPE_ENTRY,
2970                       GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
2971 
2972   VM_TYPES_CMS(GENERATE_VM_TYPE_ENTRY,
2973                GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
2974 
2975   VM_TYPES_PARNEW(GENERATE_VM_TYPE_ENTRY)
2976 
2977   VM_TYPES_G1(GENERATE_VM_TYPE_ENTRY,
2978               GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
2979 
2980   VM_TYPES_SHENANDOAH(GENERATE_VM_TYPE_ENTRY,
2981               GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
2982               GENERATE_INTEGER_VM_TYPE_ENTRY)
2983 #endif // INCLUDE_ALL_GCS
2984 
2985   VM_TYPES_CPU(GENERATE_VM_TYPE_ENTRY,
2986                GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
2987                GENERATE_OOP_VM_TYPE_ENTRY,
2988                GENERATE_INTEGER_VM_TYPE_ENTRY,
2989                GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
2990                GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
2991                GENERATE_C2_VM_TYPE_ENTRY,
2992                GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
2993 
2994   VM_TYPES_OS_CPU(GENERATE_VM_TYPE_ENTRY,
2995                   GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
2996                   GENERATE_OOP_VM_TYPE_ENTRY,
2997                   GENERATE_INTEGER_VM_TYPE_ENTRY,
2998                   GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
2999                   GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
3000                   GENERATE_C2_VM_TYPE_ENTRY,
3001                   GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
3002 
3003   GENERATE_VM_TYPE_LAST_ENTRY()
3004 };
3005 
3006 VMIntConstantEntry VMStructs::localHotSpotVMIntConstants[] = {
3007 
3008   VM_INT_CONSTANTS(GENERATE_VM_INT_CONSTANT_ENTRY,
3009                    GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3010                    GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3011                    GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3012                    GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3013 
3014 #if INCLUDE_ALL_GCS
3015   VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY)
3016 
3017   VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY)
3018 
3019   VM_INT_CONSTANTS_SHENANDOAH(GENERATE_VM_INT_CONSTANT_ENTRY,
3020                               GENERATE_VM_INT_CONSTANT_WITH_VALUE_ENTRY)
3021 #endif // INCLUDE_ALL_GCS
3022 
3023   VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3024                        GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3025                        GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3026                        GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3027                        GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3028 
3029   VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3030                           GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3031                           GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3032                           GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3033                           GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3034 
3035   GENERATE_VM_INT_CONSTANT_LAST_ENTRY()
3036 };
3037 
3038 VMLongConstantEntry VMStructs::localHotSpotVMLongConstants[] = {
3039 
3040   VM_LONG_CONSTANTS(GENERATE_VM_LONG_CONSTANT_ENTRY,


3067              CHECK_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY,
3068              CHECK_NO_OP,
3069              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3070              CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3071              CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY,
3072              CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3073              CHECK_NO_OP,
3074              CHECK_NO_OP);
3075 
3076 #if INCLUDE_ALL_GCS
3077   VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3078              CHECK_STATIC_VM_STRUCT_ENTRY);
3079 
3080   VM_STRUCTS_CMS(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3081              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3082              CHECK_STATIC_VM_STRUCT_ENTRY);
3083 
3084   VM_STRUCTS_G1(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3085                 CHECK_STATIC_VM_STRUCT_ENTRY);
3086 
3087 
3088   VM_STRUCTS_SHENANDOAH(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3089                         CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3090                         CHECK_STATIC_VM_STRUCT_ENTRY);
3091 #endif // INCLUDE_ALL_GCS
3092 
3093   VM_STRUCTS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3094                  CHECK_STATIC_VM_STRUCT_ENTRY,
3095                  CHECK_NO_OP,
3096                  CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3097                  CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3098                  CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3099                  CHECK_NO_OP,
3100                  CHECK_NO_OP);
3101 
3102   VM_STRUCTS_OS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3103                     CHECK_STATIC_VM_STRUCT_ENTRY,
3104                     CHECK_NO_OP,
3105                     CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3106                     CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3107                     CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3108                     CHECK_NO_OP,
3109                     CHECK_NO_OP);
3110 


3112            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3113            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3114            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3115            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3116            CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3117            CHECK_C2_VM_TYPE_ENTRY,
3118            CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3119 
3120 #if INCLUDE_ALL_GCS
3121   VM_TYPES_PARALLELGC(CHECK_VM_TYPE_ENTRY,
3122                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3123 
3124   VM_TYPES_CMS(CHECK_VM_TYPE_ENTRY,
3125                CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3126 
3127   VM_TYPES_PARNEW(CHECK_VM_TYPE_ENTRY)
3128 
3129   VM_TYPES_G1(CHECK_VM_TYPE_ENTRY,
3130               CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3131 
3132   VM_TYPES_SHENANDOAH(CHECK_VM_TYPE_ENTRY,
3133                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3134                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3135 #endif // INCLUDE_ALL_GCS
3136 
3137   VM_TYPES_CPU(CHECK_VM_TYPE_ENTRY,
3138                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3139                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3140                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3141                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3142                CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3143                CHECK_C2_VM_TYPE_ENTRY,
3144                CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3145 
3146   VM_TYPES_OS_CPU(CHECK_VM_TYPE_ENTRY,
3147                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3148                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3149                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3150                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3151                   CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3152                   CHECK_C2_VM_TYPE_ENTRY,
3153                   CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3154 


< prev index next >