equal
deleted
inserted
replaced
539 // Manipulated with CAS in the parallel/multi-threaded case. |
539 // Manipulated with CAS in the parallel/multi-threaded case. |
540 oopDesc* volatile _overflow_list; |
540 oopDesc* volatile _overflow_list; |
541 // The following array-pair keeps track of mark words |
541 // The following array-pair keeps track of mark words |
542 // displaced for accommodating overflow list above. |
542 // displaced for accommodating overflow list above. |
543 // This code will likely be revisited under RFE#4922830. |
543 // This code will likely be revisited under RFE#4922830. |
544 Stack<oop, mtGC> _preserved_oop_stack; |
544 Stack<oop, mtGC> _preserved_oop_stack; |
545 Stack<markOop, mtGC> _preserved_mark_stack; |
545 Stack<markWord, mtGC> _preserved_mark_stack; |
546 |
546 |
547 // In support of multi-threaded concurrent phases |
547 // In support of multi-threaded concurrent phases |
548 YieldingFlexibleWorkGang* _conc_workers; |
548 YieldingFlexibleWorkGang* _conc_workers; |
549 |
549 |
550 // Performance Counters |
550 // Performance Counters |
740 // The following is, obviously, not, in general, "MT-stable" |
740 // The following is, obviously, not, in general, "MT-stable" |
741 bool overflow_list_is_empty() const; |
741 bool overflow_list_is_empty() const; |
742 |
742 |
743 void preserve_mark_if_necessary(oop p); |
743 void preserve_mark_if_necessary(oop p); |
744 void par_preserve_mark_if_necessary(oop p); |
744 void par_preserve_mark_if_necessary(oop p); |
745 void preserve_mark_work(oop p, markOop m); |
745 void preserve_mark_work(oop p, markWord m); |
746 void restore_preserved_marks_if_any(); |
746 void restore_preserved_marks_if_any(); |
747 NOT_PRODUCT(bool no_preserved_marks() const;) |
747 NOT_PRODUCT(bool no_preserved_marks() const;) |
748 // In support of testing overflow code |
748 // In support of testing overflow code |
749 NOT_PRODUCT(int _overflow_counter;) |
749 NOT_PRODUCT(int _overflow_counter;) |
750 NOT_PRODUCT(bool simulate_overflow();) // Sequential |
750 NOT_PRODUCT(bool simulate_overflow();) // Sequential |
1134 size_t direct_allocated_words() const { return _direct_allocated_words; } |
1134 size_t direct_allocated_words() const { return _direct_allocated_words; } |
1135 void reset_direct_allocated_words() { _direct_allocated_words = 0; } |
1135 void reset_direct_allocated_words() { _direct_allocated_words = 0; } |
1136 |
1136 |
1137 // Overrides for parallel promotion. |
1137 // Overrides for parallel promotion. |
1138 virtual oop par_promote(int thread_num, |
1138 virtual oop par_promote(int thread_num, |
1139 oop obj, markOop m, size_t word_sz); |
1139 oop obj, markWord m, size_t word_sz); |
1140 virtual void par_promote_alloc_done(int thread_num); |
1140 virtual void par_promote_alloc_done(int thread_num); |
1141 virtual void par_oop_since_save_marks_iterate_done(int thread_num); |
1141 virtual void par_oop_since_save_marks_iterate_done(int thread_num); |
1142 |
1142 |
1143 virtual bool promotion_attempt_is_safe(size_t promotion_in_bytes) const; |
1143 virtual bool promotion_attempt_is_safe(size_t promotion_in_bytes) const; |
1144 |
1144 |