< prev index next >

src/share/vm/runtime/vmStructs.cpp

Print this page
rev 4134 : 7178145: Change constMethodOop::_exception_table to optionally inlined u2 table.
Summary: Change constMethodOop::_exception_table to optionally inlined u2 table.
Reviewed-by: bdelsart, coleenp, kamg


 366   nonstatic_field(methodOopDesc,               _interpreter_invocation_count,                 int)                                   \
 367   nonstatic_field(methodOopDesc,               _access_flags,                                 AccessFlags)                           \
 368   nonstatic_field(methodOopDesc,               _vtable_index,                                 int)                                   \
 369   nonstatic_field(methodOopDesc,               _method_size,                                  u2)                                    \
 370   nonstatic_field(methodOopDesc,               _max_stack,                                    u2)                                    \
 371   nonstatic_field(methodOopDesc,               _max_locals,                                   u2)                                    \
 372   nonstatic_field(methodOopDesc,               _size_of_parameters,                           u2)                                    \
 373   nonstatic_field(methodOopDesc,               _interpreter_throwout_count,                   u2)                                    \
 374   nonstatic_field(methodOopDesc,               _number_of_breakpoints,                        u2)                                    \
 375   nonstatic_field(methodOopDesc,               _invocation_counter,                           InvocationCounter)                     \
 376   nonstatic_field(methodOopDesc,               _backedge_counter,                             InvocationCounter)                     \
 377   nonproduct_nonstatic_field(methodOopDesc,    _compiled_invocation_count,                    int)                                   \
 378   volatile_nonstatic_field(methodOopDesc,      _code,                                         nmethod*)                              \
 379   nonstatic_field(methodOopDesc,               _i2i_entry,                                    address)                               \
 380   nonstatic_field(methodOopDesc,               _adapter,                                      AdapterHandlerEntry*)                  \
 381   volatile_nonstatic_field(methodOopDesc,      _from_compiled_entry,                          address)                               \
 382   volatile_nonstatic_field(methodOopDesc,      _from_interpreted_entry,                       address)                               \
 383   volatile_nonstatic_field(constMethodOopDesc, _fingerprint,                                  uint64_t)                              \
 384   nonstatic_field(constMethodOopDesc,          _method,                                       methodOop)                             \
 385   nonstatic_field(constMethodOopDesc,          _stackmap_data,                                typeArrayOop)                          \
 386   nonstatic_field(constMethodOopDesc,          _exception_table,                              typeArrayOop)                          \
 387   nonstatic_field(constMethodOopDesc,          _constMethod_size,                             int)                                   \
 388   nonstatic_field(constMethodOopDesc,          _interpreter_kind,                             jbyte)                                 \
 389   nonstatic_field(constMethodOopDesc,          _flags,                                        jbyte)                                 \
 390   nonstatic_field(constMethodOopDesc,          _code_size,                                    u2)                                    \
 391   nonstatic_field(constMethodOopDesc,          _name_index,                                   u2)                                    \
 392   nonstatic_field(constMethodOopDesc,          _signature_index,                              u2)                                    \
 393   nonstatic_field(constMethodOopDesc,          _method_idnum,                                 u2)                                    \
 394   nonstatic_field(constMethodOopDesc,          _generic_signature_index,                      u2)                                    \
 395   nonstatic_field(objArrayKlass,               _element_klass,                                klassOop)                              \
 396   nonstatic_field(objArrayKlass,               _bottom_klass,                                 klassOop)                              \
 397   volatile_nonstatic_field(Symbol,             _refcount,                                     int)                                   \
 398   nonstatic_field(Symbol,                      _identity_hash,                                int)                                   \
 399   nonstatic_field(Symbol,                      _length,                                       unsigned short)                        \
 400   unchecked_nonstatic_field(Symbol,            _body,                                         sizeof(jbyte)) /* NOTE: no type */     \
 401   nonstatic_field(typeArrayKlass,              _max_length,                                   int)                                   \
 402                                                                                                                                      \
 403   /***********************/                                                                                                          \
 404   /* Constant Pool Cache */                                                                                                          \
 405   /***********************/                                                                                                          \
 406                                                                                                                                      \
 407   volatile_nonstatic_field(ConstantPoolCacheEntry,      _indices,                                      intx)                         \
 408   volatile_nonstatic_field(ConstantPoolCacheEntry,      _f1,                                           oop)                          \
 409   volatile_nonstatic_field(ConstantPoolCacheEntry,      _f2,                                           intx)                         \
 410   volatile_nonstatic_field(ConstantPoolCacheEntry,      _flags,                                        intx)                         \
 411                                                                                                                                      \
 412   /********************************/                                                                                                 \
 413   /* MethodOop-related structures */                                                                                                 \
 414   /********************************/                                                                                                 \
 415                                                                                                                                      \
 416   nonstatic_field(CheckedExceptionElement,     class_cp_index,                                u2)                                    \
 417   nonstatic_field(LocalVariableTableElement,   start_bci,                                     u2)                                    \
 418   nonstatic_field(LocalVariableTableElement,   length,                                        u2)                                    \
 419   nonstatic_field(LocalVariableTableElement,   name_cp_index,                                 u2)                                    \
 420   nonstatic_field(LocalVariableTableElement,   descriptor_cp_index,                           u2)                                    \
 421   nonstatic_field(LocalVariableTableElement,   signature_cp_index,                            u2)                                    \
 422   nonstatic_field(LocalVariableTableElement,   slot,                                          u2)                                    \




 423   nonstatic_field(BreakpointInfo,              _orig_bytecode,                                Bytecodes::Code)                       \
 424   nonstatic_field(BreakpointInfo,              _bci,                                          int)                                   \
 425   nonstatic_field(BreakpointInfo,              _name_index,                                   u2)                                    \
 426   nonstatic_field(BreakpointInfo,              _signature_index,                              u2)                                    \
 427   nonstatic_field(BreakpointInfo,              _next,                                         BreakpointInfo*)                       \
 428   /***********/                                                                                                                      \
 429   /* JNI IDs */                                                                                                                      \
 430   /***********/                                                                                                                      \
 431                                                                                                                                      \
 432   nonstatic_field(JNIid,                       _holder,                                       klassOop)                              \
 433   nonstatic_field(JNIid,                       _next,                                         JNIid*)                                \
 434   nonstatic_field(JNIid,                       _offset,                                       int)                                   \
 435   /************/                                                                                                                     \
 436   /* Universe */                                                                                                                     \
 437   /************/                                                                                                                     \
 438                                                                                                                                      \
 439      static_field(Universe,                    _boolArrayKlassObj,                            klassOop)                              \
 440      static_field(Universe,                    _byteArrayKlassObj,                            klassOop)                              \
 441      static_field(Universe,                    _charArrayKlassObj,                            klassOop)                              \
 442      static_field(Universe,                    _intArrayKlassObj,                             klassOop)                              \


