< 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 #if INCLUDE_TRACE
 173  #include "runtime/vmStructs_trace.hpp"
 174 #endif
 175 
 176 #ifdef COMPILER2
 177 #include "opto/addnode.hpp"
 178 #include "opto/block.hpp"
 179 #include "opto/callnode.hpp"
 180 #include "opto/cfgnode.hpp"
 181 #include "opto/chaitin.hpp"
 182 #include "opto/divnode.hpp"
 183 #include "opto/locknode.hpp"
 184 #include "opto/loopnode.hpp"
 185 #include "opto/machnode.hpp"
 186 #include "opto/matcher.hpp"
 187 #include "opto/mathexactnode.hpp"
 188 #include "opto/mulnode.hpp"
 189 #include "opto/phaseX.hpp"
 190 #include "opto/parse.hpp"
 191 #include "opto/regalloc.hpp"
 192 #include "opto/rootnode.hpp"
 193 #include "opto/subnode.hpp"
 194 #include "opto/vectornode.hpp"
 195 #if defined ADGLOBALS_MD_HPP
 196 # include ADGLOBALS_MD_HPP
 197 #elif defined TARGET_ARCH_MODEL_x86_32
 198 # include "adfiles/adGlobals_x86_32.hpp"
 199 #elif defined TARGET_ARCH_MODEL_x86_64
 200 # include "adfiles/adGlobals_x86_64.hpp"


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


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

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

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


2890   VM_STRUCTS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2891              GENERATE_STATIC_VM_STRUCT_ENTRY,
2892              GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2893              GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2894              GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2895              GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY,
2896              GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2897              GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2898              GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2899 
2900 #if INCLUDE_ALL_GCS
2901   VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2902                         GENERATE_STATIC_VM_STRUCT_ENTRY)
2903 
2904   VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2905                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2906                  GENERATE_STATIC_VM_STRUCT_ENTRY)
2907 
2908   VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2909                 GENERATE_STATIC_VM_STRUCT_ENTRY)





2910 #endif // INCLUDE_ALL_GCS
2911 
2912 #if INCLUDE_TRACE
2913   VM_STRUCTS_TRACE(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2914                 GENERATE_STATIC_VM_STRUCT_ENTRY)
2915 #endif
2916 
2917   VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2918                  GENERATE_STATIC_VM_STRUCT_ENTRY,
2919                  GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2920                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2921                  GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2922                  GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2923                  GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2924                  GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2925 
2926   VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2927                     GENERATE_STATIC_VM_STRUCT_ENTRY,
2928                     GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2929                     GENERATE_NONSTATIC_VM_STRUCT_ENTRY,


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




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



3000 #endif // INCLUDE_ALL_GCS
3001 
3002 #if INCLUDE_TRACE
3003   VM_INT_CONSTANTS_TRACE(GENERATE_VM_INT_CONSTANT_ENTRY)
3004 #endif
3005 
3006   VM_INT_CONSTANTS_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   VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3013                           GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3014                           GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3015                           GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3016                           GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3017 
3018   GENERATE_VM_INT_CONSTANT_LAST_ENTRY()
3019 };


3049              CHECK_STATIC_VM_STRUCT_ENTRY,
3050              CHECK_NO_OP,
3051              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3052              CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3053              CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY,
3054              CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3055              CHECK_NO_OP,
3056              CHECK_NO_OP);
3057 
3058 #if INCLUDE_ALL_GCS
3059   VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3060              CHECK_STATIC_VM_STRUCT_ENTRY);
3061 
3062   VM_STRUCTS_CMS(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3063              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3064              CHECK_STATIC_VM_STRUCT_ENTRY);
3065 
3066   VM_STRUCTS_G1(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3067                 CHECK_STATIC_VM_STRUCT_ENTRY);
3068 




3069 #endif // INCLUDE_ALL_GCS
3070 
3071 #if INCLUDE_TRACE
3072   VM_STRUCTS_TRACE(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3073                 CHECK_STATIC_VM_STRUCT_ENTRY);
3074 #endif
3075 
3076   VM_STRUCTS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3077                  CHECK_STATIC_VM_STRUCT_ENTRY,
3078                  CHECK_NO_OP,
3079                  CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3080                  CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3081                  CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3082                  CHECK_NO_OP,
3083                  CHECK_NO_OP);
3084 
3085   VM_STRUCTS_OS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3086                     CHECK_STATIC_VM_STRUCT_ENTRY,
3087                     CHECK_NO_OP,
3088                     CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,


