comparison src/share/vm/gc_implementation/parallelScavenge/psScavenge.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
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
114 static bool invoke_no_policy(); 114 static bool invoke_no_policy();
115 115
116 // If an attempt to promote fails, this method is invoked 116 // If an attempt to promote fails, this method is invoked
117 static void oop_promotion_failed(oop obj, markOop obj_mark); 117 static void oop_promotion_failed(oop obj, markOop obj_mark);
118 118
119 static inline bool should_scavenge(oop p); 119 template <class T> static inline bool should_scavenge(T* p);
120 120
121 // These call should_scavenge() above and, if it returns true, also check that 121 // These call should_scavenge() above and, if it returns true, also check that
122 // the object was not newly copied into to_space. The version with the bool 122 // the object was not newly copied into to_space. The version with the bool
123 // argument is a convenience wrapper that fetches the to_space pointer from 123 // argument is a convenience wrapper that fetches the to_space pointer from
124 // the heap and calls the other version (if the arg is true). 124 // the heap and calls the other version (if the arg is true).
125 static inline bool should_scavenge(oop p, MutableSpace* to_space); 125 template <class T> static inline bool should_scavenge(T* p, MutableSpace* to_space);
126 static inline bool should_scavenge(oop p, bool check_to_space); 126 template <class T> static inline bool should_scavenge(T* p, bool check_to_space);
127 127
128 inline static void copy_and_push_safe_barrier(PSPromotionManager* pm, oop* p); 128 template <class T> inline static void copy_and_push_safe_barrier(PSPromotionManager* pm, T* p);
129 129
130 // Is an object in the young generation 130 // Is an object in the young generation
131 // This assumes that the HeapWord argument is in the heap, 131 // This assumes that the HeapWord argument is in the heap,
132 // so it only checks one side of the complete predicate. 132 // so it only checks one side of the complete predicate.
133 inline static bool is_obj_in_young(HeapWord* o) { 133 inline static bool is_obj_in_young(HeapWord* o) {