Mercurial > hg > truffle
comparison src/share/vm/oops/objArrayKlass.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 37f87013dfd8 |
comparison
equal
deleted
inserted
replaced
110:a49a647afe9a | 113:ba764ed4b6f2 |
---|---|
61 // Compute protection domain | 61 // Compute protection domain |
62 oop protection_domain() { return Klass::cast(bottom_klass())->protection_domain(); } | 62 oop protection_domain() { return Klass::cast(bottom_klass())->protection_domain(); } |
63 // Compute class loader | 63 // Compute class loader |
64 oop class_loader() const { return Klass::cast(bottom_klass())->class_loader(); } | 64 oop class_loader() const { return Klass::cast(bottom_klass())->class_loader(); } |
65 | 65 |
66 private: | |
67 // Either oop or narrowOop depending on UseCompressedOops. | |
68 // must be called from within objArrayKlass.cpp | |
69 template <class T> void do_copy(arrayOop s, T* src, arrayOop d, | |
70 T* dst, int length, TRAPS); | |
66 protected: | 71 protected: |
67 // Returns the objArrayKlass for n'th dimension. | 72 // Returns the objArrayKlass for n'th dimension. |
68 virtual klassOop array_klass_impl(bool or_null, int n, TRAPS); | 73 virtual klassOop array_klass_impl(bool or_null, int n, TRAPS); |
69 | 74 |
70 // Returns the array class with this class as element type. | 75 // Returns the array class with this class as element type. |
99 return oop_oop_iterate_v_m(obj, blk, mr); | 104 return oop_oop_iterate_v_m(obj, blk, mr); |
100 } | 105 } |
101 #define ObjArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ | 106 #define ObjArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ |
102 int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \ | 107 int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \ |
103 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, \ | 108 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, \ |
104 MemRegion mr); | 109 MemRegion mr); \ |
110 int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* blk, \ | |
111 int start, int end); | |
105 | 112 |
106 ALL_OOP_OOP_ITERATE_CLOSURES_1(ObjArrayKlass_OOP_OOP_ITERATE_DECL) | 113 ALL_OOP_OOP_ITERATE_CLOSURES_1(ObjArrayKlass_OOP_OOP_ITERATE_DECL) |
107 ALL_OOP_OOP_ITERATE_CLOSURES_3(ObjArrayKlass_OOP_OOP_ITERATE_DECL) | 114 ALL_OOP_OOP_ITERATE_CLOSURES_3(ObjArrayKlass_OOP_OOP_ITERATE_DECL) |
108 | 115 |
109 // JVM support | 116 // JVM support |
122 public: | 129 public: |
123 // Verification | 130 // Verification |
124 const char* internal_name() const; | 131 const char* internal_name() const; |
125 void oop_verify_on(oop obj, outputStream* st); | 132 void oop_verify_on(oop obj, outputStream* st); |
126 void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty); | 133 void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty); |
134 void oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty); | |
127 | 135 |
128 }; | 136 }; |