comparison src/cpu/sparc/vm/macroAssembler_sparc.cpp @ 13001:b4aa8fc5d0d5

Merge
author ccheung
date Fri, 25 Oct 2013 22:06:43 -0700
parents 209aa13ab8c0 252d541466ea
children be525e91f65b
comparison
equal deleted inserted replaced
13000:209aa13ab8c0 13001:b4aa8fc5d0d5
3331 assert_different_registers(top, t1, t2, t3, G4, G5 /* preserve G4 and G5 */); 3331 assert_different_registers(top, t1, t2, t3, G4, G5 /* preserve G4 and G5 */);
3332 Label do_refill, discard_tlab; 3332 Label do_refill, discard_tlab;
3333 3333
3334 if (CMSIncrementalMode || !Universe::heap()->supports_inline_contig_alloc()) { 3334 if (CMSIncrementalMode || !Universe::heap()->supports_inline_contig_alloc()) {
3335 // No allocation in the shared eden. 3335 // No allocation in the shared eden.
3336 ba_short(slow_case); 3336 ba(slow_case);
3337 delayed()->nop();
3337 } 3338 }
3338 3339
3339 ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), top); 3340 ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), top);
3340 ld_ptr(G2_thread, in_bytes(JavaThread::tlab_end_offset()), t1); 3341 ld_ptr(G2_thread, in_bytes(JavaThread::tlab_end_offset()), t1);
3341 ld_ptr(G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()), t2); 3342 ld_ptr(G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()), t2);
3356 // increment number of slow_allocations 3357 // increment number of slow_allocations
3357 ld(G2_thread, in_bytes(JavaThread::tlab_slow_allocations_offset()), t2); 3358 ld(G2_thread, in_bytes(JavaThread::tlab_slow_allocations_offset()), t2);
3358 add(t2, 1, t2); 3359 add(t2, 1, t2);
3359 stw(t2, G2_thread, in_bytes(JavaThread::tlab_slow_allocations_offset())); 3360 stw(t2, G2_thread, in_bytes(JavaThread::tlab_slow_allocations_offset()));
3360 } 3361 }
3361 ba_short(try_eden); 3362 ba(try_eden);
3363 delayed()->nop();
3362 3364
3363 bind(discard_tlab); 3365 bind(discard_tlab);
3364 if (TLABStats) { 3366 if (TLABStats) {
3365 // increment number of refills 3367 // increment number of refills
3366 ld(G2_thread, in_bytes(JavaThread::tlab_number_of_refills_offset()), t2); 3368 ld(G2_thread, in_bytes(JavaThread::tlab_number_of_refills_offset()), t2);
3418 #endif // ASSERT 3420 #endif // ASSERT
3419 add(top, t1, top); // t1 is tlab_size 3421 add(top, t1, top); // t1 is tlab_size
3420 sub(top, ThreadLocalAllocBuffer::alignment_reserve_in_bytes(), top); 3422 sub(top, ThreadLocalAllocBuffer::alignment_reserve_in_bytes(), top);
3421 st_ptr(top, G2_thread, in_bytes(JavaThread::tlab_end_offset())); 3423 st_ptr(top, G2_thread, in_bytes(JavaThread::tlab_end_offset()));
3422 verify_tlab(); 3424 verify_tlab();
3423 ba_short(retry); 3425 ba(retry);
3426 delayed()->nop();
3424 } 3427 }
3425 3428
3426 void MacroAssembler::incr_allocated_bytes(RegisterOrConstant size_in_bytes, 3429 void MacroAssembler::incr_allocated_bytes(RegisterOrConstant size_in_bytes,
3427 Register t1, Register t2) { 3430 Register t1, Register t2) {
3428 // Bump total bytes allocated by this thread 3431 // Bump total bytes allocated by this thread