comparison 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
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
689 static int static_lock_offset; 689 static int static_lock_offset;
690 static int static_pending_offset; 690 static int static_pending_offset;
691 static int number_of_fake_oop_fields; 691 static int number_of_fake_oop_fields;
692 692
693 // Accessors 693 // Accessors
694 static oop referent(oop ref) { return *referent_addr(ref); } 694 static oop referent(oop ref) {
695 static void set_referent(oop ref, oop value); 695 return ref->obj_field(referent_offset);
696 static oop* referent_addr(oop ref); 696 }
697 697 static void set_referent(oop ref, oop value) {
698 static oop next(oop ref) { return *next_addr(ref); } 698 ref->obj_field_put(referent_offset, value);
699 static void set_next(oop ref, oop value); 699 }
700 static oop* next_addr(oop ref); 700 static void set_referent_raw(oop ref, oop value) {
701 701 ref->obj_field_raw_put(referent_offset, value);
702 static oop discovered(oop ref) { return *discovered_addr(ref); } 702 }
703 static void set_discovered(oop ref, oop value); 703 static HeapWord* referent_addr(oop ref) {
704 static oop* discovered_addr(oop ref); 704 return ref->obj_field_addr<HeapWord>(referent_offset);
705 705 }
706 static oop next(oop ref) {
707 return ref->obj_field(next_offset);
708 }
709 static void set_next(oop ref, oop value) {
710 ref->obj_field_put(next_offset, value);
711 }
712 static void set_next_raw(oop ref, oop value) {
713 ref->obj_field_raw_put(next_offset, value);
714 }
715 static HeapWord* next_addr(oop ref) {
716 return ref->obj_field_addr<HeapWord>(next_offset);
717 }
718 static oop discovered(oop ref) {
719 return ref->obj_field(discovered_offset);
720 }
721 static void set_discovered(oop ref, oop value) {
722 ref->obj_field_put(discovered_offset, value);
723 }
724 static void set_discovered_raw(oop ref, oop value) {
725 ref->obj_field_raw_put(discovered_offset, value);
726 }
727 static HeapWord* discovered_addr(oop ref) {
728 return ref->obj_field_addr<HeapWord>(discovered_offset);
729 }
706 // Accessors for statics 730 // Accessors for statics
707 static oop pending_list_lock() { return *pending_list_lock_addr(); } 731 static oop pending_list_lock();
708 static oop pending_list() { return *pending_list_addr(); } 732 static oop pending_list();
709 733
710 static oop* pending_list_lock_addr(); 734 static HeapWord* pending_list_addr();
711 static oop* pending_list_addr();
712 }; 735 };
713 736
714 737
715 // Interface to java.lang.ref.SoftReference objects 738 // Interface to java.lang.ref.SoftReference objects
716 739