1439                                                                           \
1440   declare_oop_type(constantPoolOop)                                       \
1441   declare_oop_type(constantPoolCacheOop)                                  \
1442   declare_oop_type(klassOop)                                              \
1443   declare_oop_type(markOop)                                               \
1444   declare_oop_type(methodOop)                                             \
1445   declare_oop_type(methodDataOop)                                         \
1446   declare_oop_type(objArrayOop)                                           \
1447   declare_oop_type(oop)                                                   \
1448   declare_oop_type(narrowOop)                                             \
1449   declare_oop_type(wideKlassOop)                                          \
1450   declare_oop_type(constMethodOop)                                        \
1451   declare_oop_type(typeArrayOop)                                          \
1452                                                                           \
1453   /*************************************/                                 \
1454   /* MethodOop-related data structures */                                 \
1455   /*************************************/                                 \
1456                                                                           \
1457   declare_toplevel_type(CheckedExceptionElement)                          \
1458   declare_toplevel_type(LocalVariableTableElement)                        \

1459                                                                           \
1460   /******************************************/                            \
1461   /* Generation and space hierarchies       */                            \
1462   /* (needed for run-time type information) */                            \
1463   /******************************************/                            \
1464                                                                           \
1465   declare_toplevel_type(CollectedHeap)                                    \
1466            declare_type(SharedHeap,                   CollectedHeap)      \
1467            declare_type(GenCollectedHeap,             SharedHeap)         \
1468   declare_toplevel_type(Generation)                                       \
1469            declare_type(DefNewGeneration,             Generation)         \
1470            declare_type(CardGeneration,               Generation)         \
1471            declare_type(OneContigSpaceCardGeneration, CardGeneration)     \
1472            declare_type(TenuredGeneration,            OneContigSpaceCardGeneration) \
1473            declare_type(CompactingPermGenGen,         OneContigSpaceCardGeneration) \
1474   declare_toplevel_type(Space)                                            \
1475   declare_toplevel_type(BitMap)                                           \
1476            declare_type(CompactibleSpace,             Space)              \
1477            declare_type(ContiguousSpace,              CompactibleSpace)   \
1478            declare_type(EdenSpace,                    ContiguousSpace)    \


