< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Print this page
rev 48562 : [mq]: heap23

*** 4074,4084 **** if (var_size_in_bytes == noreg) { lea(end, Address(obj, con_size_in_bytes)); } else { lea(end, Address(obj, var_size_in_bytes)); } ! ldr(rscratch1, Address(rthread, JavaThread::tlab_end_offset())); cmp(end, rscratch1); br(Assembler::HI, slow_case); // update the tlab top pointer str(end, Address(rthread, JavaThread::tlab_top_offset())); --- 4074,4084 ---- if (var_size_in_bytes == noreg) { lea(end, Address(obj, con_size_in_bytes)); } else { lea(end, Address(obj, var_size_in_bytes)); } ! ldr(rscratch1, Address(rthread, JavaThread::tlab_current_end_offset())); cmp(end, rscratch1); br(Assembler::HI, slow_case); // update the tlab top pointer str(end, Address(rthread, JavaThread::tlab_top_offset()));
*** 4104,4114 **** // No allocation in the shared eden. b(slow_case); } ldr(top, Address(rthread, in_bytes(JavaThread::tlab_top_offset()))); ! ldr(t1, Address(rthread, in_bytes(JavaThread::tlab_end_offset()))); // calculate amount of free space sub(t1, t1, top); lsr(t1, t1, LogHeapWordSize); --- 4104,4114 ---- // No allocation in the shared eden. b(slow_case); } ldr(top, Address(rthread, in_bytes(JavaThread::tlab_top_offset()))); ! ldr(t1, Address(rthread, in_bytes(JavaThread::tlab_current_end_offset()))); // calculate amount of free space sub(t1, t1, top); lsr(t1, t1, LogHeapWordSize);
*** 4198,4208 **** #endif str(top, Address(rthread, in_bytes(JavaThread::tlab_start_offset()))); str(top, Address(rthread, in_bytes(JavaThread::tlab_top_offset()))); add(top, top, t1); sub(top, top, (int32_t)ThreadLocalAllocBuffer::alignment_reserve_in_bytes()); ! str(top, Address(rthread, 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. ldr(top, Address(rthread, in_bytes(JavaThread::tlab_start_offset()))); --- 4198,4208 ---- #endif str(top, Address(rthread, in_bytes(JavaThread::tlab_start_offset()))); str(top, Address(rthread, in_bytes(JavaThread::tlab_top_offset()))); add(top, top, t1); sub(top, top, (int32_t)ThreadLocalAllocBuffer::alignment_reserve_in_bytes()); ! str(top, Address(rthread, 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. ldr(top, Address(rthread, in_bytes(JavaThread::tlab_start_offset())));
*** 4345,4355 **** br(Assembler::HS, next); STOP("assert(top >= start)"); should_not_reach_here(); bind(next); ! ldr(rscratch2, Address(rthread, in_bytes(JavaThread::tlab_end_offset()))); ldr(rscratch1, Address(rthread, in_bytes(JavaThread::tlab_top_offset()))); cmp(rscratch2, rscratch1); br(Assembler::HS, ok); STOP("assert(top <= end)"); should_not_reach_here(); --- 4345,4355 ---- br(Assembler::HS, next); STOP("assert(top >= start)"); should_not_reach_here(); bind(next); ! ldr(rscratch2, Address(rthread, in_bytes(JavaThread::tlab_current_end_offset()))); ldr(rscratch1, Address(rthread, in_bytes(JavaThread::tlab_top_offset()))); cmp(rscratch2, rscratch1); br(Assembler::HS, ok); STOP("assert(top <= end)"); should_not_reach_here();
< prev index next >