3445 __ cmp(RoldTopValue, RnewTopValue); |
3445 __ cmp(RoldTopValue, RnewTopValue); |
3446 __ brx(Assembler::notEqual, false, Assembler::pn, retry); |
3446 __ brx(Assembler::notEqual, false, Assembler::pn, retry); |
3447 __ delayed()->nop(); |
3447 __ delayed()->nop(); |
3448 |
3448 |
3449 // bump total bytes allocated by this thread |
3449 // bump total bytes allocated by this thread |
3450 __ incr_allocated_bytes(Roffset, 0, G1_scratch); |
3450 // RoldTopValue and RtopAddr are dead, so can use G1 and G3 |
|
3451 __ incr_allocated_bytes(Roffset, G1_scratch, G3_scratch); |
3451 } |
3452 } |
3452 |
3453 |
3453 if (UseTLAB || Universe::heap()->supports_inline_contig_alloc()) { |
3454 if (UseTLAB || Universe::heap()->supports_inline_contig_alloc()) { |
3454 // clear object fields |
3455 // clear object fields |
3455 __ bind(initialize_object); |
3456 __ bind(initialize_object); |