2323   /******************************/                                        \
2324   /* Klass misc. enum constants */                                        \
2325   /******************************/                                        \
2326                                                                           \
2327   declare_constant(Klass::_primary_super_limit)                           \
2328   declare_constant(Klass::_lh_instance_slow_path_bit)                     \
2329   declare_constant(Klass::_lh_log2_element_size_shift)                    \
2330   declare_constant(Klass::_lh_element_type_shift)                         \
2331   declare_constant(Klass::_lh_header_size_shift)                          \
2332   declare_constant(Klass::_lh_array_tag_shift)                            \
2333   declare_constant(Klass::_lh_array_tag_type_value)                       \
2334   declare_constant(Klass::_lh_array_tag_obj_value)                        \
2335                                                                           \
2336   /********************************/                                      \
2337   /* constMethodOopDesc anon-enum */                                      \
2338   /********************************/                                      \
2339                                                                           \
2340   declare_constant(constMethodOopDesc::_has_linenumber_table)             \
2341   declare_constant(constMethodOopDesc::_has_checked_exceptions)           \
2342   declare_constant(constMethodOopDesc::_has_localvariable_table)          \

2343                                                                           \
2344   /*************************************/                                 \
2345   /* instanceKlass enum                */                                 \
2346   /*************************************/                                 \
2347                                                                           \
2348   declare_constant(instanceKlass::implementors_limit)                     \
2349                                                                           \
2350   /*************************************/                                 \
2351   /* FieldInfo FieldOffset enum        */                                 \
2352   /*************************************/                                 \
2353                                                                           \
2354   declare_constant(FieldInfo::access_flags_offset)                        \
2355   declare_constant(FieldInfo::name_index_offset)                          \
2356   declare_constant(FieldInfo::signature_index_offset)                     \
2357   declare_constant(FieldInfo::initval_index_offset)                       \
2358   declare_constant(FieldInfo::low_offset)                                 \
2359   declare_constant(FieldInfo::high_offset)                                \
2360   declare_constant(FieldInfo::generic_signature_offset)                   \
2361   declare_constant(FieldInfo::field_slots)                                \
2362                                                                           \




 366   nonstatic_field(methodOopDesc,               _interpreter_invocation_count,                 int)                                   \
 367   nonstatic_field(methodOopDesc,               _access_flags,                                 AccessFlags)                           \
 368   nonstatic_field(methodOopDesc,               _vtable_index,                                 int)                                   \
 369   nonstatic_field(methodOopDesc,               _method_size,                                  u2)                                    \
 370   nonstatic_field(methodOopDesc,               _max_stack,                                    u2)                                    \
 371   nonstatic_field(methodOopDesc,               _max_locals,                                   u2)                                    \
 372   nonstatic_field(methodOopDesc,               _size_of_parameters,                           u2)                                    \
 373   nonstatic_field(methodOopDesc,               _interpreter_throwout_count,                   u2)                                    \
 374   nonstatic_field(methodOopDesc,               _number_of_breakpoints,                        u2)                                    \
 375   nonstatic_field(methodOopDesc,               _invocation_counter,                           InvocationCounter)                     \
 376   nonstatic_field(methodOopDesc,               _backedge_counter,                             InvocationCounter)                     \
 377   nonproduct_nonstatic_field(methodOopDesc,    _compiled_invocation_count,                    int)                                   \
 378   volatile_nonstatic_field(methodOopDesc,      _code,                                         nmethod*)                              \
 379   nonstatic_field(methodOopDesc,               _i2i_entry,                                    address)                               \
 380   nonstatic_field(methodOopDesc,               _adapter,                                      AdapterHandlerEntry*)                  \
 381   volatile_nonstatic_field(methodOopDesc,      _from_compiled_entry,                          address)                               \
 382   volatile_nonstatic_field(methodOopDesc,      _from_interpreted_entry,                       address)                               \
 383   volatile_nonstatic_field(constMethodOopDesc, _fingerprint,                                  uint64_t)                              \
 384   nonstatic_field(constMethodOopDesc,          _method,                                       methodOop)                             \
 385   nonstatic_field(constMethodOopDesc,          _stackmap_data,                                typeArrayOop)                          \

 386   nonstatic_field(constMethodOopDesc,          _constMethod_size,                             int)                                   \
 387   nonstatic_field(constMethodOopDesc,          _interpreter_kind,                             jbyte)                                 \
 388   nonstatic_field(constMethodOopDesc,          _flags,                                        jbyte)                                 \
 389   nonstatic_field(constMethodOopDesc,          _code_size,                                    u2)                                    \
 390   nonstatic_field(constMethodOopDesc,          _name_index,                                   u2)                                    \
 391   nonstatic_field(constMethodOopDesc,          _signature_index,                              u2)                                    \
 392   nonstatic_field(constMethodOopDesc,          _method_idnum,                                 u2)                                    \
 393   nonstatic_field(constMethodOopDesc,          _generic_signature_index,                      u2)                                    \
 394   nonstatic_field(objArrayKlass,               _element_klass,                                klassOop)                              \
 395   nonstatic_field(objArrayKlass,               _bottom_klass,                                 klassOop)                              \
 396   volatile_nonstatic_field(Symbol,             _refcount,                                     int)                                   \
 397   nonstatic_field(Symbol,                      _identity_hash,                                int)                                   \
 398   nonstatic_field(Symbol,                      _length,                                       unsigned short)                        \
 399   unchecked_nonstatic_field(Symbol,            _body,                                         sizeof(jbyte)) /* NOTE: no type */     \
 400   nonstatic_field(typeArrayKlass,              _max_length,                                   int)                                   \
 401                                                                                                                                      \
 402   /***********************/                                                                                                          \
 403   /* Constant Pool Cache */                                                                                                          \
 404   /***********************/                                                                                                          \
 405                                                                                                                                      \
 406   volatile_nonstatic_field(ConstantPoolCacheEntry,      _indices,                                      intx)                         \
 407   volatile_nonstatic_field(ConstantPoolCacheEntry,      _f1,                                           oop)                          \
 408   volatile_nonstatic_field(ConstantPoolCacheEntry,      _f2,                                           intx)                         \
 409   volatile_nonstatic_field(ConstantPoolCacheEntry,      _flags,                                        intx)                         \
 410                                                                                                                                      \
 411   /********************************/                                                                                                 \
 412   /* MethodOop-related structures */                                                                                                 \
 413   /********************************/                                                                                                 \
 414                                                                                                                                      \
 415   nonstatic_field(CheckedExceptionElement,     class_cp_index,                                u2)                                    \
 416   nonstatic_field(LocalVariableTableElement,   start_bci,                                     u2)                                    \
 417   nonstatic_field(LocalVariableTableElement,   length,                                        u2)                                    \
 418   nonstatic_field(LocalVariableTableElement,   name_cp_index,                                 u2)                                    \
 419   nonstatic_field(LocalVariableTableElement,   descriptor_cp_index,                           u2)                                    \
 420   nonstatic_field(LocalVariableTableElement,   signature_cp_index,                            u2)                                    \
 421   nonstatic_field(LocalVariableTableElement,   slot,                                          u2)                                    \
 422   nonstatic_field(ExceptionTableElement,       start_pc,                                      u2)                                    \
 423   nonstatic_field(ExceptionTableElement,       end_pc,                                        u2)                                    \
 424   nonstatic_field(ExceptionTableElement,       handler_pc,                                    u2)                                    \
 425   nonstatic_field(ExceptionTableElement,       catch_type_index,                              u2)                                    \
 426   nonstatic_field(BreakpointInfo,              _orig_bytecode,                                Bytecodes::Code)                       \
 427   nonstatic_field(BreakpointInfo,              _bci,                                          int)                                   \
 428   nonstatic_field(BreakpointInfo,              _name_index,                                   u2)                                    \
 429   nonstatic_field(BreakpointInfo,              _signature_index,                              u2)                                    \
 430   nonstatic_field(BreakpointInfo,              _next,                                         BreakpointInfo*)                       \
 431   /***********/                                                                                                                      \
 432   /* JNI IDs */                                                                                                                      \
 433   /***********/                                                                                                                      \
 434                                                                                                                                      \
 435   nonstatic_field(JNIid,                       _holder,                                       klassOop)                              \
 436   nonstatic_field(JNIid,                       _next,                                         JNIid*)                                \
 437   nonstatic_field(JNIid,                       _offset,                                       int)                                   \
 438   /************/                                                                                                                     \
 439   /* Universe */                                                                                                                     \
 440   /************/                                                                                                                     \
 441                                                                                                                                      \
 442      static_field(Universe,                    _boolArrayKlassObj,                            klassOop)                              \
 443      static_field(Universe,                    _byteArrayKlassObj,                            klassOop)                              \
 444      static_field(Universe,                    _charArrayKlassObj,                            klassOop)                              \
 445      static_field(Universe,                    _intArrayKlassObj,                             klassOop)                              \


