Mercurial > hg > truffle
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); |