Mercurial > hg > graal-compiler
diff src/share/vm/classfile/javaClasses.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 | 90f5ddc7297b |
children | 60b728ec77c1 |
line wrap: on
line diff
--- a/src/share/vm/classfile/javaClasses.hpp Fri Apr 11 09:56:35 2008 -0400 +++ b/src/share/vm/classfile/javaClasses.hpp Sun Apr 13 17:43:42 2008 -0400 @@ -691,24 +691,47 @@ static int number_of_fake_oop_fields; // Accessors - static oop referent(oop ref) { return *referent_addr(ref); } - static void set_referent(oop ref, oop value); - static oop* referent_addr(oop ref); - - static oop next(oop ref) { return *next_addr(ref); } - static void set_next(oop ref, oop value); - static oop* next_addr(oop ref); + static oop referent(oop ref) { + return ref->obj_field(referent_offset); + } + static void set_referent(oop ref, oop value) { + ref->obj_field_put(referent_offset, value); + } + static void set_referent_raw(oop ref, oop value) { + ref->obj_field_raw_put(referent_offset, value); + } + static HeapWord* referent_addr(oop ref) { + return ref->obj_field_addr<HeapWord>(referent_offset); + } + static oop next(oop ref) { + return ref->obj_field(next_offset); + } + static void set_next(oop ref, oop value) { + ref->obj_field_put(next_offset, value); + } + static void set_next_raw(oop ref, oop value) { + ref->obj_field_raw_put(next_offset, value); + } + static HeapWord* next_addr(oop ref) { + return ref->obj_field_addr<HeapWord>(next_offset); + } + static oop discovered(oop ref) { + return ref->obj_field(discovered_offset); + } + static void set_discovered(oop ref, oop value) { + ref->obj_field_put(discovered_offset, value); + } + static void set_discovered_raw(oop ref, oop value) { + ref->obj_field_raw_put(discovered_offset, value); + } + static HeapWord* discovered_addr(oop ref) { + return ref->obj_field_addr<HeapWord>(discovered_offset); + } + // Accessors for statics + static oop pending_list_lock(); + static oop pending_list(); - static oop discovered(oop ref) { return *discovered_addr(ref); } - static void set_discovered(oop ref, oop value); - static oop* discovered_addr(oop ref); - - // Accessors for statics - static oop pending_list_lock() { return *pending_list_lock_addr(); } - static oop pending_list() { return *pending_list_addr(); } - - static oop* pending_list_lock_addr(); - static oop* pending_list_addr(); + static HeapWord* pending_list_addr(); };