< prev index next >
src/hotspot/cpu/arm/macroAssembler_arm.cpp
Print this page
rev 48562 : [mq]: heap23
*** 1307,1317 ****
RegisterOrConstant size_expression, Label& slow_case) {
const Register tlab_end = tmp1;
assert_different_registers(obj, obj_end, tlab_end);
ldr(obj, Address(Rthread, JavaThread::tlab_top_offset()));
! ldr(tlab_end, Address(Rthread, JavaThread::tlab_end_offset()));
add_rc(obj_end, obj, size_expression);
cmp(obj_end, tlab_end);
b(slow_case, hi);
str(obj_end, Address(Rthread, JavaThread::tlab_top_offset()));
}
--- 1307,1317 ----
RegisterOrConstant size_expression, Label& slow_case) {
const Register tlab_end = tmp1;
assert_different_registers(obj, obj_end, tlab_end);
ldr(obj, Address(Rthread, JavaThread::tlab_top_offset()));
! ldr(tlab_end, Address(Rthread, JavaThread::tlab_current_end_offset()));
add_rc(obj_end, obj, size_expression);
cmp(obj_end, tlab_end);
b(slow_case, hi);
str(obj_end, Address(Rthread, JavaThread::tlab_top_offset()));
}
*** 1325,1335 ****
}
InlinedAddress intArrayKlass_addr((address)Universe::intArrayKlassObj_addr());
Label discard_tlab, do_refill;
ldr(top, Address(Rthread, JavaThread::tlab_top_offset()));
! ldr(tmp1, Address(Rthread, JavaThread::tlab_end_offset()));
ldr(tmp2, Address(Rthread, JavaThread::tlab_refill_waste_limit_offset()));
// Calculate amount of free space
sub(tmp1, tmp1, top);
// Retain tlab and allocate in shared space
--- 1325,1335 ----
}
InlinedAddress intArrayKlass_addr((address)Universe::intArrayKlassObj_addr());
Label discard_tlab, do_refill;
ldr(top, Address(Rthread, JavaThread::tlab_top_offset()));
! ldr(tmp1, Address(Rthread, JavaThread::tlab_current_end_offset()));
ldr(tmp2, Address(Rthread, JavaThread::tlab_refill_waste_limit_offset()));
// Calculate amount of free space
sub(tmp1, tmp1, top);
// Retain tlab and allocate in shared space
*** 1395,1405 ****
cmp(tmp1, tmp2);
breakpoint(ne);
#endif
sub(tmp1, tmp1, ThreadLocalAllocBuffer::alignment_reserve_in_bytes());
! str(tmp1, Address(Rthread, JavaThread::tlab_end_offset()));
if (ZeroTLAB) {
// clobbers start and tmp
// top must be preserved!
add(tmp1, tmp1, ThreadLocalAllocBuffer::alignment_reserve_in_bytes());
--- 1395,1405 ----
cmp(tmp1, tmp2);
breakpoint(ne);
#endif
sub(tmp1, tmp1, ThreadLocalAllocBuffer::alignment_reserve_in_bytes());
! str(tmp1, Address(Rthread, JavaThread::tlab_current_end_offset()));
if (ZeroTLAB) {
// clobbers start and tmp
// top must be preserved!
add(tmp1, tmp1, ThreadLocalAllocBuffer::alignment_reserve_in_bytes());
< prev index next >