1442                                                                           \
1443   declare_oop_type(constantPoolOop)                                       \
1444   declare_oop_type(constantPoolCacheOop)                                  \
1445   declare_oop_type(klassOop)                                              \
1446   declare_oop_type(markOop)                                               \
1447   declare_oop_type(methodOop)                                             \
1448   declare_oop_type(methodDataOop)                                         \
1449   declare_oop_type(objArrayOop)                                           \
1450   declare_oop_type(oop)                                                   \
1451   declare_oop_type(narrowOop)                                             \
1452   declare_oop_type(wideKlassOop)                                          \
1453   declare_oop_type(constMethodOop)                                        \
1454   declare_oop_type(typeArrayOop)                                          \
1455                                                                           \
1456   /*************************************/                                 \
1457   /* MethodOop-related data structures */                                 \
1458   /*************************************/                                 \
1459                                                                           \
1460   declare_toplevel_type(CheckedExceptionElement)                          \
1461   declare_toplevel_type(LocalVariableTableElement)                        \
1462   declare_toplevel_type(ExceptionTableElement)                            \
1463                                                                           \
1464   /******************************************/                            \
1465   /* Generation and space hierarchies       */                            \
1466   /* (needed for run-time type information) */                            \
1467   /******************************************/                            \
1468                                                                           \
1469   declare_toplevel_type(CollectedHeap)                                    \
1470            declare_type(SharedHeap,                   CollectedHeap)      \
1471            declare_type(GenCollectedHeap,             SharedHeap)         \
1472   declare_toplevel_type(Generation)                                       \
1473            declare_type(DefNewGeneration,             Generation)         \
1474            declare_type(CardGeneration,               Generation)         \
1475            declare_type(OneContigSpaceCardGeneration, CardGeneration)     \
1476            declare_type(TenuredGeneration,            OneContigSpaceCardGeneration) \
1477            declare_type(CompactingPermGenGen,         OneContigSpaceCardGeneration) \
1478   declare_toplevel_type(Space)                                            \
1479   declare_toplevel_type(BitMap)                                           \
1480            declare_type(CompactibleSpace,             Space)              \
1481            declare_type(ContiguousSpace,              CompactibleSpace)   \
1482            declare_type(EdenSpace,                    ContiguousSpace)    \


