< prev index next >
src/hotspot/cpu/sparc/macroAssembler_sparc.cpp
Print this page
rev 48562 : [mq]: heap23
*** 3072,3082 ****
STOP("assert(top >= start)");
should_not_reach_here();
bind(next);
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), t1);
! ld_ptr(G2_thread, in_bytes(JavaThread::tlab_end_offset()), t2);
or3(t3, t2, t3);
cmp_and_br_short(t1, t2, Assembler::lessEqual, Assembler::pn, next2);
STOP("assert(top <= end)");
should_not_reach_here();
--- 3072,3082 ----
STOP("assert(top >= start)");
should_not_reach_here();
bind(next);
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), t1);
! ld_ptr(G2_thread, in_bytes(JavaThread::tlab_current_end_offset()), t2);
or3(t3, t2, t3);
cmp_and_br_short(t1, t2, Assembler::lessEqual, Assembler::pn, next2);
STOP("assert(top <= end)");
should_not_reach_here();
*** 3194,3204 ****
verify_tlab();
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), obj);
// calculate amount of free space
! ld_ptr(G2_thread, in_bytes(JavaThread::tlab_end_offset()), free);
sub(free, obj, free);
Label done;
if (var_size_in_bytes == noreg) {
cmp(free, con_size_in_bytes);
--- 3194,3204 ----
verify_tlab();
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), obj);
// calculate amount of free space
! ld_ptr(G2_thread, in_bytes(JavaThread::tlab_current_end_offset()), free);
sub(free, obj, free);
Label done;
if (var_size_in_bytes == noreg) {
cmp(free, con_size_in_bytes);
*** 3246,3256 ****
ba(slow_case);
delayed()->nop();
}
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), top);
! ld_ptr(G2_thread, in_bytes(JavaThread::tlab_end_offset()), t1);
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()), t2);
// calculate amount of free space
sub(t1, top, t1);
srl_ptr(t1, LogHeapWordSize, t1);
--- 3246,3256 ----
ba(slow_case);
delayed()->nop();
}
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_top_offset()), top);
! ld_ptr(G2_thread, in_bytes(JavaThread::tlab_current_end_offset()), t1);
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_refill_waste_limit_offset()), t2);
// calculate amount of free space
sub(t1, top, t1);
srl_ptr(t1, LogHeapWordSize, t1);
*** 3338,3348 ****
bind(ok);
}
#endif // ASSERT
add(top, t1, top); // t1 is tlab_size
sub(top, ThreadLocalAllocBuffer::alignment_reserve_in_bytes(), top);
! st_ptr(top, G2_thread, in_bytes(JavaThread::tlab_end_offset()));
if (ZeroTLAB) {
// This is a fast TLAB refill, therefore the GC is not notified of it.
// So compiled code must fill the new TLAB with zeroes.
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_start_offset()), t2);
--- 3338,3348 ----
bind(ok);
}
#endif // ASSERT
add(top, t1, top); // t1 is tlab_size
sub(top, ThreadLocalAllocBuffer::alignment_reserve_in_bytes(), top);
! st_ptr(top, G2_thread, in_bytes(JavaThread::tlab_current_end_offset()));
if (ZeroTLAB) {
// This is a fast TLAB refill, therefore the GC is not notified of it.
// So compiled code must fill the new TLAB with zeroes.
ld_ptr(G2_thread, in_bytes(JavaThread::tlab_start_offset()), t2);
< prev index next >