equal
deleted
inserted
replaced
2161 // Try allocate in shared eden |
2161 // Try allocate in shared eden |
2162 retry: |
2162 retry: |
2163 HeapWord* compare_to = *Universe::heap()->top_addr(); |
2163 HeapWord* compare_to = *Universe::heap()->top_addr(); |
2164 HeapWord* new_top = compare_to + obj_size; |
2164 HeapWord* new_top = compare_to + obj_size; |
2165 if (new_top <= *Universe::heap()->end_addr()) { |
2165 if (new_top <= *Universe::heap()->end_addr()) { |
2166 if (Atomic::cmpxchg(new_top, Universe::heap()->top_addr(), compare_to) != compare_to) { |
2166 if (Atomic::cmpxchg(Universe::heap()->top_addr(), compare_to, new_top) != compare_to) { |
2167 goto retry; |
2167 goto retry; |
2168 } |
2168 } |
2169 result = (oop) compare_to; |
2169 result = (oop) compare_to; |
2170 } |
2170 } |
2171 } |
2171 } |