233 // HotSpotTypeDataBase.java, which parses the type strings. |
233 // HotSpotTypeDataBase.java, which parses the type strings. |
234 |
234 |
235 #ifndef REG_COUNT |
235 #ifndef REG_COUNT |
236 #define REG_COUNT 0 |
236 #define REG_COUNT 0 |
237 #endif |
237 #endif |
238 |
|
239 // whole purpose of this function is to work around bug c++/27724 in gcc 4.1.1 |
238 // whole purpose of this function is to work around bug c++/27724 in gcc 4.1.1 |
240 // with optimization turned on it doesn't affect produced code |
239 // with optimization turned on it doesn't affect produced code |
241 static inline uint64_t cast_uint64_t(size_t x) |
240 static inline uint64_t cast_uint64_t(size_t x) |
242 { |
241 { |
243 return x; |
242 return x; |
244 } |
243 } |
245 |
244 |
|
245 |
|
246 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry; |
|
247 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable; |
|
248 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable; |
|
249 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry; |
|
250 typedef Hashtable<oop, mtSymbol> StringHashtable; |
|
251 typedef TwoOopHashtable<klassOop, mtClass> klassOopTwoOopHashtable; |
|
252 typedef Hashtable<klassOop, mtClass> klassOopHashtable; |
|
253 typedef HashtableEntry<klassOop, mtClass> klassHashtableEntry; |
|
254 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; |
246 |
255 |
247 //-------------------------------------------------------------------------------- |
256 //-------------------------------------------------------------------------------- |
248 // VM_STRUCTS |
257 // VM_STRUCTS |
249 // |
258 // |
250 // This list enumerates all of the fields the serviceability agent |
259 // This list enumerates all of the fields the serviceability agent |
709 \ |
718 \ |
710 /*******************/ \ |
719 /*******************/ \ |
711 /* HashtableBucket */ \ |
720 /* HashtableBucket */ \ |
712 /*******************/ \ |
721 /*******************/ \ |
713 \ |
722 \ |
714 nonstatic_field(HashtableBucket, _entry, BasicHashtableEntry*) \ |
723 nonstatic_field(HashtableBucket<mtInternal>, _entry, BasicHashtableEntry<mtInternal>*) \ |
715 \ |
724 \ |
716 /******************/ \ |
725 /******************/ \ |
717 /* HashtableEntry */ \ |
726 /* HashtableEntry */ \ |
718 /******************/ \ |
727 /******************/ \ |
719 \ |
728 \ |
720 nonstatic_field(BasicHashtableEntry, _next, BasicHashtableEntry*) \ |
729 nonstatic_field(BasicHashtableEntry<mtInternal>, _next, BasicHashtableEntry<mtInternal>*) \ |
721 nonstatic_field(BasicHashtableEntry, _hash, unsigned int) \ |
730 nonstatic_field(BasicHashtableEntry<mtInternal>, _hash, unsigned int) \ |
722 nonstatic_field(HashtableEntry<intptr_t>, _literal, intptr_t) \ |
731 nonstatic_field(IntptrHashtableEntry, _literal, intptr_t) \ |
723 \ |
732 \ |
724 /*************/ \ |
733 /*************/ \ |
725 /* Hashtable */ \ |
734 /* Hashtable */ \ |
726 /*************/ \ |
735 /*************/ \ |
727 \ |
736 \ |
728 nonstatic_field(BasicHashtable, _table_size, int) \ |
737 nonstatic_field(BasicHashtable<mtInternal>, _table_size, int) \ |
729 nonstatic_field(BasicHashtable, _buckets, HashtableBucket*) \ |
738 nonstatic_field(BasicHashtable<mtInternal>, _buckets, HashtableBucket<mtInternal>*) \ |
730 nonstatic_field(BasicHashtable, _free_list, BasicHashtableEntry*) \ |
739 nonstatic_field(BasicHashtable<mtInternal>, _free_list, BasicHashtableEntry<mtInternal>*) \ |
731 nonstatic_field(BasicHashtable, _first_free_entry, char*) \ |
740 nonstatic_field(BasicHashtable<mtInternal>, _first_free_entry, char*) \ |
732 nonstatic_field(BasicHashtable, _end_block, char*) \ |
741 nonstatic_field(BasicHashtable<mtInternal>, _end_block, char*) \ |
733 nonstatic_field(BasicHashtable, _entry_size, int) \ |
742 nonstatic_field(BasicHashtable<mtInternal>, _entry_size, int) \ |
734 \ |
743 \ |
735 /*******************/ \ |
744 /*******************/ \ |
736 /* DictionaryEntry */ \ |
745 /* DictionaryEntry */ \ |
737 /*******************/ \ |
746 /*******************/ \ |
738 \ |
747 \ |
1536 \ |
1545 \ |
1537 /*********************************/ \ |
1546 /*********************************/ \ |
1538 /* SymbolTable, SystemDictionary */ \ |
1547 /* SymbolTable, SystemDictionary */ \ |
1539 /*********************************/ \ |
1548 /*********************************/ \ |
1540 \ |
1549 \ |
1541 declare_toplevel_type(BasicHashtable) \ |
1550 declare_toplevel_type(BasicHashtable<mtInternal>) \ |
1542 declare_type(Hashtable<intptr_t>, BasicHashtable) \ |
1551 declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \ |
1543 declare_type(SymbolTable, Hashtable<Symbol*>) \ |
1552 declare_type(SymbolTable, SymbolHashtable) \ |
1544 declare_type(StringTable, Hashtable<oop>) \ |
1553 declare_type(StringTable, StringHashtable) \ |
1545 declare_type(LoaderConstraintTable, Hashtable<klassOop>) \ |
1554 declare_type(LoaderConstraintTable, klassOopHashtable) \ |
1546 declare_type(TwoOopHashtable<klassOop>, Hashtable<klassOop>) \ |
1555 declare_type(klassOopTwoOopHashtable, klassOopHashtable) \ |
1547 declare_type(Dictionary, TwoOopHashtable<klassOop>) \ |
1556 declare_type(Dictionary, klassOopTwoOopHashtable) \ |
1548 declare_type(PlaceholderTable, TwoOopHashtable<Symbol*>) \ |
1557 declare_type(PlaceholderTable, SymbolTwoOopHashtable) \ |
1549 declare_toplevel_type(BasicHashtableEntry) \ |
1558 declare_toplevel_type(BasicHashtableEntry<mtInternal>) \ |
1550 declare_type(HashtableEntry<intptr_t>, BasicHashtableEntry) \ |
1559 declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \ |
1551 declare_type(DictionaryEntry, HashtableEntry<klassOop>) \ |
1560 declare_type(DictionaryEntry, klassHashtableEntry) \ |
1552 declare_type(PlaceholderEntry, HashtableEntry<Symbol*>) \ |
1561 declare_type(PlaceholderEntry, SymbolHashtableEntry) \ |
1553 declare_type(LoaderConstraintEntry, HashtableEntry<klassOop>) \ |
1562 declare_type(LoaderConstraintEntry, klassHashtableEntry) \ |
1554 declare_toplevel_type(HashtableBucket) \ |
1563 declare_toplevel_type(HashtableBucket<mtInternal>) \ |
1555 declare_toplevel_type(SystemDictionary) \ |
1564 declare_toplevel_type(SystemDictionary) \ |
1556 declare_toplevel_type(vmSymbols) \ |
1565 declare_toplevel_type(vmSymbols) \ |
1557 declare_toplevel_type(ProtectionDomainEntry) \ |
1566 declare_toplevel_type(ProtectionDomainEntry) \ |
1558 \ |
1567 \ |
1559 declare_toplevel_type(GenericGrowableArray) \ |
1568 declare_toplevel_type(GenericGrowableArray) \ |