6420645: Create a vm that uses compressed oops for up to 32gb heapsizes

Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv

Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
This commit is contained in:
Coleen Phillimore 2008-04-13 17:43:42 -04:00
parent 680ecf1611
commit 4a831d45f0
273 changed files with 6585 additions and 2993 deletions

View file

@ -63,6 +63,11 @@ class objArrayKlass : public arrayKlass {
// Compute class loader
oop class_loader() const { return Klass::cast(bottom_klass())->class_loader(); }
private:
// Either oop or narrowOop depending on UseCompressedOops.
// must be called from within objArrayKlass.cpp
template <class T> void do_copy(arrayOop s, T* src, arrayOop d,
T* dst, int length, TRAPS);
protected:
// Returns the objArrayKlass for n'th dimension.
virtual klassOop array_klass_impl(bool or_null, int n, TRAPS);
@ -101,7 +106,9 @@ class objArrayKlass : public arrayKlass {
#define ObjArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \
int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \
int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, \
MemRegion mr);
MemRegion mr); \
int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* blk, \
int start, int end);
ALL_OOP_OOP_ITERATE_CLOSURES_1(ObjArrayKlass_OOP_OOP_ITERATE_DECL)
ALL_OOP_OOP_ITERATE_CLOSURES_3(ObjArrayKlass_OOP_OOP_ITERATE_DECL)
@ -124,5 +131,6 @@ class objArrayKlass : public arrayKlass {
const char* internal_name() const;
void oop_verify_on(oop obj, outputStream* st);
void oop_verify_old_oop(oop obj, oop* p, bool allow_dirty);
void oop_verify_old_oop(oop obj, narrowOop* p, bool allow_dirty);
};