3095            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3096            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3097            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3098            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3099            CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3100            CHECK_C2_VM_TYPE_ENTRY,
3101            CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3102 
3103 #if INCLUDE_ALL_GCS
3104   VM_TYPES_PARALLELGC(CHECK_VM_TYPE_ENTRY,
3105                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3106 
3107   VM_TYPES_CMS(CHECK_VM_TYPE_ENTRY,
3108                CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3109 
3110   VM_TYPES_PARNEW(CHECK_VM_TYPE_ENTRY)
3111 
3112   VM_TYPES_G1(CHECK_VM_TYPE_ENTRY,
3113               CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3114 



3115 #endif // INCLUDE_ALL_GCS
3116 
3117 #if INCLUDE_TRACE
3118   VM_TYPES_TRACE(CHECK_VM_TYPE_ENTRY,
3119               CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3120 #endif
3121 
3122   VM_TYPES_CPU(CHECK_VM_TYPE_ENTRY,
3123                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3124                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3125                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3126                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3127                CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3128                CHECK_C2_VM_TYPE_ENTRY,
3129                CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3130 
3131   VM_TYPES_OS_CPU(CHECK_VM_TYPE_ENTRY,
3132                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3133                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3134                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,




  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 #if INCLUDE_TRACE
 180  #include "runtime/vmStructs_trace.hpp"
 181 #endif
 182 
 183 #ifdef COMPILER2
 184 #include "opto/addnode.hpp"
 185 #include "opto/block.hpp"
 186 #include "opto/callnode.hpp"
 187 #include "opto/cfgnode.hpp"
 188 #include "opto/chaitin.hpp"
 189 #include "opto/divnode.hpp"
 190 #include "opto/locknode.hpp"
 191 #include "opto/loopnode.hpp"
 192 #include "opto/machnode.hpp"
 193 #include "opto/matcher.hpp"
 194 #include "opto/mathexactnode.hpp"
 195 #include "opto/mulnode.hpp"
 196 #include "opto/phaseX.hpp"
 197 #include "opto/parse.hpp"
 198 #include "opto/regalloc.hpp"
 199 #include "opto/rootnode.hpp"
 200 #include "opto/subnode.hpp"
 201 #include "opto/vectornode.hpp"
 202 #if defined ADGLOBALS_MD_HPP
 203 # include ADGLOBALS_MD_HPP
 204 #elif defined TARGET_ARCH_MODEL_x86_32
 205 # include "adfiles/adGlobals_x86_32.hpp"
 206 #elif defined TARGET_ARCH_MODEL_x86_64
 207 # include "adfiles/adGlobals_x86_64.hpp"
 208 #elif defined TARGET_ARCH_MODEL_aarch64
 209 # include "adfiles/adGlobals_aarch64.hpp"
 210 #elif defined TARGET_ARCH_MODEL_sparc
 211 # include "adfiles/adGlobals_sparc.hpp"
 212 #elif defined TARGET_ARCH_MODEL_zero
 213 # include "adfiles/adGlobals_zero.hpp"
 214 #elif defined TARGET_ARCH_MODEL_ppc_64
 215 # include "adfiles/adGlobals_ppc_64.hpp"
 216 #endif
 217 #endif // COMPILER2
 218 
 219 // Note: the cross-product of (c1, c2, product, nonproduct, ...),
 220 // (nonstatic, static), and (unchecked, checked) has not been taken.
 221 // Only the macros currently needed have been defined.
 222 
 223 // A field whose type is not checked is given a null string as the
 224 // type name, indicating an "opaque" type to the serviceability agent.
 225 
 226 // NOTE: there is an interdependency between this file and
 227 // HotSpotTypeDataBase.java, which parses the type strings.
 228 
 229 #ifndef REG_COUNT


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


2901   VM_STRUCTS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2902              GENERATE_STATIC_VM_STRUCT_ENTRY,
2903              GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2904              GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2905              GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2906              GENERATE_C1_NONSTATIC_VM_STRUCT_ENTRY,
2907              GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2908              GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2909              GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2910 
2911 #if INCLUDE_ALL_GCS
2912   VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2913                         GENERATE_STATIC_VM_STRUCT_ENTRY)
2914 
2915   VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2916                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2917                  GENERATE_STATIC_VM_STRUCT_ENTRY)
2918 
2919   VM_STRUCTS_G1(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2920                 GENERATE_STATIC_VM_STRUCT_ENTRY)
2921 
2922   VM_STRUCTS_SHENANDOAH(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2923                         GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2924                         GENERATE_STATIC_VM_STRUCT_ENTRY)
2925 
2926 #endif // INCLUDE_ALL_GCS
2927 
2928 #if INCLUDE_TRACE
2929   VM_STRUCTS_TRACE(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2930                 GENERATE_STATIC_VM_STRUCT_ENTRY)
2931 #endif
2932 
2933   VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2934                  GENERATE_STATIC_VM_STRUCT_ENTRY,
2935                  GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2936                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2937                  GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
2938                  GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
2939                  GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
2940                  GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
2941 
2942   VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
2943                     GENERATE_STATIC_VM_STRUCT_ENTRY,
2944                     GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
2945                     GENERATE_NONSTATIC_VM_STRUCT_ENTRY,


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


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


3122            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3123            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3124            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3125            CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3126            CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3127            CHECK_C2_VM_TYPE_ENTRY,
3128            CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3129 
3130 #if INCLUDE_ALL_GCS
3131   VM_TYPES_PARALLELGC(CHECK_VM_TYPE_ENTRY,
3132                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3133 
3134   VM_TYPES_CMS(CHECK_VM_TYPE_ENTRY,
3135                CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3136 
3137   VM_TYPES_PARNEW(CHECK_VM_TYPE_ENTRY)
3138 
3139   VM_TYPES_G1(CHECK_VM_TYPE_ENTRY,
3140               CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3141 
3142   VM_TYPES_SHENANDOAH(CHECK_VM_TYPE_ENTRY,
3143                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3144                       CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3145 #endif // INCLUDE_ALL_GCS
3146 
3147 #if INCLUDE_TRACE
3148   VM_TYPES_TRACE(CHECK_VM_TYPE_ENTRY,
3149               CHECK_SINGLE_ARG_VM_TYPE_NO_OP);
3150 #endif
3151 
3152   VM_TYPES_CPU(CHECK_VM_TYPE_ENTRY,
3153                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3154                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3155                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3156                CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3157                CHECK_C1_TOPLEVEL_VM_TYPE_ENTRY,
3158                CHECK_C2_VM_TYPE_ENTRY,
3159                CHECK_C2_TOPLEVEL_VM_TYPE_ENTRY);
3160 
3161   VM_TYPES_OS_CPU(CHECK_VM_TYPE_ENTRY,
3162                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3163                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,
3164                   CHECK_SINGLE_ARG_VM_TYPE_NO_OP,


< prev index next >