< prev index next >
src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp
Print this page
rev 50637 : [mq]: JDK-8205336.patch
rev 50638 : [mq]: JDK-8205336-01.patch
*** 156,166 ****
}
// verify_tlab();
}
// Defines obj, preserves var_size_in_bytes
! void BarrierSetAssembler::eden_allocate(MacroAssembler* masm,Register thread, Register obj,
Register var_size_in_bytes,
int con_size_in_bytes,
Register t1,
Label& slow_case) {
assert_different_registers(obj, var_size_in_bytes, t1);
--- 156,166 ----
}
// verify_tlab();
}
// Defines obj, preserves var_size_in_bytes
! void BarrierSetAssembler::eden_allocate(MacroAssembler* masm, Register obj,
Register var_size_in_bytes,
int con_size_in_bytes,
Register t1,
Label& slow_case) {
assert_different_registers(obj, var_size_in_bytes, t1);
*** 208,234 ****
// If heap_top hasn't been changed by some other thread, update it.
__ stlxr(rscratch2, end, rscratch1);
__ cbnzw(rscratch2, retry);
! incr_allocated_bytes(masm, thread, var_size_in_bytes, con_size_in_bytes, t1);
}
}
! void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm, Register thread,
Register var_size_in_bytes,
int con_size_in_bytes,
Register t1) {
- if (!thread->is_valid()) {
- thread = rthread;
- }
assert(t1->is_valid(), "need temp reg");
! __ ldr(t1, Address(thread, in_bytes(JavaThread::allocated_bytes_offset())));
if (var_size_in_bytes->is_valid()) {
__ add(t1, t1, var_size_in_bytes);
} else {
__ add(t1, t1, con_size_in_bytes);
}
! __ str(t1, Address(thread, in_bytes(JavaThread::allocated_bytes_offset())));
}
--- 208,231 ----
// If heap_top hasn't been changed by some other thread, update it.
__ stlxr(rscratch2, end, rscratch1);
__ cbnzw(rscratch2, retry);
! incr_allocated_bytes(masm, var_size_in_bytes, con_size_in_bytes, t1);
}
}
! void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm,
Register var_size_in_bytes,
int con_size_in_bytes,
Register t1) {
assert(t1->is_valid(), "need temp reg");
! __ ldr(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
if (var_size_in_bytes->is_valid()) {
__ add(t1, t1, var_size_in_bytes);
} else {
__ add(t1, t1, con_size_in_bytes);
}
! __ str(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
}
< prev index next >