< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.cpp

Print this page
rev 48562 : [mq]: heap23

*** 5583,5593 **** if (var_size_in_bytes == noreg) { lea(end, Address(obj, con_size_in_bytes)); } else { lea(end, Address(obj, var_size_in_bytes, Address::times_1)); } ! cmpptr(end, Address(thread, JavaThread::tlab_end_offset())); jcc(Assembler::above, slow_case); // update the tlab top pointer movptr(Address(thread, JavaThread::tlab_top_offset()), end); --- 5583,5593 ---- if (var_size_in_bytes == noreg) { lea(end, Address(obj, con_size_in_bytes)); } else { lea(end, Address(obj, var_size_in_bytes, Address::times_1)); } ! cmpptr(end, Address(thread, JavaThread::tlab_current_end_offset())); jcc(Assembler::above, slow_case); // update the tlab top pointer movptr(Address(thread, JavaThread::tlab_top_offset()), end);
*** 5615,5625 **** } NOT_LP64(get_thread(thread_reg)); movptr(top, Address(thread_reg, in_bytes(JavaThread::tlab_top_offset()))); ! movptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_end_offset()))); // calculate amount of free space subptr(t1, top); shrptr(t1, LogHeapWordSize); --- 5615,5625 ---- } NOT_LP64(get_thread(thread_reg)); movptr(top, Address(thread_reg, in_bytes(JavaThread::tlab_top_offset()))); ! movptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_current_end_offset()))); // calculate amount of free space subptr(t1, top); shrptr(t1, LogHeapWordSize);
*** 5696,5706 **** #endif movptr(Address(thread_reg, in_bytes(JavaThread::tlab_start_offset())), top); movptr(Address(thread_reg, in_bytes(JavaThread::tlab_top_offset())), top); addptr(top, t1); subptr(top, (int32_t)ThreadLocalAllocBuffer::alignment_reserve_in_bytes()); ! movptr(Address(thread_reg, in_bytes(JavaThread::tlab_end_offset())), top); 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. movptr(top, Address(thread_reg, in_bytes(JavaThread::tlab_start_offset()))); --- 5696,5706 ---- #endif movptr(Address(thread_reg, in_bytes(JavaThread::tlab_start_offset())), top); movptr(Address(thread_reg, in_bytes(JavaThread::tlab_top_offset())), top); addptr(top, t1); subptr(top, (int32_t)ThreadLocalAllocBuffer::alignment_reserve_in_bytes()); ! movptr(Address(thread_reg, in_bytes(JavaThread::tlab_current_end_offset())), top); 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. movptr(top, Address(thread_reg, in_bytes(JavaThread::tlab_start_offset())));
*** 6257,6267 **** jcc(Assembler::aboveEqual, next); STOP("assert(top >= start)"); should_not_reach_here(); bind(next); ! movptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_end_offset()))); cmpptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_top_offset()))); jcc(Assembler::aboveEqual, ok); STOP("assert(top <= end)"); should_not_reach_here(); --- 6257,6267 ---- jcc(Assembler::aboveEqual, next); STOP("assert(top >= start)"); should_not_reach_here(); bind(next); ! movptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_current_end_offset()))); cmpptr(t1, Address(thread_reg, in_bytes(JavaThread::tlab_top_offset()))); jcc(Assembler::aboveEqual, ok); STOP("assert(top <= end)"); should_not_reach_here();
< prev index next >