2327   /******************************/                                        \
2328   /* Klass misc. enum constants */                                        \
2329   /******************************/                                        \
2330                                                                           \
2331   declare_constant(Klass::_primary_super_limit)                           \
2332   declare_constant(Klass::_lh_instance_slow_path_bit)                     \
2333   declare_constant(Klass::_lh_log2_element_size_shift)                    \
2334   declare_constant(Klass::_lh_element_type_shift)                         \
2335   declare_constant(Klass::_lh_header_size_shift)                          \
2336   declare_constant(Klass::_lh_array_tag_shift)                            \
2337   declare_constant(Klass::_lh_array_tag_type_value)                       \
2338   declare_constant(Klass::_lh_array_tag_obj_value)                        \
2339                                                                           \
2340   /********************************/                                      \
2341   /* constMethodOopDesc anon-enum */                                      \
2342   /********************************/                                      \
2343                                                                           \
2344   declare_constant(constMethodOopDesc::_has_linenumber_table)             \
2345   declare_constant(constMethodOopDesc::_has_checked_exceptions)           \
2346   declare_constant(constMethodOopDesc::_has_localvariable_table)          \
2347   declare_constant(constMethodOopDesc::_has_exception_table)              \
2348                                                                           \
2349   /*************************************/                                 \
2350   /* instanceKlass enum                */                                 \
2351   /*************************************/                                 \
2352                                                                           \
2353   declare_constant(instanceKlass::implementors_limit)                     \
2354                                                                           \
2355   /*************************************/                                 \
2356   /* FieldInfo FieldOffset enum        */                                 \
2357   /*************************************/                                 \
2358                                                                           \
2359   declare_constant(FieldInfo::access_flags_offset)                        \
2360   declare_constant(FieldInfo::name_index_offset)                          \
2361   declare_constant(FieldInfo::signature_index_offset)                     \
2362   declare_constant(FieldInfo::initval_index_offset)                       \
2363   declare_constant(FieldInfo::low_offset)                                 \
2364   declare_constant(FieldInfo::high_offset)                                \
2365   declare_constant(FieldInfo::generic_signature_offset)                   \
2366   declare_constant(FieldInfo::field_slots)                                \
2367                                                                           \


< prev index next >