comparison src/share/vm/oops/constantPoolKlass.hpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
22 * 22 *
23 */ 23 */
24 24
25 // A constantPoolKlass is the klass of a constantPoolOop 25 // A constantPoolKlass is the klass of a constantPoolOop
26 26
27 class constantPoolKlass : public arrayKlass { 27 class constantPoolKlass : public Klass {
28 juint _alloc_size; // allocation profiling support
28 public: 29 public:
29 // Dispatched klass operations 30 // Dispatched klass operations
30 bool oop_is_constantPool() const { return true; } 31 bool oop_is_constantPool() const { return true; }
31 int oop_size(oop obj) const; 32 int oop_size(oop obj) const;
32 int klass_oop_size() const { return object_size(); } 33 int klass_oop_size() const { return object_size(); }
42 return (constantPoolKlass*) k->klass_part(); 43 return (constantPoolKlass*) k->klass_part();
43 } 44 }
44 45
45 // Sizing 46 // Sizing
46 static int header_size() { return oopDesc::header_size() + sizeof(constantPoolKlass)/HeapWordSize; } 47 static int header_size() { return oopDesc::header_size() + sizeof(constantPoolKlass)/HeapWordSize; }
47 int object_size() const { return arrayKlass::object_size(header_size()); } 48 int object_size() const { return align_object_size(header_size()); }
48 49
49 // Garbage collection 50 // Garbage collection
50 void oop_follow_contents(oop obj); 51 void oop_follow_contents(oop obj);
51 int oop_adjust_pointers(oop obj); 52 int oop_adjust_pointers(oop obj);
52 53
54 PARALLEL_GC_DECLS 55 PARALLEL_GC_DECLS
55 56
56 // Iterators 57 // Iterators
57 int oop_oop_iterate(oop obj, OopClosure* blk); 58 int oop_oop_iterate(oop obj, OopClosure* blk);
58 int oop_oop_iterate_m(oop obj, OopClosure* blk, MemRegion mr); 59 int oop_oop_iterate_m(oop obj, OopClosure* blk, MemRegion mr);
60
61 // Allocation profiling support
62 // no idea why this is pure virtual and not in Klass ???
63 juint alloc_size() const { return _alloc_size; }
64 void set_alloc_size(juint n) { _alloc_size = n; }
59 65
60 #ifndef PRODUCT 66 #ifndef PRODUCT
61 public: 67 public:
62 // Printing 68 // Printing
63 void oop_print_on(oop obj, outputStream* st); 69 void oop_print_on(oop obj, outputStream* st);