< prev index next >

src/share/vm/runtime/vmStructs.cpp

Print this page
rev 12377 : 8171090: Convert VMStruct_test to GTest
Reviewed-by: duke


3004                  GENERATE_STATIC_VM_STRUCT_ENTRY,
3005                  GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
3006                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
3007                  GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3008                  GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
3009                  GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
3010                  GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
3011 
3012   VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
3013                     GENERATE_STATIC_VM_STRUCT_ENTRY,
3014                     GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
3015                     GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
3016                     GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3017                     GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
3018                     GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
3019                     GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
3020 
3021   GENERATE_VM_STRUCT_LAST_ENTRY()
3022 };
3023 




3024 VMTypeEntry VMStructs::localHotSpotVMTypes[] = {
3025 
3026   VM_TYPES(GENERATE_VM_TYPE_ENTRY,
3027            GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
3028            GENERATE_OOP_VM_TYPE_ENTRY,
3029            GENERATE_INTEGER_VM_TYPE_ENTRY,
3030            GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
3031            GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
3032            GENERATE_C2_VM_TYPE_ENTRY,
3033            GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
3034 
3035 #if INCLUDE_ALL_GCS
3036   VM_TYPES_PARALLELGC(GENERATE_VM_TYPE_ENTRY,
3037                       GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
3038 
3039   VM_TYPES_CMS(GENERATE_VM_TYPE_ENTRY,
3040                GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
3041 
3042   VM_TYPES_PARNEW(GENERATE_VM_TYPE_ENTRY)
3043 


3066                GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
3067                GENERATE_OOP_VM_TYPE_ENTRY,
3068                GENERATE_INTEGER_VM_TYPE_ENTRY,
3069                GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
3070                GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
3071                GENERATE_C2_VM_TYPE_ENTRY,
3072                GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
3073 
3074   VM_TYPES_OS_CPU(GENERATE_VM_TYPE_ENTRY,
3075                   GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
3076                   GENERATE_OOP_VM_TYPE_ENTRY,
3077                   GENERATE_INTEGER_VM_TYPE_ENTRY,
3078                   GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
3079                   GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
3080                   GENERATE_C2_VM_TYPE_ENTRY,
3081                   GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
3082 
3083   GENERATE_VM_TYPE_LAST_ENTRY()
3084 };
3085 




3086 VMIntConstantEntry VMStructs::localHotSpotVMIntConstants[] = {
3087 
3088   VM_INT_CONSTANTS(GENERATE_VM_INT_CONSTANT_ENTRY,
3089                    GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3090                    GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3091                    GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3092                    GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3093 
3094 #if INCLUDE_ALL_GCS
3095   VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY)
3096 
3097   VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY)
3098 
3099   VM_INT_CONSTANTS_G1(GENERATE_VM_INT_CONSTANT_ENTRY,
3100                       GENERATE_VM_INT_CONSTANT_WITH_VALUE_ENTRY)
3101 #endif // INCLUDE_ALL_GCS
3102 
3103 #if INCLUDE_TRACE
3104   VM_INT_CONSTANTS_TRACE(GENERATE_VM_INT_CONSTANT_ENTRY)
3105 #endif


3108                       GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3109                       GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3110                       GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3111                       GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3112 
3113   VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3114                        GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3115                        GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3116                        GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3117                        GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3118 
3119   VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3120                           GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3121                           GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3122                           GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3123                           GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3124 
3125   GENERATE_VM_INT_CONSTANT_LAST_ENTRY()
3126 };
3127 




3128 VMLongConstantEntry VMStructs::localHotSpotVMLongConstants[] = {
3129 
3130   VM_LONG_CONSTANTS(GENERATE_VM_LONG_CONSTANT_ENTRY,
3131                     GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3132                     GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3133                     GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3134                     GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3135 
3136   VM_LONG_CONSTANTS_OS(GENERATE_VM_LONG_CONSTANT_ENTRY,
3137                        GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3138                        GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3139                        GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3140                        GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3141 
3142   VM_LONG_CONSTANTS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY,
3143                         GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3144                         GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3145                         GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3146                         GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3147 
3148   VM_LONG_CONSTANTS_OS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY,
3149                            GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3150                            GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3151                            GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3152                            GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3153 
3154   GENERATE_VM_LONG_CONSTANT_LAST_ENTRY()
3155 };
3156 




3157 // This is used both to check the types of referenced fields and, in
3158 // debug builds, to ensure that all of the field types are present.
3159 void
3160 VMStructs::init() {
3161   VM_STRUCTS(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3162              CHECK_STATIC_VM_STRUCT_ENTRY,
3163              CHECK_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY,
3164              CHECK_NO_OP,
3165              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3166              CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3167              CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY,
3168              CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3169              CHECK_NO_OP,
3170              CHECK_NO_OP);
3171 
3172 #if INCLUDE_ALL_GCS
3173   VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3174                         CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3175                         CHECK_STATIC_VM_STRUCT_ENTRY);
3176 


3428     os::free(s);
3429   }
3430   if (!isRecurse) {
3431     tty->print_cr("type \"%s\" not found", typeName);
3432   }
3433   return 0;
3434 }
3435 
3436 
3437 int
3438 VMStructs::findType(const char* typeName) {
3439   VMTypeEntry* types = gHotSpotVMTypes;
3440 
3441   return recursiveFindType(types, typeName, false);
3442 }
3443 #endif
3444 
3445 void vmStructs_init() {
3446   debug_only(VMStructs::init());
3447 }
3448 
3449 #ifndef PRODUCT
3450 void VMStructs::test() {
3451   // Make sure last entry in the each array is indeed the correct end marker.
3452   // The reason why these are static is to make sure they are zero initialized.
3453   // Putting them on the stack will leave some garbage in the padding of some fields.
3454   static VMStructEntry struct_last_entry = GENERATE_VM_STRUCT_LAST_ENTRY();
3455   assert(memcmp(&localHotSpotVMStructs[(sizeof(localHotSpotVMStructs) / sizeof(VMStructEntry)) - 1],
3456                 &struct_last_entry,
3457                 sizeof(VMStructEntry)) == 0, "Incorrect last entry in localHotSpotVMStructs");
3458 
3459   static VMTypeEntry type_last_entry = GENERATE_VM_TYPE_LAST_ENTRY();
3460   assert(memcmp(&localHotSpotVMTypes[sizeof(localHotSpotVMTypes) / sizeof(VMTypeEntry) - 1],
3461                 &type_last_entry,
3462                 sizeof(VMTypeEntry)) == 0, "Incorrect last entry in localHotSpotVMTypes");
3463 
3464   static VMIntConstantEntry int_last_entry = GENERATE_VM_INT_CONSTANT_LAST_ENTRY();
3465   assert(memcmp(&localHotSpotVMIntConstants[sizeof(localHotSpotVMIntConstants) / sizeof(VMIntConstantEntry) - 1],
3466                 &int_last_entry,
3467                 sizeof(VMIntConstantEntry)) == 0, "Incorrect last entry in localHotSpotVMIntConstants");
3468 
3469   static VMLongConstantEntry long_last_entry = GENERATE_VM_LONG_CONSTANT_LAST_ENTRY();
3470   assert(memcmp(&localHotSpotVMLongConstants[sizeof(localHotSpotVMLongConstants) / sizeof(VMLongConstantEntry) - 1],
3471                 &long_last_entry,
3472                 sizeof(VMLongConstantEntry)) == 0, "Incorrect last entry in localHotSpotVMLongConstants");
3473 
3474 
3475   // Check for duplicate entries in type array
3476   for (int i = 0; localHotSpotVMTypes[i].typeName != NULL; i++) {
3477     for (int j = i + 1; localHotSpotVMTypes[j].typeName != NULL; j++) {
3478       if (strcmp(localHotSpotVMTypes[i].typeName, localHotSpotVMTypes[j].typeName) == 0) {
3479         tty->print_cr("Duplicate entries for '%s'", localHotSpotVMTypes[i].typeName);
3480         assert(false, "Duplicate types in localHotSpotVMTypes array");
3481       }
3482     }
3483   }
3484 }
3485 
3486 void VMStructs_test() {
3487   VMStructs::test();
3488 }
3489 #endif


3004                  GENERATE_STATIC_VM_STRUCT_ENTRY,
3005                  GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
3006                  GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
3007                  GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3008                  GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
3009                  GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
3010                  GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
3011 
3012   VM_STRUCTS_OS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
3013                     GENERATE_STATIC_VM_STRUCT_ENTRY,
3014                     GENERATE_UNCHECKED_NONSTATIC_VM_STRUCT_ENTRY,
3015                     GENERATE_NONSTATIC_VM_STRUCT_ENTRY,
3016                     GENERATE_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3017                     GENERATE_C2_NONSTATIC_VM_STRUCT_ENTRY,
3018                     GENERATE_C1_UNCHECKED_STATIC_VM_STRUCT_ENTRY,
3019                     GENERATE_C2_UNCHECKED_STATIC_VM_STRUCT_ENTRY)
3020 
3021   GENERATE_VM_STRUCT_LAST_ENTRY()
3022 };
3023 
3024 size_t VMStructs::localHotSpotVMStructsLength() {
3025   return sizeof(localHotSpotVMStructs) / sizeof(VMStructEntry);
3026 }
3027 
3028 VMTypeEntry VMStructs::localHotSpotVMTypes[] = {
3029 
3030   VM_TYPES(GENERATE_VM_TYPE_ENTRY,
3031            GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
3032            GENERATE_OOP_VM_TYPE_ENTRY,
3033            GENERATE_INTEGER_VM_TYPE_ENTRY,
3034            GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
3035            GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
3036            GENERATE_C2_VM_TYPE_ENTRY,
3037            GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
3038 
3039 #if INCLUDE_ALL_GCS
3040   VM_TYPES_PARALLELGC(GENERATE_VM_TYPE_ENTRY,
3041                       GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
3042 
3043   VM_TYPES_CMS(GENERATE_VM_TYPE_ENTRY,
3044                GENERATE_TOPLEVEL_VM_TYPE_ENTRY)
3045 
3046   VM_TYPES_PARNEW(GENERATE_VM_TYPE_ENTRY)
3047 


3070                GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
3071                GENERATE_OOP_VM_TYPE_ENTRY,
3072                GENERATE_INTEGER_VM_TYPE_ENTRY,
3073                GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
3074                GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
3075                GENERATE_C2_VM_TYPE_ENTRY,
3076                GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
3077 
3078   VM_TYPES_OS_CPU(GENERATE_VM_TYPE_ENTRY,
3079                   GENERATE_TOPLEVEL_VM_TYPE_ENTRY,
3080                   GENERATE_OOP_VM_TYPE_ENTRY,
3081                   GENERATE_INTEGER_VM_TYPE_ENTRY,
3082                   GENERATE_UNSIGNED_INTEGER_VM_TYPE_ENTRY,
3083                   GENERATE_C1_TOPLEVEL_VM_TYPE_ENTRY,
3084                   GENERATE_C2_VM_TYPE_ENTRY,
3085                   GENERATE_C2_TOPLEVEL_VM_TYPE_ENTRY)
3086 
3087   GENERATE_VM_TYPE_LAST_ENTRY()
3088 };
3089 
3090 size_t VMStructs::localHotSpotVMTypesLength() {
3091   return sizeof(localHotSpotVMTypes) / sizeof(VMTypeEntry);
3092 }
3093 
3094 VMIntConstantEntry VMStructs::localHotSpotVMIntConstants[] = {
3095 
3096   VM_INT_CONSTANTS(GENERATE_VM_INT_CONSTANT_ENTRY,
3097                    GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3098                    GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3099                    GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3100                    GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3101 
3102 #if INCLUDE_ALL_GCS
3103   VM_INT_CONSTANTS_CMS(GENERATE_VM_INT_CONSTANT_ENTRY)
3104 
3105   VM_INT_CONSTANTS_PARNEW(GENERATE_VM_INT_CONSTANT_ENTRY)
3106 
3107   VM_INT_CONSTANTS_G1(GENERATE_VM_INT_CONSTANT_ENTRY,
3108                       GENERATE_VM_INT_CONSTANT_WITH_VALUE_ENTRY)
3109 #endif // INCLUDE_ALL_GCS
3110 
3111 #if INCLUDE_TRACE
3112   VM_INT_CONSTANTS_TRACE(GENERATE_VM_INT_CONSTANT_ENTRY)
3113 #endif


3116                       GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3117                       GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3118                       GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3119                       GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3120 
3121   VM_INT_CONSTANTS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3122                        GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3123                        GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3124                        GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3125                        GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3126 
3127   VM_INT_CONSTANTS_OS_CPU(GENERATE_VM_INT_CONSTANT_ENTRY,
3128                           GENERATE_PREPROCESSOR_VM_INT_CONSTANT_ENTRY,
3129                           GENERATE_C1_VM_INT_CONSTANT_ENTRY,
3130                           GENERATE_C2_VM_INT_CONSTANT_ENTRY,
3131                           GENERATE_C2_PREPROCESSOR_VM_INT_CONSTANT_ENTRY)
3132 
3133   GENERATE_VM_INT_CONSTANT_LAST_ENTRY()
3134 };
3135 
3136 size_t VMStructs::localHotSpotVMIntConstantsLength() {
3137   return sizeof(localHotSpotVMIntConstants) / sizeof(VMIntConstantEntry);
3138 }
3139 
3140 VMLongConstantEntry VMStructs::localHotSpotVMLongConstants[] = {
3141 
3142   VM_LONG_CONSTANTS(GENERATE_VM_LONG_CONSTANT_ENTRY,
3143                     GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3144                     GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3145                     GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3146                     GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3147 
3148   VM_LONG_CONSTANTS_OS(GENERATE_VM_LONG_CONSTANT_ENTRY,
3149                        GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3150                        GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3151                        GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3152                        GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3153 
3154   VM_LONG_CONSTANTS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY,
3155                         GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3156                         GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3157                         GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3158                         GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3159 
3160   VM_LONG_CONSTANTS_OS_CPU(GENERATE_VM_LONG_CONSTANT_ENTRY,
3161                            GENERATE_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY,
3162                            GENERATE_C1_VM_LONG_CONSTANT_ENTRY,
3163                            GENERATE_C2_VM_LONG_CONSTANT_ENTRY,
3164                            GENERATE_C2_PREPROCESSOR_VM_LONG_CONSTANT_ENTRY)
3165 
3166   GENERATE_VM_LONG_CONSTANT_LAST_ENTRY()
3167 };
3168 
3169 size_t VMStructs::localHotSpotVMLongConstantsLength() {
3170   return sizeof(localHotSpotVMLongConstants) / sizeof(VMLongConstantEntry);
3171 }
3172 
3173 // This is used both to check the types of referenced fields and, in
3174 // debug builds, to ensure that all of the field types are present.
3175 void
3176 VMStructs::init() {
3177   VM_STRUCTS(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3178              CHECK_STATIC_VM_STRUCT_ENTRY,
3179              CHECK_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY,
3180              CHECK_NO_OP,
3181              CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3182              CHECK_NONPRODUCT_NONSTATIC_VM_STRUCT_ENTRY,
3183              CHECK_C1_NONSTATIC_VM_STRUCT_ENTRY,
3184              CHECK_C2_NONSTATIC_VM_STRUCT_ENTRY,
3185              CHECK_NO_OP,
3186              CHECK_NO_OP);
3187 
3188 #if INCLUDE_ALL_GCS
3189   VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
3190                         CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
3191                         CHECK_STATIC_VM_STRUCT_ENTRY);
3192 


3444     os::free(s);
3445   }
3446   if (!isRecurse) {
3447     tty->print_cr("type \"%s\" not found", typeName);
3448   }
3449   return 0;
3450 }
3451 
3452 
3453 int
3454 VMStructs::findType(const char* typeName) {
3455   VMTypeEntry* types = gHotSpotVMTypes;
3456 
3457   return recursiveFindType(types, typeName, false);
3458 }
3459 #endif
3460 
3461 void vmStructs_init() {
3462   debug_only(VMStructs::init());
3463 }










































< prev index next >