Mercurial > hg > truffle
diff src/share/vm/oops/oop.inline.hpp @ 6848:8e47bac5643a
7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Tue, 09 Oct 2012 10:11:38 +0200 |
parents | 22b8d3d181d9 |
children | e522a00b91aa 10d5f25a7c67 db9981fd3124 |
line wrap: on
line diff
--- a/src/share/vm/oops/oop.inline.hpp Mon Oct 08 17:04:00 2012 -0700 +++ b/src/share/vm/oops/oop.inline.hpp Tue Oct 09 10:11:38 2012 +0200 @@ -185,8 +185,8 @@ inline bool check_obj_alignment(oop obj) { return (intptr_t)obj % MinObjAlignmentInBytes == 0; } -inline bool check_obj_alignment(Klass* obj) { - return (intptr_t)obj % MinObjAlignmentInBytes == 0; +inline bool check_klass_alignment(Klass* obj) { + return (intptr_t)obj % KlassAlignmentInBytes == 0; } inline narrowOop oopDesc::encode_heap_oop_not_null(oop v) { @@ -228,9 +228,9 @@ inline narrowOop oopDesc::encode_klass_not_null(Klass* v) { assert(!is_null(v), "oop value can never be zero"); - assert(check_obj_alignment(v), "Address not aligned"); - address base = Universe::narrow_oop_base(); - int shift = Universe::narrow_oop_shift(); + assert(check_klass_alignment(v), "Address not aligned"); + address base = Universe::narrow_klass_base(); + int shift = Universe::narrow_klass_shift(); uint64_t pd = (uint64_t)(pointer_delta((void*)v, (void*)base, 1)); assert(OopEncodingHeapMax > pd, "change encoding max if new encoding"); uint64_t result = pd >> shift; @@ -245,10 +245,10 @@ inline Klass* oopDesc::decode_klass_not_null(narrowOop v) { assert(!is_null(v), "narrow oop value can never be zero"); - address base = Universe::narrow_oop_base(); - int shift = Universe::narrow_oop_shift(); + address base = Universe::narrow_klass_base(); + int shift = Universe::narrow_klass_shift(); Klass* result = (Klass*)(void*)((uintptr_t)base + ((uintptr_t)v << shift)); - assert(check_obj_alignment(result), err_msg("address not aligned: " PTR_FORMAT, (void*) result)); + assert(check_klass_alignment(result), err_msg("address not aligned: " PTR_FORMAT, (void*) result)); return result; }